org.nsgoods/nsgoods-workbench-mcp
Measured conclusion: Deep-tested. L2 outcome: tools_ok.
Read only x402 catalogue: payability verdicts, prices, drift, host status, signatures. No wallet.
| Author | org.nsgoods |
|---|---|
| Access | remote |
| Publisher key required | No |
| Measured state | Deep-tested |
| L1 liveness | alive |
| L1 latency | 123 ms |
| Last measured | 2026-10-26 |
Add to your agent
Copy this into your MCP client config:
{
"mcpServers": {
"nsgoods-workbench-mcp": {
"url": "https://mcp.nsgoods.org/mcp",
"transport": "streamable-http"
}
}
}
Measured tools (8)
payability_verdictread-onlyLatest 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 currency claim: the last time any scan or reprobe looked at this resource. in_latest_scan means only that the resource was in the latest full scan; a row reprobed the same day can carry in_latest_scan=false and still be current. verdict_since is when the current verdict was first observed in the unbroken run that leads to it. A scan that did not contain the resource does not break the run, so verdict_since can span weeks nobody measured. How current a row is comes from last_checked_at and in_latest_scan, not from verdict_since alone.
Parameters:
url(required) — string
Hints: read-only yes · destructive no · idempotent yes · open-world no
find_endpointsread-onlySearch 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 currency claim: the last time any scan or reprobe looked at this resource. in_latest_scan means only that the resource was in the latest full scan; a row reprobed the same day can carry in_latest_scan=false and still be current. verdict_since is when the current verdict was first observed in the unbroken run that leads to it. A scan that did not contain the resource does not break the run, so verdict_since can span weeks nobody measured. How current a row is comes from last_checked_at and in_latest_scan, not from verdict_since alone.
Parameters:
query(required) — stringsort— stringlimit— integernetwork— string
Hints: read-only yes · destructive no · idempotent yes · open-world no
catalogue_statsread-onlySize and health of the x402 catalogue as of the latest full scan: resources, hosts, verdict counts, and payable endpoints per network.
Hints: read-only yes · destructive no · idempotent yes · open-world yes
host_summaryread-onlySummary 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 currency claim: the last time any scan or reprobe looked at this resource. in_latest_scan means only that the resource was in the latest full scan; a row reprobed the same day can carry in_latest_scan=false and still be current. verdict_since is when the current verdict was first observed in the unbroken run that leads to it. A scan that did not contain the resource does not break the run, so verdict_since can span weeks nobody measured. How current a row is comes from last_checked_at and in_latest_scan, not from verdict_since alone.
Parameters:
host(required) — string
Hints: read-only yes · destructive no · idempotent yes · open-world no
x401_statusread-onlyCurrent x401 emitter adoption across the scanned catalogue (from the daily watcher).
Hints: read-only yes · destructive no · idempotent yes · open-world no
drift_statusread-onlyVerdict changes between the two latest full scans (catalogue wide, or for one host), plus the declared model drift watch.
Parameters:
host— string
Hints: read-only yes · destructive no · idempotent yes · open-world no
verify_signatureread-onlyOffline 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.
Parameters:
response_json(required) — stringservice— string
Hints: read-only yes · destructive no · idempotent yes · open-world yes
reportsread-onlyPublished weekly payability reports (from the signed manifest).
Hints: read-only yes · destructive no · idempotent yes · open-world yes
Measured by MCPYP probing. Untested fields are omitted, never estimated. Listing is always free; MCPYP never proxies calls or stores user tokens.