FiatDock vs X402 Trust MCP

A side-by-side look at the FiatDock and X402 Trust MCP MCP servers: transport, auth, tools, quality signals, and the config to install either one in Claude, Cursor, Windsurf or VS Code.

FiatDock logoFiatDockFinance & Fintech · Local subprocess (stdio)MCP marketplace: agents pay per call in USDC via x402. Plus Base chain data and a USDC<->bank ramp.64GoodAuth: not declaredX402 Trust MCP logoX402 Trust MCPFinance & Fintech · Local subprocess (stdio)Trust & reliability scores for x402 endpoints: free ecosystem stats, paid per-endpoint scores.64GoodAuth: no auth required

Verdict: choose FiatDock for finance & fintech work as a local process; choose X402 Trust MCP for finance & fintech as a local process. You can also run both side by side in one mcpServers block.

Which MCP server should you choose?

FiatDock logoChoose FiatDock when

  • You need dedicated capabilities in the Finance & Fintech domain.
  • You prefer a local stdio subprocess transport.
  • You have the keys it needs: AGENT_PRIVATE_KEY, FIATDOCK_TOOLS.
  • You want tools like get_quote, get_order_status, token_price.
Explore FiatDock

X402 Trust MCP logoChoose X402 Trust MCP when

  • You need dedicated capabilities in the Finance & Fintech domain.
  • You prefer a local stdio subprocess transport.
  • Its auth model fits you: No auth required.
  • You have the keys it needs: X402_PRIVATE_KEY, X402_MAX_USD.
  • You want tools like x402_ecosystem_stats, x402_trust_leaderboard, x402_trust_preview.
Explore X402 Trust MCP

Feature & specification comparison

Rows where the two servers differ are marked.

SpecFiatDock logoFiatDockX402 Trust MCP logoX402 Trust MCP
CategoryFinance & FintechFinance & Fintech
Quality signal64/100 · Good64/100 · Good
Install commandConfirmedConfirmed
TransportLocal subprocess (stdio)Local subprocess (stdio)
AuthNot declaredNo auth required
PricingNot declaredFreemium
Required env varsAGENT_PRIVATE_KEYFIATDOCK_TOOLSX402_PRIVATE_KEYX402_MAX_USD
Verified ownerCommunity listingCommunity listing
GitHub stars11
Directory activity 2 views 0 installs 0 upvotes 4 views 0 installs 0 upvotes
Tools4813

Tools & capabilities

FiatDock tools 48

  • get_quoteFree quote before paying: the exchange rate and exactly how much lands in the bank (or wallet) NET of every provider fee — that net figure is the number to decide on. Executable estimate, not a locked rate. side=SELL (USDC->fiat) or BUY (fiat->USDC).
  • get_order_statusCheck the status of an on/off-ramp order by partnerOrderId.
  • token_priceFREE real-time price snapshot for any EVM token by contract address: USD price, 5m/1h/6h/24h change, liquidity, 24h volume, market cap/FDV and the most-liquid DEX pair (DexScreener). Or pass a major symbol (ETH/BTC) for a Coinbase spot price. Read-only, free.
  • search_servicesFind paid + free MCP services other agents have published on the FiatDock marketplace. Returns matching listings (id, name, summary, price, category, seller, verified, gatewayUrl), best match first when q is given (otherwise newest, or the sort you pass), capped at 20 per call — pass limit for more, or q/category to narrow. Use get_service for full detail and call_service to invoke one. Read-only, free.
  • get_serviceFull detail for one FiatDock marketplace listing, including how to call it: PAID listings route through the gateway via call_service (the 402 lists what to pay); FREE/first-party listings expose their real MCP endpoint to call directly. Read-only, free.
  • search_x402Find any pay-per-call x402 endpoint on the internet — the public x402 index (~15,000 priced endpoints from hundreds of hosts), not only FiatDock's own marketplace. Ranked by relevance, then by paid calls in the last 30 days (the demand signal), then by distinct payers. Each row carries the URL, the price the index recorded, the network, where the money goes, and the 30-day call/payer counts; call_x402 then reads the endpoint's own 402 and pays it directly from your wallet — FiatDock takes no fee and never touches the money. Read-only, free. Use search_services for FiatDock marketplace listings, which carry health, schemas and a call hint that the public index does not.
  • create_offramp_sessionConvert the agent's USDC to fiat in the owner's OWN bank account. Returns a checkoutUrl to forward to the human owner (valid ~2 hours) and a partnerOrderId to track — pass the owner's `email` and the server ALSO emails the checkout link to them automatically (the response echoes emailedTo). Paid endpoint ($0.01 USDC via x402) — this package pays it automatically from AGENT_PRIVATE_KEY, so the call succeeds without you seeing a 402. COMPLIANCE: own-account rule — the sending wallet and the receiving bank account must belong to the SAME person (the agent's owner); no third-party funds, no aggregation, no P2P transfers. 18+; service area: Portugal + supported EU/EEA countries (NOT the UK). Crypto is volatile; not investment advice.
  • create_onramp_sessionBuy USDC with the owner's OWN fiat and deliver it to the agent's wallet (address locked). Returns checkoutUrl (valid ~2 hours) + partnerOrderId. Paid endpoint ($0.01 USDC via x402) — this package pays it automatically from AGENT_PRIVATE_KEY, so the call succeeds without you seeing a 402. COMPLIANCE: own-account rule — the sending wallet and the receiving bank account must belong to the SAME person (the agent's owner); no third-party funds, no aggregation, no P2P transfers. 18+; service area: Portugal + supported EU/EEA countries (NOT the UK). Crypto is volatile; not investment advice.
  • token_safetyPAID ($0.0045 USDC via x402, paid automatically). On-chain safety verdict for any EVM token BEFORE you trade it: honeypot detection, buy/sell tax, contract-verified, owner privileges (mint / blacklist / pausable / hidden owner / balance-modify), holder concentration, LP-locked %, CEX listing and live DEX liquidity (GoPlus Security + DexScreener). Returns verdict safe|caution|danger with the exact risks. Not financial advice.
  • stablecoin_intelPAID ($0.002 USDC via x402, paid automatically). Supply, peg health and per-chain breakdown for USDC and other stablecoins: total circulating supply, deviation from the $1.00 peg, peg mechanism, the amount circulating on Base (with its share of total) and the top chains by supply (DefiLlama). A treasury/payments agent uses it to check its settlement asset is healthy.
  • gas_pricePAID ($0.001 USDC via x402, paid automatically). The current Base gas price in wei and gwei — a gas-aware agent samples it before submitting a tx. On any RPC failure the call returns 4xx/5xx and is NOT charged.
  • block_numberPAID ($0.001 USDC via x402, paid automatically). The latest Base block number plus its timestamp — a freshness/liveness probe for the chain head. On any RPC failure the call returns 4xx/5xx and is NOT charged.
  • +36 more on the listing page

X402 Trust MCP tools 13

  • x402_ecosystem_statsFree 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.
  • x402_trust_leaderboardFree top-25 most trustworthy x402 hosts (providers), ranked by a deterministic trust score. Each host's score is the probe-weighted mean of its listed endpoints' scores, so providers are judged by their whole measured surface instead of one provider flooding the board with path variants. The per-endpoint score blends uptime, envelope compliance, latency, age, on-chain settlement activity and 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.
  • x402_trust_previewFREE 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.
  • x402_trust_scoreTrust score (0-100, grade A-F, or '?' when unmeasured) for a SPECIFIC x402 endpoint -- cataloged or not (uncataloged endpoints are live-probed on first query, auto-adopted, score carries a low-confidence first-contact flag). PLUS a machine-readable verdict ('recommendation': proceed|caution|avoid|parameterize|unverified|not-payable|free), the advertised price ('advertised.amountUsd'), a confidence-adjusted band ('scoreRange'), and structured flags ('flagsDetailed' with code/severity/message; any severity 'error' means avoid). The 'parameterize' verdict (with 'templated':true) means the resource URL still contains an unresolved template placeholder (e.g. {slug}, :slug or %7B…%7D) but we DO have a real signal (scored probes or a discovery fallback): substitute a valid value first, then the health metrics apply to the resolved URL. The 'unverified' verdict (grade '?') means we have NO measurement at all (every probe excluded and no discovery payment requirements to fall back on): it is unknown, not bad, so verify the endpoint yourself before paying. The 'not-payable' verdict (grade '?') means the URL answers a 402 with an EMPTY accepts[] (an auth/API-key gate such as sign-in-with-x), or answers a bare 401/403 with no payment envelope, so it is not an x402-payable resource at all and there is nothing to settle. The 'free' verdict (grade '?') means the endpoint answers plain requests with data (HTTP 200, no payment envelope) and has never presented a payment challenge: a free resource with no payment flow to grade, unmeasured by design, not a negative verdict. For templated per-item endpoints that ARE payable, a varying payTo/price is EXPECTED (one wallet/price per item): the report surfaces 'stats.payToVaries'+'payToDistinct30d' and 'advertised.amountRange30d' as a 'payto-varies'/'price-varies' note rather than a 'payto-changed-recently' hijack error; always pay the payTo in the live 402 quote, not a cached listing. 'stats.scoredProbes30d' vs 'stats.excluded30d' show how many probes actually back the score. When the endpoint's host completed provider verification (domain control proven with a public key in /.well-known/x402-trust.txt plus a confirmed contact email), the report carries 'providerVerified': true, 'providerName' (the provider's own organization name) and 'providerContact' (the confirmed contact address); verified endpoints also carry the 'provider-verified' info flag; verification never changes the score. 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. Each paid call also refreshes the endpoint's free public snapshot (page, badge, card) immediately. Pay-per-call over x402; auto-pays if a wallet is configured, otherwise returns the price quote.
  • x402_endpoint_historyRaw observation time-series for a SPECIFIC x402 endpoint: listing/delisting/relisting events, advertised price changes, payTo changes, and probe results over the requested window (1-90 days). Each probe carries 'ts', 'ok', 'latencyMs', 'amount' plus its outcome 'status' (success, dns_error, timeout, http_error, ...), 'httpStatus', an 'error' detail and an 'excluded' flag; excluded probes carry no endpoint signal (rate limits, unresolved URL templates, resolver outages on our side) and never count as downtime. A 'probeSummary' aggregates the window: counts by status, longest failure streak, per-day failure breakdown. 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.
  • x402_find_alternativesGiven 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, 'priceCeiling' (true when amountUsd is an x402 'upto' authorization ceiling, not a fixed per-call price), and a free 'endpointPage' URL. It also carries 'hasDescription': false means the endpoint advertises no description, so its similarity was computed from service name + URL path tokens only, a weaker signal worth more skepticism than a description-based match. 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.
  • x402_semantic_searchFree-text SEMANTIC SEARCH across the entire monitored x402 endpoint catalog. Given a plain-language query (e.g. "weather forecast", "image generation", "EVM gas price oracle"), returns the up to 25 endpoints whose advertised purpose is semantically closest. Ranking is deterministic and fully specified: cosine similarity bucketed to whole percentage points first (80.3% and 80.5% are the same bucket, so sub-percent noise never outranks a better endpoint), then trust score (0-100), then described-before-undescribed, then endpoint id as a stable final tiebreak. Matches below a 0.5 cosine-similarity floor are dropped entirely, so a query can return fewer than the requested limit (or none). Endpoints that advertise no description are still matched: they are embedded from their service name and URL path tokens instead of a written description (host name as a last resort). The EXACT effect of a missing description: no fixed point deduction, and no direct similarity malus either; the only deterministic penalty is the described-before-undescribed tiebreak (at equal similarity bucket AND equal trust score, a described endpoint ranks first). Beyond that the effect is purely indirect: the shorter fallback text typically yields lower cosine similarity than a prose description, so undescribed endpoints tend to land in lower similarity buckets, by a query-dependent (never fixed) amount. Use this for DISCOVERY: find candidate endpoints for a capability before checking any of them in depth. Each match carries 'id', 'resource' URL, trust 'score' (0-100), 'grade' (A-F), raw cosine 'similarity' (0-1; ranking buckets it to whole percents), 'amountUsd' price (null when not advertised), 'priceCeiling' (true when amountUsd is an x402 'upto' authorization ceiling, not a fixed per-call price), 'description' when advertised, and a free 'endpointPage' URL. 'score'/'grade' are null for endpoints not yet scored. Deliberately NO verdict/recommendation or flag detail: the per-endpoint trust report (x402_trust_score) carries those. Pay-per-call over x402 (~$0.001); auto-pays if a wallet is configured, otherwise returns the price quote.
  • x402_trust_bulkScore up to 500 x402 endpoints in a SINGLE paid call. Returns the authoritative full-density trust score (0-100, grade A-F or '?' when unmeasured, recommendation proceed|caution|avoid|parameterize|unverified|not-payable|free), 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. Each recomputed row also refreshes that endpoint's free public snapshot (page, badge, card) immediately. 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.
  • x402_watch_createStart monitoring ONE x402 endpoint for 30 days. Get alerted on changes that break autonomous payment: payTo changes (possible takeover/rug — but for a templated per-item endpoint a payTo move is expected variance and is delivered as severity 'warn', not 'critical'), 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.
  • x402_watch_eventsRead 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.
  • x402_watch_editEdit 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.
  • x402_watch_cancelSoft-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.
  • +1 more on the listing page

Ready-to-paste client configs

Paste either block (or both) into your client config, e.g. claude_desktop_config.json or ~/.cursor/mcp.json. We only show a config when the install command is confirmed.

FiatDock

mcpServers (Claude Desktop / Cursor)
{
  "mcpServers": {
    "fiatdock": {
      "command": "npx",
      "args": [
        "-y",
        "fiatdock-mcp"
      ],
      "env": {
        "AGENT_PRIVATE_KEY": "YOUR_AGENT_PRIVATE_KEY_HERE",
        "FIATDOCK_TOOLS": "YOUR_FIATDOCK_TOOLS_HERE"
      }
    }
  }
}

X402 Trust MCP

mcpServers (Claude Desktop / Cursor)
{
  "mcpServers": {
    "x402-trust-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "x402-trust-mcp"
      ],
      "env": {
        "X402_PRIVATE_KEY": "YOUR_X402_PRIVATE_KEY_HERE",
        "X402_MAX_USD": "YOUR_X402_MAX_USD_HERE"
      }
    }
  }
}

Frequently asked questions

FiatDock is categorized under Finance & Fintech and uses a local stdio subprocess. X402 Trust MCP belongs to Finance & Fintech and uses a local stdio subprocess. Pick FiatDock for finance & fintech work and X402 Trust MCP for finance & fintech.

Copy the mcpServers block from the config section on this page into your client's config (for example claude_desktop_config.json or ~/.cursor/mcp.json), then fully restart the client.

FiatDock has no declared pricing — check the project's own site. X402 Trust MCP is listed as freemium — a free tier with paid plans. Auth: no auth required. If a server needs environment variables such as API keys, define them under the env key in your client's MCP config.

Yes. MCP clients support multiple servers: add fiatdock and x402-trust-mcp as separate keys in the same mcpServers object, and your assistant will call tools from either one.

On AllMCPs, FiatDock has a quality signal of 64/100 (Good) with 2 views, 0 installs and 1 GitHub stars. X402 Trust MCP has 64/100 (Good) with 4 views, 0 installs and 1 GitHub stars.