MCP 注册表目前处于预览阶段。在正式发布之前,可能会发生破坏性更改或数据重置。如果您遇到任何问题,请在 GitHub 上报告。
- 为服务器创作者提供一个发布其服务器元数据的统一场所
- 通过 DNS 验证进行命名空间管理
- 供 MCP 客户端和聚合器发现可用服务器的 REST API
- 标准化的安装和配置信息
server.json 格式 存储,其中包含:
- 服务器的唯一名称(例如,
io.github.user/server-name) - 服务器位置(例如,npm 包名、远程服务器 URL)
- 执行指令(例如,命令行参数、环境变量)
- 其他发现数据(例如,描述、服务器功能)
MCP 注册表生态系统
MCP 注册表是生态系统的一部分,大致如下所示:与包注册表的关系
包注册表(例如 npm、PyPI 和 Docker Hub)托管包含代码和二进制的包。 MCP 注册表托管指向这些包的元数据。 例如,weather-mcp 包可以托管在 npm 上,MCP 注册表中的元数据可以将 “weather v1.2.0” 服务器映射到 npm:weather-mcp。
包类型指南 列出了支持的包类型和注册表。未来可能会根据社区需求支持更多包注册表。如果您有兴趣为包注册表构建支持,请 提交问题。
与服务器开发人员的关系
MCP 注册表支持开源和闭源服务器。只要服务器的安装方法是公开可用的(例如,公共注册表上的 npm 包或 Docker 镜像)或 服务器本身是公开可访问的(例如,不受限于私有网络的远程服务器),服务器开发人员就可以将其服务器的元数据发布到注册表。 MCP 注册表 不 支持私有服务器。私有服务器是指仅限少数用户访问的服务器。例如,发布在私有网络(如mcp.acme-corp.internal)或私有包注册表(例如 npx -y @acme/mcp --registry https://artifactory.acme-corp.internal/npm)上的服务器。如果您想发布私有服务器,我们建议您托管自己的私有 MCP 注册表并将它们添加在那里。
与下游聚合器的关系
MCP 注册表主要供下游聚合器(例如 MCP 服务器市场)使用。 MCP 注册表托管的元数据特意保持中立。下游聚合器可以提供策展或额外的元数据,例如社区评级。 我们预计下游聚合器将使用 MCP Registry API 定期但不频繁地拉取新元数据(例如,每小时一次)。有关更多信息,请参阅 MCP 注册表聚合器指南。与其他 MCP 注册表的关系
除了公共 REST API 外,MCP 注册表还定义了一个 OpenAPI 规范,其他 MCP 注册表可以实现该规范,以便为 MCP 主机应用程序提供标准化接口。 我们预计许多下游聚合器将实现此接口。私有 MCP 注册表也可以实现它,以受益于现有的主机应用程序支持。 请注意,官方 MCP 注册表代码库 不 设计用于自托管,注册表维护者无法为此用例提供支持。如果您选择分叉它,您需要独立维护和运营它。与 MCP 主机应用程序的关系
MCP 注册表不打算由主机应用程序直接消费。相反,主机应用程序应通过符合官方 MCP 注册表 OpenAPI 规范的 REST API 消费其他 MCP 注册表,例如下游市场。信任与安全
验证服务器真实性
MCP 注册表使用命名空间身份验证来确保服务器来自其声称的来源。服务器名称遵循反向 DNS 格式(如io.github.username/server 或 com.example/server),将它们与经过验证的 GitHub 帐户或域绑定。
此命名空间系统确保只有 GitHub 帐户或域的合法所有者才能在该命名空间下发布服务器,从而在生态系统中提供信任和问责制。有关身份验证方法的详细信息,请参阅 身份验证指南。
安全扫描
MCP 注册表将安全扫描委托给:- 底层包注册表 — npm、PyPI、Docker Hub 和其他包注册表执行自己的安全扫描和漏洞检测。
- 下游聚合器 — MCP 注册表聚合器和市场可以实现额外的安全检查、评级或策展。
垃圾邮件预防
MCP 注册表使用多种机制来防止垃圾邮件:- 命名空间身份验证要求 — 发布者必须通过 GitHub、DNS 或 HTTP 挑战验证其命名空间的所有权,防止任意垃圾邮件提交。
- 字符限制和验证 — 自由格式字段具有严格的字符限制和正则表达式验证,以防止滥用。
- 手动下架 — 注册表维护者可以手动删除垃圾邮件或恶意服务器。有关删除哪些内容的详细信息,请参阅 审核政策。