Composio SDK renames custom tools to local tools and appUrl to mcpUrl (November 9, 2026)
Composio TS 0.29.0 and Python 0.32.0 rename in-process custom tools to local tools and switch custom toolkits to mcpUrl.
Your keys
0 of 1 ready
Create each key on its own page, paste it below, then copy the finished lines into your project's .env file. What you paste stays in this tab. It is never sent to Wirestack or saved.
- Composio API keyCOMPOSIO_API_KEYGet key
Copy your project API key from Settings, API keys in the Composio dashboard.
3 of 3 free copies left this month.Unlimited with Pro
What changed
Composio shipped TypeScript @composio/core 0.29.0, @composio/slim 0.29.0 and Python composio 0.32.0.
- Breaking (experimental):
create()andupsert()on custom toolkits now take the MCP server URL asmcpUrlin TypeScript (sent asmcp_url) and asmcp_urlin Python. These replaceappUrlandapp_url. - Rename: in-process custom tools are now called local tools.
- TypeScript:
experimental.localToolsandexperimental.localToolkitsincomposio.create();localToolsandlocalToolkitsincomposio.use();session.localTools()andsession.localToolkits(). - Python:
experimental={"local_tools": ..., "local_toolkits": ...}incomposio.create();local_tools=andlocal_toolkits=incomposio.use();session.local_tools()andsession.local_toolkits(). - The API request itself is unchanged.
- TypeScript:
- Deprecated but still working: in TypeScript,
customTools,customToolkits,session.customTools(),session.customToolkits()and theCustom*type names. In Python,custom_toolsandcustom_toolkitsnow emitComposioDeprecationWarning. - If you pass a new option together with its deprecated alias, TypeScript throws
ValidationErrorand Python raisesInvalidParams. - TypeScript: rate-limited calls throw
ComposioToolFetchRateLimitErrororComposioToolExecutionRateLimitError. Check for them withisComposioRateLimitError.waitForConnection()now backs off between polls and waits out 429 responses. - Python:
wait_for_connection()polls at 1 to 5 seconds and honours on a 429.
