All Guides

Integration Guide

OpenClaw + Composio: One Command for Hundreds of App Integrations

Composio handles tool discovery, authentication and toolkit versioning behind a single MCP endpoint. OpenClaw can register that endpoint, headers and all, in one CLI command — and then prove the connection works before you rely on it.

What you are connecting

Composio is an authentication and tooling layer for agents. Instead of an integration and a stored credential per SaaS product, you connect once and Composio manages discovery, the OAuth flow, and toolkit versioning. To OpenClaw it looks like one remote MCP server that happens to expose a lot of tools.

Its default posture is Composio-managed auth: the agent connects accounts at runtime through the session, so you are not pre-creating auth configs for managed toolkits. Convenient, and worth stating plainly — it means Composio holds those app connections rather than you.

Get the endpoint from your dashboard

There are two live shapes, and they take different headers with different key formats. Mixing them is the most common reason a correct-looking setup returns 401.

# Platform MCP — your own generated server
https://backend.composio.dev/v3/mcp/{SERVER_ID}?user_id={USER_ID}
  header: x-api-key: ak_...

# Composio Connect — the shared endpoint
https://connect.composio.dev/mcp
  header: x-consumer-api-key: ck_...
Do not use mcp.composio.dev. Older tutorials and a lot of still-circulating blog posts show a https://mcp.composio.dev/composio/server/{ID} URL. That host no longer serves MCP — it now redirects to a marketing page, so an agent pointed at it fails in a way that looks like an authentication problem rather than a dead endpoint. Copy the URL from your own dashboard.

Server IDs are opaque, so a hand-assembled URL typically fails as an auth error rather than a 404, which sends people to re-check a key that was never the problem.

Register it

openclaw mcp add composio \
  --url "https://backend.composio.dev/v3/mcp/YOUR_SERVER_ID?user_id=YOUR_USER_ID" \
  --transport streamable-http \
  --header x-api-key=YOUR_COMPOSIO_API_KEY \
  --connect-timeout 60

On Composio Connect the header is different — --header x-consumer-api-key=ck_... against https://connect.composio.dev/mcp. Passing the Platform header to Connect, or a ck_ key where an ak_ key belongs, produces a 401 that reads like a revoked key.

--header is repeatable, so additional headers are additional flags. The command writes a stanza under mcp.servers in openclaw.json, which is the current schema — older examples using tools.mcp or agents.defaults.mcp are not, and can fail strict config validation.

The equivalent config, if you prefer to see what the CLI produced. Note that the headers are part of it — a stanza without them authenticates as nobody and returns 401:

{
  "mcp": {
    "servers": {
      "composio": {
        "url": "https://backend.composio.dev/v3/mcp/YOUR_SERVER_ID?user_id=YOUR_USER_ID",
        "transport": "streamable-http",
        "headers": {
          "x-api-key": "ak_YOUR_COMPOSIO_API_KEY"
        }
      }
    }
  }
}

Prefer the CLI over hand-editing: it keeps validation and the config watcher on your side, and it writes a backup before the first change.

Probe before you trust it

openclaw mcp list
openclaw mcp show composio
openclaw mcp probe composio

A probe opens a real MCP session and lists capabilities. This is the step that separates a transport or authentication problem from a model or prompt problem, and it is worth doing every time because the failure mode is quiet: an agent that cannot see a tool usually answers without it rather than reporting that it is missing.

Naming trap: openclaw mcp tools <name> is not a listing command. It edits that server's include and exclude tool filters. Use probe and show to inspect, and reach for tools only when you want to deliberately narrow what the agent can call — which, with a toolkit this large, you probably do.

Narrow the surface on purpose

Composio can expose a very large number of tools through one server. Every tool description competes for context, and a model choosing between hundreds of near-identical actions makes worse choices than one choosing between twelve. Use the tool filters to expose the apps you actually use, and add more when you need them.

Key hygiene

The x-api-key header is required whenever require_mcp_api_key is enabled, which is the default for new organisations. Treat that key as higher-value than a single model provider key: it fronts every app connected behind it. Keep it in your own instance config and never bake it into a shared image or a template other people deploy from.

OpenClaw Launch runs the OpenClaw side for you — deploy an instance, then attach your own Composio server to it.

OpenClaw and Composio FAQ

How do I connect Composio to OpenClaw?

Register it as a remote MCP server: openclaw mcp add composio --url <your-url> --transport streamable-http --header x-api-key=YOUR_KEY. That writes an entry under mcp.servers in openclaw.json with validation on your side.

Which transport should I choose?

streamable-http. OpenClaw supports streamable-http and sse for remote MCP servers, and Composio's HTTP endpoints speak Streamable HTTP. Use sse only if the endpoint you were given is explicitly an SSE one.

Can I pass the API key on the command line?

Yes — OpenClaw's mcp add has a repeatable --header key=value flag, so the key goes in with the same command. This differs from Hermes Agent, where headers have to be written into the config file instead.

How do I check the connection actually works?

openclaw mcp probe composio. A probe opens a real MCP session and lists capabilities, which separates a transport or auth problem from a model or prompt problem. openclaw mcp show and openclaw mcp list show what is registered.

Why does openclaw mcp tools not list tools?

Because it is not a listing command despite the name — it edits that server's include and exclude tool filters. Use probe and show to inspect, and keep tools for when you actually want to narrow what the agent may call.

Related integration guides

Deploy an OpenClaw agent in seconds

Get a managed OpenClaw instance, then attach your own Composio MCP server and keys.

Deploy OpenClaw