mcp.cashu.exchange
Planned as a stretch payment rail integration, allowing payment instructions and quotes for services via Lightning.
Provides a prepaid Mastercard payment rail for payable services. Supports payment quotes and can expose card credentials when configured.
Provides EV charging station search using OpenStreetMap/Overpass data, returning chargers near a point with default central Berlin.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@mcp.cashu.exchangefind EV chargers near central Berlin and quote the payment"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
mcp.cashu.exchange
A modular MCP service exchange: one registry, one gateway, and swappable payment rails for payable services — EV charging, food, and more. Built as a hackathon project (Berlin, 2026) to let AI agents discover and pay for real-world services.
Live: https://mcp.cashu.exchange · MCP endpoint: POST https://mcp.cashu.exchange/mcp
Route | What |
| redirects to the flagship chat demo at chat.cashu.exchange |
| Berlin cinema box-office chat (Cashu-settled, Yorck programme) |
| Leaflet map of Berlin EV chargers (OSM/Overpass, KV-cached) |
| MCP server (streamable HTTP, stateless) |
| JSON surfaces for the map/other clients |
The idea
An exchange, not a monolith. Three moving pieces:
Native plugins (public, in this repo) — safe to open-source: OpenStreetMap data, checkout-handoff payment instructions, generic contracts.
Federated downstreams (private, yours) — existing MCP servers (
oda-mcp,vipps-mcp, …) mounted through the gateway. Their code and personal data never enter this repo; only their URL + token (secrets).Payment rails — interchangeable
PaymentRailimplementations:2fiat-card(own-card checkout handoff — no card ever touches this repo), Cashu (via pecan for alternative numeraires), Lightning (stretch). See docs/PAYMENT.md.
Related MCP server: remit.md MCP Server
Layout
packages/
contracts/ The two contracts: ServiceProvider, PaymentRail
core/ Registry + MCP server + downstream gateway + catalog
plugin-berlin-charging/ OSM/Overpass charging stations (native plugin)
plugin-pay-2fiat/ Own-card checkout handoff rail (holds no card)
map/ Map frontend (placeholder: worker serves Leaflet page)
chat/ Chat frontend (placeholder: any MCP client works today)
apps/
worker/ Composition root → deploys to mcp.cashu.exchangeMCP tools
Tool | What it does |
| Catalog + native providers + payment rails |
| Tools from federated downstream MCP servers (europark parking) |
| EV chargers near a point (defaults: central Berlin) |
| Berlin cinema programme (category |
| Payment instructions for an amount, per rail |
Develop
npm install
npm test # vitest
npm run typecheck # tsc --noEmit (strict)
npm run check # biome
npm run dev # wrangler dev on :8787Copy .dev.vars.example → .dev.vars for local secrets (gitignored).
Deploy
Continuous deployment on push to main (.github/workflows/deploy.yml) via
wrangler. Required repo secrets (never committed — this repo is public):
CLOUDFLARE_API_TOKEN— scoped token: Workers Scripts:Edit + Zone:Read (+ DNS:Edit in thecashu.exchangezone for the custom domain)CLOUDFLARE_ACCOUNT_ID
Worker runtime secrets (wrangler secret put, per-name):
DOWNSTREAMS— JSON array[{"name":"oda-mcp","url":"https://…/mcp"}](plus aTOKEN-style secret per downstream if you extend the env parsing)
There are no card secrets, on purpose: participants pay with their own card on the merchant's hosted checkout page. See docs/PAYMENT.md.
Hygiene rules (why this repo stays clean)
Secrets only via
wrangler secret/.dev.vars(gitignored) / GitHub Actions secrets. Never in code, commits, or issues.Fixtures are synthetic. No real names, PANs, cookies, or order histories.
Reverse-engineered API knowledge lives in private kits; this repo consumes them through the gateway. A plugin that needs personal data is a private kit implementing the same MCP surface — not a plugin here.
No tool returns card details — there is no
payment.card_detailsand no card in any secret. The payment boundary is the merchant's hosted checkout URL, opened by the person paying (see docs/PAYMENT.md).
Publication & leak policy
What may be public: contracts/types, synthetic fixtures (inline in tests, with a provenance comment), architecture, infrastructure config that carries no credential material.
What never enters this repo:
Card numbers, license plates, phone numbers, tokens, cookies, session captures — in code, fixtures, docs, or comments.
Captured/sample payloads.
**/fixtures/captures/,**/captures/,*.har,*.pcapare gitignored. If a test needs a response shape, write a synthetic fixture and say so in a comment.Reverse-engineered API knowledge stays in private kits — this repo consumes it over MCP (the gateway), it does not vendor it.
Enforcement: node scripts/leak-scan.mjs . --history runs in CI on every PR
and push — PAN (Luhn-validated), Norwegian/German plates, phones, JWTs, Cashu
tokens, GitHub tokens, secret-shaped key/value pairs. Exceptions live in
scripts/leak-scan-allowlist.txt and require a # because: justification
line above each entry; unjustified entries fail the build.
Adding a component
New provider → new package implementing
ServiceProvider, register it inapps/worker/src/index.ts. Tools appear automatically (<id>.search).New rail → implement
PaymentRail, add toexchangeDeps.Federate an existing MCP server → append to
DOWNSTREAMS. Done.
License
MIT — see LICENSE. Map data © OpenStreetMap contributors (ODbL).
This server cannot be deployed
Maintenance
Related MCP Connectors
AI service marketplace — agents discover, call, and pay for API services automatically.
Marketplace and payment rail for AI agents: list, buy and settle with signed receipts.
Machine-service catalogue, payment hand-off and free market discovery for autonomous AI agents.
Directory of APIs, merchants, and tools AI agents can actually use.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceMCP server for AgentPay — the payment gateway for autonomous AI agents. Fund a wallet once, give your agent the key, and it discovers, provisions, and pays for tool APIs on its own. One key, every tool.112 npm1MIT
- AlicenseNot gradedqualityFmaintenanceEnables AI agents to perform financial transactions such as direct payments, escrows, and bounty management using natural language with zero code integration. It provides a comprehensive suite of tools for fund streaming, subscriptions, and reputation tracking to facilitate secure agent-to-agent commerce.5 npmMIT
- FlicenseNot gradedqualityFmaintenanceEnables AI agents to discover, evaluate, and call any x402 API service with automatic USDC payment, including tools for wallet setup, service catalog browsing, recommendations, health checks, and direct API calls.16 npm-
- AlicenseAqualityBmaintenanceEnables AI agents to discover, inspect, and pay for paid HTTP and MCP services using USDC on Solana with a self-custodial wallet.439 npm7Apache 2.0