MCP 注册表目前处于预览阶段。在正式可用之前,可能会发生破坏性变更或数据重置。如果遇到问题,请在 GitHub 上报告。
- 一个让 server 创建者发布 server 元数据的统一位置。
- 通过 DNS 验证进行命名空间管理。
- 供 MCP clients 和聚合器发现可用 servers 的 REST API。
- 标准化的安装和配置信息。
server.json 格式存储,其中包含:
- Server 的唯一名称,例如
io.github.user/server-name。 - Server 的定位方式,例如 npm 包名、远程 server URL。
- 执行说明,例如命令行参数、环境变量。
- 其他发现数据,例如描述、server capabilities。
MCP 注册表生态
MCP 注册表所在生态大致如下:与包注册表的关系
npm、PyPI、Docker Hub 等包注册表托管包含代码和二进制文件的包。 MCP 注册表托管指向这些包的元数据。 例如,一个weather-mcp 包可以托管在 npm 上,而 MCP 注册表中的元数据可以将 "weather v1.2.0" server 映射到 npm:weather-mcp。
包类型指南列出了支持的包类型和注册表。未来可能会根据社区需求支持更多包注册表。如果你有兴趣构建对某个包注册表的支持,请提交 issue。
与 Server 开发者的关系
MCP 注册表同时支持开源和闭源 servers。只要 server 的安装方式公开可用(例如公共注册表上的 npm 包或 Docker 镜像),或 server 本身公开可访问(例如不限制在私有网络内的远程 server),server 开发者就可以将其 server 元数据发布到注册表。 MCP 注册表不支持私有 servers。私有 servers 指只对少数用户可访问的 servers。例如发布在私有网络中的 servers(如mcp.acme-corp.internal),或发布在私有包注册表中的 servers(如 npx -y @acme/mcp --registry https://artifactory.acme-corp.internal/npm)。如果你想发布私有 servers,建议托管自己的私有 MCP registry,并将它们添加到那里。
与下游聚合器的关系
MCP 注册表主要面向下游聚合器使用,例如 MCP server marketplaces。 MCP 注册表托管的元数据刻意保持中立。下游聚合器可以提供精选整理,或添加社区评分等额外元数据。 我们预期下游聚合器会通过 MCP Registry API 定期但低频地拉取新元数据(例如每小时一次)。更多信息见 MCP 注册表聚合器指南。与其他 MCP 注册表的关系
除了公共 REST API,MCP 注册表还定义了一个 OpenAPI spec,其他 MCP registries 可以实现该规范,以便为 MCP host applications 提供标准化接口。 我们预期许多下游聚合器会实现此接口。私有 MCP registries 也可以实现它,以复用现有 host application 支持。 请注意,官方 MCP Registry 代码库并非为自托管而设计,注册表维护者无法为该使用场景提供支持。如果你选择 fork 它,需要自行维护和运营。与 MCP Host Applications 的关系
MCP 注册表并不打算被 host applications 直接消费。Host applications 应通过符合官方 MCP Registry OpenAPI spec 的 REST API,消费其他 MCP registries,例如下游 marketplaces。信任与安全
验证 Server 真实性
MCP 注册表使用命名空间认证来确保 servers 来自其声明的来源。Server 名称遵循反向 DNS 格式(例如io.github.username/server 或 com.example/server),并与已验证的 GitHub 账户或域名绑定。
该命名空间系统确保只有 GitHub 账户或域名的合法所有者才能在对应命名空间下发布 servers,从而为生态提供信任和责任归属。认证方式详情见认证指南。
安全扫描
MCP 注册表将安全扫描委托给:- 底层包注册表:npm、PyPI、Docker Hub 和其他包注册表会执行自己的安全扫描和漏洞检测。
- 下游聚合器:MCP Registry 聚合器和 marketplaces 可以实现额外的安全检查、评分或精选整理。
防止垃圾内容
MCP 注册表使用多种机制防止垃圾内容:- 命名空间认证要求:发布者必须通过 GitHub、DNS 或 HTTP challenge 验证命名空间所有权,从而防止任意垃圾提交。
- 字符限制和校验:自由文本字段有严格字符限制和正则校验,以防滥用。
- 手动下架:注册表维护者可以手动移除垃圾或恶意 servers。哪些内容会被移除,见审核政策。