https://api.routeur.app/mcp. Any client that speaks the Model Context Protocol — Claude, Cursor, ChatGPT, the OpenAI Agents SDK, your own agent — can read every market on Kalshi and Polymarket, the relations proven between their contracts, the mispricings those relations expose, and strategies measured against settled history, without writing a line of HTTP.
Claude Code & Claude Desktop
One command, or one block of JSON.
Cursor
Add it to
mcp.json and use it from Composer.ChatGPT & the OpenAI Agents SDK
Hosted MCP tools, or a few lines of Python.
Any MCP client
Streamable HTTP directly, or
mcp-remote for stdio-only clients.What the server is
A request without a key is refused with
401 and a WWW-Authenticate: Bearer challenge, exactly like the REST API.
What it exposes
Tools: one per endpoint, plus five composed ones
Tools: one per endpoint, plus five composed ones
Every documented
GET endpoint is a tool, generated from the same OpenAPI description this reference is built from. The tool is named after the operation (list_opportunities, get_market, list_relations), its arguments are that endpoint’s parameters, and its result is that endpoint’s JSON body, unchanged. When an endpoint is added to the API, the tool appears with it.On top of those, five composed tools answer a whole question in one call and return compact rows a model can actually read: find_opportunities, compare_venues, explain_relation, market_snapshot and search_markets. See the tool reference.Resources: the background needed to read a number
Resources: the background needed to read a number
routeur://concepts/glossary, routeur://concepts/relations (how a relation is proven), routeur://concepts/leads-and-fees (what depth, executable and estimated fees mean), routeur://concepts/prices (asks, spread, volume, freshness), routeur://openapi.json, plus the live routeur://categories, routeur://topics and routeur://topics/{slug}.Prompts: three workflows worth running
Prompts: three workflows worth running
scan_for_mispricings (sweep a category for prices that break a proven relation), brief_me_on_event (a sourced briefing on one event), backtest_price_band (what buying a price band returned in settled history). Each names the tools to use and the traps to avoid.Keys, limits and metering
Your MCP calls and your REST calls are the same traffic on the same key.- A tool call counts as the API requests it makes.
get_marketcosts one;market_snapshot, which reads five endpoints, costs five. Each tool’s description says what it costs. - Protocol messages —
initialize,tools/list,prompts/list— are authenticated but not counted. - The per-minute limit and daily quota are your tier’s. Over either, the tool call comes back as a tool error naming
rate_limitedordaily_quota_exceeded, with the seconds to wait. - Reading
routeur://categories,routeur://topicsor a topic counts as one request; the concept pages and the OpenAPI resource cost nothing.
Everything is read-only
Every tool is markedreadOnlyHint and idempotentHint. Nothing on this server places an order, follows a market, posts anything or changes an account — Routeur is not a broker, exchange or adviser, and there is no write path today. User-scoped actions, if they arrive, will be a separate, clearly-marked surface behind OAuth, never a silent addition to these tools.
What an agent should know before it quotes a number
Not using MCP?
https://routeur.app/llms.txt and https://routeur.app/llms-full.txt describe Routeur for agents in plain text, and the REST API is the same data over ordinary HTTP.