Skip to main content
MCP Registry 目前处于预览阶段。在正式发布之前,可能会发生破坏性更改或数据重置。如果遇到任何问题,请在 GitHub 上报告。
MCP 服务器 必须server.json 中定义版本字符串。例如:
server.json
版本字符串对于服务器的每次发布 必须 是唯一的。一旦发布,版本字符串(和其他元数据)无法更改。

版本格式

MCP Registry 推荐 语义化版本控制,但支持任何版本字符串格式。当服务器发布时,MCP Registry 将尝试将其版本解析为语义化版本字符串以便排序,如果合适,会将该版本标记为”latest”。如果解析失败,该版本将始终被标记为”latest”。
如果服务器使用语义化版本字符串,但发布了一个 符合语义化版本控制的新版本,即使该新版本否则应该排在语义化版本字符串之前,它也会被标记为”latest”。
作为一种错误预防机制,MCP Registry 禁止使用看似指代版本范围的版本字符串。

最佳实践

使用语义化版本控制

对版本字符串使用 语义化版本控制

使服务器版本与包版本保持一致

对于本地服务器,使服务器版本与底层包版本保持一致以防止混淆:
server.json
如果有多个底层包,使用服务器版本来表示整体发布版本:
server.json

使服务器版本与远程 API 版本保持一致

对于具有 API 版本的远程服务器,服务器版本应与 API 版本保持一致:
server.json

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

如果您预计多次发布服务器而 更改底层包或远程 URL — 例如,更新元数据的其他部分 — 请使用语义化预发布版本:
server.json
根据语义化版本控制,预发布版本(如 1.2.3-1)排在常规语义化版本(如 1.2.3)之前。因此,如果您在对应的常规版本 之后 发布预发布版本,该预发布版本将 不会 被标记为”latest”。

聚合器建议

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