Give Claude (or Cursor) live Polymarket prediction-market data with one MCP server
Polymarket has a public API. Your AI agent — Claude Desktop, Cursor, Cline — does not speak it. So when you ask "what prediction markets just crashed?" the agent either makes something up, scrapes a stale wiki, or politely declines.
I got tired of that. polymarket-mcp-pro is a Model Context Protocol server that exposes seven read-only tools to any MCP-compatible client. The agent can list markets by volume, pull historical price snapshots, find recent crashes, and inspect order-book depth — all over a structured JSON tool surface, no HTTP code in your prompts.
It's free, open source, and backed by a real dataset (not a toy demo).
The numbers behind it
The MCP server is just the agent-facing skin. The data layer behind it is api.protodex.io, which indexes:
- 13,964 Polymarket markets
- 10.8M+ price snapshots (one every 15 minutes per active market)
- $11.7B+ cumulative volume covered
- Refreshed continuously, served via a stable REST surface
When you ask the agent "show me markets that dropped 15% in the last 4 hours," it's running against that whole corpus, not a 10-market sample.
Install in 30 seconds
If you have uv:
uvx --from polymarket-mcp-pro polymarket-mcp
Or, classic pip:
pip install polymarket-mcp-pro
The PyPI distribution name is polymarket-mcp-pro because the bare polymarket-mcp was taken by an unrelated package. The CLI and import path both stay polymarket_mcp.
Wire it into Claude Desktop
Edit ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):
{
"mcpServers": {
"polymarket": {
"command": "uvx",
"args": ["polymarket-mcp"]
}
}
}
Restart Claude Desktop. The polymarket tools appear in the tool picker.
Cursor: same JSON block under Settings → Features → MCP Servers. Cline, Continue, any other MCP client over stdio: same command.
The seven tools
| Tool | What it does |
|---|---|
get_stats |
Dataset-wide counts and freshness |
list_markets |
Paginated list with category, search, sort |
get_market |
Single market detail with CLOB token ids |
get_prices |
Historical price snapshots for a Yes/No outcome |
get_crashes |
Markets that dropped >= N% in the last H hours |
get_categories |
Category breakdown with market counts and volume |
get_orderbook |
Live bid/ask depth for a CLOB token id |
Everything is read-only. There is no order placement, no signing, no wallet. The agent observes; you decide.
What I actually use it for
Three workflows, real not hypothetical:
1. Crash scanner as a morning routine. "Run get_crashes with threshold 15% over 4 hours, filter to volume > $100k, summarize the top 5." The agent comes back with a structured list and a paragraph each on what each market is. Most days zero matches. Some days something interesting.
2. Researching a news event. When something happens in the world that has prediction markets — election, ruling, central-bank meeting — I ask the agent to pull every related market plus its 24h price action. The agent picks the right markets via search; the data is fresh because it's queried at prompt time, not from training data.
3. Building strategy notes. I keep a Markdown file of strategy hypotheses. The agent appends "current state" sections by calling the tools — "as of this query, the resolution market for X is trading at Y with Z volume in the last day." No copy-paste from a Polymarket browser tab.
Why this isn't just a thin wrapper
A thin wrapper would forward the agent's question to Polymarket's CLOB API and call it a day. Two problems with that:
- The CLOB API is rate-limited and returns raw orderbook diffs. An agent burning tokens decoding diff sequences is wasteful.
- There is no historical price endpoint on the live API. If you want price 18 hours ago, you have to maintain your own snapshot pipeline.
polymarket-mcp-pro talks to api.protodex.io, which has been running that snapshot pipeline since early 2026. The historical depth (10.8M+ points) is the thing the agent gets that no thin-wrapper alternative provides.
What's coming in v0.2
A WebSocket subscription transport. Right now get_crashes is poll-based — the agent asks, the server returns the current snapshot. v0.2 will let the agent subscribe to a stream and get pushed updates when a crash threshold is breached, without re-asking. The MCP spec supports this natively; it just needs glue code on my end.
Get the historical dataset too
The MCP server gives your agent live access. If you want the full historical corpus as a flat CSV for offline analysis, backtests, or building your own thing on top — that's available here. 10.8M+ price records, 13,964 markets, $11.7B+ volume, one-time purchase.
The MCP server stays free either way. The dataset is the optional commercial layer for people who want bulk access without hammering an API.
Links
- GitHub: https://github.com/LuciferForge/polymarket-mcp
- PyPI: https://pypi.org/project/polymarket-mcp-pro/
- Sister project (free auditor for your existing trades): https://github.com/LuciferForge/pnl-truthteller
- Issues / requests: drop them on the repo
If you build something with this, I want to hear about it. Open a GitHub Discussion on the repo or comment below.
Top comments (0)