mcp-publisher CLI tool to submit your server to MCPCentral. The process takes just a few minutes!Install the MCP Publisher
Install the mcp-publisher tool using Homebrew (recommended) or download the pre-built binary.
Homebrew (Recommended):
macOS & Linuxbrew install mcp-publisherLinux Direct Install:
Linuxcurl -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.exeAfter extraction, add the directory containing mcp-publisher.exe to your PATH.
Alternative: Manual Download
Download BinaryDownload the appropriate executable for your platform and add it to your PATH.
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.
mcp-publisher init to automatically generate a server.json file with detected values. Then edit the file to add any missing details.Auto-generate server.json (Recommended):
cd /path/to/your/mcp-servermcp-publisher initThis 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
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):
Interactivemcp-publisher login github --registry https://registry.mcpcentral.ioThis will open your browser for GitHub authentication. Authorize the MCPCentral app to continue.
GitHub OIDC (For CI/CD):
Non-interactivemcp-publisher login github-oidc --registry https://registry.mcpcentral.ioUse this method in GitHub Actions workflows for automated publishing.
Step 3b: Publish Your Server
mcp-publisher publishThe tool will automatically find your server.json and publish it to the MCPCentral registry.
mcp-publisher publishOptional: 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 publishNote: 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