MCP注册表(2025-09-08)————通过REST API消费注册表数据
翻译自:https://github.com/modelcontextprotocol/registry/blob/main/docs/guides/consuming/use-rest-api.md
集成模式和最佳实践:构建使用MCP注册表数据的应用程序。
关键细节
基本URL: https://registry.modelcontextprotocol.io
认证:只读访问不需要认证
GET /v0/servers- 列出所有带分页的服务器GET /v0/servers/{id}- 根据UUID获取服务器详细信息
请参阅交互式 API 文档,以获取完整的请求/响应模式。
免责声明:官方注册表不提供正常运行时间或数据持久性的保证。您应该通过缓存设计您的应用程序来应对服务停机。
建立子注册表
创建增强的注册表 - 提取官方注册表数据并添加您自己的元数据,如评级、安全扫描或兼容性信息。
目前我们建议定期抓取 GET /v0/servers 端点。未来我们可能会提供一个 updated_at
的过滤器(#291),以便仅获取最近更改的服务器。
服务器通常是不可变的,除了status字段可以更新为deleted(以及其他状态)。对于这些包,我们建议您也将状态字段更新为deleted或者快速从您的注册表中移除该包。这是因为该状态通常表明它违反了我们的宽松审核指南,暗示它可能是非法的、恶意软件或者垃圾信息。
过滤与增强
官方注册表具有宽松的审核政策,因此您可能需要在注册表数据的基础上实施自己的过滤。
您还可以使用 _meta
字段向服务器添加自定义元数据。例如,用户评分、下载次数或安全扫描结果。如果您这样做,我们建议您将其放在一个以您的组织命名空间命名的键下,例如:
{
"$schema": "https://static.modelcontextprotocol.io/schemas/2025-07-09/server.schema.json",
"name": "io.github.yourname/weather-server",
"description": "天气数据访问的MCP服务器",
"status": "active",
"version": "1.0.0",
"packages": [
{
"registry_type": "npm",
"identifier": "weather-mcp-server",
"version": "1.0.0"
}
],
"_meta": {
"com.example.subregistry/custom": {
"user_rating": 4.5,
"download_count": 12345,
"security_scan": {
"last_scanned": "2024-06-01T12:00:00Z",
"vulnerabilities_found": 0
}
}
}
}
提供一个API
我们建议您的子注册表提供一个符合注册表 API 规范的 API,这样客户端可以轻松地在不同的注册表之间切换。有关详细信息,请参阅注册表 API 文档。
MCP客户端集成
将注册表数据转换为客户端配置 - 获取服务器并将包信息转换为MCP客户端的配置格式。
我们强烈建议使用子注册表,而不是直接从官方注册表获取数据。您可能希望使其可配置,以便您的客户端用户可以选择他们首选的注册表,例如,我们预计某些企业用户可能会有自己的注册表。
您的客户端应优雅地处理符合最低规范的注册表,即避免对_meta字段的硬性依赖。
过滤
您可能需要筛选出在status字段中不是active的服务器。
运行服务器
你可以使用 packages 或 remotes 字段来决定如何运行服务器。这些字段的更多详细信息可以在 server.json
文档 中找到。