Skip to main content
MCP 注册表目前处于预览阶段。在正式可用之前,可能会发生破坏性变更或数据重置。如果遇到问题,请在 GitHub 上报告。
MCP servers 必须server.json 中定义版本字符串。例如:
server.json
每次发布 server 时,版本字符串都必须唯一。一旦发布,版本字符串(以及其他元数据)就不能再修改。

版本格式

MCP 注册表推荐使用语义化版本,但支持任意版本字符串格式。发布 server 时,MCP 注册表会尝试将其版本解析为语义化版本字符串,用于排序;如适用,会将该版本标记为 "latest"。如果解析失败,该版本总会被标记为 "latest"
如果某个 server 使用语义化版本字符串,但发布了一个_不_符合语义化版本的新版本,即使该新版本原本会排在语义化版本字符串之前,它也会被标记为 "latest"
作为错误预防机制,MCP 注册表禁止看起来表示版本范围的版本字符串。

最佳实践

使用语义化版本

版本字符串请使用语义化版本

让 Server 版本与包版本保持一致

对于本地 servers,请让 server 版本与底层包版本保持一致,以避免混淆:
server.json
如果存在多个底层包,请使用 server 版本表示整体发布版本:
server.json

让 Server 版本与远程 API 版本保持一致

对于带 API 版本的远程 servers,server 版本应与 API 版本保持一致:
server.json

对仅注册表更新使用预发布版本

如果你预计会在_不_修改底层包或远程 URL 的情况下多次发布 server,例如只是更新元数据的其他部分,请使用语义化预发布版本:
server.json
根据语义化版本规则,1.2.3-1 这样的预发布版本会排在 1.2.3 这样的常规语义化版本之前。因此,如果你在对应常规版本_之后_发布预发布版本,该预发布版本不会被标记为 "latest"

聚合器建议

MCP Registry 聚合器应该
  1. 在可能时尝试将版本解释为语义化版本。
  2. 使用以下版本比较规则:
    • 如果某个版本被标记为 "latest",将其视为更新版本。
    • 如果两个版本都是有效语义化版本,使用语义化版本比较规则。
    • 如果两个版本都不是有效语义化版本,比较发布时间戳。
    • 如果一个版本是有效语义化版本,另一个不是,则将语义化版本视为更新版本。