| name | composio |
| description | TRIGGER on any request to access, read, send, search, or act on the user's personal accounts and online services — email, calendar, messaging, social media, code hosting, documents, spreadsheets, project tools, video platforms, CRMs, or any other SaaS/web app. TRIGGER IMMEDIATELY when you see any reference to an authenticated service — a URL, an ID, a resource name, or a mention of a platform. These services require login — Defuddle, WebFetch, browser tools, and curl are not logged in to the user's account and will fail. Composio is the ONLY way because it holds the user's authenticated connections. Composio is the user's universal service aggregator — a single gateway to 500+ external apps. Use this skill whenever the user asks you to interact with ANY external service, API, or app, even if you think you can't access it. Also triggers for cross-service workflows (pull data from one service, push to another), monitoring external sources, or any task that requires reaching outside the local filesystem into the user's online accounts. Never say "I don't have access to X" without first checking Composio — connected services change dynamically and must always be discovered at runtime.
|
Composio — Your Service Gateway
Composio is not just another tool. It is the user's universal service aggregator — the single layer through which you can reach into any of the 500+ apps and services the user relies on. Think of it as your API backbone: if the user mentions an external service, Composio is almost certainly how you interact with it.
The Mental Model
Without this skill, you might treat Composio tools as isolated MCP calls. That undersells their power significantly. Here's the right way to think about it:
- Composio is your hands. The user's digital life — email, code repos, project management, social media, documents, calendars — is accessible through Composio. When they ask you to do something involving any external service, your first instinct should be to reach through Composio.
- You don't know the full list of services upfront. The user connects and disconnects services over time. The connected service list is dynamic. Never assume a service isn't available — always use
COMPOSIO_SEARCH_TOOLS to discover what's possible.
- Cross-service workflows are where you shine. The real power isn't calling one API. It's chaining actions across services: pull data from one, transform it, push to another. Composio makes this seamless because every service speaks the same protocol.
The Workflow Protocol
Every Composio interaction follows this sequence. Internalize it — don't skip steps.
Step 1: Discover — COMPOSIO_SEARCH_TOOLS
Always start here. This is your entry point for every external service interaction.
- Describe the use case clearly in the
use_case field
- For complex workflows, split into atomic queries (one action per query)
- Include app names in each query to keep intent scoped
- Pass any known identifiers (channel names, repo names, email addresses) in
known_fields
- Use
session.generate_id: true for new workflows; reuse the session ID for follow-ups within the same workflow
- If the user pivots to a different task, generate a new session ID
The response tells you:
- Which tools exist for the task
- Whether the user has an active connection to that service
- A recommended execution plan with common pitfalls
Step 2: Connect — COMPOSIO_MANAGE_CONNECTIONS
If SEARCH_TOOLS indicates a service isn't connected yet:
- Call
COMPOSIO_MANAGE_CONNECTIONS with the exact toolkit name from the search response
- Present the returned
redirect_url as a clickable markdown link
- Immediately call
COMPOSIO_WAIT_FOR_CONNECTIONS to poll — don't wait for the user to tell you they're done
- Only proceed to execution after the connection is confirmed ACTIVE
Never execute tools against a service that doesn't have an active connection.
Step 3: Schema — COMPOSIO_GET_TOOL_SCHEMAS
If SEARCH_TOOLS didn't return complete parameter schemas for the tools you need, fetch them. Never guess or invent parameter names — always get the schema first. This ensures you pass exactly the right arguments.
Step 4: Execute — COMPOSIO_MULTI_EXECUTE_TOOL
This is the action layer. Key principles:
- Execute logically independent tools in parallel (up to 50 at once)
- Never batch tools that have ordering or data dependencies — if tool B needs output from tool A, run A first
- Always pass the session ID from your search response
- Use
sync_response_to_workbench: true preemptively when you expect large responses
- Include inline markdown links to sources (Slack threads, GitHub issues, etc.) alongside relevant text in your response to the user
Step 5: Process Results
For small/simple responses, process inline — summarize, extract, present directly.
For large responses or bulk data processing, use the remote processing tools:
COMPOSIO_REMOTE_BASH_TOOL — quick file ops, jq/grep/awk on saved responses
COMPOSIO_REMOTE_WORKBENCH — Python in a persistent Jupyter sandbox for heavier processing, bulk operations, or chaining multiple tool calls programmatically
The workbench has a 4-minute timeout per cell. For large jobs, split into batches with checkpoints.
Key Behaviors
Composio is the ONLY way to access authenticated services
When you see a reference to a SaaS platform — whether it's a URL, a resource ID, a page name, a ticket number, or just a mention of the service — your first instinct might be to fetch it with Defuddle or WebFetch. Do not do this. These tools make unauthenticated HTTP requests — they are not logged in to the user's accounts. They will get a login page, a 403, or empty content, wasting time and tokens.
Only Composio holds the user's authenticated connections. It accesses services through their APIs using the user's credentials, so it can read, write, and act on content that requires login.
The routing rule: If the content lives behind a login wall — any SaaS platform, any private workspace, any account-gated resource — go straight to Composio. Use COMPOSIO_SEARCH_TOOLS to find the right API tool, then COMPOSIO_MULTI_EXECUTE_TOOL to fetch the content.
This applies to subagents too — if you're spawning an agent to interact with any authenticated service, instruct it to use Composio, not Defuddle or WebFetch.
The rule is simple: if the service requires login, use Composio. Do not try other tools first.
Be proactive
When the user mentions any external service, don't ask "do you want me to use Composio?" — just use it. Search for the tools, check the connection, and execute. The user installed Composio precisely so you'd take action on their behalf.
Never say "I can't access that"
Before telling the user you can't interact with a service, always run COMPOSIO_SEARCH_TOOLS. Composio supports 500+ apps — the service is probably there. If it truly isn't, then you can tell the user.
Follow the execution plan
SEARCH_TOOLS returns a recommended plan with common pitfalls. Follow it. The plans are optimized from real usage patterns and will save you from common mistakes like missing prerequisite calls or incorrect parameter ordering.
Handle auth gracefully
If a connection isn't active, don't treat it as a blocker. Present the auth link, wait for it, and continue. The user expects this to be a smooth flow, not a stop-and-restart.
Cite your sources
When presenting information from external services, always include direct links back to the source. Slack thread URL, GitHub issue link, email message link — whatever is available in the response. This lets the user verify and take further action.