publish

Publish MCP server

Publish a new MCP server to the registry or update an existing one

post/v0/publish

Request

  • Base URL: https://registry.modelcontextprotocol.io (the document declares no server; this is the origin it was published from)
  • URL: https://registry.modelcontextprotocol.io/v0/publish
  • Auth: bearer (a scheme the document does not define)

Headers

Authorizationstring required

Registry JWT token (obtained from /v0/auth/token/github)

Request body

$schemastring uri required

JSON Schema URI for this server.json format

descriptionstring required

Clear human-readable explanation of server functionality.

namestring required

Server name in reverse-DNS format. Must contain exactly one forward slash separating namespace from server name.

titlestring

Optional human-readable title or display name for the MCP server.

versionstring required

Version string for this server. SHOULD follow semantic versioning.

websiteUrlstring uri

Optional URL to the server's homepage, documentation, or project website.

Example request

{
  "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
  "description": "MCP server providing weather data and forecasts via OpenWeatherMap API",
  "icons": [
    {
      "mimeType": "image/png",
      "src": "https://example.com/icon.png"
    }
  ],
  "name": "io.github.user/weather",
  "packages": [
    {
      "environmentVariables": [
        {
          "name": "SOME_VARIABLE"
        }
      ],
      "fileSha256": "fe333e598595000ae021bd27117db32ec69af6987f507ba7a63c90638ff633ce",
      "identifier": "@modelcontextprotocol/server-brave-search",
      "packageArguments": [
        {
          "name": "--port",
          "type": "positional",
          "valueHint": "file_path"
        }
      ],
      "registryBaseUrl": "https://registry.npmjs.org",
      "registryType": "npm",
      "runtimeArguments": [
        {
          "name": "--port",
          "type": "positional",
          "valueHint": "file_path"
        }
      ],
      "runtimeHint": "npx",
      "transport": {
        "headers": [
          {
            "name": "SOME_VARIABLE"
          }
        ],
        "type": "stdio",
        "url": "https://api.example.com/mcp"
      },
      "version": "1.0.2"
    }
  ],
  "remotes": [
    {
      "headers": [
        {
          "name": "SOME_VARIABLE"
        }
      ],
      "type": "stdio",
      "url": "https://api.example.com/mcp"
    }
  ],
  "repository": {
    "id": "b94b5f7e-c7c6-d760-2c78-a5e9b8a5b8c9",
    "source": "github",
    "subfolder": "src/everything",
    "url": "https://github.com/modelcontextprotocol/servers"
  },
  "title": "Weather API",
  "version": "1.0.2",
  "websiteUrl": "https://modelcontextprotocol.io/examples"
}

Response

OK

Example response

{
  "server": {
    "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
    "description": "MCP server providing weather data and forecasts via OpenWeatherMap API",
    "icons": [
      {
        "mimeType": "image/png",
        "src": "https://example.com/icon.png"
      }
    ],
    "name": "io.github.user/weather",
    "packages": [
      {
        "environmentVariables": [
          {
            "name": "SOME_VARIABLE"
          }
        ],
        "fileSha256": "fe333e598595000ae021bd27117db32ec69af6987f507ba7a63c90638ff633ce",
        "identifier": "@modelcontextprotocol/server-brave-search",
        "packageArguments": [
          {
            "name": "--port",
            "type": "positional",
            "valueHint": "file_path"
          }
        ],
        "registryBaseUrl": "https://registry.npmjs.org",
        "registryType": "npm",
        "runtimeArguments": [
          {
            "name": "--port",
            "type": "positional",
            "valueHint": "file_path"
          }
        ],
        "runtimeHint": "npx",
        "transport": {
          "headers": [
            {
              "name": "SOME_VARIABLE"
            }
          ],
          "type": "stdio",
          "url": "https://api.example.com/mcp"
        },
        "version": "1.0.2"
      }
    ],
    "remotes": [
      {
        "headers": [
          {
            "name": "SOME_VARIABLE"
          }
        ],
        "type": "stdio",
        "url": "https://api.example.com/mcp"
      }
    ],
    "repository": {
      "id": "b94b5f7e-c7c6-d760-2c78-a5e9b8a5b8c9",
      "source": "github",
      "subfolder": "src/everything",
      "url": "https://github.com/modelcontextprotocol/servers"
    },
    "title": "Weather API",
    "version": "1.0.2",
    "websiteUrl": "https://modelcontextprotocol.io/examples"
  }
}

Changes

No recorded changes to this operation across all 1 revision of this API.