Vercel

Create MCP Server

Registers a new MCP server with your account. Supports OAuth, bearer token, custom headers, or no authentication. The server URL must use HTTPS in production.

POST/v1/mcp-servers

Usage

TypeScript Example
import { v0 } from 'v0-sdk'const result = await v0.mcpServers.create({  name: 'My MCP Server',  url: 'https://mcp.example.com/sse',})console.log(result)

OAuth MCP servers are created disconnected. After creating the server, call Create MCP Server OAuth Authorization URL and redirect the user to the returned provider URL.

API Signature

Request

Body

name: string

A human-readable name for the MCP server. Must be between 1 and 100 characters.

url: string

The URL of the MCP server endpoint. Must be a valid URL and use HTTPS in production. Maximum 500 characters.

description?: string

An optional description for the MCP server. Maximum 500 characters.

enabled?: boolean

Whether the MCP server should be enabled. Defaults to true.

auth?: object

Authentication configuration for the MCP server. Defaults to no authentication.

type: 'none' | 'bearer' | 'custom-headers' | 'oauth'

The authentication method. Use 'oauth' for OAuth MCP servers, 'bearer' for token-based auth, or 'custom-headers' for key-value header pairs.

token?: string

The bearer token. Required when type is 'bearer'. Maximum 1000 characters.

headers?: Record<string, string>

Key-value pairs of custom headers. Required when type is 'custom-headers'. Maximum 10 headers.

config?: object

OAuth configuration. Required when type is 'oauth'. Tokens are not accepted by this API.

scope?: 'user' | 'team'

Whether the server is scoped to the user or a team. Defaults to 'user'.

Response

id: string

A unique identifier for the MCP server.

object: 'mcp_server'

Fixed value identifying this object as an MCP server.

name: string

The name of the MCP server.

url: string

The URL of the MCP server endpoint.

description?: string

The description of the MCP server.

enabled: boolean

Whether the MCP server is currently enabled.

auth: object

The authentication configuration. Only the type is returned; sensitive values are redacted.

type: 'none' | 'bearer' | 'custom-headers' | 'oauth'

The authentication method used by the server.

scope: 'user' | 'team'

Whether the server is scoped to the user or a team.

createdAt: string

The ISO 8601 timestamp when the server was created.

updatedAt?: string

The ISO 8601 timestamp when the server was last updated.

On this page