nsgoods-workbench-mcp

Read only x402 catalogue: payability verdicts, prices, drift, host status, signatures. No wallet.

Should I use this

Quality & Safety

B
Description quality
98%
Schema completeness
60%
Naming quality
85%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~1,361Tokens (tool definitions)
~402 BTypical response size
Moderate attention impact (1.06% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "nsgoods-workbench-mcp": {
      "url": "https://mcp.nsgoods.org/mcp"
    }
  }
}

Remote endpoints

https://mcp.nsgoods.org/mcpstreamable-http

What it can do

Tool inventory

Tools (8)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢payability_verdict(url)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "url": {
      "title": "Url",
      "type": "string"
    }
  },
  "required": [
    "url"
  ],
  "title": "payability_verdictArguments"
}
🟢find_endpoints(query, limit, sort, network)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "query": {
      "title": "Query",
      "type": "string"
    },
    "limit": {
      "default": 25,
      "title": "Limit",
      "type": "integer"
    },
    "sort": {
      "default": "",
      "title": "Sort",
      "type": "string"
    },
    "network": {
      "default": "",
      "title": "Network",
      "type": "string"
    }
  },
  "required": [
    "query"
  ],
  "title": "find_endpointsArguments"
}
🟢catalogue_stats

Size and health of the x402 catalogue as of the latest full scan: resources, hosts, verdict counts, and payable endpoints per network.

Input Schema

{
  "type": "object",
  "properties": {},
  "title": "catalogue_statsArguments"
}
🟢host_summary(host)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "host": {
      "title": "Host",
      "type": "string"
    }
  },
  "required": [
    "host"
  ],
  "title": "host_summaryArguments"
}
🟢x401_status

Current x401 emitter adoption across the scanned catalogue (from the daily watcher).

Input Schema

{
  "type": "object",
  "properties": {},
  "title": "x401_statusArguments"
}
🟢drift_status(host)

Verdict changes between the two latest full scans (catalogue wide, or for one host), plus the declared model drift watch.

Input Schema

{
  "type": "object",
  "properties": {
    "host": {
      "default": "",
      "title": "Host",
      "type": "string"
    }
  },
  "title": "drift_statusArguments"
}
🟢verify_signature(response_json, service)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "response_json": {
      "title": "Response Json",
      "type": "string"
    },
    "service": {
      "default": "",
      "title": "Service",
      "type": "string"
    }
  },
  "required": [
    "response_json"
  ],
  "title": "verify_signatureArguments"
}
🟢reports

Published weekly payability reports (from the signed manifest).

Input Schema

{
  "type": "object",
  "properties": {},
  "title": "reportsArguments"
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded8 tools
verifiedversion not recorded8 tools
verifiedversion not recorded8 tools