MCP 注册表目前处于预览阶段。在正式可用之前,可能会发生破坏性变更或数据重置。如果遇到问题,请在 GitHub 上报告。
包类型
MCP 注册表支持多种不同包类型,每种包类型都有自己的验证方法。npm 包
对于 npm 包,MCP 注册表目前仅支持 npm 公共注册表(https://registry.npmjs.org)。
npm 包在 server.json 中使用 "registryType": "npm"。例如:
server.json
所有权验证
MCP 注册表通过检查package.json 中的 mcpName 来验证 npm 包所有权。mcpName 属性必须与 server.json 中的 server 名称匹配。例如:
package.json
PyPI 包
对于 PyPI 包,MCP 注册表目前仅支持官方 PyPI 注册表(https://pypi.org)。
PyPI 包在 server.json 中使用 "registryType": "pypi"。例如:
server.json
所有权验证
MCP 注册表通过检查包 README 中是否存在mcp-name: $SERVER_NAME 字符串来验证 PyPI 包所有权(该 README 会成为 PyPI 上的包描述)。该字符串可以隐藏在注释中,但 $SERVER_NAME 部分必须与 server.json 中的 server 名称匹配。例如:
README.md
NuGet 包
对于 NuGet 包,MCP 注册表目前仅支持官方 NuGet 注册表(https://api.nuget.org/v3/index.json)。
NuGet 包在 server.json 中使用 "registryType": "nuget"。例如:
server.json
所有权验证
MCP 注册表通过检查包 README 中是否存在mcp-name: $SERVER_NAME 字符串来验证 NuGet 包所有权。该字符串可以隐藏在注释中,但 $SERVER_NAME 部分必须与 server.json 中的 server 名称匹配。例如:
README.md
Docker/OCI 镜像
对于 Docker/OCI 镜像,MCP 注册表目前支持:- Docker Hub (
docker.io) - GitHub Container Registry (
ghcr.io) - Google Artifact Registry (any
*.pkg.devdomain) - Azure Container Registry (
*.azurecr.io) - Microsoft Container Registry (
mcr.microsoft.com)
server.json 中使用 "registryType": "oci"。例如:
server.json
identifier 的格式是 registry/namespace/repository:tag。例如 docker.io/user/app:1.0.0 或 ghcr.io/user/app:1.0.0。Tag 也可以指定为 digest。
所有权验证
MCP 注册表通过检查io.modelcontextprotocol.server.name annotation 来验证 Docker/OCI 镜像所有权。io.modelcontextprotocol.server.name annotation 的值必须与 server.json 中的 server 名称匹配。例如:
Dockerfile
MCPB 包
对于 MCPB 包,MCP 注册表目前支持通过 GitHub 或 GitLab releases 托管的 MCPB artifacts。 MCPB 包在server.json 中使用 "registryType": "mcpb"。例如:
server.json
验证
MCPB 包 URL(server.json 中的 identifier)必须包含字符串 "mcp"。它可以是 .mcpb 文件扩展名的一部分,也可以出现在仓库名称中。
server.json 中的包元数据必须包含 fileSha256 属性,其值是 MCPB artifact 的 SHA-256 hash,可使用 openssl 命令计算: