Oracle3 — Claude Code MCP server for Kalshi and Polymarket
Wires Kalshi and Polymarket into your agent: contract search, quotes, relationship checks and fee math. Handy when you need to compare markets and see the net edge.
claude mcp add --env ORACLE3_MCP_LEDGER=<ORACLE3_MCP_LEDGER> --transport stdio oracle3-prediction-market-arbitrage-checks -- uvx oracle3What Oracle3 prediction-market arbitrage checks does
The server exposes 13 tools. An agent uses them to pull contracts, read resolution rules and order books, line up related outcomes, and work out exchange fees. Five relationship checks — implication, exclusivity, complement, same event and event sum — hand back baskets along with the assumptions behind them.
Public Kalshi and Polymarket reads work without exchange credentials. A local paper ledger covers simulation: paper_order and paper_portfolio record hypothetical fills and holdings. Live orders sit outside MCP, in a separate CLI and Python engine, so real-money trading needs that setup instead.
The package is oracle3 on PyPI and wants Python 3.10+. Six skills ship with the repo: data discovery, constraint arbitrage, quant strategy authoring, agent strategy authoring, paper operations and live operations. Claude copies live in .claude/skills/.
What it helps with
- pull Kalshi and Polymarket contracts on one topic into a single view
- price fees per leg of a basket and read the net edge
- spot resolution rules that clash between two similar markets
- run a strategy against the paper ledger before risking money
- compare outcome definitions before treating two markets as interchangeable
Example prompts for the agent
- Find Kalshi and Polymarket contracts on the next rate decision and compare their resolution rules
- Open the paper ledger and list current positions
How to install Oracle3 prediction-market arbitrage checks
Platform CLI
claude mcp add --env ORACLE3_MCP_LEDGER=<ORACLE3_MCP_LEDGER> --transport stdio oracle3-prediction-market-arbitrage-checks -- uvx oracle3Replace <…> with your own values. uvx runs the command named after the package; if the README names another one, use uvx --from oracle3 <command>
Platform CLI
codex mcp add oracle3-prediction-market-arbitrage-checks --env ORACLE3_MCP_LEDGER=<ORACLE3_MCP_LEDGER> -- uvx oracle3Replace <…> with your own values. uvx runs the command named after the package; if the README names another one, use uvx --from oracle3 <command>
Config file
{
"mcpServers": {
"oracle3-prediction-market-arbitrage-checks": {
"command": "uvx",
"args": [
"oracle3"
],
"env": {
"ORACLE3_MCP_LEDGER": "<ORACLE3_MCP_LEDGER>"
}
}
}
}Replace <…> with your own values. uvx runs the command named after the package; if the README names another one, use uvx --from oracle3 <command>
Config file
{
"servers": {
"oracle3-prediction-market-arbitrage-checks": {
"type": "stdio",
"command": "uvx",
"args": [
"oracle3"
],
"env": {
"ORACLE3_MCP_LEDGER": "<ORACLE3_MCP_LEDGER>"
}
}
}
}Replace <…> with your own values. uvx runs the command named after the package; if the README names another one, use uvx --from oracle3 <command>
Platform CLI
gemini mcp add -e ORACLE3_MCP_LEDGER=<ORACLE3_MCP_LEDGER> oracle3-prediction-market-arbitrage-checks uvx oracle3Replace <…> with your own values. uvx runs the command named after the package; if the README names another one, use uvx --from oracle3 <command>
Step by step, with commands for each platform: How to add an MCP server to Claude Code, Codex, Cursor, VS Code, Gemini CLI and more
Questions about Oracle3 prediction-market arbitrage checks
How do I install Oracle3 in Claude Code?
Run claude mcp add oracle3 -- uvx oracle3. To point at your own ledger path, use claude mcp add --env ORACLE3_MCP_LEDGER=<ORACLE3_MCP_LEDGER> --transport stdio oracle3-prediction-market-arbitrage-checks -- uvx oracle3.
What does Oracle3 do?
It gives an agent access to Kalshi and Polymarket markets, computes fees and checks relationships between contracts. It also keeps a local paper ledger for simulated trades.
Do I need exchange API keys?
No, for reading public markets and running calculations. Live order execution goes through the separate CLI and Python engine, not MCP.