Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, email [email protected] and we’ll put it right.

io.github.JonasFuchss/x402-trust-mcp

NPM · X402-TRUST-MCP · SCANNED AUG 3

Trust & reliability data for x402 endpoints before your agent pays them.

Available components

+25 this week 68 Trust /100
Trust breakdown (6 categories)

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score →

Supply Chain Security87
  • No malware found by supply-chain analysis.Pass
  • Only part of the dependency tree could be resolved (110 of 114), so this covers what we could see, not the whole tree.Partial
  • No install/post-install scripts declared.Pass
  • Only part of the dependency tree could be resolved (110 of 114), so this covers what we could see, not the whole tree. View diagnostics → Partial
Provenance & Transparency45
Schema Quality & AI Usability68
  • AI-judged instruction clarity (excellent).Pass
  • Context-footprint check failed: tool/resource definitions use about 2437 tokens (~203/item across 12 items; 12 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management27
  • Stability observed for 8 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage100
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 100% of tool parameters carry a description.Pass
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Install

Add this component to your MCP client. Where a client-specific snippet is available, pick your client below and copy it straight into your config; otherwise use the connection detail shown.

npm · x402-trust-mcp

# add to Claude Code
claude mcp add jonasfuchss-x402-trust-mcp -- npx -y x402-trust-mcp
# add to Codex CLI
codex mcp add jonasfuchss-x402-trust-mcp -- npx -y x402-trust-mcp
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "jonasfuchss-x402-trust-mcp": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "x402-trust-mcp"
      ],
      "enabled": true
    }
  }
}
# add to OpenClaw
openclaw mcp add jonasfuchss-x402-trust-mcp --command npx --arg -y --arg x402-trust-mcp
# ~/.hermes/config.yaml
mcp_servers:
  jonasfuchss-x402-trust-mcp:
    command: "npx"
    args: ["-y", "x402-trust-mcp"]
// mcp.json
{
  "mcpServers": {
    "jonasfuchss-x402-trust-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "x402-trust-mcp"
      ]
    }
  }
}
Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 3 Aug 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 23 to 27. That category is still filling its 30-day observation window: 7 days of observed history at the previous scan, 8 at this one. The score rises as the window fills, whether or not the server changes.

  • 2 Aug 26 +61
    • Provenance: unverified → fail security
    • Known CVEs: unverified → partial security
    • Install scripts: unverified → pass security
    • Malware scan: unverified → pass security
    • Dependency health: partial → unverified functional
    • Stability: unverified → 0.23 functional
    • MCP protocol: unverified → pass functional
    • Maintenance: unverified → pass functional
    • License: unverified → pass functional
    • Schema quality: unverified → excellent functional
    • Tool coverage: unverified → 100 functional
    • Licence: MIT functional
  • 1 Aug 26 −28
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
  • 31 Jul 26 −9
    • Provenance: unverified → fail security
    • Malware scan: pass → unverified security
    • Install scripts: unverified → pass security
    • Maintenance: unverified → pass functional
    • License: unverified → pass functional
    • Licence: MIT functional
  • 27 Jul 26 43

    First indexed and scored.

Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 3 Aug 2026 · Analysed npm/[email protected]

Provenance none

Ecosystem: npm · Outcome: none

Dependencies 110 packages

110 packages in the resolved dependency tree · 109 deprecated · 29 stale.

The dependency tree was only partially resolved, so these counts may be incomplete.

MCP tools — 12 exposed · ~2,437 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability.

Tool Tokens
x402_ecosystem_stats ~77

Free aggregate snapshot of the entire x402 ecosystem (Base + Solana): how many endpoints are listed/active/delisted, what fraction are reachable and spec-compliant, and real on-chain USDC settlement volume / receivers / payers over the last 30 days. Use this to gauge market health before transacting.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

x402_endpoint_history ~134

Raw observation time-series for a SPECIFIC x402 endpoint: listing/delisting/relisting events, advertised price changes, payTo changes, and probe results (uptime, latency, quoted amount) over the requested window (1-90 days). Per-probe 'latencyMs' is measured from a single EU vantage point and includes network distance to the endpoint. Pay-per-call over x402; auto-pays if a wallet is configured, otherwise returns the price quote.

NameTypeReqDescription
daysintegerLookback window in days (default 30)
resourcestringyesFull x402 resource URL

No output schema declared.

No examples provided.

x402_find_alternatives ~272

Given an x402 endpoint URL, returns the top semantically-similar endpoints (matched on advertised purpose via description embeddings) that currently OUT-SCORE it on the deterministic trust score. Use this to route away from a mediocre/dead/expensive endpoint toward a more reliable, better-settled one serving the SAME function — e.g. before paying, check if a higher-graded equivalent exists. Each alternative carries its trust 'score', 'grade', 'recommendation', cosine 'similarity' (0-1), 'amountUsd' price, and a free 'endpointPage' URL. Same-host siblings and 'avoid'-flagged endpoints are excluded. An empty 'alternatives' array is a valid answer meaning nothing beats the subject. Similarity is independent of latency/geography. Pay-per-call over x402 (~$0.005); auto-pays if a wallet is configured, otherwise returns the price quote.

NameTypeReqDescription
limitintegerMax alternatives to return (1-25, default 5)
minScoreDeltanumberMinimum trust-score advantage an alternative must have over the subject (default 5)
resourcestringyesFull x402 resource URL to find better alternatives for, e.g. https://api.example.com/v1/thing

No output schema declared.

No examples provided.

x402_trust_bulk ~304

Score up to 500 x402 endpoints in a SINGLE paid call. Returns the authoritative full-density trust score (0-100, grade A-F, recommendation proceed|caution|avoid), confidence, `probed_at`, `computed_at`, and a `recomputed` flag for each requested resource. Cache rows older than ~15 minutes are recomputed on-demand from the latest stored probes and settlements (no live network re-probe), so bulk scores typically reflect reality within minutes. Per-request recompute limits apply: at most 50 endpoints / 8 seconds are recomputed; the response includes `recompute_limit_hit` and `recompute_limit` so you know if the cap was reached. The smallest tier that fits your request is selected automatically (10/50/100/200/500 endpoints; ~$0.045/$0.20/$0.325/$0.40/$0.50). Resources not in our observation set return `found:false`; you still pay for the batch. For a fresh live probe, use `x402_trust_score`. Pay-per-call over x402; auto-pays if a wallet is configured, otherwise returns the price quote.

NameTypeReqDescription
resourcesarrayyesList of full x402 resource URLs (https://...) to score. Duplicates are ignored; max 500.
tiernumberOptional fixed tier size. If omitted, the cheapest tier that fits `resources` is used.

No output schema declared.

No examples provided.

x402_trust_leaderboard ~81

Free top-25 most trustworthy x402 endpoints, ranked by a deterministic trust score (uptime, envelope compliance, latency, age, on-chain settlement activity, price stability). Latency is measured from a single EU vantage point and includes network distance to the endpoint (so it is only lightly weighted). Use this to discover reliable paid endpoints.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

x402_trust_preview ~148

FREE showcase of what x402_trust_score returns. You do NOT choose the endpoint: this returns the COMPLETE paid-grade trust report (every field — exact score, scoreRange, full component breakdown, advertised price, on-chain settlement figures, all flags) for THREE endpoints picked from the current population — the best-scored, the median, and the worst-scored ('samples' each carry 'role', 'populationRank', and the full 'report'). Use it to see exactly what the paid output looks like across the entire quality range BEFORE paying. It cannot score an endpoint you choose — to evaluate YOUR OWN endpoint, call x402_trust_score (paid). Takes no arguments.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

x402_trust_score ~255

Trust score (0-100, grade A-F) for a SPECIFIC x402 endpoint, PLUS a machine-readable verdict ('recommendation': proceed|caution|avoid), the advertised price ('advertised.amountUsd'), a confidence-adjusted band ('scoreRange'), and structured flags ('flagsDetailed' with code/severity/message — any severity 'error' means avoid). Includes the full component breakdown, the provider-advertised 'serviceName' and 'description' (unverified provider claims, shown next to our independent metrics), and 30-day on-chain stats. Note: 'stats.avgLatencyMs' is measured from a single EU vantage point and includes network distance to the endpoint (see 'stats.latencyVantage'), so a geographically distant endpoint reads slower even when its server is fast. One call answers WHETHER and at WHAT PRICE to use an endpoint. Call this BEFORE paying an unknown x402 endpoint to avoid dead, fraudulent, or recently-hijacked services. Pay-per-call over x402; auto-pays if a wallet is configured, otherwise returns the price quote.

NameTypeReqDescription
resourcestringyesFull x402 resource URL to evaluate, e.g. https://api.example.com/v1/thing

No output schema declared.

No examples provided.

x402_watch_cancel ~116

Soft-cancel a watch immediately: no new events accrue, but the event log stays READABLE via x402_watch_events until the original expires_at (cancel is not a delete). Probing drops back to normal cadence as soon as no active watches cover the endpoint. Bearer-authed with the secret from x402_watch_create. Free and idempotent.

NameTypeReqDescription
secretstringyesThe one-time bearer secret returned by x402_watch_create.
watch_idstringyesWatch id returned by x402_watch_create.

No output schema declared.

No examples provided.

x402_watch_create ~464

Start monitoring ONE x402 endpoint for 30 days. Get alerted on changes that break autonomous payment: payTo changes (possible takeover/rug), price changes, asset/network changes, 402-spec regressions, delisting, and liveness down/recovered. A self-healing endpoint that repeatedly blips is auto-detected as `liveness_flapping` and its individual down/up alerts are coalesced into a single flapping notice (plus one 'stopped flapping' notice when it stabilizes) so you are not spammed. Returns a one-time bearer secret + poll URL + renew URL + edit URL + cancel URL + machine-readable `next_steps`. Use x402_watch_events to poll the append-only log, or configure push delivery to one or more signed HTTPS webhooks and/or Slack/Discord incoming webhooks (max 5 each). `webhook_url`/`slack_url` accept a single URL string or an array of URLs. All URLs are connection-tested BEFORE payment — unreachable URLs are rejected with no charge (retry with a corrected URL). On success the response reports per-URL delivery in `delivery.connection_test`. Webhook signature: `x-signature` = 'sha256=' + HMAC-SHA256(body) keyed by hex(sha256(secret)), NOT the raw secret. Pay-per-call over x402 (~$0.20); auto-pays if a wallet is configured, otherwise returns the price quote.

NameTypeReqDescription
endpointstringyesFull x402 resource URL to watch. It must already be in our observation set.
eventsarrayEvent types to subscribe to (default all): payto_change, price_change, asset_network_change, spec_regression, delisting, liveness_down, liveness_recovered, liveness_flapping, latency_regression.
liveness_sensitivity_nintegerConsecutive missed probes before liveness_down surfaces to you (1=paranoid … 10=relaxed; default 2).
slack_urlOptional Slack or Discord incoming webhook URL(s). Single string or array; max 5.
webhook_urlOptional signed HTTPS webhook URL(s) for push delivery. Single string or array; max 5.

No output schema declared.

No examples provided.

x402_watch_edit ~229

Edit an active watch: change webhook/Slack URLs, liveness sensitivity, or subscribed events. Bearer-authed with the secret from x402_watch_create. Newly-added URLs are connection-tested before the change is persisted; if any new URL fails, the existing config is unchanged. Delivery fields are full-replace per channel (omit to leave that channel unchanged). Returns the updated watch view.

NameTypeReqDescription
eventsarrayEvent types to subscribe to (default all). Omit to keep current events.
liveness_sensitivity_ninteger1=paranoid … 10=relaxed. Omit to keep current value.
secretstringyesThe one-time bearer secret returned by x402_watch_create.
slack_urlReplace Slack/Discord URL(s). Single string or array; max 5. Omit to keep current URL(s).
watch_idstringyesWatch id returned by x402_watch_create.
webhook_urlReplace webhook URL(s). Single string or array; max 5. Omit to keep current webhook(s).

No output schema declared.

No examples provided.

x402_watch_events ~282

Read the append-only event log for an active x402 watch. Returns two streams: `events` (endpoint changes — payTo/price/asset/spec/delisting/liveness) and `watch_events` (lifecycle feedback — created/edited/cancelled/renewed/expiring/expired). Nothing between two polls is lost. Provide the watch_id and the one-time secret from x402_watch_create. Advance `since` with the returned `next_cursor` (endpoint events) and `watch_since` with `watch_events_cursor` (lifecycle events). Cursors/ids are GLOBAL sequences shared across watches (a watch's first event id may be >1); always page by the returned cursor rather than assuming they start at 1. Cancelled watches remain READABLE until expires_at (no new events accrue). If the watch has push delivery, still poll to reconcile missed webhooks.

NameTypeReqDescription
secretstringyesThe one-time bearer secret returned by x402_watch_create.
sincestringEndpoint-event cursor: the `next_cursor` from a previous poll. Omit for the first poll.
watch_idstringyesWatch id returned by x402_watch_create.
watch_sincestringLifecycle-event cursor: the `watch_events_cursor` from a previous poll. Omit for the first poll.

No output schema declared.

No examples provided.

x402_watch_renew ~75

Extend an active x402 watch by another 30 days before it expires. The secret stays the same. Pay-per-call over x402 (~$0.20); auto-pays if a wallet is configured, otherwise returns the price quote.

NameTypeReqDescription
watch_idstringyesWatch id returned by x402_watch_create.

No output schema declared.

No examples provided.