About SwitchBord
SwitchBord finds available sellers for agents making paid API calls over x402 and MPP. It is for agent developers choosing services by task, and checks and ranks candidates live with backups; the agent pays sellers directly.
Key features
- 01Match API sellers to plain-language tasks
- 02Combine x402 and MPP endpoints
- 03Check candidate seller health live
- 04Rank by health, speed, and price
- 05Return backup sellers
- 06Accept optional call-result reports
Use cases
- 01Choose a paid API for web search
- 02Find available sellers for ETH price data
- 03Switch to a backup when a seller fails
- 04Filter endpoints by payment protocol and price limit
MCP support
SwitchBord provides a stateless remote MCP server with tools to find paid endpoints by task, list markets, and report call results.
Configuration
Remote servers need no local install. Pick your client, then copy the config or install in one click.
https://api.switchbord.xyz/mcpclaude mcp add --transport http 6ixtyy-switchbord https://api.switchbord.xyz/mcp{"mcpServers":{"6ixtyy-switchbord":{"type":"http","url":"https://api.switchbord.xyz/mcp"}}}Open in Cursor{"servers":{"6ixtyy-switchbord":{"type":"http","url":"https://api.switchbord.xyz/mcp"}}}Open in VS Code{"mcpServers":{"6ixtyy-switchbord":{"type":"http","url":"https://api.switchbord.xyz/mcp"}}}{"mcpServers":{"6ixtyy-switchbord":{"serverUrl":"https://api.switchbord.xyz/mcp"}}}Run commands in a terminal; paste JSON into the client’s MCP config and restart. Servers that need sign-in will prompt on first connect.
Tools
Details
From the project READMEWebsite · Quick start · API · MCP setup · Self-host
Agents can now pay for APIs on their own, over x402 and MPP. There are tens of thousands of paid endpoints, and many of them are down, slow or overpriced at any given moment. SwitchBord tells your agent which ones to call. It asks for a task in plain words, like "search the web" or "ETH price", and gets back the sellers that are working, cheapest and fastest right now, checked live just before the answer, plus backups.
| Free and open | No signup, no keys, no auth. MIT-licensed code you can read, run and fork. |
| Never touches your money | Your agent pays the seller directly with its own wallet. SwitchBord only says who to call. |
| Live, not a directory | The top candidates get a free, unpaid check right before the answer, so dead sellers drop out. |
| One inventory, every protocol | Every endpoint on Coinbase Bazaar (x402) and mpp.dev (MPP), rebuilt daily and grouped into markets of interchangeable sellers. |
Quick start
Claude Code
claude mcp add --transport http switchbord https://switchbord.vercel.app/mcp
Cursor, Windsurf, Cline and any client that reads an mcpServers block:
{ "mcpServers": { "switchbord": { "type": "http", "url": "https://switchbord.vercel.app/mcp" } } }
Any agent, one paste. Add this to CLAUDE.md, AGENTS.md or a system prompt (more in AGENTS-SNIPPET.md):
Before you pay any x402 or MPP API, ask SwitchBord who to call (free, no key).
MCP: https://switchbord.vercel.app/mcp or GET https://switchbord.vercel.app/route?task=<what you need>&accepts=x402:base:usdc
Call the top result; if it fails, try the next.
Building your own agent? integrations/switchbord-tool.mjs is a dependency-free tool with OpenAI-style and Anthropic-style schemas.
Selling on x402 or MPP? Show a live badge on your README:  (details).
Plugins, Gemini CLI and other clients
- Claude Code plugin:
/plugin marketplace add 6ixtyy/switchbord, then/plugin install switchbord@switchbord - Gemini CLI:
gemini extensions install https://github.com/6ixtyy/switchbord - Claude Desktop, VS Code and others: see MCP.md
Or just call the HTTP API:
curl "https://switchbord.vercel.app/route?task=search%20the%20web&accepts=x402:base:usdc&max_price=0.05"
What you get back
A real answer for "search the web", trimmed to two candidates:
{
"mode": "market",
"market": "web-search",
"sellersMatched": 99,
"candidates": [
{
"rank": 1,
"service": "StableEnrich",
"method": "POST",
"url": "https://stableenrich.dev/api/exa/search",
"priceUsd": 0.01,
"pay": ["x402:base:usdc"],
"charges": "after_success", // x402: only charged when the seller answers OK
"input": { "body": { "query": "…", "numResults": 10 } },
"up": true, "ms": 264 // checked live just now
},
{
"rank": 2,
"url": "https://win.oneshotagent.com/v1/tools/search",
"priceUsd": 0.001,
"up": true, "ms": 217
// …
}
]
}
Every field is documented in API.md. Runnable snippets are in examples/.
How it works
sequenceDiagram
participant A as Your agent
participant S as SwitchBord
participant P as Sellers (x402 / MPP)
A->>S: "search the web", accepts x402:base:usdc, max $0.05
S->>P: free, unpaid check of the top matches
P-->>S: payment terms + response time
S-->>A: ranked sellers, plus backups
A->>P: call the best one and pay it directly
A-->>S: (optional) report how it went
- Inventory. Every day SwitchBord pulls every listed endpoint from Coinbase Bazaar and mpp.dev, merges them and groups interchangeable sellers into markets.
- Match. Your task is matched to a market. If none fits, you still get the closest single endpoints.
- Check live. The top candidates get an unpaid request that reads their payment terms, so sellers that are down or misconfigured drop out.
- Rank. Candidates are ordered by health, speed, price and real-world results. The full logic is in
src/router.tsandsrc/health.ts.
Reference
| MCP tool | Use it to |
|---|---|
find_paid_endpoint | Get the best sellers for a task, with backups. Pass accepts (e.g. ["x402:base:usdc"]) so you only get sellers you can pay. |
list_markets | See the markets and how many sellers each has. |
report_result | Optional: say how a call went, which improves rankings for everyone. |
| HTTP endpoint | What it returns |
|---|---|
GET /route?task=… | Ranked sellers for a task, checked live |
GET /markets | Markets and seller counts |
GET /endpoints/:id | One endpoint from the inventory |
POST /report | Optional: how a call went |
GET /healthz | Inventory size and when it was last rebuilt |
POST /mcp | The MCP server (streamable HTTP, stateless) |
Paying sellers
SwitchBord does not pay for you, hold funds, or guarantee sellers. To call a paid seller, your agent needs its own wallet and an x402 or MPP client, for example Coinbase's @x402/fetch. Each candidate says how it charges:
after_success(x402): charged only when the seller answers OK, so trying a backup after a failure is safe.before_handler(MPP): charged up front.
Run it yourself
The hosted service at switchbord.vercel.app runs this code. You can run your own copy with Node 22:
git clone https://github.com/6ixtyy/switchbord && cd switchbord
npm ci
npm run inventory # pull Bazaar + mpp.dev, merge and classify → data/inventory.json
npm start # API and MCP on http://localhost:8402
Everything works with no configuration. These environment variables are optional:
| Variable | What it does | Without it |
|---|---|---|
PORT | Port for the local server | 8402 |
SB_REBUILD_MS | How often the local server rebuilds the inventory | every 6 hours |
DATABASE_URL or POSTGRES_URL | Saves every live check to Postgres | data/checks.jsonl |
BLOB_READ_WRITE_TOKEN | Keeps state in Vercel Blob between serverless runs | local files |
CRON_SECRET | Lets your scheduler run the rebuild and sampling routes at any time | open to anyone, rate-limited |
To deploy on Vercel, import the repo: vercel.json builds the inventory and the function, and runs the daily rebuild.
Code map
| Path | What |
|---|---|
src/sources/ | Pull listings from Coinbase Bazaar (x402) and mpp.dev (MPP) |
src/inventory.ts, markets.ts, labels.ts | Merge into one inventory, group into markets, label payment options |
src/health.ts | Free live checks: an unpaid request that reads the seller's 402 |
src/router.ts | Matching, ranking and backups |
src/history.ts | Check history (Postgres or a local file) |
src/app.ts, mcp-tools.ts | HTTP API and the remote MCP server |
src/server.ts, vercel.ts | Local server and Vercel entry |
site/ | switchbord.xyz: one static page, no build step |
scripts/ | Vercel build and the API contract check |
examples/ | curl, Node and MCP snippets |
Contributing
Issues and pull requests are welcome. Bad rankings, dead sellers, new protocols and docs fixes are all useful. Read CONTRIBUTING.md first; for security issues see SECURITY.md. What changed: CHANGELOG.md. For language models: llms.txt. Privacy: PRIVACY.md.
License
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.