x402 Endpoint Scanner
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@x402 Endpoint Scanner Scan https://library.forgemesh.io/business-management for a valid 402 challenge"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
x402-scan-mcp — the free x402 Endpoint Scanner
Is your paid endpoint actually payable by agents?
Shipping a 402 Payment Required response is not the same as shipping a correct one. A missing field in accepts[], a malformed Base64 envelope, or content that leaks for free when the payment gate is misconfigured all look fine in a browser and invisibly cost you every agent that would have paid.
x402-scan-mcp is the free, open-source x402 Endpoint Scanner — an MCP server that probes one or more x402 endpoints and reports whether an agent can actually discover, parse, and pay for them. The npm package is @forgemeshlabs/x402-scan-mcp.
No payment is ever sent. The scanner never supplies a
PAYMENT-SIGNATURE, so it cannot authorize or settle a transaction — it only inspects the shape of the 402 challenge.
=== x402 Endpoint Scan: https://library.forgemesh.io/business-management ===
Reachable: true HTTP: 402 Method: GET (184ms)
402: true Envelope: header Valid: true MPP: true
Grade: A
Findings:
- Valid x402 envelope is advertised over both the classic PAYMENT-REQUIRED header
and MPP's WWW-Authenticate: Payment header — maximally discoverable across agent
payment stacks.What it checks
HTTP 402 status — does the route actually return
402 Payment Required, or does it 200/404/500 and go unnoticed by payment-aware agents?PAYMENT-REQUIREDenvelope — is the header present, Base64-decodable, valid JSON, with a numericx402Versionand a non-emptyaccepts[]? Falls back to checking the response body for anx402Versionfield on endpoints that put the envelope there instead.Required payment fields — does every entry in
accepts[]carryscheme,network,asset,payTo, andamount?MPP dual-stack — is the endpoint also discoverable via the
WWW-Authenticate: Paymentheader, the MPP discovery path some agent stacks use instead of the classic header?Free-content leaks — does the route serve real content with a
200when it should be gated behind402?
Every result is graded A (valid envelope + MPP dual-stack), B (valid envelope, classic header only), C (402 but the envelope is missing or malformed), or F (not 402, unreachable, or serving paid content for free) — plus plain-English findings[] explaining what an agent sees and why it costs you traffic.
Related MCP server: x402 Atlas
Install
Requires Node.js ≥ 20. Published on npm as @forgemeshlabs/x402-scan-mcp — no clone or build needed.
npm install -g @forgemeshlabs/x402-scan-mcpOr skip the install entirely and run it with npx (recommended for MCP clients):
npx -y @forgemeshlabs/x402-scan-mcpClaude Code
claude mcp add x402-scan -- npx -y @forgemeshlabs/x402-scan-mcpClaude Desktop / Cursor / Windsurf (any MCP client)
{
"mcpServers": {
"x402-scan": {
"command": "npx",
"args": ["-y", "@forgemeshlabs/x402-scan-mcp"]
}
}
}Development (from source)
Only needed if you're hacking on the scanner itself:
git clone https://github.com/forgemeshlabs/x402-scan-mcp
cd x402-scan-mcp
npm install && npm run build
claude mcp add x402-scan -- node /path/to/x402-scan-mcp/dist/index.jsTools
Tool | What it does |
| Probe one x402 endpoint — HTTP status, envelope source/validity, |
| Run |
| Live ForgeMesh catalog stats plus the static August 2026 x402 Bazaar health census headline numbers |
Try it: "Scan my x402 route for a valid 402 challenge" · "Batch-scan these 5 endpoints and tell me which ones are broken" · "What did the August 2026 x402 health census find?"
CLI smoke test (from a source checkout)
npm run smoke -- https://your-endpoint.example.comBeyond the free local scan
This MCP server is local-only and free: it never leaves your machine except to call the endpoint you point it at (and, for census_stats, ForgeMesh's own public stats endpoint). If you want more:
Hosted, paid, server-side scan —
POST https://x402.forgemesh.io/x402-endpoint-scan, $0.05 via x402. Useful when you want the probe to originate from a different network than yours, or you're calling it from an agent that already pays x402 for other tools.Browser tool — forgemesh.io/scan for a one-off scan with no MCP client or wallet needed.
$5 full report with fixes — a deeper audit with ready-to-paste fixes for every failing check, at forgemesh.io/scan.
The August 2026 x402 Bazaar health census
census_stats bundles the headline numbers from ForgeMesh's own sweep of the x402 Bazaar catalog: 1,225 sellers probed, 74% healthy, 206 dead, 40 serving paid content for free, and only 15% MPP dual-stack. Full writeup: forgemesh.io/blog/x402-bazaar-health-census-august-2026.
Security
This scanner makes outbound requests to URLs you give it, so it is built to resist SSRF abuse:
Scheme allow-list — only
http/https;file:,ftp:,gopher:,data:etc. are rejected.Port allow-list — only
80,443,8080, and8443. Any other explicit port is refused before any DNS lookup or network call.Local-hostname rejection —
localhost,*.localhost,*.local, and*.internalare refused by name, before DNS resolution runs.Private-target blocking — after DNS resolution, requests to loopback, private (RFC 1918), link-local, CGNAT, reserved, multicast, and the cloud metadata address (
169.254.169.254) are refused. IPv6 loopback/ULA/link-local and IPv4-mapped forms are covered too. If a hostname resolves to any private address, the scan is refused.Pinned-IP transport — the request dials the exact public IP that was validated, while TLS still verifies the original hostname. This closes the validate-then-connect DNS rebinding window.
No redirect following — a
3xxresponse is reported as-is (status +Location, if any); the scanner never chases it. This matches how a strict agent client behaves and keeps the request count predictable.Bounded — at most 2 requests per
scan_endpointcall (one GET, plus one POST retry only on405),forgemesh-scan-mcp/0.1UA, 8s timeout, 64KB body cap.Tested hardening —
npm testcovers unsafe URL rejection, private IP ranges, port allow-listing, and endpoint-scan grading against a local fixture server.
Deployment: stdio (local, per-user) is the safe default. A public HTTP deployment is a network-egress tool and must add authentication, per-client rate limiting, request logging, and an egress policy before exposure.
License
MIT — free for everyone. If the scanner found a broken 402, the fix is usually a one-line envelope correction.
Available Tools
3 toolscensus_statsx402 Bazaar health census statsARead-onlyIdempotent
Fetches the latest ForgeMesh catalog stats (best-effort, 5s timeout, no input required) alongside the static headline numbers from the August 2026 x402 Bazaar health census: 1,225 sellers probed, 74% healthy, 206 dead, 40 serving paid content for free, and 15% MPP dual-stack. Source: https://forgemesh.io/blog/x402-bazaar-health-census-august-2026
Inputs: no named parameters.
scan_batchScan up to 10 x402 endpoints at onceARead-onlyIdempotent
Runs scan_endpoint sequentially over a list of URLs (max 10) and returns each full result plus a one-line summary, e.g. '7/10 healthy, 2 dead, 1 broken envelope'. One bad URL never aborts the batch — its error is reported per-item instead. Same no-spend, SSRF-guarded probe as scan_endpoint applied to every URL.
Inputs: urls (required).
scan_endpointScan one x402 endpoint for a well-formed 402 challengeARead-onlyIdempotent
Free, local, no-payment health probe for one x402 endpoint. GETs the URL (retries once as POST with {} on a 405), then checks: is the response HTTP 402; does it carry a valid PAYMENT-REQUIRED envelope (Base64 JSON with numeric x402Version and a non-empty accepts[] where every entry has scheme/network/asset/payTo/amount), falling back to checking the body for an x402Version field; and does it also advertise MPP dual-stack via WWW-Authenticate: Payment. Grades A (valid envelope + MPP dual-stack), B (valid envelope only), C (402 but the envelope is missing or malformed), or F (not 402, unreachable, or serving paid content for free). Never sends a PAYMENT-SIGNATURE and cannot spend funds — this only inspects the challenge shape. Refuses non-http(s) URLs, localhost/.internal/.local hosts, private/reserved IPs, and ports outside 80/443/8080/8443; never follows redirects; caps the response body at 64KB; makes at most 2 requests.
Inputs: url (required).
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 3 tools
Each tool occupies a clearly separate slot: one endpoint probe (scan_endpoint), a sequential driver over up to 10 URLs (scan_batch), and a catalog-stats fetcher (census_stats). The overlap between scan_endpoint and scan_batch is explicit and documented, so an agent can pick correctly without guessing. No two tools could plausibly be swapped for the same intent.
All names are snake_case and readable, with scan_endpoint/scan_batch forming a clean verb_noun pair. census_stats breaks the verb-first pattern by being noun-only, a minor but noticeable deviation from an otherwise tight convention.
Three tools is a small but defensible surface for a focused endpoint scanner, and each has a distinct job. census_stats is somewhat tangential (static blog numbers plus a best-effort catalog fetch), which makes the set feel slightly padded at the edges even though nothing is redundant.
The core lifecycle is covered: single probe, batched probe with per-item error isolation, and catalog context, all with a defined A/B/C/F grade and documented safety guards. Gaps are minor — there is no way to inspect or validate a PAYMENT-REQUIRED envelope in isolation, and no persistence/export of prior scan results for the batch case.
Maintenance
Related MCP Connectors
Audits any URL for HTTP 402 x402 V2 compliance, PAYMENT-REQUIRED headers, Bazaar schema, and MCP.
HTTP, TLS and DNS audit of one public URL, paid per call in USDC over x402 on Base.
11402xAgent is the check an agent calls before paying any x402 endpoint. It probes the endpoint's 402 without paying and returns a pay / skip / recheck verdict with a reason. Every check leaves a public receipt. It never pays the target.
Live uptime and source-URL verification for AI agents, with per-call x402/USDC paid endpoints.
Related MCP Servers
AlicenseAqualityDmaintenanceEnables AI agents to scan payment endpoints for safety, returning a letter grade (A–F) and verdict before authorizing payments.241 npmMIT- FlicenseNot gradedqualityAmaintenanceEnables AI agents to search and verify machine-payable HTTP 402/x402 APIs using live probe data, providing ranked results by liveness, uptime, price, and trustworthiness.-
- FlicenseNot gradedqualityBmaintenanceEnables autonomous agents to inspect and audit unfamiliar x402 endpoints before spending USDC, using bounded read-only probes to surface payment challenges, pricing, network, receiver, and operational signals without signing or spending funds.-
- AlicenseNot gradedqualityBmaintenanceEnables agents and IDE assistants to validate x402 payment endpoints without shelling out: it fetches a URL unpaid and returns a conformance report on the returned 402 challenge, decodes and classifies base64 payment blobs, and summarises which scheme/network pairs a facilitator can settle.MIT