Skip to main content
MCP 注册表目前处于预览阶段。正式可用前可能发生破坏性变更或数据重置。如果遇到问题,请在 GitHub 上反馈。
本教程将演示如何使用官方 mcp-publisher CLI 工具,将用 TypeScript 编写的 MCP 服务器发布到 MCP 注册表。

前置条件

  • Node.js — 本教程假定 MCP 服务器使用 TypeScript 编写。
  • npm 账号 — MCP 注册表只托管元数据,不托管构件。在发布到 MCP 注册表前,我们会先将 MCP 服务器包发布到 npm,因此你需要一个 npm 账号。
  • GitHub 账号 — MCP 注册表支持多种认证方式。为简化流程,本教程会使用基于 GitHub 的认证,因此你需要一个 GitHub 账号。
如果你还没有用 TypeScript 编写的 MCP 服务器,可以从 modelcontextprotocol/quickstart-resources 仓库复制 weather-server-typescript 服务器,跟随本教程操作:
然后编辑 package.json,替换为你自己的信息:
package.json
package.json

第 1 步:向包中添加验证信息

MCP 注册表会验证服务器底层包是否与其元数据匹配。对于 npm 包,需要在 package.json 中添加 mcpName 属性:
package.json
mcpName 的值将作为该服务器在 MCP 注册表中的名称。 由于本教程会使用基于 GitHub 的认证,mcpName 必须io.github.my-username/ 开头。

第 2 步:发布包

MCP 注册表只托管元数据,不托管构件,因此必须先将包发布到 npm,再将服务器发布到 MCP 注册表。 确保已构建分发文件:
然后按照 npm 的发布指南操作。通常需要运行以下命令:
可以访问该包的 npm URL 来确认发布成功,例如 https://www.npmjs.com/package/@my-username/mcp-weather-server。

第 3 步:安装 mcp-publisher

使用预构建二进制文件或 Homebrew 安装 mcp-publisher CLI 工具:
运行以下命令确认 mcp-publisher 已正确安装:
你应该会看到类似输出:
Output

第 4 步:创建 server.json

mcp-publisher init 命令可以生成一个 server.json 模板文件,其中包含从项目中推导出的一些信息。 在服务器项目目录中运行 mcp-publisher init
打开生成的 server.json 文件,你应该会看到类似内容:
server.json
按需编辑其中内容:
server.json
server.json 中的 name 属性必须package.json 中的 mcpName 属性一致。

第 5 步:向 MCP 注册表认证

本教程会使用基于 GitHub 的认证方式向 MCP 注册表认证。 运行 mcp-publisher login 命令发起认证:
你应该会看到类似输出:
Output
访问该链接,按提示操作,并输入终端中打印的授权码(例如上方输出中的 ABCD-1234)。完成后回到终端,你应该会看到类似输出:
Output

第 6 步:发布到 MCP 注册表

最后,使用 mcp-publisher publish 命令将服务器发布到 MCP 注册表:
你应该会看到类似输出:
Output
可以使用 MCP 注册表 API 搜索该服务器,确认它已发布:
你应该会在搜索结果 JSON 中看到服务器元数据:
Output

排障

后续步骤