Create a new custom MCP server with multiple apps
Creates a new Model Control Protocol (MCP) server instance that can integrate with multiple applications or toolkits simultaneously. This endpoint allows you to create a server that can access tools from different applications, making it suitable for complex workflows that span multiple services.
Authorization
ApiKeyAuth API key authentication
In: header
Request Body
application/json
Human-readable name to identify this custom MCP server (4-30 characters, alphanumeric, spaces, and hyphens only)
^[a-zA-Z0-9- ]+$4 <= length <= 30ID references to existing authentication configurations
List of application/toolkit identifiers to enable for this server
Tool identifiers to enable that aren't part of standard toolkits
DEPRECATED: Use allowed_tools instead. Tool identifiers to enable that aren't part of standard toolkits
Whether to manage authentication via Composio
Response Body
application/json
application/json
application/json
application/json
application/json
curl -X POST "https://backend.composio.dev/api/v3/mcp/servers/custom" \ -H "Content-Type: application/json" \ -d '{ "name": "Development Integration Server", "toolkits": [ "github", "jira" ] }'{
"id": "550e8400-e29b-41d4-a716-446655440000",
"name": "Multi-App Integration Server",
"auth_config_ids": [
"auth_cfg_abc123def456",
"auth_cfg_xyz789"
],
"allowed_tools": [
"github-issues",
"jira-tickets",
"slack-messages",
"custom-api-tool"
],
"mcp_url": "https://backend.composio.dev/v3/mcp/550e8410-e29b-41d4-a716-446655440000?user_id=john",
"commands": {
"cursor": "npx @composio/mcp@latest setup \"https://backend.composio.dev/v3/mcp/550e8410-e29b-41d4-a716-446655440000?user_id=john\" --client cursor",
"claude": "npx @composio/mcp@latest setup \"https://backend.composio.dev/v3/mcp/550e8410-e29b-41d4-a716-446655440000?user_id=john\" --client claude",
"windsurf": "npx @composio/mcp@latest setup \"https://backend.composio.dev/v3/mcp/550e8410-e29b-41d4-a716-446655440000?user_id=john\" --client windsurf"
}
}{
"error": {
"message": "string",
"code": 0,
"slug": "string",
"status": 0,
"request_id": "string",
"suggested_fix": "string",
"errors": [
"string"
]
}
}{
"error": {
"message": "string",
"code": 0,
"slug": "string",
"status": 0,
"request_id": "string",
"suggested_fix": "string",
"errors": [
"string"
]
}
}{
"error": {
"message": "string",
"code": 0,
"slug": "string",
"status": 0,
"request_id": "string",
"suggested_fix": "string",
"errors": [
"string"
]
}
}{
"error": {
"message": "string",
"code": 0,
"slug": "string",
"status": 0,
"request_id": "string",
"suggested_fix": "string",
"errors": [
"string"
]
}
}