docs/content/docs/tools-and-toolkits.mdx
Composio offers 1000+ toolkits, but loading all the tools into context would overwhelm your agent. Instead, your agent has access to meta tools that discover, authenticate, and execute the right tools at runtime.
When you create a session, your agent gets these meta tools:
| Meta tool | What it does |
|---|---|
COMPOSIO_SEARCH_TOOLS | Discover relevant tools across 500+ apps with execution plans |
COMPOSIO_GET_TOOL_SCHEMAS | Retrieve complete input schemas for specific tools |
COMPOSIO_MULTI_EXECUTE_TOOL | Execute up to 50 tools in parallel |
COMPOSIO_MANAGE_CONNECTIONS | Handle OAuth, API key, and other authentication methods |
COMPOSIO_REMOTE_WORKBENCH | Run Python code in a persistent sandbox |
COMPOSIO_REMOTE_BASH_TOOL | Execute bash commands for file and data processing |
See the Meta Tools Reference for complete input/output schemas and details.
Meta tool calls in a session are correlated using a session_id, allowing them to share context. The tools can also store useful information (like IDs and relationships discovered during execution) in memory for subsequent calls.
User: "Create a GitHub issue for this bug"
↓
1. Agent calls COMPOSIO_SEARCH_TOOLS
→ Returns GITHUB_CREATE_ISSUE with input schema
→ Returns connection status: "not connected"
→ Returns execution plan and tips
↓
2. Agent calls COMPOSIO_MANAGE_CONNECTIONS (because not connected)
→ Returns auth link for GitHub
→ User clicks link and authenticates
↓
3. Agent calls COMPOSIO_MULTI_EXECUTE_TOOL
→ Executes GITHUB_CREATE_ISSUE with arguments
→ Returns the created issue details
↓
Done. (For large results, agent can use REMOTE_WORKBENCH to process)
COMPOSIO_SEARCH_TOOLS returns:
For most tasks, COMPOSIO_MULTI_EXECUTE_TOOL returns results directly. But when dealing with large responses or bulk operations, your agent uses the workbench tools:
COMPOSIO_REMOTE_WORKBENCH - Run Python code in a persistent sandbox. Use for bulk operations (e.g., labeling 100 emails), complex data transformations, or when results need further analysis with helper functions like invoke_llm.
COMPOSIO_REMOTE_BASH_TOOL - Execute bash commands for simpler file operations and data extraction using tools like jq, awk, sed, and grep.
A toolkit is a collection of related tools for a service. For example, the github toolkit contains tools for creating issues, managing pull requests, and starring repositories.
A tool is an individual action your agent can execute. Each tool has an input schema (required and optional parameters) and an output schema (what it returns). Tools follow a {TOOLKIT}_{ACTION} naming pattern, like GITHUB_CREATE_ISSUE.
To restrict which toolkits are available, pass toolkits when creating the session. See Enable and disable toolkits.
</Accordion>
</Accordions>
Tools execute with the user's authenticated credentials. When a user connects their GitHub account, all GitHub tools run with their permissions.
If a tool requires authentication and the user hasn't connected yet, the agent can use COMPOSIO_MANAGE_CONNECTIONS to prompt them.
<Card icon={<Key />} title="Authentication" href="/docs/authentication"> Learn how Composio handles user authentication </Card>