oddsrail
oddsrail
Die Schiene, über die KI-Agenten Prognosemärkte handeln.
Ein MCP-Server, der jedem Agenten (Claude Code, Claude Desktop oder allem MCP-Kompatiblen) Zugriff auf Prognosemärkte über Polymarket und Kalshi gibt: Marktsuche, Orderbücher, Preishistorie, Positionen und Order-Routing — mit On-Chain-Builder-Code-Attribution auf Polymarket — plus zwei Premium-Signaltools (In-Play-Overshoot/Fade-Erkennung, Auflösungsstreit-Risiko).
Geschäftsmodell: gerouteter Orderflow erzeugt Builder-Gebühren; die Signal-Tools sind die bezahlte Datenschicht (x402-Pay-per-Call geplant).
Warum das und nicht Parsec
Der engste Konkurrent (parsecapi.com) ist ein Closed-Source-, gehosteter Dienst: Er speichert deine Exchange-Keys (oder hält eine verwaltete Wallet, die für dich signiert), und sein Builder-Programm behält 55–85 % der Gebühren, die Builder einholen. oddsrail ist auf jeder Achse das Gegenteil: selbst gehostet, non-custodial (Keys verlassen niemals deinen Rechner), Open Source, und du behältst 100 % deiner Polymarket-Builder-Gebühren, because attribution Polymarkts nativen Mechanismus nutzt, nicht ein mittelsmann Escrow. Parsec liefert zudem keine Signal-/Analysetools und nichts zum Auflösungsrisiko — das ist unsere bezahlte Ebene.
Quickstart
Python 3.11+ erforderlich. Erstelle die venv, installiere und stecke es dann in Claude Code:
python3 -m venv .venv && .venv/bin/pip install -r requirements.txtclaude mcp add --transport stdio oddsrail -- /abs/path/to/oddsrail/.venv/bin/python -m oddsrail.serverDann frag den Agenten: *„Suche nach Märkten zum Weltmeisterschaft und führe das Übershoot-Signal auf den Favoriten aus““.
So funktioniert die Attribution (CLOB V2, verifiziert Aug 2026)
Hol dir deinen Builder-Code (ein bytes32) unter polymarket.com → Settings → Builders. Legt dort Gebührenhöhe fest: Taker bis zu 100 bps, Maker bis zu 50 bps — additiv oben auf die Plattformgebühren, ausgezahlt auf deine Builder-Wallet.
export ODDSRAIL_BUILDER_CODE=0x...auf dem Rechner, auf dem der Server läuft.Jede Order, die irgendein Agent through
place_orderroutet, bekommt denjn Code)einer imbuilder-Feld der V2-Order-Struktur, vor dem Signieren — Die Attribution ist on-chain und in jedemOrderFilled-Event zeigen.Verifiziere das mit dem
builder_stats-Tool (öffentlicher Endpunkt + Hall des Builders).
Umgebungsvariablen
Variable | Standard | Bedeutung |
|
|
|
| nicht gesetzt | Dein bytes32-Builder-Code — Attribution + Gebühren. |
| nicht gesetzt | Operator-Wallet-Schlüssel; nur für echtes Trading nötig. Verlässt diesen Rechner nie. |
| nicht gesetzt | Proxy-/Einzahladresse Derzur-Wallet, falls das Konto eine verwendet. |
Status — live-verifiziert 2026-08-23
Alle 10 aufrufbaren Tools wurden in einer echten MCP-Client-Sitzung gegen das Live Polymarket end-to-end getrieben, vom Finnland-VPS (/opt/oddsrail). Verifiziert funktionieren: Suche, Marktabfrage, Orderbuch (9/65 Levels), Preishistorie (361 Pkte.), Overshoot-Signal, Dispute-Risiko, Builder-Leaderboard, Dry-Run-Order, offene Orders, Server-Info.
Die Feld-Mappings wurde bei diesem Lauf gegen die echte API korrigiert — die aus Doku-geratenen Formen waren drei Stellen falsch (outcomes ist ein Dict mit den Schlüsseln yes/no, search() verschachtelt Märkte in Events, und Buch-/Volumen-/Auflösungsdaten liegen in prices/metrics/state/resolution-Unterobjekten).
⚠️ Netzwerk-Hinweis
Polymarket API Domains sind auf türkischen Netzen (BTK) blockiert — lokales Testen, loklädt TLS mit Sperrseite. Betreib den Server dort, wo Polymarket erreichbar ist (v/die Finnland-VPS unter /opt/oddsrail, ein VPN oder ein beliebiges other Netzwerk). Signal-Logik und MCP-Schicht sind komplett offline testbar.
Kalshi (Venue #2)
Kalshi ist by design bring-your-own-key und single-tenant: Der Betreiber stellt (иметown), own API key, handelt auf seinem eigene Konto und Speichert der Server nichts. Das ist Absicht — Kalshi's Entwicklervereinbarung Beschränkt die API-Nutzung den eigenen Trading des Mitglieds (§3), verbietet das Ermöglichen anderer Mitglieder (§3.2), Sublicensing der API (§3.7) und beschränkt das Speichern/Verteilen von API-Daten (§3.1). Ein gehosteter Multi-Tenant-Kalshi-Dienst wäre nicht konform; ein selbst gehosteter ist es.
„Attribution here does not exist.“ Kalshi Builder Codes are a Solana/DFlow/Jupiter-Integration — es gibt kein Builder-/ Affiliate-Feld in irgendwo der REST-API, therefore and Kalshi-Orderflownattibutiert oder monetarisiert wie Polymarkts. Kalshi ist in oddsrail für Coverage und Reichweite, nicht für Routing-Einnahmen.
Zwei Formen dieser API sind schnell falsch zu verstehen, also normalisiert oddsrail gerne:
Preise sind Dollar-Strings, keine Cents (
"0.5600"), Größen sind Fixpunkt-Zeichenfolgen ("10=00"); die alten Integer-Cents-Felder wurden im März 2026 entfernt. Alle Berechnungen verwendenDecimal.Orderbook ist auf beiden Seiten nur Bids.
yes_dollarsundno_dollarsbeide Bid-Leitern, aufsteigend — daher ist das beste Gebot das letzte Element, und ein NO-Gebot von 0,99 $ ist ein YES-Ask bei 1 US US is.02.kalshi_get_orderbookLiefert die konventionelle, beste-first Ask/Bid-Ansicht des YES-Buchs plus der Raw-Leitern.
Orderaufgabe spricht deine natürlichen Begriffe — outcome (yes/no), action (buy/sell), price = Wahrscheinlichkeit dieses Outcomes — und übersetzt intern in Kalshis YES-Book bid/ask (buy NO @ 0.25 wird zu ask @ 0.75). Diese Übersetzung ist unit-getestet, denn sie ist der offensichtlichste Ort für einen Inversionsfehler.
Zugangsdaten KALSHI_KEY_ID plus KALSHI_PRIVATE_KEY_PATH (PKCS#8 PEM) oder KALSHI_PRIVATE_KEY. Set KALSHI_DEMO=1 für die Demo-Umgebung. Lesetools lesen ohne Key.
Tools (21)
search_markets,get_market,get_orderbook,price_history,get_positions— Ed -only, keine Keysovershoot_signal— Premium: Erkennung frischer Paniksprünge + die historische Rückkopplung dieses Marktes (portiert aus dem polymarket-wc-Analyzer)dispute_risk— Premium: transparente 0–100-Heuristik für strittige (UMA-meinungsfähige) resolutionsplace_order,cancel_order,open_orders— Trading, standardmäßig Dry-Runbuilder_stats— Attributionsprüfung + öffentliches Builder-Rankingserver_info— Config-Status, pro Venue
Kalshi: kalshi_search_markets, kalshi_get_market, kalshi_get_orderbook, kalshi_get_trades, kalshi_get_balance, kalshi_positions,
kalshi_open_orders, kalshi_place_order, kalshi_cancel_order.
Stack-Anmerkungen
Offizielles vereinheitlichtes SDK
polymarket-client(0.x):AsyncPublicClientfür Daten Daten,AsyncSecureClient.place_limit_order(...b builder_code=...)für attribute Orders. Der altepy-clob-clientist archived un kann keine Builder-Codes it Bring mitbringen — bed nicht verwenden.MCP SDK 2.0:
MCPServerausmcp.server.mcpserver(emergingmcp.server.fastmcp.FastMCPexists in 2.x nicht mehr).Kalshi läuft in plain
httpx+cryptography, nicht mit off. SDK:kalshi-python-syncrequired Python ≥3.13 und veröffentlicht wochenwöchentlich im Spezial gleich. Auth ist RSA-PSS(SHA256, salt=Digestlänge) über denstrunix_ms) + METHOD + path, wobei den Pfad/trade-api/v2und ohne Query-String. Die Basis URL ist jetzt daserexternal-api.kalshi.com.x402 (geplant): das offizielle PyPI-Paket
x402(v2.20+) kann MCP-Tools directly (wrapen) (x402/ .mcp, Zahlung Reisen in_metatool-call), aber MCP-Helpers zielen derzeit auf mcp 1.x — die Integration berarti,mcp>=1.28,<2fix the pin or risk is compatible with the release. Mainnet, Matching brauchst du einen Facilitator (Coinbase CDP: 1.000 kostenlose Klärungen/Monat, then $0.001. Lass für die beiden free-Tiers kostenlos, damit die Registry den Server verarbeiten kann.
So die Builder-Ökonomie aus (live, 2026-08-23)
Aus der öffentlichen Leaderboard über builder_stats gezogen:
wöchentlich | gesamt | |
#1 (betmoar) | $2.31M | $2.10B |
Median der Top 25 | $127K | $88.2M |
#1 Entry Top 25 | $42K | $36.8M |
Die instructiven Zeilen sind die kleinen Nutzer: MagicWork routet $354K/Woche mit einem aktiven User, Gate $1.11M/Woche mit 2, PolymarketScan $277K mit 3. Diese Bot-Betreibende routen ihren Eigenbedarf — genau oddsrails Zielkunde — und zeiger, dass ein einzelner ernst Agethand effizient ist. Wallets (MetaMask, 37K Users) dominant bei der Zahl, nicht beim Volumen pro user.
Roadmap
Live-Smoke-Test aus ungefiltertem Netz— verledigt 2026-08-23, alle Werkzeuge durchBuilder-Code registrieren (polymarket.com → Settings → Builders), Startgebühren auf 0 bps,
ODDSRAIL_BUILDER_CODEexportieren; erste attributed order mit kleiner GrößeKalshi als Venue #2— verledigt 2026-08-23, 9 Tools, live verifiziertBezahlten x402-Wrapper für die beiden zusammens hinges, sobald der mcp-2.x-Konflikt ist weg
Registry-Listungen: offizielle MCP-Registry (
mcp-publishing, PyPI-mcp-name:marker), Smithery (will public streamable-HTTP and a fee tool for scanner), Glama (glama.json)
Listing / Vertrieb
GitHub: https://github.com/hmesutozsoy/oddsrail (public, MIT)
Glama: crawled auto GitHub;
glama.jsonbeansprucht Maintainership.Offizielle MCP-Registry:
server.jsonist bereit. Publikation benötigt zuerst das Paket auf PyPI (Registry prüft Ownership über einenmcp-name: io.github.hmesutozsoy/oddsrail-Marker in der PyPI-README), thenmcp-publisher login github && mcp-publisher publish.Smithery: benötigt einen public HTTPS streamable-HTTP-Endpoint — so vernünftig, sobald oddsrail hosted ist statt lokal über stdio läuft.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Calibrated world model for AI agents. 40 tools: world state, markets, trading. Kalshi + Polymarket.
Polymarket + Hyperliquid + macro for AI agents. 38 tools, signal backtest, SSE streaming. Free tier.
Machine-payable prediction-market briefs and probability-change monitoring for AI agents.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/hmesutozsoy/oddsrail'
If you have feedback or need assistance with the MCP directory API, please join our Discord server