Skip to main content
MCP 注册表目前处于预览阶段。在普遍可用之前,可能会发生破坏性更改或数据重置。如果遇到任何问题,请在 GitHub 上报告。
在发布到官方 MCP 注册表之前,您必须进行认证。MCP 注册表支持不同的认证方法。您选择的认证方法决定了服务器名称的命名空间。 如果您选择基于 GitHub 的认证,server.json 中的服务器名称 必须io.github.username/* (或 io.github.orgname/*) 格式。例如,io.github.alice/weather-server 如果您选择基于域名的认证,server.json 中的服务器名称 必须com.example.*/* 格式,其中 com.example 是您域名的反向 DNS 形式。例如,io.modelcontextprotocol/everything
认证名称格式示例名称
基于 GitHubio.github.username/*io.github.orgname/*io.github.alice/weather-server
基于域名com.example.*/*io.modelcontextprotocol/everything

GitHub 认证

GitHub 认证使用由 mcp-publisher CLI 工具发起的 OAuth 流程。 要执行 GitHub 认证,请导航到您的服务器项目目录并运行:
mcp-publisher login github
您应该看到如下输出:
Output
正在使用 github 登录...

要进行认证,请:
1. 前往:https://github.com/login/device
2. 输入代码:ABCD-1234
3. 授权此应用程序
正在等待授权...
访问链接,按照提示操作,并输入终端中打印的授权代码(例如,上述输出中的 ABCD-1234)。完成后,返回终端,您应该看到如下输出:
Output
认证成功!
✓ 成功登录

DNS 认证

DNS 认证是一种基于域名的认证方法,依赖于 DNS TXT 记录。 要使用 mcp-publisher CLI 工具执行 DNS 认证,请在您的服务器项目目录中运行以下命令,以基于公钥/私钥对生成 TXT 记录:
MY_DOMAIN="example.com"

# 使用 Ed25519 生成公钥/私钥对
openssl genpkey -algorithm Ed25519 -out key.pem

# 生成 TXT 记录
PUBLIC_KEY="$(openssl pkey -in key.pem -pubout -outform DER | tail -c 32 | base64)"
echo "${MY_DOMAIN}. IN TXT \"v=MCPv1; k=ed25519; p=${PUBLIC_KEY}\""
然后使用您的 DNS 提供商的控制面板添加 TXT 记录。TXT 记录可能需要几分钟才能传播。TXT 记录传播后,使用 mcp-publisher login 命令登录:
MY_DOMAIN="example.com"

PRIVATE_KEY="$(openssl pkey -in key.pem -noout -text | grep -A3 "priv:" | tail -n +2 | tr -d ' :\n')"
mcp-publisher login dns --domain "${MY_DOMAIN}" --private-key "${PRIVATE_KEY}"

HTTP 认证

HTTP 认证是一种基于域名的认证方法,依赖于托管在您域上的 /.well-known/mcp-registry-auth 文件。例如,https://example.com/.well-known/mcp-registry-auth 要使用 mcp-publisher CLI 工具执行 HTTP 认证,请在您的服务器项目目录中运行以下命令,以基于公钥/私钥对生成 mcp-registry-auth 文件:
# 使用 Ed25519 生成公钥/私钥对
openssl genpkey -algorithm Ed25519 -out key.pem

# 生成 mcp-registry-auth 文件
PUBLIC_KEY="$(openssl pkey -in key.pem -pubout -outform DER | tail -c 32 | base64)"
echo "v=MCPv1; k=ed25519; p=${PUBLIC_KEY}" > mcp-registry-auth
然后将 mcp-registry-auth 文件托管在您域上的 /.well-known/mcp-registry-auth。文件托管后,使用 mcp-publisher login 命令登录:
MY_DOMAIN="example.com"
PRIVATE_KEY="$(openssl pkey -in key.pem -noout -text | grep -A3 "priv:" | tail -n +2 | tr -d ' :\n')"
mcp-publisher login http --domain "${MY_DOMAIN}" --private-key "${PRIVATE_KEY}"