MCP Server

nsgoods-workbench-mcp

org.nsgoods/nsgoods-workbench-mcp
Crypto & Web3 Security Public & reachable MCP 2025-11-25

What this MCP does

Searches and evaluates x402-payable resources, prices, host status, catalogue drift, payment readiness, and cryptographic response signatures.

catalogue_stats
Catalogue stats
Size and health of the x402 catalogue as of the latest full scan: resources, hosts, verdict counts, and payable endpoints per network.
Read only Open world Idempotent
Input schema
{'type': 'object', 'title': 'catalogue_statsArguments', 'properties': {}}
drift_status
Drift status
Verdict changes between the two latest full scans (catalogue wide, or for one host), plus the declared model drift watch.
Read only Idempotent
Input schema
{'type': 'object', 'title': 'drift_statusArguments', 'properties': {'host': {'type': 'string', 'title': 'Host', 'default': ''}}}
find_endpoints
Find endpoints
Search the catalogue by host or URL substring. Returns up to `limit` endpoints (max 50) with their latest verdict, plus the total match count. Use this first when you do not know the exact resource URL. Rows with in_latest_scan=false were not in the latest full scan; read last_checked_at for when they were last probed. Optional network filter (for example eip155:8453 or solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp) and sort=price for the cheapest first. last_checked_at is the last time any scan looked at the resource; verdict_since is when the current verdict was first observed in the unbroken run that leads to it.
Read only Idempotent
Input schema
{'type': 'object', 'title': 'find_endpointsArguments', 'required': ['query'], 'properties': {'sort': {'type': 'string', 'title': 'Sort', 'default': ''}, 'limit': {'type': 'integer', 'title': 'Limit', 'default': 25}, 'query': {'type': 'string', 'title': 'Query'}, 'network': {'type': 'string', 'title': 'Network', 'default': ''}}}
host_summary
Host summary
Summary for a host (no time series): first/last seen, current verdict mix, n_resources, total verdict changes, gone_since if absent from the latest full scan, and a small resources_sample. Sample rows with in_latest_scan=false were not in the latest full scan; read last_checked_at for when they were last probed. n_resources counts every resource ever seen for this host; current_verdict_mix and n_payable_last_full count only the latest full scan. last_checked_at is the last time any scan looked at the resource; verdict_since is when the current verdict was first observed in the unbroken run that leads to it.
Read only Idempotent
Input schema
{'type': 'object', 'title': 'host_summaryArguments', 'required': ['host'], 'properties': {'host': {'type': 'string', 'title': 'Host'}}}
payability_verdict
Payability verdict
Latest payability observation for one exact resource URL (path and query included), with the meaning of the verdict, remediation if it cannot be paid, and the per-network options seen. last_checked_at is the last time any scan looked at the resource; verdict_since is when the current verdict was first observed in the unbroken run that leads to it.
Read only Idempotent
Input schema
{'type': 'object', 'title': 'payability_verdictArguments', 'required': ['url'], 'properties': {'url': {'type': 'string', 'title': 'Url'}}}
reports
Weekly reports
Published weekly payability reports (from the signed manifest).
Read only Open world Idempotent
Input schema
{'type': 'object', 'title': 'reportsArguments', 'properties': {}}
verify_signature
Verify signature
Offline EIP-191 verify of a signed nsgoods response. Identifies the service from the manifest (or the optional `service` arg), strips exactly that service's post-sign fields, canonicalises (JCS, both ASCII modes), recovers the signer and checks it against the published manifest signers. Reproduction-attestation (JCS/byte-length) and envelope (signer/signature, components) shapes are reported as unsupported_shape, not verified here. Refusals carry a distinct status: malformed_signature (signature is not a 65-byte 0x-prefixed hex string), schema_rejected (the body carries a signed_by/signature pair but fails the required field shape for every service the claimed signer covers; recovery was not attempted, checked is false, reasons lists the failed candidates), signature_mismatch (well-formed but recovers a different address than signed_by under every candidate service recipe of this signer), no_flat_recipe (signed_by is a manifest signer but every service it covers uses an envelope shape, so there is no flat recipe to check; recovery was not attempted, checked is false), unknown_signer (signed_by is not a manifest signer; recovery was not attempted, checked is false), unsupported_shape, or the no-signed_by/signature-pair case. checked is true only when EIP-191 recovery actually ran; every other refusal reports checked false.
Read only Open world Idempotent
Input schema
{'type': 'object', 'title': 'verify_signatureArguments', 'required': ['response_json'], 'properties': {'service': {'type': 'string', 'title': 'Service', 'default': ''}, 'response_json': {'type': 'string', 'title': 'Response Json'}}}
x401_status
x401 status
Current x401 emitter adoption across the scanned catalogue (from the daily watcher).
Read only Idempotent
Input schema
{'type': 'object', 'title': 'x401_statusArguments', 'properties': {}}
Changed
host_summary
Oct. 1, 2026, 2:51 a.m.
Changed
find_endpoints
Oct. 1, 2026, 2:51 a.m.
Changed
payability_verdict
Oct. 1, 2026, 2:51 a.m.
Changed
host_summary
Sept. 29, 2026, 2:59 a.m.
Changed
find_endpoints
Sept. 29, 2026, 2:59 a.m.
Changed
reports
Sept. 27, 2026, 2:50 a.m.
Changed
verify_signature
Sept. 27, 2026, 2:50 a.m.
Changed
catalogue_stats
Sept. 27, 2026, 2:50 a.m.
Changed
verify_signature
Sept. 25, 2026, 2:59 a.m.
Changed
verify_signature
Sept. 23, 2026, 2:50 a.m.
Changed
verify_signature
Sept. 21, 2026, 2:57 a.m.
Changed
reports
Sept. 19, 2026, 2:48 a.m.
Changed
verify_signature
Sept. 19, 2026, 2:48 a.m.
Changed
drift_status
Sept. 19, 2026, 2:48 a.m.
Changed
x401_status
Sept. 19, 2026, 2:48 a.m.
Changed
host_summary
Sept. 19, 2026, 2:48 a.m.
Changed
catalogue_stats
Sept. 19, 2026, 2:48 a.m.
Changed
find_endpoints
Sept. 19, 2026, 2:48 a.m.
Changed
payability_verdict
Sept. 19, 2026, 2:48 a.m.
Added
reports
Sept. 17, 2026, 12:54 p.m.
Added
verify_signature
Sept. 17, 2026, 12:54 p.m.
Added
drift_status
Sept. 17, 2026, 12:54 p.m.
Added
x401_status
Sept. 17, 2026, 12:54 p.m.
Added
host_summary
Sept. 17, 2026, 12:54 p.m.
Added
catalogue_stats
Sept. 17, 2026, 12:54 p.m.
Added
find_endpoints
Sept. 17, 2026, 12:54 p.m.
Added
payability_verdict
Sept. 17, 2026, 12:54 p.m.