Composio connects your agent to each customer's own accounts: their Gmail, Slack, Notion, Linear, HubSpot and hundreds more. You create a session per user, and Composio handles the OAuth links, tokens and refreshes. The agent then acts as that user.
In Claude Code, one Composio server gives you many apps without adding a separate MCP for each. In your own product, it's how you ship an assistant where each customer connects their own tools, onboarding that imports a customer's data from Airtable or Sheets, or sales follow-ups sent from the rep's own mailbox.
Alternatives
Watch out
- It needs an
x-api-keyheader, so it doesn't work with the Claude API connector directly.
- Block its workbench and bash tools unless you need them.
- The agent acts as the user. Keep sends and deletes behind human approval when web content is in the same session.
Install
Create a session with the Composio SDK (
composio.create(user_id)); it returns an MCP URL and headers. Then in Claude Code:Terminal
Loading editor...
claude mcp add --transport http composio "YOUR_SESSION_MCP_URL" --headers "X-API-Key:YOUR_COMPOSIO_API_KEY"
Run
/mcp, pick Composio and authenticate.In your product, use
session.mcp.url and session.mcp.headers from the SDK. Composio expects an x-api-key header, which the Claude API connector can't send, so connect through the AI SDK, OpenAI's Responses API or Composio's own SDK. The free tier covers 100,000 calls a month, then plans start at $29 a month.