oddsrail
oddsrail
Магистраль, по которой ИИ-агенты торгуют на предиктивных рынках.
MCP-сервер, который даёт любому агенту (Claude Code, Claude Desktop или чему угодно MCP-совместимому) доступ к предиктивным рынкам Polymarket и Kalshi: поиск рынков, стаканы заявок, история цен, позиции и маршрутизация ордеров — с on-chain-атрибуцией builder-кода на Polymarket — плюс два премиальных инструмента (детекция перелёта/отката цены в игре, риск спора при урегулировании).
Бизнес-модель: маршрутизированный поток ордеров приносит builder-комиссии; сигнальные инструменты — платный слой данных (запланирована оплата за вызов через x402).
Почему так, а не Parsec
Ближайший конкурент (parsecapi.com) — это закрытый хостинговый сервис: он хранит ваши ключи биржи (или держит управляемый кошелёк, который подписывает за вас), а его Builder Program забирает 55–85% комиссий, которые собирают билдеры. oddsrail противоположен по каждому параметру: self-hosted, некстодиальный (ключи никогда не покидают вашу машину), open source, и вы сохраняете себе 100% комиссий за Polymarket-builder — потому что атрибуция использует родной механизм Polymarket, а не посредника-эскроу. В Parsec также ноль сигнальных инструментов/инструментов аналитики и ничего про риск урегулирования — это наш платный слой.
Быстрый старт
Нужен Python 3.11+. Создайте виртуальное окружение, установите зависимости и подключите к 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.serverЗатем задайте агенту вопрос: «найди рынки о финале чемпионата мира и прогони overshoot-сигнал по фавориту».
Как устроена атрибуция (CLOB V2, проверено в авг. 2026)
Получите свой данный builder-код (это bytes32) на polymarket.com → Settings → Builders. Там же задайте ставки комиссий: taker — до 100 базовых пунктов, maker — до 50 базовых пунктов. Комиссии — аддитивны к комиссиям платформы, приходят на ваш builder-кошелёк.
Выполните
export ODDSRAIL_BUILDER_CODE=0x...там, где работает сервер.Каждый ордер, который любой агент отправляет через
place_order, до подписания получает код в полеbuilderструктуры ордера V2 — атрибуция происходит on-chain и видна в каждом событииOrderFilledна CTF Exchange V2.Проверьте с помощью инструмента
builder_stats(публичный эндпоинт builder-сделок + лидерборд).
Переменные окружения
Переменная | По умолч. | Значение |
|
|
|
| не задано | Ваш builder-код bytes32 — атрибуция и комиссии. |
| не задано | Ключ операторского кошелька; нужен только для реальной торговли. Никогда не покидает эту машину. |
| не задано | Адрес прокси/депозитного кошелька, если у аккаунта есть такой. |
Статус — проверено на живых торгах 2026-08-23
Все 10 вызываемых инструментов были запущены вживую на реальной MCP-клиентской сессии против реального Polymarket с финского VPS (/opt/oddsrail). Проверено на провайдере: поиск, карточка рынка, стакан (9/65 уровней), история цен (361 тыс.), overshoot-сигнал, риск спора, лидерборд билдеров, dry-run ордер, открытие ордеров, информация о сервере.
В ходе этого прогона сопоставления полей были скорректированы по реальному API — в трёх местах формы, угаданные в документации, оказались неверными (outcomes — это словарь ключами yes/no, search() выводит рынки внутрь событий, а данные стакана/объёма/урегулирования лежат в сущностях понапрямую price / price/metrics/state/resolution).
⚠️ Сетевая особенность
Домены Polymarket API заблокированы в турецких сетях (BTK) — локальное тестирование не проходит TLS: сервер отдаёт страницу блокировки. Запускайте этот сервер там, где Polymarket доступен (финский VPS в /opt/oddsrail, через VPN или в любой сети без блокировки). Логика сигналов и MCP-слой полностью тестируются в офлайне.
Kalshi (площадка №2)
Kalshi — по принципу «приноси свой ключ» и single-tenant по задумке: оператор предоставляет свой API-ключ, торгует на своем аккаунте, а сам сервер ничего не кэширует. Это осознанно: Девелоперское соглашение Kalshi ограничивает API только собственной торговлей (§3), запрещает торговлю в интересах других членов (§3.2) и сублицензировать API (§3.7), а также ограничивает хранение/передачу данных API (§3.1). Хостинговый multi-tenant сервис для Kalshi не был бы совместим со соглашением; а self-hosted — совместим.
Атрибуции здесь нет. Builder Codes на Kalshi — это интеграция с Solana/DFlow/Jupiter; в REST API нет ни поля builder, ни давление для affiliate-кода, поэтому поток ордеров Kalshi нельзя атрибутировать или монетизировать, как это можно на Polymarket. Kalshi подключена в oddsrail ради покрытия и глубины сигналов, а не ради маршрутных доходов.
Две вещи в этом API легко понять неправильно — именно их нормирует oddsrail:
Цены — это массовые долларовые строки, а не целые средства (
"0.7,5600"), размеры — строки с фиксированной точкой ("10.00"); устаревшие целочисленные ценовые поля в центах убрали в марте 2026, и вся арифметика ведётся наDecimal.Стакан на обеих сторонах состоит только из заявок на покупку.
yes_dollarsиno_dollars— это оба восходящие ленты бидов: лучший бид находится последним, а NO-бид по 0,99 есть YES-аск по 0,01.kalshi_get_orderbookотдаёт привычный вид нет книги (best-first bid/ask) по YES-книге плюс сырые ленты.
Размещение ордеров говорит естественным языком — указываете outcome (yes/no), action (buy/sell), price = вероятность этого исхода, и это уже переводится внутри на bid/ask YES-книжки (покупка NO @ 0,25 превращается в аск @ 0,75). Этот перевод покрыт модульными тестами — потому что это очевидное место, где можно завезти баг с перевёрнутой позицией.
Ключи: KALSHI_KEY_ID плюс KALSHI_PRIVATE_KEY_PATH (PKCS#8 PEM) или KALSHI_PRIVATE_KEY_COPY. Если KALSHI_DEMO=1 — работа в демо-среде. Для read-инструментов ключи вообще не требуются.
Инструменты (всего 21)
search_markets,get_market,get_orderbook,price_history,get_positions— read-only, без ключейovershoot_signal— премиум: свежая детекция панического скачка + историческая склонность рынка к возвращению (портировано с polymarket-world-card analyzers)dispute_risk— премиум: прозрачная эвристика от 0 до 100 для спорных (склонных к UMA-освобождению) урегулированийplace_order,cancel_order,open_orders— торговые, по умолчанию dry-runbuilder_stats— проверка атрибуции + публичный лидерборд билдеровserver_info— статус конфигурации по каждой площадке
Kalshi: kalshi_search_markets, kalshi_get_market, kalshi_get_orderbook, kalshi_get_trades, kalshi_balance, kalshi_positions, kalshi_open_orders, kalshi_place_order, kalshi_cancel_order.
Заметки по стеку
Официальный объединённый SDK
polymarket-client(0.6.x):AsyncPrimeClientдля данных,AsyncSecureClient.place_limit_order(..., builder_code=...)для ордеров с атрибуцией. Архивныйpy-clob-clientне умеет уменьшать builder-коды — не используйте его.MCP SDK 2.0:
MCSPuppetServerиз окнаmcp.server.mcpserver(старый импортmcp.server.fastmcp.FastMCPв 2.x исчез).Kalshi работает до ного на
httpx+cryptography, а не на официальном SDK:kalshi-python-syncтребует Python >=3.13 и выбирается atlas как плата за поддержку версий (по крайней мере). Авторизация — RSA-PSS(SHA256, salt=длина дайджеста) по строчкеstr(unix_ms) + METHOD + path; при этомpathвключает/trade-api/v2и не включает query-строку. Базовый URL, как и раньше, тот же —external-api.kalshi.com.x402 (planned): официальный PyPI-пакт
x402(v2.20+) умеет обораהвать MCP-инструменты напрямую (x402.mcp, платёж едет_metaвызова инструмента), но его MCP-хелперы сейчас работают с mcp 1.x — интеграция вызывает либо зафиксироватьmcp>=1.28,<2, либо дождаться релиза для 2.x. Mainnet-сеттлмент требует участника-координатора (Coinbase CDP: 1000 бесплатных сеттлов в месяц, далее $0.001). Бесплатные тарифы обеих сигналок заранее, чтобы каталоги могли индексировать сервер.
Как выглядит экономика билдеров (live, 2026-08-23)
Данные с публичного лидерборда через builder_stats:
за неделю | за всё время | |
#1 (betmoar) | $2.31M | $2.10B |
медиана топ‑25 | $127K | $88.2M |
вход в топ‑25 | $42K | $36.8M |
Наилучшие примеры — “малышки”: MagicMarkets прогоняет $354K в неделю при 1 активном юзере, Gate — $1.11M в неделю при 2, PolymarketScan — $277K при 3. Это бот-операторы, гонящие собственный поток — именно целевой клиент oddsrail — и они показывают, что один настоящий агент-трейдер создаёт уже реальный объём.
Браузерные кошельки (MetaMask, 37K пользователей) лидируют по числу пользователей, а не по объёму на одного.
Дорожная карта
Live smoke-тест из сети с блокировки— сделано 2026-08-23, все инструменты проходятЗарегистрировать builder-код (polymarket.com → Settings → Builders), на старте выставить комиссии 0 базовых пунктов, экспортировать
ODDSRAIL_BUILDER_CODE; первый атрибутированный ордер микроразмераKalshi как площадка №2— сделано 2026-08-23, 9 инструментов, проверено в livex402-обёртка с оплатой за вызову для двух сигналов, как только конфликт mcp-2.x улетучится
Линк в каталогах: официальный MCP-реестр (
mcp-publisher, PyPI-маркерmcp-name:), Smithery (нужен публичный HTTPs-streamable-HTTP + бесплатный инструмент для их сканера), Glama (glama.json)
Публикация и распространение
GitHub: https://github.com/hmesutozsoy/oddsrail (публичный, MIT)
Glama: автоматически индексирует GitHub;
glama.jsonв корне репозитория подтверждает авторство.Официальный MCP-реестр: файл
server.jsonготов. Для публикации сначала нужен пакет на PyPI (реестр проверяет владельца по маркерmcp-name: io.github.hmesutozsoy/oddsrailв README на PyPI), затемmcp-publisher мойаилиmcp-publisher publish`.Smithery: требует HTTPS-клиентный streamable-HTTP-эндпоинт — появится, как только oddsrail будет хоститься на удалённой выбывкой платформе, а не на локалку через stdio.
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