Skip to content

Composio

Composio

Composio is an integration platform that enables AI agents and LLMs to authenticate and interact with more than 500 external applications — including Slack, GitHub, Gmail, Google Sheets, Notion, Stripe, and many others — through standardized function calls. With the Composio integration in SquadOS, your agents can discover available tools, manage connections to external services, execute actions across multiple applications, and build reusable automation workflows (recipes) directly from the chat.

This tool uses no authentication (NO_AUTH) to connect.

FieldRequiredDescription
N/ANoThis tool does not require credentials.
  1. Go to Tools in the side menu (/admin/tools).
  2. Open the Available tab and search for Composio.
  3. Click the card to open the details and hit Activate — the tool goes straight to the active list, with no login step. (Connection-flow details in Organization Tools.)

COMPOSIO_CHECK_ACTIVE_CONNECTION

Deprecated: use check active connections instead for bulk operations. Check active connection status for a toolkit or specific connected account ID. Returns connection details if active, or required parameters for establishing connection if none exists. Active connections enable agent actions on the toolkit.

NameTypeRequiredDescription
connected_account_idstringNoSpecific connected account ID to check status for
toolkitstringNoName of the toolkit to check
NameTypeRequiredDescription
datastringYesData from the action execution
errorstringNoError if any occurred during the execution of the action
successfulbooleanYesWhether or not the action execution was successful

COMPOSIO_CHECK_ACTIVE_CONNECTIONS

Check active connection status for multiple toolkits or specific connected account IDs. Returns connection details if active, or required parameters for establishing connection if none exists. Active connections enable agent actions on toolkits.

NameTypeRequiredDescription
requestsarrayYesList of connection check requests
NameTypeRequiredDescription
datastringYesData from the action execution
errorstringNoError if any occurred during the execution of the action
successfulbooleanYesWhether or not the action execution was successful

COMPOSIO_CREATE_PLAN

A workflow builder that ensures the LLM produces a complete, step-by-step plan for any use case. Should be called after COMPOSIO_SEARCH_TOOLS or COMPOSIO_MANAGE_CONNECTIONS for medium or hard use cases. Outputs a complete plan with sections such as workflow steps, complexity assessment, decision matrix, and failure handling.

NameTypeRequiredDescription
difficultystring ("medium" | "hard")YesDifficulty level for the plan. Choose "medium" for moderate complexity and "hard" for complex tasks requiring multiple steps or advanced logic. Do not call for easy tasks.
known_fieldsstringYesWorkflow inputs you already know as comma-separated key:value pairs (e.g. "channel_name:pod-sdk, user_names:John"). Helps the tool infer relevant memories.
primary_tool_slugsarrayYesList of primary tool slugs that can accomplish the main task. Never invent tool slugs; only use ones given by Search.
reasoningstringYesShort reasoning about the use case and how the selected tools can accomplish it
related_tool_slugsarrayNoList of related/supporting tool slugs that might be useful. Never invent tool slugs.
use_casestringYesDetailed explanation of the use case the user is trying to accomplish
session_idstringNoPass the session_id if you received one from a prior COMPOSIO_SEARCH_TOOLS call
NameTypeRequiredDescription
datastringYesData from the action execution
errorstringNoError if any occurred during the execution of the action
successfulbooleanYesWhether or not the action execution was successful

COMPOSIO_ENABLE_TRIGGER

Enable a specific trigger for the authenticated user.

NameTypeRequiredDescription
config_paramsobjectNoConfiguration parameters for the trigger
connected_account_idstringYesConnected account ID to enable trigger for
toolkit_slugstringYesSlug of the toolkit
trigger_namestringYesName of the trigger to enable
user_idstringNoUser ID for the trigger
NameTypeRequiredDescription
datastringYesData from the action execution
errorstringNoError if any occurred during the execution of the action
successfulbooleanYesWhether or not the action execution was successful

COMPOSIO_EXECUTE_TOOL

Execute a tool using the Composio API.

NameTypeRequiredDescription
allow_destructivebooleanNoWhether to allow destructive tools to be executed. If true, the tool will be executed even if it is destructive.
argumentsobjectYesThe arguments to be passed to the tool. The schema of the arguments is present in the retrieve_actions response.
connected_account_idstringNoThe ID of the connected account to use. If not provided, uses the first active connection for the toolkit.
tool_slugstringYesThe slug of the tool to execute, to be used from the list of tools retrieved using retrieve_actions.
NameTypeRequiredDescription
datastringYesData from the action execution
errorstringNoError if any occurred during the execution of the action
successfulbooleanYesWhether or not the action execution was successful

COMPOSIO_GET_DEPENDENCY_GRAPH

Get the dependency graph for a given tool, showing related parent tools that might be useful. Calls the Composio Labs dependency graph API to retrieve tools that are commonly used together with or before the specified tool, helping discover related tools and understand common workflows.

NameTypeRequiredDescription
tool_namestringYesThe name of the tool to get dependency graph for
NameTypeRequiredDescription
datastringYesData from the action execution
errorstringNoError if any occurred during the execution of the action
successfulbooleanYesWhether or not the action execution was successful

COMPOSIO_GET_REQUIRED_PARAMETERS

Gets the required parameters for connecting to a toolkit via initiate connection. Returns the exact parameter names and types needed for initiate connection’s parameters field. Supports API keys, OAuth credentials, connection fields, and hybrid authentication scenarios. If has_default_credentials is true, you can call initiate connection with empty parameters for a seamless OAuth flow.

NameTypeRequiredDescription
toolkitstringYesName of the toolkit to analyze for authentication requirements. Returns parameters for API keys, OAuth credentials, or connection fields needed by initiate_connection.
NameTypeRequiredDescription
datastringYesData from the action execution
errorstringNoError if any occurred during the execution of the action
successfulbooleanYesWhether or not the action execution was successful

COMPOSIO_GET_RESPONSE_SCHEMA

Retrieves the response schema for a specified Composio tool. Fetches the complete response schema definition for any valid Composio tool, returning it as a dictionary that describes the expected response structure.

NameTypeRequiredDescription
toolstringYesName of the tool. For example: GITHUB_LIST_PULL_REQUESTS. You can find the relevant tool names using the COMPOSIO_RETRIEVE_ACTIONS tool.
NameTypeRequiredDescription
datastringYesData from the action execution
errorstringNoError if any occurred during the execution of the action
successfulbooleanYesWhether or not the action execution was successful

COMPOSIO_INITIATE_CONNECTION

Initiate a connection to a toolkit with comprehensive authentication support. Supports all authentication scenarios: Composio default OAuth (no parameters needed), custom OAuth (user’s client id/secret), API key/bearer token authentication, basic auth (username/password), hybrid scenarios (OAuth + connection fields like site name), and no authentication. Automatically detects and validates auth config versus connection fields.

NameTypeRequiredDescription
parametersobjectNoAuthentication parameters for the connection. Structure depends on auth type: API Key: {"generic_api_key": "your_key"}; Bearer Token: {"bearer_token": "your_token"}; Basic Auth: {"username": "user", "password": "pass"}; Custom OAuth: {"client_id": "your_id", "client_secret": "your_secret"}; Connection Fields: {"subdomain": "your_subdomain"}. Leave empty {} for default OAuth flow. Use get_required_parameters to see exact parameter names.
toolkitstringYesName of the toolkit to connect (e.g., 'gmail', 'exa', 'github', 'linear')
NameTypeRequiredDescription
datastringYesData from the action execution
errorstringNoError if any occurred during the execution of the action
successfulbooleanYesWhether or not the action execution was successful

COMPOSIO_LIST_TOOLKITS

List all the available toolkits on Composio with filtering options.

NameTypeRequiredDescription
categorystringNoFilter toolkits by category
min_toolsintegerNoFilter toolkits by minimum number of tools
name_filterstringNoFilter toolkits by name/slug
no_auth_onlybooleanNoOnly return toolkits that don’t require authentication
sizeintegerNoLimit the number of results returned
NameTypeRequiredDescription
datastringYesData from the action execution
errorstringNoError if any occurred during the execution of the action
successfulbooleanYesWhether or not the action execution was successful

COMPOSIO_LIST_TRIGGERS

List available triggers and their configuration schemas.

NameTypeRequiredDescription
toolkit_namesarrayNoList of toolkit names to filter triggers. If not provided or empty, all triggers will be returned.
NameTypeRequiredDescription
datastringYesData from the action execution
errorstringNoError if any occurred during the execution of the action
successfulbooleanYesWhether or not the action execution was successful

COMPOSIO_MANAGE_CONNECTIONS

Create or manage connections to user’s apps. Returns a branded authentication link that works for OAuth, API keys, and all other auth types. If a connection is already active, returns the connection details. Otherwise, returns a redirect URL (redirect_url) to create a new connection.

NameTypeRequiredDescription
toolkitsarrayYesToolkit slugs to check or connect. Must be valid toolkit slugs; never invent. Examples: ['gmail', 'github', 'slack', 'googlesheets', 'outlook'].
reinitiate_allbooleanNoForce reconnection for all listed toolkits, even if active connections already exist. Use when credentials may be stale or to troubleshoot connection issues. Default: false.
session_idstringNoPass the session_id if you received one from a prior COMPOSIO_SEARCH_TOOLS call.
NameTypeRequiredDescription
datastringYesData from the action execution
errorstringNoError if any occurred during the execution of the action
successfulbooleanYesWhether or not the action execution was successful

COMPOSIO_MULTI_EXECUTE_TOOL

Fast and parallel tool executor for tools discovered through COMPOSIO_SEARCH_TOOLS. Executes up to 50 tools in parallel across apps when they’re logically independent (no ordering or output dependencies). Responses contain structured outputs ready for immediate analysis.

NameTypeRequiredDescription
toolsarrayYesList of logically independent tools to execute in parallel
thoughtstringNoOne-sentence, concise, high-level rationale (no step-by-step)
sync_response_to_workbenchbooleanYesSet true when the response may be large or needed for later scripting. Saves the full response to the workbench while returning an inline preview.
memoryobjectNoDictionary with app names as keys and string arrays as values. Stores durable facts — stable IDs, mappings, preferences. Never omit — include {} if nothing to remember.
current_stepstringNoShort enum for the current workflow step (e.g., FETCHING_EMAILS, GENERATING_REPLIES)
current_step_metricstringNoProgress metrics for the current step as "done/total units" (e.g., "10/100 emails")
session_idstringNoPass the session_id if you received one from a prior COMPOSIO_SEARCH_TOOLS call
NameTypeRequiredDescription
datastringYesData from the action execution
errorstringNoError if any occurred during the execution of the action
successfulbooleanYesWhether or not the action execution was successful

COMPOSIO_REMOTE_BASH_TOOL

Execute bash commands in a remote sandbox for file operations, data processing, and system tasks. Essential for handling large tool responses saved to remote files. Hard 3-minute (180s) execution limit — break large tasks into smaller commands.

NameTypeRequiredDescription
commandstringYesThe bash command to execute. Hard 3-minute (180s) execution limit — break large tasks into smaller commands.
session_idstringNoPass the session_id if you received one from a prior COMPOSIO_SEARCH_TOOLS call
NameTypeRequiredDescription
datastringYesData from the action execution
errorstringNoError if any occurred during the execution of the action
successfulbooleanYesWhether or not the action execution was successful

COMPOSIO_REMOTE_WORKBENCH

Process remote files or script bulk tool executions using Python code in a persistent remote Jupyter sandbox. Use only when processing data stored in a remote file or when scripting bulk tool executions. If the complete response is already inline/in-memory, do not use this tool.

NameTypeRequiredDescription
code_to_executestringYesPython to run inside the persistent remote Jupyter sandbox. State (imports, variables, files) is preserved across executions. Hard 3-minute (180s) execution limit — break large tasks into smaller cells.
thoughtstringNoBrief objective for this step
current_stepstringNoShort enum for the current workflow step
current_step_metricstringNoProgress metrics for the current step
session_idstringNoPass the session_id if you received one from a prior COMPOSIO_SEARCH_TOOLS call
NameTypeRequiredDescription
datastringYesData from the action execution
errorstringNoError if any occurred during the execution of the action
successfulbooleanYesWhether or not the action execution was successful

COMPOSIO_SEARCH_TOOLS

Discovers relevant tools, recommended execution plans, and common pitfalls for specific use cases. Composio connects 500+ apps — Slack, GitHub, Notion, Google Workspace (Gmail, Sheets, Drive, Calendar), Microsoft (Outlook, Teams), X/Twitter, Figma, web search, browser automation, Meta (Instagram, Meta Ads), TikTok, and more. Always call this tool first when an external app or workflow is mentioned or implied.

NameTypeRequiredDescription
queriesarrayYesStructured English search queries to process in parallel. Split independent app/API actions into separate queries, including hidden prerequisites. Each query returns 4–6 tools.
sessionobjectNoSession context for correlating meta tool calls within a workflow. Use {generate_id: true} for new workflows or {id: "EXISTING_ID"} to continue.
modelstringNoClient LLM model name (recommended). Used to optimize planning/search behavior.
NameTypeRequiredDescription
datastringYesData from the action execution
errorstringNoError if any occurred during the execution. Format: "X out of Y searches failed, reasons: <details>".
successfulbooleanYesWhether all searches completed successfully

COMPOSIO_WAIT_FOR_CONNECTION

Wait for connections to be established for given toolkits.

NameTypeRequiredDescription
modestring ("any" | "all")NoWait for ANY connection or ALL connections to reach success/failed state (default: any)
toolkitsarrayYesList of toolkit slugs to wait for
timeout_secondsintegerNoMaximum time to wait in seconds (default: 300, max: 600)
NameTypeRequiredDescription
datastringYesData from the action execution
errorstringNoError if any occurred during the execution of the action
successfulbooleanYesWhether or not the action execution was successful

COMPOSIO_CREATE_UPDATE_RECIPE

Convert an executed workflow into a reusable notebook. Only use when the workflow is complete or the user explicitly requests it.

NameTypeRequiredDescription
recipe_idstringNoRecipe ID to update (optional). If not provided, a new recipe will be created.
namestringYesName for the notebook / recipe. Keep it short (ideally less than five words).
descriptionstringYesDescription for the notebook / recipe
output_schemaobjectYesExpected output JSON schema of the notebook / recipe
input_schemaobjectYesExpected input JSON schema for the notebook / recipe. Keep simple; all input field types must be string.
workflow_codestringYesThe Python code that implements the workflow. Should include all necessary imports, tool executions (via run_composio_tool), and proper error handling. The notebook should always end with the output cell (not print).
defaults_for_required_parametersobjectNoDefaults for required parameters of the notebook / recipe
NameTypeRequiredDescription
datastringYesData from the action execution
errorstringNoError if any occurred during the execution of the action
successfulbooleanYesWhether or not the action execution was successful

COMPOSIO_EXECUTE_RECIPE

Executes a recipe.

NameTypeRequiredDescription
recipe_idstringYesRecipe ID to execute
input_dataobjectYesInput object to pass to the recipe
NameTypeRequiredDescription
datastringYesData from the action execution
errorstringNoError if any occurred during the execution of the action
successfulbooleanYesWhether or not the action execution was successful

Create / Update Recipe from Workflow (Pydantic)

Section titled “Create / Update Recipe from Workflow (Pydantic)”

COMPOSIO_UPSERT_RECIPE

Convert the executed workflow into a recipe using Python Pydantic code. The recipe_slug parameter is required. If a recipe with the provided slug already exists, a new version will be created. The recipe must be defined using Pydantic models extending the ComposioRecipe base class and must implement request/response models and the execute method.

NameTypeRequiredDescription
recipe_slugstringYesRecipe slug identifier (required). CREATE: pass slug WITHOUT the "RECIPE_" prefix (e.g., "weather_lookup" → becomes "RECIPE_WEATHER_LOOKUP_C"). UPDATE: pass the EXACT full slug from the create response. Maximum length: 32 characters.
namestringYesName for the notebook / recipe. Keep it short (ideally less than five words).
descriptionstringYesDescription for the notebook / recipe
recipe_codestringYesThe Python Pydantic code that implements the recipe, generated based on the executed workflow. Should include Pydantic models for request and response, and a recipe class extending ComposioRecipe with an execute method.
NameTypeRequiredDescription
datastringYesData from the action execution
errorstringNoError if any occurred during the execution of the action
successfulbooleanYesWhether or not the action execution was successful

COMPOSIO_GET_RECIPE

Get the details of an existing recipe by its slug. Returns the recipe’s name, description, input/output schemas, and the toolkits it uses. Use this to inspect a recipe’s structure before executing it.

NameTypeRequiredDescription
recipe_slugstringYesRecipe slug identifier (e.g., RECIPE_MY_WORKFLOW_C). Use the exact slug returned when the recipe was created.
NameTypeRequiredDescription
datastringYesData from the action execution
errorstringNoError if any occurred during the execution of the action
successfulbooleanYesWhether or not the action execution was successful

COMPOSIO_GET_RECIPE_DETAILS

Get the details of an existing recipe by ID.

NameTypeRequiredDescription
recipe_idstringYesRecipe ID
NameTypeRequiredDescription
datastringYesData from the action execution
errorstringNoError if any occurred during the execution of the action
successfulbooleanYesWhether or not the action execution was successful

COMPOSIO_WAIT_FOR_CONNECTIONS

Wait for user auth to finish. Call ONLY after you have shown the auth link from COMPOSIO_MANAGE_CONNECTIONS. Waits until mode any/all toolkits reach a terminal state (ACTIVE/FAILED) or timeout.

NameTypeRequiredDescription
toolkitsarrayYesList of toolkit slugs to wait for
modestring ("any" | "all")NoWait for ANY connection or ALL connections to reach active/failed state (default: any)
session_idstringNoPass the session_id if you received one from a prior COMPOSIO_SEARCH_TOOLS call
NameTypeRequiredDescription
datastringYesData from the action execution
errorstringNoError if any occurred during the execution of the action
successfulbooleanYesWhether or not the action execution was successful

COMPOSIO_GET_TOOL_SCHEMAS

Retrieve input schemas for tools by slug. Returns complete parameter definitions required to execute each tool. Only pass tool slugs returned by COMPOSIO_SEARCH_TOOLS — never guess or fabricate slugs.

NameTypeRequiredDescription
tool_slugsarrayYesArray of tool slugs to retrieve schemas for. Pass valid tool slugs; never invent.
includearrayNoSchema fields to include. Defaults to ["input_schema"]. Include "output_schema" when calling tools in the workbench to validate response structure.
session_idstringNoPass the session_id if you received one from a prior COMPOSIO_SEARCH_TOOLS call
NameTypeRequiredDescription
datastringYesData from the action execution
errorstringNoError if any occurred during the execution of the action
successfulbooleanYesWhether or not the action execution was successful