-
Notifications
You must be signed in to change notification settings - Fork 8.9k
Description
Overview
This document tracks the registration of all official MCP reference servers and the documentation server in the MCP Server Registry.
Goal: Register all 8 servers to promote discoverability through the official registry as we deprecate README-based server listings.
Important: This document provides guidance and checklists, but always refer to the official registry documentation for the most up-to-date and accurate information.
Key Requirements (From Official Docs)
Based on official registry documentation:
- NPM packages:
mcpNamein package.json MUST match server name in server.json - PyPI packages:
mcp-name:marker in README MUST match server name in server.json (can be in HTML comment) - Remote servers: MUST be publicly accessible at specified URL
- Namespace: For GitHub auth, must use
io.github.[org-name]/[server-name]format - Schema: server.json should include
$schemaproperty pointing to official schema - Version matching: Versions in server.json should match published package versions
Server Inventory
NPM Packages (4 servers)
-
everything -
@modelcontextprotocol/server-everything- Description: Test server exercising all MCP protocol features
- Version: 0.6.2
- Location:
src/everything/
-
filesystem -
@modelcontextprotocol/server-filesystem- Description: Filesystem operations (read/write/search)
- Location:
src/filesystem/
-
memory -
@modelcontextprotocol/server-memory- Description: Knowledge graph-based persistent memory
- Location:
src/memory/
-
sequentialthinking -
@modelcontextprotocol/server-sequential-thinking- Description: Structured problem-solving with dynamic thinking
- Location:
src/sequentialthinking/
PyPI Packages (3 servers)
-
fetch -
mcp-server-fetch- Description: Web content fetching with HTML to markdown conversion
- Version: 0.6.3
- Location:
src/fetch/
-
git -
mcp-server-git- Description: Git repository interaction and automation
- Location:
src/git/
-
time -
mcp-server-time- Description: Time and timezone conversion capabilities
- Location:
src/time/
Remote Server
- docs - MCP Documentation Server
- URL: https://modelcontextprotocol.io/mcp
- Description: Official MCP protocol documentation
- Type: Remote server
- Transport: Streamable HTTP
Registration Process
Based on the MCP Registry documentation, here's the workflow:
Prerequisites
- Install mcp-publisher CLI tool
# macOS/Linux - see https://github.com/modelcontextprotocol/registry/blob/main/docs/modelcontextprotocol-io/quickstart.mdx for exact command # Windows - see registry docs for PowerShell command
- Ensure packages are published to npm/PyPI
- GitHub account for authentication
For Each Server
See the Publisher Quickstart for the complete official process.
-
Update Package Metadata
- NPM: Add
mcpNameproperty to package.json (must match server name in server.json) - PyPI: Add
mcp-name: $SERVER_NAMEto README (can be in HTML comment)
- NPM: Add
-
Verify Package Publication
- Ensure latest version is published to npm/PyPI
- Confirm package is publicly accessible
-
Create server.json
cd src/[server-name] mcp-publisher initFollow the interactive prompts to generate the file. The tool will create the correct structure.
-
Authenticate
mcp-publisher login github
- Follow GitHub device flow
- Must authenticate as
modelcontextprotocolorganization member
-
Publish to Registry
mcp-publisher publish
-
Verify Registration
- Check https://registry.modelcontextprotocol.io/
- Search for the server by name
Technical Requirements
NPM Packages
Required Changes to package.json:
The mcpName property MUST match the server name from server.json.
{
"mcpName": "io.github.modelcontextprotocol/server-everything",
"repository": {
"type": "git",
"url": "https://github.com/modelcontextprotocol/servers.git"
}
}Reference: Package Types - npm
PyPI Packages
Required Addition to README.md:
The README must contain an mcp-name: $SERVER_NAME string where $SERVER_NAME MUST match the server name from server.json. This can be placed in an HTML comment:
<!-- mcp-name: io.github.modelcontextprotocol/server-fetch -->Or as plain text near the top of the README.
Reference: Package Types - PyPI
server.json Templates
Note: Use mcp-publisher init to generate the correct structure. The examples below are for reference.
Reference: Publisher Quickstart - server.json structure
For Package-based Servers (NPM/PyPI)
{
"$schema": "https://static.modelcontextprotocol.io/schemas/2025-10-17/server.schema.json",
"name": "io.github.modelcontextprotocol/server-[name]",
"description": "Server description here",
"repository": {
"url": "https://github.com/modelcontextprotocol/servers",
"source": "github"
},
"version": "0.6.x",
"packages": [{
"registryType": "npm",
"identifier": "@modelcontextprotocol/server-[name]",
"version": "0.6.x",
"transport": {
"type": "stdio"
}
}]
}For PyPI packages, change:
"registryType": "pypi""identifier": "mcp-server-[name]"
For Remote Servers
{
"$schema": "https://static.modelcontextprotocol.io/schemas/2025-10-17/server.schema.json",
"name": "io.github.modelcontextprotocol/docs",
"description": "Official MCP protocol documentation",
"repository": {
"url": "https://github.com/modelcontextprotocol/servers",
"source": "github"
},
"version": "1.0.0",
"remotes": [{
"url": "https://modelcontextprotocol.io/mcp",
"type": "streamable-http"
}]
}Reference: Remote Servers Documentation
Detailed Checklist
1. everything (NPM)
- Add
mcpNameto src/everything/package.json - Verify npm publication status
- Run
mcp-publisher initin src/everything/ - Review generated server.json
- Authenticate with GitHub
- Run
mcp-publisher publish - Verify in registry
2. filesystem (NPM)
- Add
mcpNameto src/filesystem/package.json - Verify npm publication status
- Run
mcp-publisher initin src/filesystem/ - Review generated server.json
- Authenticate with GitHub (if needed)
- Run
mcp-publisher publish - Verify in registry
3. memory (NPM)
- Add
mcpNameto src/memory/package.json - Verify npm publication status
- Run
mcp-publisher initin src/memory/ - Review generated server.json
- Authenticate with GitHub (if needed)
- Run
mcp-publisher publish - Verify in registry
4. sequentialthinking (NPM)
- Add
mcpNameto src/sequentialthinking/package.json - Verify npm publication status
- Run
mcp-publisher initin src/sequentialthinking/ - Review generated server.json
- Authenticate with GitHub (if needed)
- Run
mcp-publisher publish - Verify in registry
5. fetch (PyPI)
- Add
mcp-name:marker to src/fetch/README.md - Verify PyPI publication status
- Run
mcp-publisher initin src/fetch/ - Review generated server.json
- Authenticate with GitHub (if needed)
- Run
mcp-publisher publish - Verify in registry
6. git (PyPI)
- Add
mcp-name:marker to src/git/README.md - Verify PyPI publication status
- Run
mcp-publisher initin src/git/ - Review generated server.json
- Authenticate with GitHub (if needed)
- Run
mcp-publisher publish - Verify in registry
7. time (PyPI)
- Add
mcp-name:marker to src/time/README.md - Verify PyPI publication status
- Run
mcp-publisher initin src/time/ - Review generated server.json
- Authenticate with GitHub (if needed)
- Run
mcp-publisher publish - Verify in registry
8. docs (Remote Server)
- Create server.json with remote configuration
- URL: https://modelcontextprotocol.io/mcp
- Transport: Streamable HTTP
- Verify remote server is publicly accessible
- Run
mcp-publisher initand configure as remote - Review generated server.json
- Authenticate with GitHub (if needed)
- Run
mcp-publisher publish - Verify in registry
Resources
Registry Documentation
Tools
- mcp-publisher CLI: Available via curl, PowerShell, or Homebrew
- Registry API: For verification after publication
Authentication Methods
- GitHub OAuth (recommended for manual registration)
- GitHub OIDC (for CI/CD automation)
- DNS verification (for domain ownership)
- HTTP verification (for domain ownership)
Notes
Namespace Ownership
- All servers should use namespace:
io.github.modelcontextprotocol - Requires authentication as the
modelcontextprotocolGitHub organization - Organization members with appropriate permissions can publish
Version Management
- Ensure server.json versions match published packages
- Consider setting up GitHub Actions for automated publishing
- Future releases should include registry updates in release process
Docker Images
Several servers have Docker images (mcp/fetch, mcp/git, etc.). These could potentially be registered as OCI packages using the io.modelcontextprotocol.server.name annotation in Dockerfiles.
Reference: Package Types - Docker/OCI Images
Special Considerations
- Documentation server (docs) is registered as a remote server using the streamable HTTP transport
- Remote servers MUST be publicly accessible at their specified URL (per Remote Servers docs)
- The
remotesandpackagesproperties can coexist in the same server.json, allowing users to choose their preferred installation method - Some servers support multiple transports; these can be registered with multiple entries in the
packagesorremotesarrays
Next Steps
- Install mcp-publisher CLI tool
- Authenticate with GitHub as modelcontextprotocol org member
- Work through checklist for each server
- Document any issues or special cases encountered
- Update release process to include registry publication
- Consider automating via GitHub Actions for future releases
(originally generated by Claude and edited)