Skip to main content
Glama

oddsrail

AIエージェントが予測市場の取引に使うレール。

あらゆるエージェント(Claude Code、Claude Desktop、その他MCP互換のものでも)に、PolymarketとKalshiにまたがる予測市場へのアクセスを提供するMCPサーバー。マーケット検索、オーダーブック、価格履歴、ポジション、注文ルーティングを提供し、Polymarketではオンチェーンでのビルダーコード帰属付き。さらにプレミアムシグナルツールを2つ(インプレーのオーバーシュート/フェード検出、裁定(resolution)紛争リスク)備えています。

ビジネスモデル:ルーティングされた注文フローがビルダー手数料を生み、シグナルツールは有料データレイヤー(x402による呼び出しごとの課金を予定)。

なぜParsecではないのか

最も近い競合(parsecapi.com)はクローズソースのホステッドサービスです。取引所キーを預かるか(または代わりに署名する管理ウォレットを保持する)、そのBuilder Programとしてビルダーが集めた手数料の55〜85%を受取ります。 oddsrailはあらゆる面でその逆です。自己ホスト型、非カストノシア(キーがマシンの外に出ることはありません)、オープンソース、しかもPolymarketのビルダー手数料を100%保持できます。 帰属がPolymarketのネコ安定の仕組みを使うからで、まさに中間のエスクローではありません。Parsecもまたシグナル/アナリティクスツールをまったく提供しておらず、裁定リスクについても何もありません。そこが当社の有料レイヤーです。

クイックスタート

Python 3.11+ が必要です。venvを作成し、インストールして、Claude Codeに組み込みます:

python3 -m venv .venv && .venv/bin/pip install -r requirements.txt
claude mcp add --transport stdio oddsrail -- /abs/path/to/oddsrail/.venv/bin/python -m oddsrail.server

次にエージェントにこう依頼します。*「ワールドカップ決勝のマーケットを検索して、本命候補でオーバーシュートシグナルを実行して」*と。

帰属の仕組み(CLOB V2、2026年8月検証)

  1. ビルダーコード(bytes32)をpolymarket.com → Settings → Builders で取得します。そこで手数料率も設定します:taker最大100bps、maker最大50bps — プラットフォーム手数料に上乗て、あなたのビルダーウォレットに精算されます。

  2. サーバーが動く場所で export ODDSRAIL_BUILDER_CODE=0x... を設定します。

  3. エージェントが注文を誽すための経路である place_order で出されるどの注文にも、署名に先立ちV2注文構造体の builder フィールドにコードが入ります。この帰属はオンチェーンで、CTF Exchange V2のすべての OrderFilled イベントで閲覧できます。

  4. 公開されているビルダートレードのAPIとリーダーボード(builder_stats)で要件を確認します。

環境変数

変数

デフォルト

意味

ODDSRAIL_DRY_RUN

1

1 の場合は注文はシミュレートされて返り実行はされません。実際に取引するには 0 に設定してください。

ODDSRAIL_BUILDER_CODE

未設定

あなたのbytes32ビルダーコード — 帰属と手数料に使用します。

POLYMARKET_PRIVATE_KEY

未設定

オペレーターウォレットのキー。実際の取引のみ必要です。このマシンを離れることはありません。

POLYMARKET_WALLET_ADDRESS

未設定

アカウントが使っている場合、プロキシ/デポジットのウォレットアドレス。

ステータス — 2026-08-23 にライブ検証済み

全10の呼び出し可能なツールは、フィンランドVPS(/opt/oddsrail)からライブPolymarketの実MCPクライアントセッションでエンドツーエンドに動きました。検証済み:検索、マーケット参照、オーダーブック(9/65レベル)、価格履歴(361ポイント)、オーバーシュートシグナ、紛争リスク、ビルダーリーダーボード、ドライラン注文、オペン注文、サーバー情報。

このとき実APIに合わせてフィールドマッピングを修正しました。ドキュメントから推測した形状は3箇所で違っていました(outcomesyes / no をキーとするオブジェクト、search() はマーケットをイベントのネクストする、ブック/売上/裁定のデータは prices / metrics / state / resolution の各サブオブジェクトに入っています)。

⚠️ ネットワークに関する注意

Polymarket API ドメインはトルコ国内ネットワーク(BTK)でブロックされています。ローカルテストではTLSでブロックページ入りになります。Polymarketに到達できる場所でサーバーを動してください(FinlandのVPS、/opt/oddsrail、VPN、あるいは遮断されていない任意のネットワーク)。シグナルのロジックとMCPレイヤーは完全にオフラインでテストできます。

Kalshi(2番目の取引所)

Kalshiはbring-your-own-keyかつシングルテナント設計です:オペレーター自身のAPIキーを用意し、自分のアカウントで取引し、このサーバーは何もキャッシュしません。これは意図的です。KalshiのDeveloping Agreementは、APIの利用を会員自身の取引に限定し(§3)、他の会員の取引を支援する行為(§3.2)やAPIのサブライセンス(§3.7)を禁止し、APIデータの保存/共有を制限します(§3.1)。他者のための複数テナントをホストするKalshiサービスは要件を満たせません。セプトホストなら十分に準拠できます。

ここでは帰属はありません。 Kalshi Builder Codesは、Solana / DFlow / Jupiterとの連携であり、REST APIのどこにもビルダーやアフィリエイトのフィールドはありません。そのためKalshiの注文フローはPolymarketと同じ方法で帰属や金銭化はできません。Kalshiはカバレッジとシグナルリーチのためであって、ルーティング収入のためではありません。

このAPIの2つの形状は間違えやすいので、oddsrailは両方正規化します。

  • 価格は通常セントではなくドル文字列"0.5600")で、サイズは固定小数の文字列("10.00")です。従来の整数セント対応は2026年3月に除去されました。演算はすべて Decimal をしています。

  • オーダーブックは両側とも bid のみです。yes_dollarsno_dollars はどちらもビッド・ラダーで昇順です。したがって最も良いビッドは 最後 の要素です。$0.99 のNO bidは、すなわち $0.01 のYES askです。kalshi_get_orderbook は、YES viewの通常の最優先 bid / ask と生のビッドラダーを返します、および生ラダーです。

注文はと言語に近い形で書きます — outcome(yes / no)、action(buy / sell)、price はそのアウトカムの確率 — 内部で、Kalshiの YES-book の bid / ask に変換します(NO を0.25で買うo、YESブックで ask@0.75 になります)。この変換は単元されます。というのも載せた「逆ポジション」バグの出やすい場所だからです。

認証情報:KALSHI_KEY_IDKALSHI_PRIVATE_KEY_PATH(PKCS#8 PEM)、または KALSHI_PRIVATE_KEYKALSHI_DEMO=1 を設定するとデモ環境を置きます。読み取りツールはキーなしで動きます。

ツール (21)

  • search_markets, get_market, get_orderbook, price_history, get_positions — 読み取り専用、不要

  • overshoot_signal — プレミアム:直近のパニックジャンプ検出 + このマーケットの過去の回帰傾向:(polymarket-wc analyzer からの移植)

  • dispute_risk — プレミアム:紛争(UMA紛争になりやすい)になる裁定のための病理的な0–100ヒューリスティック

  • place_order, cancel_order, open_orders — 取引、デフォルトはドライラン

  • builder_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):データには AsyncPublicClient、ビルダーコード付き注文には AsyncSecureClient.place_limit_order(..., builder_code=...) を利用します。以前の py-clob-client はコードに記載されていますが、ビルダーコードを付与できないため利用しないでください。

  • MCP SDK 2.0: mcp.server.mcpserver からの MCPServer(2.xでは旧 mcp.server.fastmcp.FastMCP インポートは削除されています)。

  • KalshiはOFFICIALではなく、平易な httpxcryptography を使用:kalshi-python-syncは Python >=3.13 を必要とする仕様のバージョンに合わせて毎週リリースされています。認証は str(unix_ms) + METHOD + path に RSA-PSS(SHA256, salt = digest長) を適用し、path には /trade-api/v2 を含むがクエリ文字列は入れません。base URLは現在は外部はなく external-api.kalshi.com です。

  • x402(予定):公式PyPIパッケージ x402(v2.20+)を利用すると、MCPツールを直接ラッピングできます(x402.mcp が、ツール呼び出しの _meta に支払設定を載せて運びます)。ただしそのMCP互換アシスターは現在 mcp 1.xx が対象 — 統合するには mcp>=1.28,<2 に固定するか、2.x互換リリースを待ちます。メインネットでの決済には facilitator (Coinbase CDP:毎月1,000件まで無料、その後 $0.001)が増えています。検索エンジンがサーバーをインデックスできるように、2つのシグナルは無料枠を維持してくください。

ビルダーエコノミーの今(ライブ、2026-08-23)

builder_stats から公開リーダーボードを取得したもの:

チュー

全履歴

#1 (betmoar)

$2.31M

$2.10B

top25の中央値

$127K

$88.2M

top 25 への入り方

$42K

$36.8M

教訓になるのは、ユーザー数の小さな行です。MagicMarkets はアクティブユーザー1で週$354K、Gate は 2人で週$1.11M、PolymarketScan は 3人で$277K をそれぞれルート勝っています。これらは自分のフローをルートさせているbot運用者です — まさにoddsのターゲット顧客 — 実際の1人の本気の(Agent 系)トレーダーが本物の取引量を持っていることを示しています。Wallets(MetaMask, 37,000人のユーザー)はユーザー自体は多いですが、1人当たりの量は多くありません。

ロードマップ

  1. 非ブロックのネットワークからのライブスモークテスト — 2026-08-23 完了、全ツールが通った

  2. ビルダーコードの登録(polymarket.com → Settings → Builders)、手数料を運用開始時は0 bss に設定、ODDSRAIL_BUILDER_CODE をエクスポート。その上で最初の帰属性注文を超小品で実行

  3. Kalshi を第1の取引所に追加 — 2026-086-23 完了、9ツール、ライブ検証済み

  4. mcp-2.x との互換の解消後に、2つのシグナル用に x402 ベースの有料版を実装

  5. レジストリ掲載:公式MCPレジストリ( mcp-publicer とPyPI に標識の mcp-name: マーカー)、Smithery(公開のstreamable-HTTP と、スキャナ用の無料ツールを扱う)、Glama( glama.json

  6. その他:なし

掲載・展開

  • GitHubhttps://github.com/hmesutozsoy/oddsrail (public、MIT)

  • Glama:GitHubを自動クロールするので、リポジント直下の glama.json がメンテナを表示します。

  • 公式MCPレジストリserver.json は準備済み。公開するには先にパッケージが PyPI に必要です(レジストリは PyPI の README の中で mcp-name: io.github.hmesutozsoy/oddsrail というマーカーで所有者を確認します)。それから mcp-publisher login github && mcp-publisher publish を走らせます。

  • Smithery:パブリックなHTTPSのstreamable-HTTP エンドポイントが必要です。oddsrail が stdio を使ってローカル実行ではなく、ホスティングされる形になれば利用できます。

-
license - not tested
Not graded
quality - not tested
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

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.

View all MCP Connectors

Latest Blog Posts

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