—
—
| 报错 / 现象 | 真凶 | 怎么修 |
|---|---|---|
| version already exists | 同一版本号不能重复发布 | 版本号 +1(1.0.0 → 1.0.1)再发 |
| generic signature error | TXT 记录放到了 _mcp-auth.域名 这类选择器下 | 必须放在域名根(apex),SPF 式放置而非 DKIM 式 |
| 换了密钥后验证仍失败 | 旧的 TXT 记录没删,被优先读到 | 轮换密钥时同步删除旧 TXT |
| HTTP 验证本机 curl 通、官方失败 | 官方是从它自己的机器拉取;且不跟随 3xx | 验证文件必须直出 200,不能跳转;检查 IPv6 AAAA 是否可达 |
| 命名空间校验不过 | name 不是域名的反写形式 | feegate.org 对应 org.feegate/* |
| description 被拒 | 超过 100 字符 | 压到 100 以内,把细节留给 README |
| macOS 生成密钥失败 | 系统 LibreSSL 不支持 Ed25519 | 用 OpenSSL 3.0+(brew install openssl@3) |
1 · 同一版本号不能重发。发布成功后想改 description,必须把版本从 1.0.0 升到 1.0.1,否则直接被拒。
2 · TXT 必须在域名根。直觉会把记录加到 _mcp-auth.example.com,官方只认 apex(example.com),加了选择器一律报泛化的签名错误,很难联想到是位置错了。
3 · 发布不是提 PR。往官方仓库加 server.json 或改 seed.json 都不会上架,必须在自己的项目目录用 CLI 发。
4 · 官方拉取和自己 curl 是两回事。官方从它的基础设施访问,且不跟随跳转;IPv6 记录指向不可达地址会直接失败,哪怕浏览器里 IPv4 一切正常。