/ Directory / Playground / MCP Registry
● Official modelcontextprotocol ⚡ Instant

MCP Registry

by modelcontextprotocol · modelcontextprotocol/registry

Official catalog and lookup service for MCP servers — discover, publish, and verify production MCPs from one canonical source.

The MCP Registry is the official Anthropic-blessed listing of MCP servers, akin to npm/PyPI for the protocol. It exposes a REST API, a Go server, and tooling to publish your own MCP. Acts as the upstream truth for clients that want to discover MCPs by capability, language, or publisher.

Why use it

Key features

Live Demo

What it looks like in practice

mcp-registry.replay ▶ ready
0/0

Install

Pick your client

~/Library/Application Support/Claude/claude_desktop_config.json  · Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "mcp-registry": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/registry-mcp"
      ],
      "_inferred": true
    }
  }
}

Open Claude Desktop → Settings → Developer → Edit Config. Restart after saving.

~/.cursor/mcp.json · .cursor/mcp.json
{
  "mcpServers": {
    "mcp-registry": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/registry-mcp"
      ],
      "_inferred": true
    }
  }
}

Cursor uses the same mcpServers schema as Claude Desktop. Project config wins over global.

VS Code → Cline → MCP Servers → Edit
{
  "mcpServers": {
    "mcp-registry": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/registry-mcp"
      ],
      "_inferred": true
    }
  }
}

Click the MCP Servers icon in the Cline sidebar, then "Edit Configuration".

~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "mcp-registry": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/registry-mcp"
      ],
      "_inferred": true
    }
  }
}

Same shape as Claude Desktop. Restart Windsurf to pick up changes.

~/.continue/config.json
{
  "mcpServers": [
    {
      "name": "mcp-registry",
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/registry-mcp"
      ]
    }
  ]
}

Continue uses an array of server objects rather than a map.

~/.config/zed/settings.json
{
  "context_servers": {
    "mcp-registry": {
      "command": {
        "path": "npx",
        "args": [
          "-y",
          "@modelcontextprotocol/registry-mcp"
        ]
      }
    }
  }
}

Add to context_servers. Zed hot-reloads on save.

claude mcp add mcp-registry -- npx -y @modelcontextprotocol/registry-mcp

One-liner. Verify with claude mcp list. Remove with claude mcp remove.

Use Cases

Real-world ways to use MCP Registry

Let Claude search the official registry to find an MCP for a task

👤 Anyone who knows what they want to do but not which MCP does it ⏱ ~10 min beginner

When to use: You need a Postgres MCP / Notion MCP / etc. and want the canonical pick.

Flow
  1. Search
    Use registry MCP. Find the top 3 results for keyword 'postgres' and tell me their stars + last update.✓ Copied
    → Three candidates with metadata
  2. Inspect manifests
    For each, show config + tool list so I can pick.✓ Copied
    → Manifests rendered
  3. Install the chosen one
    Install the top result into Claude Desktop.✓ Copied
    → Config block written to claude_desktop_config.json

Outcome: MCP picked from authoritative source rather than random search results.

Pitfalls
  • Newer MCPs may not be registered yet — Cross-check FreeMCPLab and direct GitHub for community-driven picks

Publish your MCP to the official registry so others can find it

👤 MCP authors with a stable, useful server ⏱ ~30 min intermediate

When to use: Your MCP has 3+ users and you want discoverability.

Prerequisites
  • GitHub repo with manifest — server.json at repo root following the registry schema
Flow
  1. Validate manifest
    Use registry MCP to validate my server.json against the official schema. Tell me what's missing.✓ Copied
    → Schema validation report
  2. Submit
    Submit via the registry CLI. Auth using my GitHub identity.✓ Copied
    → Submission accepted; URL returned
  3. Verify discoverability
    Search for my MCP by name; confirm it appears.✓ Copied
    → Visible in search

Outcome: Your MCP listed in the official registry.

Run an internal MCP registry for your company

👤 Platform teams at orgs with internal MCPs ⏱ ~60 min advanced

When to use: You have proprietary MCPs you don't want on the public registry.

Prerequisites
  • Go runtime or Docker — go install or docker pull
Flow
  1. Run the server
    Start the registry server on internal.mcp.corp. Configure auth.✓ Copied
    → Server up; readable schema endpoint
  2. Mirror or curate
    Mirror selected public entries; add private ones from internal teams.✓ Copied
    → Hybrid catalog
  3. Point Claude at it
    Configure Claude Desktop to use the internal registry URL for discovery.✓ Copied
    → Discovery now uses internal source

Outcome: Internal MCPs governed and discovered via your own registry.

Combinations

Pair with other MCPs for X10 leverage

SDK + registry — build then publish

Build with mcp-python-sdk; once stable, validate via registry MCP and submit.✓ Copied

Cross-reference registry with curated awesome list

If a server isn't in the registry yet, check the awesome list for community status.✓ Copied

Tools

What this MCP exposes

ToolInputsWhen to callCost
search_servers query, runtime?, limit? Discovery 0
get_server id Detail page 0
validate_manifest manifest_json Pre-submission check 0
submit_server manifest, github_token Publish your MCP 0

Cost & Limits

What this costs to run

API quota
Public reads unauthenticated; submissions need GitHub auth
Tokens per call
Small — manifests are JSON
Monetary
Free
Tip
Cache manifest results client-side; they don't change often

Security

Permissions, secrets, blast radius

Minimum scopes: github:read (for submission)
Credential storage: GitHub token in env var for submission only
Data egress: registry.modelcontextprotocol.io
Never grant: github:write to private orgs

Troubleshooting

Common errors and fixes

Schema validation failure

Compare your server.json against the canonical schema in /schemas; missing fields are common

Submission rejected

Check GitHub identity matches manifest publisher; verify repo is public

Server not visible after submission

Indexing can take a few minutes; refresh search after 5

Alternatives

MCP Registry vs others

AlternativeWhen to use it insteadTradeoff
Smithery / PulseMCPYou want a polished commercial directoryThird-party indexes; this one is upstream
FreeMCPLab (this site)Curated guides and hands-on demos rather than raw catalogDifferent shape — playgrounds vs index

More

Resources

📖 Read the official README on GitHub

🐙 Browse open issues

🔍 Browse all 400+ MCP servers and Skills