---
title: "Create a new custom MCP server with multiple apps"
method: POST
path: "/api/v3.1/mcp/servers/custom"
tags: ["MCP", "Servers", "Custom"]
---

# Create a new custom MCP server with multiple apps

`POST /api/v3.1/mcp/servers/custom`

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.

## Request body

- object — Parameters for creating a new custom MCP server with multiple applications
  - `name` string, required — Human-readable name to identify this custom MCP server (4-30 characters, alphanumeric, spaces, and hyphens only)
  - `auth_config_ids` string[] — ID references to existing authentication configurations
  - `toolkits` string[] — List of application/toolkit identifiers to enable for this server
  - `allowed_tools` string[] — Tool identifiers to enable that aren't part of standard toolkits
  - `custom_tools` string[] — DEPRECATED: Use allowed_tools instead. Tool identifiers to enable that aren't part of standard toolkits
  - `managed_auth_via_composio` boolean — Whether to manage authentication via Composio

## Response `201`

Custom MCP server created successfully. Returns the complete server configuration including connection details and command instructions for all specified applications.

- object — Response for a successfully created custom MCP server with multiple applications
  - `id` string, required — Unique identifier for the newly created custom MCP server
  - `name` string, required — Human-readable name of the custom MCP server
  - `auth_config_ids` string[], required — ID references to the auth configurations used by this server
  - `allowed_tools` string[], required — List of tool identifiers that are enabled for this server
  - `mcp_url` string, required — URL endpoint for establishing connection to this MCP server
  - `commands` object, required — Set of command line instructions for connecting various clients to this MCP server
    - `cursor` string, required — Command line instruction for Cursor client setup
    - `claude` string, required — Command line instruction for Claude client setup
    - `windsurf` string, required — Command line instruction for Windsurf client setup

## Other responses

- `400` — Bad request. The request body may be invalid, missing required parameters, or contain invalid toolkit identifiers.
- `401` — Unauthorized. Authentication is required or the provided credentials are invalid.
- `403` — Forbidden. The authenticated user does not have permission to create MCP servers for this project.
- `404` — Not Found. One or more of the specified auth_config_ids do not exist or are not accessible to the authenticated user.
- `409` — Conflict. A custom MCP server with the specified name already exists in this project.
- `500` — Internal server error. An unexpected error occurred while processing the request.

---

[API](https://skmtc.net/composiohq/apis/composio-platform-api-v3-1.md) · [All operations](https://skmtc.net/composiohq/apis/composio-platform-api-v3-1/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/composiohq/composio-platform-api-v3-1/versions/4239836857f8/schema)
