Oracle3 prediction-market arbitrage checks MCP server
io.github.YichengYang-Ethan/oracle3·v1.2.2·258 starsKalshi and Polymarket data, venue fees, no-arbitrage checks and paper execution for AI agents.
258 stars327 downloads/wk
Reviews
Write oneNobody has reviewed Oracle3 prediction-market arbitrage checks yet.
If you have run it, two minutes of your experience saves the next person an afternoon.
Oracle3 prediction-market arbitrage checks tools (13, 1 write)
write = sends, deletes, buys or postsRead from the package source without running it. The installed server may list more.
check_constraintCheck offline whether prices you supply violate a no-arbitrage relation, and price the cheapest exploiting basket after fees.
check_constraint_liveFetch live quotes and fee schedules for related markets, then check whether their prices violate a no-arbitrage relation after fees.
fair_valueConvert a market price into the probability it implies under the Wang transform, and report the premium.
get_marketGet one market's details: title, best bid and ask, volume and closing date.
get_orderbookGet the displayed order book for YES and NO as [price, size] levels, best first.
get_quoteGet the best bid and ask on YES and NO, in dollars, plus the market's fee schedule.
list_relation_typesList the relation types the constraint checks support and the probability bound each enforces.
list_relationsList the market relations saved on this machine by the oracle3 research CLI, optionally filtered.
paper_orderwrite actionSimulate buying YES or NO contracts in the local paper ledger, filling against the live order book with venue fees. Never sends an order to a venue.
paper_portfolioShow the local paper ledger: cash, open positions and the number of fills.
paper_resetErase the local paper ledger and restore the $10,000 starting cash.
search_marketsSearch open Kalshi or Polymarket markets and return candidates with their best prices.
trading_feeCompute the venue fee for one fill at a given price and size; a pure calculation with no network calls.
Public scan report
scanner v0.1.10 · 2026-10-01 · same rubric, same numbers if you re-run it
- Code scan138 source files scanned13/25
- –Live reliabilityno gateway calls yet and no remote to proben/a
- –Tool poisoningtools not inspected (local package is not executed); not countedn/a
- Auth qualitylocal package, no credentials required12/15
- Maintenancelast push 0 days ago15/15
- Maintainer identityregistry namespace matches repository owner; GitHub account older than a year8/10
Findings (1)
- highNetwork call to a paste/tunnel/webhook host
net.suspicious-hostoracle3-1.2.2/oracle3/data/live/twitter_fetcher.py: …ttps://nitter.privacydev.net', 'https://nitter.poast.org', 'https://nitter.woodland.c…
How Oracle3 prediction-market arbitrage checks compares
Against every graded MCP server, from our own scans and uptime checks. Updated after each scan run.
- Safety score
- 74/100
- higher than 40% of 48,255 servers
- Tools
- 13
- the typical server has 7
- Tools that change things
- 8%
- typical: 0%. Fewer write tools means less an agent can break
- GitHub stars
- 258
- more than 95% of 28,688 servers
- Downloads a week
- 327
- more than 82% of 12,191 servers with a package
What its tools let an agent do: 12 read · 1 change
Install Oracle3 prediction-market arbitrage checks in Claude Code, Cursor or VS Code
claude mcp add oracle3 -- uvx oracle3
What the publisher says
From the Oracle3 prediction-market arbitrage checks repository's README, as published. We do not edit it. Read it on GitHub
<!-- mcp-name: io.github.YichengYang-Ethan/oracle3 -->
Oracle3
Oracle3 is an open-source trading engine and MCP server for prediction markets. It maps the logical relations between event contracts, finds prices that break the axioms of probability after each venue's fees, and trades them live on Kalshi, Polymarket and Solana, or on paper, under pre-trade risk limits.
Trades live on Kalshi, Polymarket and Solana. oracle3 live run executes with the same engine that runs paper trading, behind pre-trade risk limits and a kill switch. AI agents plug in through a 13-tool MCP server.
At a glance
What problem does it solve?
Contracts on related outcomes are tied together by probability. If A implies B, then P(A) ≤ P(B). If A and B cannot both happen, P(A) + P(B) ≤ 1. The outcomes of one event sum to one. Quoted prices break these bounds, within a venue and across venues, and a basket of contracts that pays a known amount in every state can then be bought for less than that amount.
The gaps are small, and both venues charge taker fees that scale with p(1 − p). Whether a gap is worth anything depends on the fee on every leg of the basket. Oracle3 does three things with that:
- Relations. It records which markets are related and how (implication, exclusivity, complement, same event, event sum).
- Checks. For each relation it finds the cheapest basket at executable prices, prices every leg under that market's own fee schedule, and reports the edge before and after fees.
- Execution. It trades the baskets that survive, live or on paper, under position, drawdown and exposure limits, with a kill switch.
How do I run it?
pip install oracle3
# Find markets (JSON output for scripts and agents)
oracle3 market search --exchange kalshi --query "fed" --json
oracle3 market search --exchange polymarket --query "fed decision" --json
# Start the MCP server over stdio
oracle3 mcp
# Trade live on Kalshi (key via KALSHI_API_KEY_ID and KALSHI_PRIVATE_KEY_PATH)
oracle3 live run --exchange kalshi --monitor \
--strategy-ref oracle3.strategy.contrib.implication_arb_strategy:ImplicationArbStrategyFrom Python:
from oracle3.arbitrage import Quote, check_constraint
from oracle3.fees import KalshiSchedule
# A implies B, but A is bid at 0.60 while B is offered at 0.55.
result = check_constraint(
"implication",
[Quote("A", yes_bid=0.60, schedule=KalshiSchedule()),
Quote("B", yes_ask=0.55, schedule=KalshiSchedule())],
)
best = result.best
print(best.description, best.gross_edge, best.fees, best.net_edge)
# NO on A + YES on B 0.05 0.0342 0.0158Full CLI reference: documentation.
Shortened. The full README is on GitHub.
Nothing above is checked by us. What we check is on the safety report.
Oracle3 prediction-market arbitrage checks: common questions
- Is Oracle3 prediction-market arbitrage checks MCP server safe?
- Mostly: it is graded B (74/100). Read the Oracle3 prediction-market arbitrage checks safety report
- How do I install Oracle3 prediction-market arbitrage checks?
- It runs on your machine. Copy the Claude Code, Cursor, VS Code or Claude Desktop config from the install section.
- Does Oracle3 prediction-market arbitrage checks need an API key?
- No secret keys are declared. It reads 1 setting from the environment.
- Is Oracle3 prediction-market arbitrage checks maintained?
- The last commit was 35 days ago (2026-09-30). The latest release is v1.2.2.
- What can I use instead of Oracle3 prediction-market arbitrage checks?
- Servers from other publishers that do the same job: CCXT MCP server.
- How does Oracle3 prediction-market arbitrage checks compare with other MCP servers?
- safety score 74/100 (higher than 40% of 48,255 servers); tools 13 (the typical server has 7); tools that change things 8% (typical: 0%. Fewer write tools means less an agent can break). Full comparison.
Alternatives to Oracle3 prediction-market arbitrage checks
Same job from other publishers: the closest match first, then the best rated.
- CCXTOfficial CCXT MCP server - Market data and trading across 100+ exchanges and prediction marketsnot reviewedWidely usedA