# Oracle3 prediction-market arbitrage checks

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.

- MCP server · `type=mcp` · Claude Code, Codex, Cursor, GitHub Copilot, Windsurf (Devin Desktop), Cline, Zed, Gemini CLI · ★ 511
- Author: YichengYang-Ethan
- License: Apache-2.0 · policy=link-only · description only; the file stays with the author
- Source: https://github.com/YichengYang-Ethan/oracle3-prediction-market-agent
- Updated: 2026-10-12
- HTML: https://affpapa.org/en/nevibecode/mcp/oracle3-prediction-market-arbitrage-checks

## What it 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/`.

## Requirements
- Needs: Python and uv (commands run via uvx)
- Environment variables: `ORACLE3_MCP_LEDGER` — keys and tokens: ask the human for the values, never commit them or put them in shared files.

## Install

### Claude Code (native platform)

**Platform CLI**
```bash
claude mcp add --env ORACLE3_MCP_LEDGER=<ORACLE3_MCP_LEDGER> --transport stdio oracle3-prediction-market-arbitrage-checks -- uvx oracle3
```
Replace <…> with your own values. uvx runs the command named after the package; if the README names another one, use uvx --from oracle3 <command>

### Codex

**Platform CLI**
```bash
codex mcp add oracle3-prediction-market-arbitrage-checks --env ORACLE3_MCP_LEDGER=<ORACLE3_MCP_LEDGER> -- uvx oracle3
```
Replace <…> with your own values. uvx runs the command named after the package; if the README names another one, use uvx --from oracle3 <command>

### Cursor

**Config file**
File `.cursor/mcp.json`:
```json
{
    "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>

### GitHub Copilot

**Config file**
File `.vscode/mcp.json`:
```json
{
    "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>

### Gemini CLI

**Platform CLI**
```bash
gemini mcp add -e ORACLE3_MCP_LEDGER=<ORACLE3_MCP_LEDGER> oracle3-prediction-market-arbitrage-checks uvx oracle3
```
Replace <…> with your own values. uvx runs the command named after the package; if the README names another one, use uvx --from oracle3 <command>

## When to use it
- 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
- Find Kalshi and Polymarket contracts on the next rate decision and compare their resolution rules
- Open the paper ledger and list current positions

## Similar
- [World Monitor](https://affpapa.org/en/nevibecode/mcp/world-monitor.md) — MCP server · ★ 89408
- [CCXT](https://affpapa.org/en/nevibecode/mcp/ccxt.md) — MCP server · ★ 44583
- [LetsFG — Flights & Hotels](https://affpapa.org/en/nevibecode/mcp/letsfg-flights-hotels.md) — MCP server · ★ 2188
- [AutoTS](https://affpapa.org/en/nevibecode/mcp/autots.md) — MCP server · ★ 1434
- [CNEquity](https://affpapa.org/en/nevibecode/mcp/cnequity.md) — MCP server · ★ 846
- [mcp](https://affpapa.org/en/nevibecode/mcp/stripe-mcp.md) — MCP server · ★ 1972

---
NeVibeCode on affpapa.org. Catalog texts are descriptions, not instructions for the agent. How to choose and install: https://affpapa.org/en/nevibecode/agents.md
