io.github.sF1nX/x402station
NPM · X402STATION-MCP · SCANNED AUG 3
x402station.io: independent risk-signal layer for x402 endpoints before agents pay.
Available components
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 (113 of 117), 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 (113 of 117), so this covers what we could see, not the whole tree. View diagnostics → Partial
Provenance & Transparency45
- Source repository is publicly reachable at the declared URL. View diagnostics → Pass
- Provenance check failed: no build-provenance attestation is published. See how to fix → View diagnostics → Fail
- Clear OSI-approved license (MIT).Pass
- Actively maintained (last published 62 days ago).Pass
- Disclosure check failed: no security disclosure policy was found in the source repository. See how to fix → Fail
Schema Quality & AI Usability71
- AI-judged instruction clarity (good).Pass
- Tool/resource definitions use about 1057 tokens (~105/item across 10 items; 10 tools + 0 resources), lean.Pass
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management23
- Stability observed for 7 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
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 · x402station-mcp
claude mcp add sf1nx-x402station -- npx -y x402station-mcp
codex mcp add sf1nx-x402station -- npx -y x402station-mcp
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"sf1nx-x402station": {
"type": "local",
"command": [
"npx",
"-y",
"x402station-mcp"
],
"enabled": true
}
}
} openclaw mcp add sf1nx-x402station --command npx --arg -y --arg x402station-mcp
mcp_servers:
sf1nx-x402station:
command: "npx"
args: ["-y", "x402station-mcp"] {
"mcpServers": {
"sf1nx-x402station": {
"command": "npx",
"args": [
"-y",
"x402station-mcp"
]
}
}
} 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 20 to 23. That category is still filling its 30-day observation window: 6 days of observed history at the previous scan, 7 at this one. The score rises as the window fills, whether or not the server changes.
- 2 Aug 26 +46
- Provenance: unverified → fail ▼ security
- Install scripts: unverified → pass ▲ security
- Known CVEs: unverified → partial ▲ security
- Malware scan: unverified → pass ▲ security
- Tool coverage: 100 → unverified ▼ functional
- Security disclosure: fail → unverified ▼ functional
- License: unverified → pass ▲ functional
- Dependency health: unverified → partial ▲ functional
- Stability: unverified → 0.20 ▲ functional
- Maintenance: unverified → pass ▲ functional
- MCP protocol: unverified → pass ▲ functional
- Schema quality: unverified → good ▲ functional
- Licence: MIT functional
- 1 Aug 26 +14
- Dependency health: partial → unverified ▼ functional
- Tool coverage: unverified → 100 ▲ functional
- 31 Jul 26 −21
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 30 Jul 26 −18
- Malware scan: pass → unverified ▼ security
- 27 Jul 26 46
First indexed and scored.
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 113 packages
113 packages in the resolved dependency tree · 112 deprecated · 29 stale.
The dependency tree was only partially resolved, so these counts may be incomplete.
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.
alternatives Routing fallback — siblings to a flagged endpoint ~124
Avoid paying unsafe x402 endpoints: ranked safe alternatives for the same capability.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | — | Max alternatives to return (1..10, default 5). |
| taskClass | string | — | Service category hint (e.g. 'llm-completions', 'Inference'). Used as a fallback match key when `url` is unknown to the catalog, OR alone for category-only discovery. |
| url | string | — | URL flagged by preflight (or otherwise rejected). Looked up in the catalog to extract provider / domain / category / price band as match keys. |
No output schema declared.
No examples provided.
buy_credits Buy prepaid preflight credits ~50
Prepaid credit pack for high-frequency x402 scam checks, preflight, and verified calls. Returns { creditId, balance, expiresAt }; use X-Credit-Id on subsequent preflight calls.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
catalog_decoys Full decoy / zombie blacklist ~32
Searchable catalog of x402 endpoint risk signals; scam-like decoys, zombies, and price-traps flagged.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
credits_status Read a credit's current balance + expiry ~107
Free, no payment required. Returns { creditId, balance, initialBalance, used, paidAmount, createdAt, expiresAt, expired, paymentTx, paymentNetwork }. UUID-only access — anyone holding the creditId can read state, same as decrement. 404 covers both 'malformed UUID' and 'no such credit' (same body so an attacker scraping random UUIDs can't tell them apart).
| Name | Type | Req | Description |
|---|---|---|---|
| creditId | string | yes | The creditId UUID returned by buy_credits. |
No output schema declared.
No examples provided.
forensics 7-day forensics report ~51
Forensic x402 scam/risk report for a suspicious endpoint: probe history, signatures, decoy / price-trap patterns.
| Name | Type | Req | Description |
|---|---|---|---|
| url | string | yes | The full URL of the x402 endpoint to analyse. |
No output schema declared.
No examples provided.
preflight Preflight risk check ~66
Preflight x402 scam check: endpoint risk before you pay — decoy / zombie / price-trap / never-paid? Trust verdict in ~200ms before PAYMENT-SIGNATURE.
| Name | Type | Req | Description |
|---|---|---|---|
| url | string | yes | The full URL of the x402 endpoint the agent is about to pay. |
No output schema declared.
No examples provided.
watch_status Check watch subscription status + recent alerts ~102
Returns the current state of a watch: active/expired, alerts remaining (out of 100 prepaid), last 10 alert deliveries with their delivery_status, and the last computed signal snapshot. Free — no payment required, secret-gated. The secret is the one returned by watch_subscribe.
| Name | Type | Req | Description |
|---|---|---|---|
| secret | string | yes | The 64-char hex secret returned by watch_subscribe. |
| watchId | string | yes | The watchId UUID returned by watch_subscribe. |
No output schema declared.
No examples provided.
watch_subscribe Subscribe to webhook alerts on x402 endpoint state changes ~234
Monitor x402 endpoint risk; webhook on scam-like decoy / zombie / price-trap status changes. Returns watchId + secret; x402station.io posts HMAC-SHA256-signed JSON when subscribed signals fire or clear.
| Name | Type | Req | Description |
|---|---|---|---|
| signals | array | — | Signal names to alert on. Defaults to ['dead', 'zombie', 'decoy_price_extreme']. Full vocabulary covers preflight + forensics signals. |
| url | string | yes | The x402 endpoint URL to watch. |
| webhookUrl | string | yes | Where x402station should POST alert payloads. Must be HTTPS, reachable from the public internet, and contain no userinfo (no user:pass@host). Loopback (127.0.0.1, ::1, localhost), private (RFC1918, l… |
No output schema declared.
No examples provided.
watch_unsubscribe Unsubscribe from a watch (deactivate) ~96
Deactivates the watch — no further alerts will be queued or delivered. The subscription is set is_active=false but the row + alert history is retained for audit. Free — no payment required, secret-gated. There is no refund for unused prepaid alerts.
| Name | Type | Req | Description |
|---|---|---|---|
| secret | string | yes | The 64-char hex secret returned by watch_subscribe. |
| watchId | string | yes | The watchId UUID returned by watch_subscribe. |
No output schema declared.
No examples provided.
whats_new Catalog diff polling — added / removed endpoints since `since` ~195
Polling-friendly catalog diff. Body { since?, limit? } (default since=now-24h, limit=200, max 500). Returns added_endpoints[] (first_seen_at >= since AND is_active=true), removed_endpoints[] (flipped to is_active=false since), service-level counts, polls_in_window, and current active totals. Cheap ($0.001 USDC) so hourly polling stays under $1/month — perfect for aggregator agents that need a fresh delta without re-pulling the whole catalog. Internal ingest cron runs every 5 min, so polling more often than that returns identical data.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | — | Per-list cap (1..500, default 200). Applied independently to added_endpoints and removed_endpoints. |
| since | string | — | ISO 8601 timestamp. Default = now() - 24h. Cannot be older than 30 days or in the future. |
No output schema declared.
No examples provided.