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 注册表只托管元数据,不托管制品,因此在把服务器发布到 MCP 注册表之前,我们必须先将软件包发布到 npm。 确保分发文件已构建:
然后遵循 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 Registry API 搜索你的服务器来验证它已发布:
你应当在搜索结果 JSON 中看到你服务器的元数据:
Output

故障排查

后续步骤