[mcp]central.io
Submit a Server to MCP Registry
Follow this guide to submit your MCP server using the official publisher tool
1

Install the MCP Publisher

Install the mcp-publisher tool using Homebrew (recommended) or download the pre-built binary.

Homebrew (Recommended):

macOS & Linux
brew install mcp-publisher

Linux Direct Install:

Linux
curl -L "https://github.com/modelcontextprotocol/registry/releases/download/latest/mcp-publisher_$(uname -s | tr '[:upper:]' '[:lower:]')_$(uname -m | sed 's/x86_64/amd64/;s/aarch64/arm64/').tar.gz" | tar xz mcp-publisher && sudo mv mcp-publisher /usr/local/bin/

Windows PowerShell:

Windows
$arch = if ([System.Runtime.InteropServices.RuntimeInformation]::ProcessArchitecture -eq "Arm64") { "arm64" } else { "amd64" } Invoke-WebRequest -Uri "https://github.com/modelcontextprotocol/registry/releases/download/latest/mcp-publisher_windows_$arch.tar.gz" -OutFile "mcp-publisher.tar.gz" tar xf mcp-publisher.tar.gz mcp-publisher.exe

After extraction, add the directory containing mcp-publisher.exe to your PATH.

Alternative: Manual Download

Download Binary

Download the appropriate executable for your platform and add it to your PATH.

2

Create Your Server Configuration

Create a server.json file to describe your MCP server. Make sure the repository URL points to a GitHub repository that you own.

Auto-generate server.json (Recommended):

cd /path/to/your/mcp-server
mcp-publisher init

This will create a server.json file with automatically detected values. Review and edit as needed.

Or create manually:

Example server.json:

{
  "name": "io.github.YOUR_GITHUB_USERNAME/YOUR_REPO_NAME",
  "description": "A brief description of your amazing MCP server",
  "repository": {
    "url": "https://github.com/YOUR_GITHUB_USERNAME/YOUR_REPO_NAME",
    "source": "github"
  },
  "version_detail": {
    "version": "1.0.0",
    "release_date": "2025-01-01T00:00:00Z",
    "is_latest": true
  },
  "packages": [
    {
      "registry_name": "npm",
      "name": "@your-scope/your-package-name",
      "version": "1.0.0",
      "package_arguments": [
        {
          "description": "API key for authentication",
          "is_required": true,
          "format": "string",
          "value": "your-api-key",
          "default": "",
          "type": "positional",
          "value_hint": "sk-..."
        }
      ]
    }
  ],
  "remotes": [
    {
      "transport_type": "sse",
      "url": "https://your-server.example.com/sse"
    },
    {
      "transport_type": "stdio",
      "url": "https://your-server.example.com/stdio"
    }
  ]
}

Field Descriptions:

name - Unique identifier following pattern: io.github.USERNAME/REPO_NAME

description - Brief description of what your server does

repository - GitHub repository information

version_detail - Version info including release date and latest flag

packages - NPM/PyPI package details with optional arguments

remotes - (Optional) Remote server endpoints for SSE/Streamable HTTP transports

package_arguments - (Optional) Configuration parameters your server accepts

3

Authenticate & Publish

Open your terminal in your server's repository directory and authenticate with MCPCentral, then publish your server.

Step 3a: Authenticate

GitHub OAuth (Recommended for CLI):

Interactive
mcp-publisher login github --registry https://registry.mcpcentral.io

This will open your browser for GitHub authentication. Authorize the MCPCentral app to continue.

GitHub OIDC (For CI/CD):

Non-interactive
mcp-publisher login github-oidc --registry https://registry.mcpcentral.io

Use this method in GitHub Actions workflows for automated publishing.

Step 3b: Publish Your Server

mcp-publisher publish

The tool will automatically find your server.json and publish it to the MCPCentral registry.

Optional: Automate with GitHub Actions

Set up automated publishing whenever you release a new version by adding a GitHub Actions workflow.

Create .github/workflows/publish-mcp.yml:

name: Publish to MCPCentral
on:
  push:
    tags: ["v*"]  # Triggers on version tags like v1.0.0

permissions:
  id-token: write
  contents: read

jobs:
  publish:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4

      - name: Install mcp-publisher
        run: |
          curl -L "https://github.com/modelcontextprotocol/registry/releases/download/latest/mcp-publisher_linux_amd64.tar.gz" | tar xz
          sudo mv mcp-publisher /usr/local/bin/

      - name: Authenticate with MCPCentral
        run: mcp-publisher login github-oidc --registry https://registry.mcpcentral.io

      - name: Publish to registry
        run: mcp-publisher publish

Note: After setting this up, simply create and push a version tag (e.g., git tag v1.0.0 && git push --tags) to automatically publish your server!

Need Help?

• Make sure your GitHub repository is public and contains a valid MCP server

• The name field should follow the pattern:io.github.USERNAME/REPO_NAME

• For npm packages, ensure the package is published and accessible

• Include package_arguments if your server requires configuration

• Add remotes if your server supports remote connections (SSE/Streamable HTTP)

• Visit the publisher tool documentation for detailed guides

• If you encounter issues, check existing issues or report a new one