Nsgoods Workbench Mcp

org.nsgoods由 nsgoods.org 发布官方发布者v1.0.0更新于 Oct 24, 2026

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

已验证Streamable HTTP可网页运行网页搜索与抓取金融数据与分析

概览

AI 生成的概览

每周 x402 目录扫描的只读索引,让助手查询可支付性判定、价格、主机状态、漂移以及签名响应验证。

可以做什么
  • 按主机或 URL 子串搜索目录,返回每个端点的最新判定与观测价格
  • 查询某个精确资源 URL 的可支付性判定、修复提示及各网络选项
  • 读取目录整体统计、单主机摘要以及两次扫描之间的判定漂移
  • 查看 x401 发射方采用情况,并列出已发布的每周可支付性报告
  • 离线验证 nsgoods 签名响应是否与已发布清单中的签名者一致
适用场景
适合在助手决定是否调用或支付某个 x402 端点之前,判断其是否可支付及价格;也适合查看哪些主机已消失、判定在每周扫描间如何变化。它是某一时点的扫描索引,而非实时检查。
运行要求
远程 Streamable HTTP 端点 mcp.nsgoods.org,无需登录、钱包或 API 密钥。每个调用方 IP 每天免费 300 次工具调用。也可用 Python 脚本或未经测试的 Docker 镜像自建,通过 WORKBENCH_DIR、WORKBENCH_DATA_DIR 和 WORKBENCH_HOST 配置。
安装前请注意
数据来自最近一次完整扫描,属某一时点结果,付款前应另行确认端点是否仍可用;README 指向一个单独的付费预言机做实时检查。服务会记录工具使用情况:时间戳、工具名、参数名与长度、调用方 IP 的每日密钥哈希,以及客户端元数据和错误详情,保留 30 天。本服务不处理任何支付。

安装

在 SourceWeft 中

  1. 打开 控制台中的 Nsgoods Workbench Mcp,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Web executable,通过 Streamable HTTP。 远程服务在工作区中配置后即可从网页运行时运行。

交给智能体安装

把这段提示词粘贴到 Claude Code、Codex、Cursor 等智能体,或 SourceWeft 对话中。智能体会读取该服务器的安装指南,先向你展示发布者、端点和登录方式,经你同意后再把它添加到你的客户端。密钥不会写进任何命令。

阅读 https://sourceweft.com/mcp/org.nsgoods%2Fnsgoods-workbench-mcp/install.md,并按其中说明把这个 MCP 服务器接入我的客户端。修改任何配置之前,先告诉我它的发布者、端点和登录方式,等我确认。不要把 API 密钥写进命令或我会提交的文件;问我密钥应从哪里获取。

查看智能体所依据的安装指南

其他 MCP 客户端

把它添加到你客户端的 mcpServers 配置中。

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

README

[nsgoods]

nsgoods Workbench MCP

Read only index of the weekly x402 catalogue scan. Which endpoints are payable, what they cost, which hosts are gone.
No wallet. No sign in. No payments handled by this server.

[endpoint] [MCP Registry] [Smithery] [MIT] [M8ven]

What it answers

A hosted Model Context Protocol server over our weekly full scan of the x402 catalogue: is this endpoint payable, what does it cost, which host is gone, which endpoints match a keyword, and whether a signed nsgoods response verifies offline.

Hosted endpoint: https://mcp.nsgoods.org/mcp (Streamable HTTP, no sign in, 300 tool calls per IP per day). Landing and docs: https://mcp.nsgoods.org/ · Health: https://mcp.nsgoods.org/health

Data is point in time from the last full scan. Every answer carries as_of and the scan id. For a live check of one endpoint before paying, use the paid /payable oracle on the hub. This server is the index.

Connect

Claude (web or desktop)

  1. Settings, then Connectors, then Add custom connector
  2. Name: nsgoods. URL: https://mcp.nsgoods.org/mcp. No sign in.
  3. New conversation, then ask for example: Using nsgoods, find the cheapest payable endpoint for sanctions screening on Base

Cursor: add to mcp.json

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

Smithery: https://smithery.ai/servers/nikosble1926/nsgoods-workbench

Any MCP client that supports Streamable HTTP works the same way.

Tools

toolwhat it answers
find_endpointssearch the catalogue by host or keyword, with the latest verdict and the observed price per endpoint, optional sort by price
payability_verdictverdict, history, remediation hint and price for one exact URL
catalogue_statssize of the catalogue, verdict counts, payable endpoints per network, median price
host_summaryper host verdict mix, first and last seen, gone since
drift_statusverdict changes between scans
x401_statuscurrent x401 emitter count
verify_signatureverify any nsgoods signed response offline against our manifest
reportslinks to the weekly payability reports

All tools are read only and idempotent (declared through MCP tool annotations).

Verdicts: PAYABLE, NOT_PAYABLE, MALFORMED_402, CANNOT_PAY_EITHER_VERB, UNREACHABLE, SKIPPED, UNKNOWN.

Example

A live find_endpoints("erc20-balance", 2) call, trimmed to two rows:

json
{  "query": "erc20-balance",  "total_matches": 6,  "returned": 2,  "endpoints": [    {      "resource": "https://api.onesource.io/api/chain/erc20-balance",      "host": "api.onesource.io",      "last_verdict": "PAYABLE",      "host_gone_since": null,      "price": "0.003 USDC on eip155:8453"    },    {      "resource": "https://app.heinrichstech.com/v1/cdp/chain/erc20-balance",      "host": "app.heinrichstech.com",      "last_verdict": "PAYABLE",      "host_gone_since": null,      "price": "0.003 USDC on eip155:8453"    }  ],  "as_of": "2026-09-13",  "index_scan_id": "scan-20260913T050332Z"}

Data and freshness

Index is rebuilt after each weekly full scan (14,652 resources, 1,971 hosts, 13,146 payable as of 13 September 2026). Prices come from a sweep of the 402 challenges (10,958 endpoints priced, median 0.01 USDC, 16 September 2026). A per endpoint sample with a GET only re-probe outcome per row is published under CC BY 4.0: https://x402.nsgoods.org/proof/payability-sample-2026-09-13.json

Resources that are no longer in the latest full CDP Bazaar scan are re-probed weekly in a separate reprobe scan: only non-PAYABLE rows, oldest first, up to 1,500 per week. Those rows keep in_latest_scan=false and carry their own last_checked_at and verdict_since; the latest full scan numbers (catalogue_stats, /health) do not include them.

Run your own

python -m venv venv && venv/bin/pip install -r requirements.txt

Put your own scans.jsonl (one JSON line per probe, see build_index.py for the fields) next to the scripts, then:

venv/bin/python build_index.pyvenv/bin/python server.py   # listens on 127.0.0.1:4036, path /mcp

Docker:

docker build -t nsgoods-workbench-mcp . && docker run -p 4036:4036 nsgoods-workbench-mcp

Docker image is untested (built without a Docker host). Set WORKBENCH_HOST=0.0.0.0 inside containers. Feedback welcome.

Environment variables:

vardefaultmeaning
WORKBENCH_DIR.base directory for the index and data files
WORKBENCH_DATA_DIRWORKBENCH_DIRdirectory for scans.jsonl and watch state
WORKBENCH_HOST127.0.0.1bind address

The server creates an empty index on first run if none is present, so tools/list works before you load any data.

Privacy and logging

This server needs no wallet and no sign in. It keeps a minimal record of tool usage so we can operate and rate limit the service.

  • Per tool call we store: timestamp, tool name, the names and lengths of the arguments, and ip_h, a daily keyed hash of the caller IP. We do not store argument values, and we do not store the raw IP or the MCP session id.
  • When a client connects we store: timestamp, ip_h, user agent, the client name and version it reports, and the protocol version it requests. When a request to /mcp fails we store: timestamp, ip_h, user agent, HTTP method and status, the JSON-RPC method name, whether a session id was sent, the MCP-Protocol-Version, Accept and Content-Type headers, and the first 160 characters of the error. Never params or arguments.
  • ip_h is HMAC-SHA256(daily_secret, ip) truncated to 16 hex characters. The secret is random, held only in memory, replaced at each UTC day change and never written down, so after the day ends the hash cannot be linked back to an IP.
  • The same ip_h drives the free limit of 300 tool calls per caller per day. If the server restarts during a UTC day, a new secret is generated, so the counter restarts for everyone for the rest of that day.
  • Records are deleted after 30 days. Records written before 26 September 2026 used a fuller format (caller IP, session id and the first 80 characters of each argument); they are deleted on the same schedule, the last of them by 26 October 2026.

The current field lists and retention are also reported live at GET /health under tool_log and client_log.

Verification

Signed nsgoods responses use EIP-191 over canonical JSON (sorted keys, compact separators, ASCII escaped, signature and signed_by removed before hashing). The verify_signature tool checks the recovered address against the signers in https://x402.nsgoods.org/proof/index.json

Verifying what runs. python3 scripts/pin_verify_signature.py server.py prints the line range, byte range and sha256 of the verify_signature function body (def to end, decorators excluded, LF line endings, no trailing newline) and the sha256 of the whole file. A matching hash is repo evidence only: it shows that the published source is the one described. It is not deployment evidence. The stronger evidence for what the server runs is behavioural: calling the live tools and checking that the results match what this source produces.

Links

Landing https://mcp.nsgoods.org/ · Hub https://x402.nsgoods.org · MCP section https://x402.nsgoods.org/#mcp Weekly report https://x402.nsgoods.org/proof/payability-report-2026-09-13.html Methodology https://x402.nsgoods.org/ata-audit/payability_index.json (method field)

MIT license.

来源:README.md,提交 1b3d52e

工具

8

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 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.

输入参数url必填

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 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.

输入参数sortlimitquery必填network

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.

无需输入参数。

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 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.

输入参数host必填

x401_status

x401 status

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

无需输入参数。

drift_status

Drift status

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

输入参数host

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.

输入参数serviceresponse_json必填

reports

Weekly reports

Published weekly payability reports (from the signed manifest).

无需输入参数。

版本历史

1
  1. v1.0.0最新Sep 16, 2026

评分

已满足适用检查项的 100%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通必需25 分
  • 已声明认证方式必需10 分
  • 已列出工具必需15 分
  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分

其他 Nsgoods 集成