@laburen/openclaw-plugin-composio
v0.0.14
Published
OpenClaw Composio plugin - access 1000+ third-party tools via Composio Tool Router
Readme
Composio Plugin for OpenClaw
Composio integration for OpenClaw: the gateway connects a per-user MCP session (via composioApiKey + userId), discovers third-party tools (Gmail, Slack, GitHub, Notion, and many more), registers them as OpenClaw tools, and executes calls through the same session.
Install
openclaw plugins install @laburen/openclaw-plugin-composioIf you install from a local folder instead, copy the package into your OpenClaw extensions root and enable it in config (same plugin id: composio).
Setup
- In Composio, create or open your org and obtain:
- API key (
ak_...) for SDK / MCP session creation.
- API key (
- Choose a stable
userIdstring for the end user (connections and MCP sessions are scoped to this id). - Use env-backed config in production where possible; never commit keys.
Via OpenClaw Config
Minimal example — enable the plugin, set key and user id:
openclaw config set plugins.entries.composio.config.enabled true
openclaw config set plugins.entries.composio.config.composioApiKey "ak_..."
openclaw config set plugins.entries.composio.config.userId "user-id"
openclaw config set tools.alsoAllow '["composio"]'Restart the gateway after changes:
openclaw gateway restartHow It Works
- Registers plugin id
composioand reads config viaparseComposioConfig(nestedplugins.entries.composio.configor env). - Connection: asynchronously creates a Composio session for
userIdusingcomposioApiKey, connects an MCPClientto the session URL with the headers Composio returns. - Tool catalog: lists tools via
client.listTools()on the connected MCP client. Each returned tool is registered with OpenClaw. - Execution: forwards
callToolto the same MCP client used for discovery. before_prompt_build: injects a<composio>system block so the model knows when to prefer Composio (external SaaS) vs native OpenClaw (local machine).
Configuration
{
"plugins": {
"allow": ["composio"],
"entries": {
"composio": {
"enabled": true,
"config": {
"enabled": true,
"composioApiKey": "ak_...",
"userId": "your-stable-user-id"
}
}
}
}
}| Option | Description | Default |
|--------|-------------|---------|
| plugins.entries.composio.enabled | Turn the plugin entry on or off | — |
| config.enabled | Turn the Composio integration on or off | true |
| config.composioApiKey | Composio API key (ak_...) for SDK session, tool discovery, and execution | — (or COMPOSIO_API_KEY) |
| config.userId | End-user id for connections and MCP session | — (or COMPOSIO_USER_ID) |
CLI
After tools load successfully, the plugin may register a composio command group. Example:
openclaw composio remove-toolkit <toolkit-slug>Removes the connected account for the given toolkit for the configured userId (requires composioApiKey and userId).
Notes
- Both API key and userId are required — without them the plugin logs a warning and exits without registering tools.
- Keep keys out of logs and rotate them on a schedule.
- Composio-connected work runs in Composio's environment — it cannot read arbitrary files from the user's machine; combine with native OpenClaw tools when a task needs both local and external steps.
