mcpField
X
x402 Doctor

x402 Doctor

远程服务
x402-doctor.tsharpe.workers.dev开发工具07 周前更新

关于 x402 Doctor

x402 Doctor 是用于诊断 x402 卖方端点的工具,模拟无支付请求并检查端点返回的 402 挑战。它面向开发卖方端点的人员,会给出检查结果、问题来源和修复建议。

主要功能

  1. 01模拟未付款的 GET 握手
  2. 02检查 402 挑战内容
  3. 03标注检查结果来源
  4. 04针对缺陷提供修复建议
  5. 05支持多项协议检查

适用场景

  1. 01排查端点未返回有效 x402 挑战
  2. 02查找支付挑战中的字段错误
  3. 03检查挑战是否可能被缓存
  4. 04通过 MCP 查询检查规则或诊断端点

MCP 相关

无状态 Streamable HTTP 的 MCP 服务提供端点诊断、单项缺陷说明和检查规则列表工具。它不会通过 facilitator 验证,也不会发送付款。

配置

远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。

服务地址https://x402-doctor.tsharpe.workers.dev/mcp
一键复制安装命令
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。

工具

3
参数类型必填说明
urlstring是要探测的端点,仅限 http(s)。拒绝私有地址和环回地址。

详细介绍

x402 Doctor

面向 x402 卖家端点的免费诊断工具。将其指向你的付费端点,它会执行付费客户端会进行的握手——发送不带 X-PAYMENT 标头的 GET 请求——然后报告你返回的 402 挑战中有哪些问题,以及需要做哪些更改。

在线使用:https://x402-doctor.tsharpe.workers.dev

curl -s -X POST https://x402-doctor.tsharpe.workers.dev/probe \
  -H 'Content-Type: application/json' \
  -d '{"url":"https://your-service.example/paid-endpoint"}'

为什么关注卖家端

官方 SDK 已能很好地支持买家端 x402。卖家端则是人们容易卡住的地方,因为故障发生在你无法查看的 facilitator 内部:你的端点看起来正常,付款却无法结算,而错误会出现在你无法控制的地方。

每项检查都带有 provenance 字段,因此所有发现都有据可查:

  • spec — x402 规范要求如此。
  • observed (source) — 我们观察到实际的 facilitator 因此拒绝了请求,并注明了来源。

你会收到什么

{
  "target": "https://your-service.example/paid-endpoint",
  "finalUrl": "https://your-service.example/paid-endpoint",
  "status": "advisories",
  "http": { "status": 402, "contentType": "application/json" },
  "findings": [
    {
      "id": "challenge-cacheable",
      "severity": "warn",
      "title": "402 challenge is cacheable",
      "why": "…",
      "fix": "…",
      "provenance": "observed (ours, 2026-08-15)",
      "evidence": "cache-control: public, max-age=300"
    }
  ],
  "checksRun": 16,
  "bodyTruncated": false,
  "bodyChecksSkipped": 0,
  "bodySkipReason": null
}

status 的取值之一为:

status含义
healthy没有需要报告的问题
advisories有值得查看的提示,但没有错误
defects_found至少有一项 error
not_x402端点没有返回 x402 挑战
unreachable探测未能完成 — 请查看 reason

如果响应正文被截断或无法解析,则会跳过正文检查,报告也会明确说明(bodyChecksSkipped、bodySkipReason)。未运行的检查绝不会被报告为已通过。

16 项检查

id严重程度检查项来源
no-402error端点未在无付款时返回 402spec
body-not-jsonerror402 正文不是可解析的 JSONspec
oversized-bodywarn402 正文超出读取上限observed (this probe)
missing-x402-versionerror缺少 x402Version,或其值不是 1spec
accepts-emptyerroraccepts 缺失、不是数组或为空spec
output-schema-nullerroroutputSchema 被明确设为 nullobserved (Coinbase CDP facilitator, 2026-07-17)
amount-not-atomic-stringerrormaxAmountRequired 不是原子单位字符串spec
asset-network-mismatchwarnasset 不是此网络上的 USDC 合约spec
missing-eip712-extraerrorscheme 为 "exact",但 extra 中缺少 EIP-712 域spec
unknown-network-nameinfo网络名称不在此探测工具识别的范围内spec
payto-not-an-addresserrorpayTo 不是此网络上的有效地址spec
payto-not-checksummedinfopayTo 不是校验和地址spec
no-timeout-declaredinfo未提供 maxTimeoutSecondsspec
challenge-cacheablewarn402 挑战可被缓存observed (ours, 2026-08-15)
cors-headers-not-exposedinfo浏览器客户端需要在结算响应中公开付款标头observed (x402-foundation/x402#2112)
bazaar-ext-inside-acceptswarnBazaar 扩展在 accepts 条目内声明observed (ours, 2026-08-14)

同时也是 MCP 服务

无状态 Streamable HTTP,路径为 POST /mcp。提供三种工具:

工具功能
probe_x402_endpoint对某个 URL 运行诊断
explain_defect按 id 查看某项检查的完整说明
list_checks查看包含来源信息的完整规则表

刻意不做的事

  • 它绝不会通过 facilitator 进行验证。 这样做会让你的流量经过他人的 facilitator 凭据。这里的每项检查都基于你实际返回的挑战。
  • 它绝不会发送付款,也绝不会索要密钥、种子或钱包。
  • 它不会评判自己不认识的网络。 无法识别的网络名称只会作为 info 提示,说明此探测工具的网络列表存在局限 — 并不代表你的网络有误。仅在已知地址格式的情况下才会应用地址格式规则。

值得了解的限制

  • 正文读取到上限后,后续内容将跳过正文检查,报告会明确说明,而不会猜测结果。
  • 最多跟随 3 层重定向,并在每一跳重新运行 SSRF 防护。
  • 每个 IP 每小时最多 20 次请求,整体每小时最多 300 次,因为服务会获取收到的任意 URL。
  • 唯一存储的数据是用于速率限制的每 IP 请求计数器,并会在两小时内过期。没有分析数据,也绝不会记录探测目标。

安全态势以及已接受而未修复的残余风险,记录在 SECURITY.md 中。

阅读和运行源代码

cd doctor
npm test          # 163 tests, no dependencies of any kind

没有运行时或开发依赖——测试套件使用 node --test。这些规则是没有 I/O 的纯函数;所有网络访问都位于 src/probe.js,SSRF 防护也在其中。

上面的托管服务可免费使用,无需许可证。源代码按与本仓库其余部分相同的条款发布,供查阅和验证:目前未授予任何许可证,保留所有权利。如果你想复用或自行托管,请联系询问。


由 Twelve Permissions 构建。免费,且与该网站销售的任何产品无关。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。