---
title: "Create MCP Server"
method: POST
path: "/mcp-servers"
tags: ["MCP Servers"]
---

# Create MCP Server

`POST /mcp-servers`

Creates a new MCP server configuration. Limited to 100 servers per user.

## Request body

- object
  - `name` string, required — Display name for the MCP server.
  - `url` string, uri, required — URL endpoint of the MCP server.
  - `description` string — Optional description of the MCP server.
  - `enabled` boolean, required — Whether the server should be enabled.
  - `auth` union, required — Authentication configuration.
    - object
      - `type` 'none', required
    - object
      - `type` 'bearer', required
      - `token` string, required — Bearer token for authentication.
    - object
      - `type` 'custom-headers', required
      - `headers` object, required — Custom headers to include in requests.
    - object
      - `type` 'oauth', required
      - `config` object — OAuth configuration discovered or manually set.
        - `authorizationUrl` string, uri, required
        - `tokenUrl` string, uri, required
        - `registrationUrl` string, uri
        - `clientId` string, required
        - `clientSecret` string
        - `scopes` string[], required
        - `usePKCE` boolean, required
        - `issuer` string
        - `resource` string
        - `clientIdMetadataDocumentSupported` boolean
      - `connected` boolean, required — Whether OAuth is currently connected.
      - `expiresAt` string — ISO timestamp when the token expires.
  - `scope` 'user' | 'team', required — Scope of the MCP server configuration.

## Response `200`

Response for status 200

- McpServer
  - `id` string, required — Unique identifier for the MCP server.
  - `name` string, required — Display name of the MCP server.
  - `url` string, required — URL endpoint of the MCP server.
  - `description` string, required — Optional description of the MCP server.
  - `createdAt` string, date-time, required — ISO timestamp of when the server was created.
  - `updatedAt` string, date-time, required — ISO timestamp of the last update.
  - `userId` string, required — ID of the user who created the server.
  - `enabled` boolean, required — Whether the MCP server is enabled.
  - `auth` union, required — Authentication configuration for the MCP server.
    - object
      - `type` 'none', required
    - object
      - `type` 'bearer', required
      - `token` string, required — Bearer token for authentication.
    - object
      - `type` 'custom-headers', required
      - `headers` object, required — Custom headers to include in requests.
    - object
      - `type` 'oauth', required
      - `config` object — OAuth configuration discovered or manually set.
        - `authorizationUrl` string, uri, required
        - `tokenUrl` string, uri, required
        - `registrationUrl` string, uri
        - `clientId` string, required
        - `clientSecret` string
        - `scopes` string[], required
        - `usePKCE` boolean, required
        - `issuer` string
        - `resource` string
        - `clientIdMetadataDocumentSupported` boolean
      - `connected` boolean, required — Whether OAuth is currently connected.
      - `expiresAt` string — ISO timestamp when the token expires.
  - `scope` 'user' | 'team', required — Scope of the MCP server configuration.

## Other responses

- `401` — Response for status 401
- `403` — Response for status 403
- `422` — Response for status 422
- `500` — Response for status 500

## Changes

> 34 revisions in range; 3 could not be searched.

- **2026-07-30** `da68370a2aea` — 10 breaking, 20 info
  - removed `subschema #1, subschema #2, subschema #3, subschema #4` from the `auth` request property `anyOf` list
  - added `subschema #1, subschema #2, subschema #3, subschema #4` to the `auth` response property `oneOf` list for the response status `200`
  - the `auth` response's property type/format changed from `object`/`` to ``/`` for status `200`
  - the `url` response's property type/format changed from `string`/`uri` to `string`/`` for status `200`
  - …26 more
- **2026-05-11** `95c713e70ec3` — 1 info
  - added `subschema #4` to the `auth` request property `anyOf` list
- **2026-03-06** `b73ab7a6f317` — 1 info
  - endpoint added
- **2025-08-24** `3521652a43a7` — 1 breaking
  - api path removed without deprecation

[Change history](https://skmtc.dev/vercel/apis/v0-platform-api-beta/changes/mcp-servers/post.md)

---

[API](https://skmtc.dev/vercel/apis/v0-platform-api-beta.md) · [All operations](https://skmtc.dev/vercel/apis/v0-platform-api-beta/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/vercel/v0-platform-api-beta/revisions/3cf5debd6cf4/schema)
