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/* or 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
Logging in with github...

To authenticate, please:
1. Go to: https://github.com/login/device
2. Enter code: ABCD-1234
3. Authorize this application
Waiting for authorization...
访问该链接,按提示操作,并输入终端中打印的授权码(例如上方输出中的 ABCD-1234)。完成后回到终端,你应该会看到类似输出:
Output
Successfully authenticated!
✓ Successfully logged in

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 记录传播可能需要几分钟。记录传播完成后,使用 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}"