What an agent can do
Every question above is answered from public venue data. Routeur never sees an account, a wallet or a position, and there is no tool that takes one.
Everything is read-only
Every MCP tool is annotatedreadOnlyHint: true, idempotentHint: true, destructiveHint: false and openWorldHint: false, and every REST operation is a GET. There is no write path: no orders, no follows, no posting, no account changes. Routeur is not a broker, exchange or adviser. If user-scoped actions ever arrive they will be a separate, clearly marked surface behind OAuth, not a silent addition to these tools.
The three surfaces
The MCP server runs each tool through the same handler that serves the REST API, in-process, carrying your key. Validation, caching, rate limits and metering are identical to a REST call, and the endpoint tools return the endpoint’s JSON body unchanged.
Authentication
Send your Routeur API key asAuthorization: Bearer <key> or X-API-Key: <key> on every request, to every surface; both headers were accepted by the MCP endpoint when this page was verified. Keys look like rk_live_<12-character id>_<43-character secret>, are shown once, and are issued by the Routeur team during the private preview. A request without a key gets 401 with WWW-Authenticate: Bearer realm="routeur"; a malformed, unknown or revoked key gets 401 as well. Keep the key server-side or in a desktop client’s config, never in a browser, a public repository or a URL. See Authentication.
What a tool call costs
Your MCP calls and your REST calls are the same traffic on the same key, so the per-minute limit and daily quota of your tier apply to both together.
Each tool’s description states its cost. When a call runs over a limit, it comes back as a tool result with
isError: true and a message naming rate_limited or daily_quota_exceeded and the seconds to wait; the protocol call itself succeeds, so the model can read the reason and wait. One tool call is bounded at 25 seconds including every REST request it makes.
The server
What it exposes
Tools. Five composed tools answer whole questions and return compact rows with the ids to drill into:find_opportunities, compare_venues, explain_relation, market_snapshot, search_markets. Every documented GET endpoint is also a tool named after its operation (get_market, list_relations, get_market_book, get_relation_proof, …), taking that endpoint’s parameters and returning its JSON body. A new endpoint becomes a tool when it is added to the API. See the tool reference.
Resources. Four concept pages an agent should read before quoting a number, served as text/markdown and free to read: routeur://concepts/glossary, routeur://concepts/relations, routeur://concepts/leads-and-fees, routeur://concepts/prices. The OpenAPI document at routeur://openapi.json. Three live lists, each costing one request: routeur://categories, routeur://topics and the template routeur://topics/{slug}.
Prompts. scan_for_mispricings (category, min_volume_usd), brief_me_on_event (event, required) and backtest_price_band (band, side, category, venue, horizon_days). Each returns one user message naming the tools to call in order and the traps to avoid. The workflows page walks through the same sequences with observed output.
Instructions. initialize returns server instructions that summarise the five composed tools and the three rules below; clients that honour instructions show them to the model automatically.
What the model must know before it quotes a number
These are the misreadings that happen most. The server states them in its instructions and its concept resources; the reading order page expands them into the ten facts an agent needs.- Prices are asks per contract that pays $1, as exact decimal strings such as
"0.52". The spread isyes_ask_usd + no_ask_usd - 1, what crossing costs; a wide spread is a thin book, not an edge. - A relation is proven from structured terms and exact arithmetic, never guessed. No relation coming back means none was proven, not that two markets are unrelated.
- A gap between venues is only money when both books have size and fees leave something. Only leads with
depth.executable: truecould be filled at a profit when the books were read. - Strategy and calibration figures are settled history, before fees, and are not a forecast.
- Kalshi is read every 15 minutes, Polymarket every 30, trades every minute, and the graph is rebuilt hourly; every graph-derived answer names its
graph_run.
Connect a client
Claude Code & Claude Desktop
One command, or a custom connector with a request header.
Cursor
A
mcp.json entry with the key from the environment.OpenAI: Responses API, Agents SDK, Codex, ChatGPT
Hosted MCP tool, a Python client, or the Codex CLI.
Any MCP client
The protocol over curl, SDK clients, and
mcp-remote for stdio-only clients.Related
- Reading order for LLMs: the pages to read, in order, and the ten facts to hold.
- Tool reference: every tool and argument, generated from the server.
- Agent workflows: five worked sequences with observed output.
- Rate limits, Data freshness, Data and limitations.
- Plain-text descriptions for agents that read a site first:
https://routeur.app/llms.txtandhttps://routeur.app/llms-full.txt; this documentation site serveshttps://docs.routeur.app/llms.txtand/llms-full.txtas well.