Fetching Tools
Learn how to filter and go through Composio tools programmatically
Composio has 9000+ tools that one can view, fetch and filter from.
To view the tools, you can use the Composio Tool Directory. It’s a searchable catalog of tools from all our apps. It has the following info for each app:
- Authentication details for the app.
- List of available actions.
- Schema for each action.
Once you know which tools you need, you can fetch their definitions programmatically using the methods below.
Fetching Specific Actions
This is the most precise method. Use it when you know exactly which tool(s) your agent needs access to for a specific task. You can pass specific Action
enums or their string equivalents.
Fetching Tools by App
If you want to give an LLM general capabilities for a connected application (like “manage my GitHub issues”), you can fetch tools by specifying the App
.
Default App Tool Filtering
By default, fetching tools using only the apps
filter returns actions tagged as important
. This prevents overwhelming the LLM’s context window with too many tools. If you need all actions for an app, you’ll need to fetch them explicitly or explore the app’s page in the Tool Directory.
Fetching Specific Tools
You can fetch specific tools by their action names.
Filtering App Tools by Tags
You can refine the tools fetched for an app by adding tags
. This is useful for focusing the LLM on a specific category of actions within an app.
Finding Tools by Use Case (Experimental)
For creating more agentic flows when creating general agents over a broad problem statement, you can search for actions based on a natural language description of the task and then inject it in.
Use the advanced=True
(Python) / advanced: true
(TypeScript) flag if the use case might require multiple tools working together in sequence. Composio’s search will attempt to find a suitable chain of actions.
Inspecting Tool Schemas
Sometimes, you might need to examine the raw JSON schema definition of a tool, rather than getting it pre-formatted for a specific LLM framework via get_tools
. This can be useful for:
- Understanding exact input parameters and output structures.
- Building custom logic around tool definitions.
- Debugging tool interactions.
- Research and experimentation.
You can retrieve the raw action schemas using the get_action_schemas
method.
Bypass Connection Checks
A key feature for inspection is setting check_connected_accounts=False
. This allows you to fetch the schema for any tool, even if you haven’t connected the corresponding app via composio add <app>
, making it ideal for exploration.
This method returns detailed ActionModel
objects containing the full parameter and response schemas, version information, and more, without the framework-specific wrappers applied by get_tools
.