Tool Router
Attach to an existing tool router session (v3.1)
Fetch an existing tool router session by ID.
post/api/v3.1/tool_router/session/{session_id}/attach
Path parameters
session_idstring toolRouterSessionId required
The unique identifier of the tool router session
Example:trs_1a2b3c4d5e6f
The unique identifier of the tool router session
Request body
Example request
{
"experimental": {
"custom_toolkits": [
{
"slug": "ecommerce",
"name": "E-Commerce API",
"description": "Internal e-commerce API for order management and fulfillment",
"tools": [
{
"slug": "GET_CUSTOMER_ORDERS",
"name": "Get Customer Orders",
"description": "Fetch recent orders for a customer by their email address",
"input_schema": {
"type": "object",
"properties": {
"email": {
"type": "string",
"description": "Customer email"
}
},
"required": [
"email"
]
}
}
]
}
],
"custom_tools": [
{
"slug": "GET_IMPORTANT_EMAILS",
"name": "Get Important Emails",
"description": "Fetch emails marked as important from the last 24 hours",
"input_schema": {
"type": "object",
"properties": {
"limit": {
"type": "number",
"description": "Max results to return"
}
}
},
"extends_toolkit": "gmail"
}
]
}
}Response
Session successfully attached. Returns the session payload.
Example response
{
"session_id": "trs_1a2b3c4d5e6f",
"mcp": {
"url": "https://app.composio.dev/tool_router/v3/trs_1a2b3c4d5e6f/mcp"
},
"warnings": [
{
"code": "PRELOAD_TOOLS_HIGH_CONTEXT_USAGE",
"message": "Session preloads 25 tools; each preloaded tool adds to the agent context window. Consider keeping the list at or under ~20 tools."
}
]
}