---
title: "Create Mcp Server"
method: POST
path: "/v1/mcp-servers/"
tags: ["v1", "protected", "mcp-servers"]
---

# Create Mcp Server

`POST /v1/mcp-servers/`

## Request body

- MCPServerCreate — Payload for creating an MCP server spec (catalog template). Either ``docker_image_url`` (for container-based servers) or ``remote_url`` (for HTTP-based servers like GitHub Copilot) should be supplied. ``env_schema`` describes the variables an instance built from this spec needs to provide; secret entries (``isSecret: true``) are routed through the secret manager rather than stored in plaintext.
  - `cmd` string[], nullable — Custom command override for container CMD (e.g. switching between stdio and HTTP modes).
  - `description` string, required — Short summary of what this MCP server provides.
  - `docker_image_url` string, nullable — Docker image URL for container-based MCP servers.
  - `env_schema` object[], nullable — Environment-variable schema entries (KeyValueInput from the MCP registry). Each item has at least 'name' and 'description'; mark secrets with 'isSecret: true'.
  - `is_public` boolean — If true, the spec is visible across workspaces.
  - `json_spec` object, nullable — Raw ServerJSON spec as published by the MCP registry.
  - `name` string, required — Human-readable MCP server name (unique per workspace).
  - `registry_url` string, nullable — Source registry URL the spec was imported from.
  - `remote_url` string, nullable — Remote endpoint URL for HTTP-based MCP servers.
  - `tags` string[] — Tags used for search and categorization.
  - `version` string — Semantic version of the MCP server spec.

## Response `200`

Successful Response

- MCPServerResponse
  - `cmd` string[], nullable, required
  - `created_at` string, required
  - `description` string, required
  - `docker_image_url` string, nullable
  - `env_schema` object[], required
  - `id` string, uuid, required
  - `is_public` boolean, required
  - `json_spec` object, nullable
  - `name` string, required
  - `registry_url` string, nullable
  - `remote_url` string, nullable
  - `slug` string, required
  - `status` string, required
  - `tags` string[], required
  - `updated_at` string, required
  - `version` string, required

## Other responses

- `422` — Validation Error

---

[API](https://skmtc.net/agentarea/apis/agentarea-api.md) · [All operations](https://skmtc.net/agentarea/apis/agentarea-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/agentarea/agentarea-api/revisions/e3650e48373b/schema)
