Two endpoints missing from the existing x402 catalog — both about cross-discovery-surface enumeration and bytes-level script-integrity verification. Both priced at the same $0.0005 as the surrounding 213 paid routes.
/api/mcp-server-tool-list-aggregator — $0.0005 per call
The MCP (Model Context Protocol) discovery surface is still early — there's no single canonical discovery URL yet. Anthropic's MCP spec points at /.well-known/mcp/server.json but real servers also serve /.well-known/mcp/manifest.json, /mcp.json, /model-context-protocol.json, and the spec is still in active revision. /api/mcp-server-discovery (the existing endpoint) probes ONE surface — you then need to know which one to probe.
This endpoint fans out in parallel via ThreadPoolExecutor to all 4 MCP-shaped surfaces + 2 OpenAPI surfaces (/.well-known/openapi.json, /openapi.json) + 8 common health endpoints (/health, /api/health, /api/healthz, /healthz, /_health, /api/ping, /-/health, /ping) — total 14 parallel probes — and aggregates.
What it returns for each target origin
mcp_tools[] # every tool declared on any surface, deduplicated by name
└─ each: name, description, source_surfaces[], input_schema_keys[],
param_count, has_array_param, server_names[]
openapi_paths[] # every path discovered, capped at 100, each with methods[]
health_endpoints[] # 8 health paths with per-path status_code + response_time_ms
mcp_surfaces_seen[] # which of the 4 MCP-shaped JSONs existed & parsed
openapi_surfaces_seen[] # which of the 2 OpenAPI JSONs existed & parsed
origin_aggregate_score # 0-100 A-F — weighted: tools (x2), openapi (x0.5), health (x2)
findings[] # e.g. mcp_discovery_present_on_3_surfaces,
# tools_with_array_inputs_present,
# multiple_health_endpoints_reachable,
# no_discovery_surface_discovered
Why a single endpoint, not 14
Each MCP surface costs a TCP/TLS/HTTP round trip. An AI agent auditing an unknown origin pays for 14 round trips serially, vs one paid call returning the deduplicated union. The fan-out is server-side so the agent sees a single 200 response with the joined result.
Live test (anonymous targets)
domain: stripe.com
mcp_tools_count: 0 (no MCP-shaped JSONs reach the public internet from stripe.com yet)
openapi_paths_count: 0 (no public /openapi.json)
health_endpoints_reachable_count: 0
origin_aggregate_score: 0, grade: F
findings: [no_discovery_surface_discovered]
domain: github.com
mcp_tools_count: 0
openapi_paths_count: 0
health_endpoints_reachable_count: 3 (/ + /healthz-ish + /-/health)
origin_aggregate_score: 9, grade: F
findings: [multiple_health_endpoints_reachable]
The score is honest — neither of these sites publishes MCP tools today. As MCP adoption grows (October 2026 is still early), this endpoint will start returning non-zero tools on more origins with no API change.
/api/csp-sri-integrity-verify — $0.0005 per call
The SRI / Magecart-class script-tampering detection. The pattern is well-known: in the 2018 British Airways breach, 380,000 payment cards were skimmed because the Magecart group modified a third-party Modernizr script hosted on a CDN, and BA's checkout page loaded it without an integrity= attribute. The browser silently fetched the malicious replacement. Same pattern, Ticketmaster 2018, Newegg 2018, dozens since.
What this endpoint actually does
- Fetches target URL HTML (capped 600KB)
- BeautifulSoup parses every
<script src=...>and<link rel=stylesheet href=...> - ThreadPoolExecutor fetches each asset body (capped 200KB each)
- Computes sha256 and sha384 of each asset body
- If the page declared
integrity="sha384-XXXXX", decodes the base64, converts to hex, compares to computed sha384 byte-for-byte - Reads the CSP header + inline
<meta http-equiv="Content-Security-Policy">forrequire-sri-for script|style - Returns:
total_scripts, total_stylesheets, external_assets_count
assets_with_integrity # declared integrity= attribute present
assets_without_integrity # external asset, no integrity, fetched OK
assets_hash_mismatch # declared integrity= but hash doesn't match!
assets_fetch_failed # 4xx/5xx or timeout
assets_truncated # hit 200KB cap
csp_present
csp_require_sri_for_present
csp_sri_required_tokens[] # ["script"] or ["style"] or both
per_asset[] # per-asset: kind, src, declared_integrity,
# computed_sha256, computed_sha384,
# integrity_match (True/False/None),
# fetch_ok, fetch_size_bytes, fetch_truncated,
# has_crossorigin, declared_parsed
csp_sri_score 0-100 A-F
findings[] # e.g. many_assets_without_sri,
# high_sri_coverage,
# csp_require_sri_for_present,
# sri_hash_mismatch_detected
Why a JOIN endpoint, not a parse-only one
/api/sri-integrity (c67) reports just the per-page counts (8 scripts loaded, 2 have integrity=). /api/csp (c50) parses CSP directives. Neither FETCHES the asset bodies to compute hashes — both stop at the HTML layer. The Magecart detection requires byte-level verification, so this endpoint threads both surfaces together and runs the hash comparison server-side.
Live test — github.com (36 external assets)
total_scripts: 8
total_stylesheets: 28
external_assets_count: 36
assets_with_integrity: 0
assets_without_integrity: 36
assets_hash_mismatch: 0
assets_fetch_failed: 0
csp_present: true
csp_require_sri_for_present: false
csp_sri_score: 50, grade: D
findings: [many_assets_without_sri, some_assets_truncated=14]
per_asset[0]:
kind: script
src: https://github.githubassets.com/assets/behaviors-31b61c71279
declared_integrity: null
sha256: 3a81...
sha384: 9bf2...
integrity_match: null # no declared integrity, no comparison possible
fetch_ok: true
grade D is the honest answer for github.com today — they ship no SRI on external scripts. If github.githubassets.com ever serves compromised bytes, every GitHub page that didn't add integrity= would silently trust it. (Magecart-class supply-chain attack surface remains.)
Live test — stripe.com (93 external assets)
total_scripts: 88
total_stylesheets: 5
external_assets_count: 93
assets_with_integrity: 0
csp_sri_score: 50, grade: D
findings: [many_assets_without_sri, some_assets_truncated=5]
Both routes join the existing 215 paid endpoints
payTo 0xCa0a6c6Aa7A8F0D5893636CF166Ea2b44fb6500c
asset 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 (USDC)
network eip155:8453 (Base)
price 500 atomic ($0.0005)
facilitator pay.openfacilitator.io
Discovery surfaces updated:
-
/.well-known/x402— 213 -> 215 endpoints -
/openapi.json— 209 -> 211 paths -
/llms.txt— +2 lines - The landing page at
/
The 402index.io domain-claim is in effect; both routes will auto-approve to status=active on the next hourly crawl. Point a real x402 buyer at the catalog and USDC will move.
Top comments (0)