MCP server exposing Polymarket + Kalshi + Manifold to Claude/LLMs, with 3-venue arb discovery.
Project description
prediction-market-mcp
Give Claude (or any MCP-compatible LLM) a live view into Polymarket + Kalshi + Manifold, plus a single tool that hunts for 3-venue arb.
Just want to look at Polymarket data without installing an MCP server? Try the live dashboard: https://creampig666.github.io/prediction-markets-live/
An MCP server in ~400 lines of Python. No keys, no auth, no signup. Stdio transport, Claude Desktop ready.
You: "Find me anything interesting on bitcoin right now."
Claude (calls find_arb_opportunities("bitcoin")):
"Polymarket has 'BTC > $150k by Jun 30' at 12%. Kalshi's matched
contract is at 19%. Manifold's 'Bitcoin to $150k in 2026?' is at 22%.
12 percentage points between Polymarket and Manifold — worth a
look at whether they're really the same underlying..."
What it exposes
11 tools across 3 venues:
| Tool | What it does |
|---|---|
polymarket_top_markets(limit) |
Top Polymarket markets by 24h volume |
polymarket_get_market(slug) |
Single market detail by slug |
polymarket_search(query, limit) |
Keyword search across active markets |
kalshi_top_events(limit) |
Active Kalshi events |
kalshi_get_market(ticker) |
Single Kalshi market by ticker |
kalshi_markets_for_event(event_ticker) |
All sub-markets under a Kalshi event |
kalshi_search_events(query) |
Keyword search across open Kalshi events |
manifold_top_markets(limit) |
Recent BINARY Manifold markets |
manifold_get_market(slug) |
Single Manifold market by slug |
manifold_search(query, limit) |
Keyword search across Manifold |
find_arb_opportunities(query, min_divergence_pp) |
3-venue search + cross-pair divergence report. Returns matched pairs (any 2 of 3 venues) ranked by abs implied-prob gap. |
All tools return structured JSON ready for the LLM to summarize.
Install
pip install git+https://github.com/creampig666/prediction-market-mcp.git
Or local dev:
git clone https://github.com/creampig666/prediction-market-mcp.git
cd prediction-market-mcp && pip install -e .
Hook it up to Claude Desktop
Edit your Claude Desktop config (on Windows: %APPDATA%\Claude\claude_desktop_config.json, on Mac: ~/Library/Application Support/Claude/claude_desktop_config.json):
{
"mcpServers": {
"prediction-market": {
"command": "prediction-market-mcp"
}
}
}
Restart Claude Desktop. The 8 tools above will appear in the tool list and you can ask things like:
- "What are the biggest Polymarket markets right now?"
- "Find Kalshi markets about the next Pope."
- "Run
find_arb_opportunitieson 'iran' and tell me which one has the biggest gap."
Hook it up to other MCP clients
Anything that speaks MCP stdio works. The server has no state and no config — just run prediction-market-mcp and pipe JSON-RPC over stdin/stdout.
How find_arb_opportunities works
- Search all three venues (Polymarket / Kalshi / Manifold) for the keyword.
- For Kalshi, drill from matched events into their sub-markets.
- Build a flat candidate list of
{venue, label, yes_price, url}per matched market. - Enumerate all cross-venue pairs (poly×kalshi, poly×manifold, kalshi×manifold).
- Compute divergence in percentage points, filter by
min_divergence_pp(default 3), sort desc, return top 30.
Caveats the LLM should know:
- It's a keyword match, not a semantic match. "BTC 150k" on one venue might be matched to "Bitcoin 150,000" on the other. Edge cases will produce false pairs.
- The matched markets may not be exactly the same underlying (timeframe, strike, resolution criteria can differ).
- Polymarket prices in this API are mid; Kalshi prices are last-trade. They're not directly tradeable.
- All of which is why the LLM should treat results as leads to investigate, not signals to act on.
Family
- 🟢 polywatch — Polymarket alert CLI
- 🟢 kalshiwatch — Kalshi alert CLI
- 🟢 manifold-watch — Manifold Markets alert CLI
- 🟢 polywatch-presets — ready-made polywatch configs
- 🟢 prediction-markets-live — read-only Polymarket dashboard
- 🟢 prediction-market-mcp — you're here
Tip jar
Free and stays free. If it surfaced an arb for you, tips welcome:
0x17Fb06dE9D5945eaFf6FBBf4c264E505D38182A4 # EVM (ETH / USDC / any EVM L2)
License
MIT. See LICENSE.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file prediction_market_mcp-0.2.0.tar.gz.
File metadata
- Download URL: prediction_market_mcp-0.2.0.tar.gz
- Upload date:
- Size: 12.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6369dc3c11b9bcb1b11e2ef6b92b58f6f94c91ebf98575ba49eadfeedb4283e4
|
|
| MD5 |
51a9c7a05d8b617ebc3166d693d92d50
|
|
| BLAKE2b-256 |
7e77f0af49bf5f4c7f8565c5c4bec03b6a612765dd908c7cd78a573a4746c8af
|
File details
Details for the file prediction_market_mcp-0.2.0-py3-none-any.whl.
File metadata
- Download URL: prediction_market_mcp-0.2.0-py3-none-any.whl
- Upload date:
- Size: 12.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
598f2cb191ca2e14989d4ce1ccc9bde3786b3713a659395d55ab25cc5c3316e4
|
|
| MD5 |
5182a1ca326467b10bc51db8228269d5
|
|
| BLAKE2b-256 |
c7e84082bce8b90a7e1674cc420e2ba72eba33402613528360a7bd3ae3a5f5fe
|