{
  "markdown": "# fiatdock-mcp\n\nA marketplace where AI agents discover and **pay each other per call in USDC** over x402 — settlement goes straight to the seller's wallet, so there are no accounts, no API keys and no subscriptions. Plus first-party on-chain Base data, token-safety screening, and a **non-custodial** USDC ↔ bank ramp (conversion, KYC and custody are handled by a licensed, regulated payment partner; FiatDock never touches funds).\n\n## Setup — two steps\n\n```bash\n# 1. Give the agent a payment wallet (the step everyone skips — without it every paid\n#    tool stops at an HTTP 402 \"payment required\" challenge and NOTHING works past free):\n#    create a FRESH wallet, fund it with a few USDC on Base, and export its key:\nexport AGENT_PRIVATE_KEY=0x...   # dedicated low-balance wallet — never your main key\n\n# 2. Run the server — 18 MCP tools over stdio, paid calls settle automatically:\nnpx -y fiatdock-mcp\n```\n\nNo wallet yet? Everything marked **free** below still works — start with `get_quote` and `token_price`, add the wallet when you want the paid tools.\n\n**4 ramp tools** (USDC ↔ your own bank) + **11 data tools** (crypto + on-chain intelligence) + **3 marketplace tools** (discover & call other agents' MCP services) — all non-custodial. Take only the group you need with [`FIATDOCK_TOOLS`](#pick-your-tools--fiatdock_tools):\n\n| Tool | Cost | What it does |\n|---|---|---|\n| `get_quote` | free | Live rate + the exact amount received, net of every provider fee (incl. the 1% service commission) |\n| `create_offramp_session` | $1.00 USDC via x402 | Agent's USDC → owner's own bank account; returns a one-time `checkoutUrl` |\n| `create_onramp_session` | $1.00 USDC via x402 | Owner's own fiat → USDC to the agent's wallet (address locked) |\n| `get_order_status` | free | Track an order by `partnerOrderId` |\n| `token_price` | free | Real-time price/liquidity/volume/change for any EVM token by contract address (DexScreener), or a major symbol spot price |\n| `token_safety` | $0.01 USDC via x402 | On-chain safety verdict (honeypot / tax / owner-privilege / holder-concentration) `safe\\|caution\\|danger` (GoPlus + DexScreener); not charged if data unavailable |\n| `stablecoin_intel` | $0.002 USDC via x402 | Stablecoin supply, $1.00 peg deviation & per-chain breakdown incl. Base (DefiLlama); not charged if data unavailable |\n| `gas_price` | $0.001 USDC via x402 | Base gas price (wei + gwei) |\n| `block_number` | $0.001 USDC via x402 | Base latest block height + timestamp |\n| `eth_balance` | $0.001 USDC via x402 | ETH balance of any address on Base |\n| `usdc_balance` | $0.001 USDC via x402 | USDC balance of any address on Base |\n| `token_metadata` | $0.002 USDC via x402 | ERC-20 name / symbol / decimals / total supply on Base |\n| `tx_status` | $0.001 USDC via x402 | Base tx: success or failed, block, confirmations, gas, from/to |\n| `address_intel` | $0.005 USDC via x402 | Enrich any Base address — EOA/contract/ERC-20, nonce, ETH+USDC balance, keyless security verdict (phishing / sanctioned / mixer) |\n| `token_report` | $0.05 USDC via x402 | Full ERC-20 report in ONE call: price + liquidity + volume **and** the complete safety verdict |\n| `search_services` | free | Search the FiatDock marketplace of MCP services — matches each listed server's own tool names, not just its description |\n| `get_service` | free | One listing's full detail + how to call it |\n| `call_service` | per-listing (x402) | Invoke a listed service. Paid calls settle 99% → seller + 1% → FiatDock (100% → seller during that seller's first month), non-custodially. Pays automatically from `AGENT_PRIVATE_KEY`, **or** pass your own signed `payment` — see below |\n\n- **Remote endpoint (no install):** `https://fiatdock.com/mcp` — Streamable HTTP, stateless, CORS-enabled. It holds no key, so paid tools answer with the x402 402 challenge — **and you can complete the purchase from there** by signing it yourself (below).\n\n### Buying with your own wallet\n\n`AGENT_PRIVATE_KEY` is the easy path, but it is **one** wallet chosen at install time. If your agent has its own signer — Coinbase AgentKit, a wallet MCP server, anything — buy in two calls on either transport:\n\n```\n1. call_service({id, args})            -> 402: { paymentRequired, howToPay }\n2. sign every entry in paymentRequired.accepts, base64 the x402 payload\n3. call_service({id, args, payment})   -> the seller's response\n```\n\nSend the **same** `id` and `args` on the second call — the request quoted in the 402 is the request that gets paid for. A caller-supplied `payment` takes precedence over `AGENT_PRIVATE_KEY` (and skips `FIATDOCK_MAX_PRICE_USD`, which exists to bound *automatic* spending, not yours). A 402 charges nothing — it is the price, not a bill, so retrying is always safe.\n- **Official MCP Registry:** [`com.fiatdock/fiatdock-mcp`](https://registry.modelcontextprotocol.io/v0.1/servers?search=com.fiatdock/fiatdock-mcp)\n- **No MCP?** `GET https://fiatdock.com/tools.json` — the same tools as OpenAI/Gemini function-calling schemas mapped to the plain [REST API](https://fiatdock.com/openapi.json).\n- **Per-client setup** (Claude Desktop/Code, Cursor, VS Code, Windsurf, Gemini CLI, OpenAI Agents SDK, LangChain, CrewAI): [docs/INTEGRATIONS.md](docs/INTEGRATIONS.md) · runnable examples: [docs/examples/](docs/examples/)\n\n**Compliance (binding):** users must be 18+, in Portugal or supported EU/EEA countries (not available in the UK or restricted countries). **Own-account rule:** the wallet sending crypto and the bank account receiving fiat must belong to the same person — the agent's owner. No third-party funds, no aggregation, no person-to-person transfers. Crypto is volatile; quotes are indicative; nothing here is investment advice. [Terms](https://fiatdock.com/terms) · [Privacy](https://fiatdock.com/privacy) · [Risk warning](https://fiatdock.com/risk)\n\n## Environment\n\n| Variable | Required | Purpose |\n|---|---|---|\n| `FIATDOCK_URL` | no (default `https://fiatdock.com`) | FiatDock API base URL |\n| `FIATDOCK_TOOLS` | no (default `all`) | Install only the tool groups you need, so the rest don't take up your agent's context. See below. |\n| `AGENT_PRIVATE_KEY` | only for paid tools | Agent wallet key used to auto-pay the $1.00 x402 fee. Without it, free tools still work and paid tools return the 402 challenge. **Use a dedicated low-balance wallet; never your main key.** |\n| `FIATDOCK_MAX_PRICE_USD` | no (default: no ceiling) | Price-bait guard for `call_service`: refuse to pay if a paid gateway call's **total** x402 charge exceeds this many USD. Overridable per call via the `maxPriceUsd` argument. |\n\n### Pick your tools — `FIATDOCK_TOOLS`\n\nAll 18 tools install by default. A tool list is the first thing a model reads, so if you only\ncame for one thing, take only that:\n\n| Group | Tools | For |\n|---|---|---|\n| `ramp` | 4 | Quotes, USDC↔bank sessions, order status |\n| `data` | 11 | Token price/safety/report, gas, balances, tx status, address intelligence |\n| `marketplace` | 3 | Find, inspect and pay for other agents' MCP services |\n\n```bash\nFIATDOCK_TOOLS=ramp                # just the cash-out surface (4 tools)\nFIATDOCK_TOOLS=ramp,marketplace    # cash out + buy from other agents (7 tools)\n# unset, or \"all\"                  # everything (18 tools)\n```\n\nAn unrecognised value serves **all** tools rather than none — a typo should never leave you\nwith an empty server. Switching off `marketplace` also withdraws the `fiatdock://catalog`\nresource, so nothing marketplace-related enters your context.\n\n### Resources\n\n`fiatdock://fees` · `fiatdock://coverage` · **`fiatdock://catalog`** — the live marketplace\ncatalog (name, price per call, category, tool count and a sample of tool names), so your agent\nknows what is for sale without spending a tool call to ask.\n\n## Claude Desktop / Cursor / Windsurf / Gemini CLI\n\nAll four read the same `mcpServers` shape (file: `claude_desktop_config.json`, `~/.cursor/mcp.json`, `~/.codeium/windsurf/mcp_config.json`, `~/.gemini/settings.json`):\n\n```json\n{\n  \"mcpServers\": {\n    \"fiatdock\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"fiatdock-mcp\"],\n      \"env\": { \"AGENT_PRIVATE_KEY\": \"0x...\" }\n    }\n  }\n}\n```\n\n## Claude Code\n\n```bash\nclaude mcp add fiatdock -e AGENT_PRIVATE_KEY=0x... -- npx -y fiatdock-mcp\n# or remote, no install (free tools + x402 challenges):\nclaude mcp add --transport http fiatdock https://fiatdock.com/mcp\n```\n\n## VS Code (Copilot agent mode)\n\n`.vscode/mcp.json`:\n\n```json\n{\n  \"servers\": {\n    \"fiatdock\": { \"type\": \"stdio\", \"command\": \"npx\", \"args\": [\"-y\", \"fiatdock-mcp\"], \"env\": { \"AGENT_PRIVATE_KEY\": \"0x...\" } }\n  }\n}\n```\n\n## OpenAI Agents SDK / LangChain / CrewAI\n\nAll three consume MCP servers natively — point them at `npx -y fiatdock-mcp` (stdio) or `https://fiatdock.com/mcp` (Streamable HTTP):\n\n```python\n# OpenAI Agents SDK\nfrom agents.mcp import MCPServerStdio\nasync with MCPServerStdio(params={\"command\": \"npx\", \"args\": [\"-y\", \"fiatdock-mcp\"],\n                                  \"env\": {\"AGENT_PRIVATE_KEY\": \"0x...\"}}) as fiatdock: ...\n\n# LangChain (langchain-mcp-adapters)\nfrom langchain_mcp_adapters.client import MultiServerMCPClient\nclient = MultiServerMCPClient({\"fiatdock\": {\"transport\": \"streamable_http\", \"url\": \"https://fiatdock.com/mcp\"}})\n\n# CrewAI (crewai-tools)\nfrom crewai_tools import MCPServerAdapter\ntools = MCPServerAdapter({\"url\": \"https://fiatdock.com/mcp\", \"transport\": \"streamable-http\"})\n```\n\n## How a typical off-ramp flows\n\n1. `get_quote` (free) — agent checks the rate and the full fee breakdown.\n2. `create_offramp_session` — pays $1.00 in USDC automatically via x402, receives `checkoutUrl` + `partnerOrderId`.\n3. The agent forwards `checkoutUrl` to its human owner (valid ~2 hours). The owner gives the provider a phone number and email; identity documents are needed only above ~CHF 999 per rolling 30 days — no account, no password.\n4. `get_order_status` (or a signed callback) confirms `COMPLETED`.\n\n## Security\n\nFound a vulnerability? Please report it privately to **osama@fiatdock.com** — see [SECURITY.md](SECURITY.md). Never open a public issue for security reports.\n\n## License\n\n[MIT](LICENSE)\n",
  "bytes": 10114,
  "sha": "c11b9c0b30f98782f01d7cd4a4a704317a394c01e8a5a0c469e21f91dce99585",
  "repo_slug": "fiatdock/fiatdock",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_com_fiatdock_fiatdock_mcp_458606f8/readme"
}