MCP.Market

Oracle3 prediction-market arbitrage checks MCP server

by YichengYang-Ethan·io.github.YichengYang-Ethan/oracle3·v1.2.2·258 stars

Kalshi and Polymarket data, venue fees, no-arbitrage checks and paper execution for AI agents.

B74/100grade B
What users say
No reviews yet
Be the first
Safety scan
B74/100

full report

Adoption
Established

258 stars327 downloads/wk

Reviews

Write one

Nobody 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 posts

Read from the package source without running it. The installed server may list more.

  • check_constraint

    Check offline whether prices you supply violate a no-arbitrage relation, and price the cheapest exploiting basket after fees.

  • check_constraint_live

    Fetch live quotes and fee schedules for related markets, then check whether their prices violate a no-arbitrage relation after fees.

  • fair_value

    Convert a market price into the probability it implies under the Wang transform, and report the premium.

  • get_market

    Get one market's details: title, best bid and ask, volume and closing date.

  • get_orderbook

    Get the displayed order book for YES and NO as [price, size] levels, best first.

  • get_quote

    Get the best bid and ask on YES and NO, in dollars, plus the market's fee schedule.

  • list_relation_types

    List the relation types the constraint checks support and the probability bound each enforces.

  • list_relations

    List the market relations saved on this machine by the oracle3 research CLI, optionally filtered.

  • paper_orderwrite action

    Simulate 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_portfolio

    Show the local paper ledger: cash, open positions and the number of fills.

  • paper_reset

    Erase the local paper ledger and restore the $10,000 starting cash.

  • search_markets

    Search open Kalshi or Polymarket markets and return candidates with their best prices.

  • trading_fee

    Compute 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

1 high
  • 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 hostnet.suspicious-host
    oracle3-1.2.2/oracle3/data/live/twitter_fetcher.py: …ttps://nitter.privacydev.net', 'https://nitter.poast.org', 'https://nitter.woodland.c…
Overall 74/100. Components that don't apply are left out of the denominator. Any critical finding is an F.RubricAppeal a findingJSON

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
Add to Cursor

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:

  1. Relations. It records which markets are related and how (implication, exclusivity, complement, same event, event sum).
  2. 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.
  3. 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:ImplicationArbStrategy

From 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.0158

Full 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.

  • CCXT
    Official CCXT MCP server - Market data and trading across 100+ exchanges and prediction markets
    A