mcpField
P
polymarket-kalshi-trading

polymarket-kalshi-trading

リモート
github.com/hmesutozsoy金融データ11 日前に更新
リポジトリ

polymarket-kalshi-trading について

oddsrail は、Polymarket の市場データと注文ツールを AI クライアントに提供するオープンソースの MCP サーバーです。署名はローカルで行い、ドライランから始まります。運用者が設定する上限と独立した注文確認ツールを備え、ホステッドエンドポイントは Kalshi ツールを提供しません。

主な機能

  1. 01Polymarket の市場データとシグナル
  2. 02ローカル署名とドライラン取引
  3. 03check_order による注文確認
  4. 04運用者が設定する取引上限
  5. 05実際の板に基づくペーパーフィル

活用シーン

  1. 01注文送信前の市場と注文の確認
  2. 02実際の板に基づく約定のテスト
  3. 03セルフホスト環境での注文制限

MCP 対応

MCP クライアントに Polymarket のデータ、シグナル、注文確認、取引ツールを公開します。セルフホスト版はユーザーのキーで実注文に対応し、リモートエンドポイントはペーパートレードを提供しますが、Kalshi ツールは含みません。

設定

リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。

エンドポイントhttps://mcp.oddsrail.app/mcp
インストールコマンドをコピー
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。

パッケージ
pypioddsrail0.19.0

ツール

39
パラメーター型必須説明
limitintegerいいえ
querystringいいえ

詳細

oddsrail

AI エージェントに Polymarket のツールを提供し、ローカル署名と支出上限で管理できます。

oddsrail が役に立ったら、このリポジトリに ⭐ を付けて、ほかの人にも見つけてもらいましょう。

oddsrail はオープンソースの MCP サーバーです。MCP 対応の AI クライアントに、 Polymarket のライブ市場データ、コストを含む約定情報、注文ルーティングを提供します。 運用者が設定したガードにより、注文上限が適用されます。別途用意された決定論的な check_order ツールでは、注文の送信前に市場、結果、価格を確認できます。 注文ごとにこのツールを呼び出すよう、エージェントに指示してください。 エージェントが適切な戦略を選択または実行することを保証するものではありません。

開示事項。 oddsrail は情報提供ツールであり、金融 アドバイスを行うものではありません。すべての注文はご自身で判断してください。ご自身のキーを使ってライブ 取引を有効にしない限り、実際の注文は送信されません。予測市場は多くの法域で制限されており、 お住まいの地域で取引資格があるかを確認する責任はご自身にあります。 oddsrail は独立したプロジェクトであり、Polymarket または Kalshi と 提携しておらず、これらの企業から推奨も受けていません。

ライブの Polymarket 市場での実際の取引前チェック:エージェントの意図は NO でしたが、構築した注文は YES 側であり、check_order がブロックしました

これはモックアップではなく、ライブ市場での実際の check_order の結果です。エージェントは NO のつもりでしたが、YES の注文を構築しました。このチェックがなければ、取引の反対側を選んでいたはずで、それを知らせるものは何もありませんでした。

  • 送信前に確認します。 check_order は市場、売買方向、 価格、取引所の最低注文額を確認します。運用者のガードレールは注文処理経路で適用されます。 別個の確認ツールを呼び出す責任は、引き続きエージェントにあります。
  • 非カストディアルです。 キーはお使いのマシンから外に出ません。すべてドライランから始まり、 ライブの注文板に基づいてペーパーレジャーに約定が記録されます。
  • 無料で、手数料は 0 bps です。 oddsrail は取引に何も上乗せしません。詳しくは 資金調達方法をご覧ください。

セットアップ、ウォレット、取引上限、開発者向け情報については、OddsRail のドキュメントをご覧ください。

セットアップを選ぶ

Codex や Cursor を含む、お好みの AI クライアントでローカル MCP サーバーを使用できます。インストールするとツールが接続されますが、エージェントは起動しません。 クライアントに依存しないセットアップについては、開発者向けクイックスタートをご覧ください。

開発者向けクイックスタート

Python 3.11 以降が必要です。

pip install oddsrail

クライアントで、コマンド oddsrail、引数なしのローカル stdio MCP サーバーを設定します。JSON 設定を使用するクライアントの場合:

{"mcpServers":{"oddsrail":{"command":"oddsrail","args":[]}}}

設定形式はクライアントによって異なりますが、コマンドと引数は同じです。まず server_info を実行して、接続とドライランモードを確認してください。

または、クローンからインストールせずに実行します:

python3 -m venv .venv && .venv/bin/pip install -r requirements.txt

クライアントのローカル MCP 設定で、コマンドを /abs/path/to/oddsrail/.venv/bin/python、引数を ["-m", "oddsrail.server"] に設定してください。

その後、エージェントに次のように尋ねてください:「ワールドカップ決勝に関する市場を検索して、人気チームに対して overshoot シグナルを実行して」。

クライアント別のインストール

クライアント別のインストールコマンドとリンク
クライアント方法
スキルを読み込むエージェント全般npx skills add hmesutozsoy/oddsrail
CursorCursor に oddsrail をインストール
VS CodeVS Code に oddsrail をインストール
stdio 経由で MCP を利用するその他のクライアント{"command": "uvx", "args": ["oddsrail"]}(または pip install oddsrail を実行して oddsrail を起動)

プラグインとワンクリックリンクは uvx でサーバーを起動するため、 マシンに uv が必要です。uv がない場合は、pip install oddsrail を実行すると、任意のクライアントから指定できる oddsrail コマンドが使えるようになります。 すべてドライランで開始します。

4 つのスキル(skills/*/SKILL.md)は、サーバー独自の MCP プロンプトから scripts/gen_skills.py によって生成されます。スキルにずれがあるとテストが失敗するため、 スキルと、それに対応するプロンプトの内容が食い違うことはありません。

oddsrail の比較

各代替手段について、マーケティング情報ではなく、各プロジェクトのリポジトリ、稼働中のエンドポイント、レジストリエントリーを直接確認しました(2026年9月)。

oddsrailraw venue APIspmxtSimmerPolymarket agent-skills
概要セルフホスト可能な MCP サーバー各取引所そのもの統合 API + SDK + MCP、「予測市場向け CCXT」エージェント取引プラットフォーム + SDK + MCPエージェント向けの Markdown スキルドキュメント
資産管理ノンカストディアル。キーがマシンの外に出ることはありません自分で管理ホストモード:「PMXT が資産管理と署名インフラを担います」。セルフホストモード:自分のキーを使用セルフカストディ、ローカル署名自分で管理(ドキュメントのみ)
自分で管理できるアトリビューションはい。ODDSRAIL_BUILDER_CODE で 0 bps のデフォルト値を上書きできます該当なしドキュメントに記載なしドキュメントに記載なし独自コード用のビルダーヘッダーを文書化
トレーダーのコスト0 bps、ツールは無料無料ホスト版の料金は README に記載なしドキュメントに記載なし無料
オープンソースMIT、MCP サーバーのソースコード全体該当なしMIT、約 2.1k スター明記なしドキュメント。ライセンスの記載なし
運用者向けガードレール注文送信前に、名目上限、未決済注文上限、許可された市場をチェックします。注文ごとの上限と許可された市場はドライランでも適用されます。セッション上限と未決済注文上限は実注文のみをカウントします。なしドキュメントに記載なし取引ごとの上限、日次上限、損切り/利確、キルスイッチなし
ペーパートレードライブ板に対するドライラン約定、損益なしドキュメントに記載なし仮想 $SIM サンドボックス。その後、実資金取引に移行なし
板の注文をたどったコスト、決済監査、管轄区域別の失敗分類、日付入りの取引所固有の注意事項はい、4項目すべてなしドキュメントに記載なしドキュメントに記載なし一部の注意事項を文書化
リアルタイムwatch_book、上限付きWebSocket、自分で接続する必要がありますREADME に記載なしドキュメントに記載なしWebSocket を文書化

2026-09-02 に、各プロジェクトの README またはドキュメントから確認しました(pmxt:github.com/pmxt-dev/pmxt、Simmer:docs.simmer.markets、agent-skills:github.com/Polymarket/agent-skills)。「ドキュメントに記載なし」は、そのとおりの意味であり、「存在しない」という意味ではありません。引用する前に再確認してください。これらのプロジェクトは変化しています。

ひとことで言えば、差別化の要点はこうです。 pmxt は「あらゆる場所で」取引するための基準であり、Simmer はサンドボックスと評判レイヤーを備えたエージェント経済の基準です。oddsrail は「適切に、ノンカストディアルに、自分で管理できるアトリビューション付きで」取引するための基準です。

他のプロジェクトが明確に優れている点: pmxt は、取引とデータの両面でより幅広い取引所に対応し、ホスト型の利便性を備え、コミュニティの規模も私たちを大きく上回っています。Simmer には仮想残高のサンドボックス、oddsrail にはない損切り・利確の仕組み、公開された推論/評判レイヤー、戦略スキルのマーケットプレイスがあります。Polymarket の agent-skills は取引所自身によるドキュメントで、oddsrail が対応していないブリッジングや入金も扱っています。

Polymarket の生 API にはエンドポイントがあります。また、拒否を ok:false の戻り値として表し、板の注文を最も不利な価格から並べ、 市場の公開テープを返す取引エンドポイントを提供し、 ドキュメントに記載のない 1 ドルの最小名目額を適用しています。oddsrail は、 そのすべてに直面し、対処法を組み込んだ結果として生まれました。

無料で使えて、手数料も無料

デフォルトでは、注文には oddsrail 独自のビルダーコードが付きます。このコードは 0 bps で登録されているため、誰の取引にもベーシスポイントを一切加算せずに、プロジェクトへのアトリビューションが行われます。ODDSRAIL_BUILDER_CODE を設定すると、注文には代わりに自分のコードが付きます。プロジェクトの収益は、Polymarket 独自のプログラムから支払われる Polymarket の週間ビルダー報酬プールの分配金であり、あなたが支払うものではありません。server_info は常に、使用中のコードを通知します。すべてのツールは無料です。料金段階も有料ツールもアカウント登録も不要で、現在、有料プランはありません。

ホスト版:インストール不要

mcp.oddsrail.app は、アカウント機能を備えたリモート MCP エンドポイントとして、同じサーバーを実行します。リモート HTTP 接続と OAuth に対応した MCP クライアントを使用してください。https://mcp.oddsrail.app/mcp を追加し、クライアントから認証を求められたら、メールアドレスを使ってサインインしてください(ワンタイムサインインリンクを使用します)。以降の呼び出しでは、そのアカウントが使用されます。プロンプトの例とトラブルシューティングについては、ホスト版コネクターのドキュメントをご覧ください。

MCP エンドポイントが提供するものを一息で説明すると、Polymarket の市場データ、シグナルツール、check_order、そしてアカウントごとに仮想資金 $1,000 を使ったペーパートレードです。注文はライブの板に対して約定します。提供しないものは、実際のお金が動く機能です。このツールはウォレットキーを使わず、実際の注文を執行せず、Kalshi のツールも提供しません。アカウント単位のツールと運営者向けツールは削除されています。共有サーバーでは、誰のアカウントを指すのか不明になったり、他人のウォレットを一覧表示したりするためです。削除されたツールは、open_orders、order_status、my_fills、my_positions、my_balance、cancel_all_orders、ガスレスリレイヤーのツール、redeemable_positions、builder_stats、attribution_ledger、compare_venues、settlement_audit、およびすべての kalshi_ ツールです。残るツールは 22 個です。

  • 市場データ:search_markets、find_markets、get_market、 get_orderbook、price_history、watch_book、closing_soon、 resolution_criteria、get_positions
  • シグナルとコスト:overshoot_signal、dispute_risk、quote_cost、 position_size
  • ペーパートレード:check_order、place_order、cancel_order、 paper_positions、paper_reset
  • 公開アリーナボード:arena_register、arena_unregister、arena_status。 アカウントのペーパーレジャーを、選んだ表示名で公開ボードに掲載し、 後から掲載を取り消せます
  • ステータス:server_info

ここでも check_order はオプトインです。エージェントは place_order の前にこれを呼び出します。自動で実行されることはありません。

MCP を使ったライブ取引は、引き続きセルフホスト方式です。自分のキーを使って pip install oddsrail を実行し、ODDSRAIL_DRY_RUN=0 に設定すると、同じ place_order が実際の注文を送信します。ホスト版の実行環境は別のサービスです。アカウントには、メールアドレス、接続したクライアントの OAuth レコード、ペーパーレジャー(paper_reset でリセットできます)、および設定した場合に限り、アリーナへの登録情報またはホスト版ペーパーエージェントが保存されます。プライバシーポリシー:oddsrail.app/privacy。このリポジトリには MCP サーバーが含まれています。ホスト版プロファイルで削除される項目は oddsrail/hosted.py に記載されています。ホスト版サービスとウェブサイトは、別の非公開リポジトリで開発されており、オープンソースではありません。

ビルダーページとコンペティション

エージェントを作成するには、戦略、市場、リスク制限を選択します。ホスト版のクォーティングには、別途アカウント確認と開始のフローがあります。ローカル戦略を使う場合は、下書きを保存してAI クライアントの設定を開くと、接続手順と設定を保持した戦略概要を確認できます。

この概要は、AI クライアントに読み取り専用のレビューを依頼します。戦略のインストール、自律実行環境の起動、ビルダーで指定した日次損失、エクスポージャー、市場のルールの強制は行いません。ローカルでのライブ取引には、別途アカウント設定、運営者向けガード、明示的な認可が必要です。ホスト版エージェントの有効化には、Deposit Wallet のセッションキーが必要で、パイロット期間中は所有者が許可リストに登録されている必要があります。

リーダーボードには、Polymarket のものと同様の形式で、oddsrail.app にサインインしたすべてのウォレットが掲載されます。各行には短縮アドレス(先頭と末尾の 4 文字)が表示されます。名前、完全なアドレス、プロフィールへのリンクはありません。予測市場の利益と取引量は、アドレスが管理する取引ウォレットについて Polymarket が公開している数値で、オンチェーンで検証されています。Perps の数値は、アカウントの公開利益、取引量、価値です。参加や退会の手続きはありません。掲載を望まない所有者は、ウォレットでメッセージに署名し、メールで依頼してください。

Protocol V2 の互換性

新しい Polymarket Protocol V2 は、以下で説明する従来の CLOB V2 の注文形式アップグレードとは別のものです。CLOB V2 のアトリビューション対応を、エンドツーエンドの Protocol V2 取引が検証済みであることと解釈しないでください。

現在のソースでは、公開アカウントの読み取りに Data API v2 を使用しています。ホステッド環境での Protocol V2 のクォートは、明示的に指定したオーナー/マーケットのカナリアに制限されています。0.20.0rc2 のローカル MCP 候補版では、SDK とプロトコルを考慮したディスカバリーがアップグレードされています。資金を使った検証が完了するまでは、署名の前にライブ V2 注文と split/merge/redeem が拒否されます。この候補版を Protocol V2 の完全なライブ対応として扱わないでください。既存の CTF マーケットでは、それぞれ独自のルーティングを維持する必要があります。

移行状況と残る確認項目をご覧ください。 ウェブサイトのデプロイでは、ローカルインストールはアップグレードされません。現在の安定版デスクトップバンドルでは oddsrail==0.19.0 が固定されています。これらのユーザーに以降の修正を提供するには、テスト済みのパッケージとバンドルのリリースが必要です。

アトリビューションの仕組み(CLOB V2、2026年8月に検証済み)

  1. polymarket.com → Settings → Builders で builder code(bytes32)を取得します。そこで手数料率を設定します。テイカーは最大 100 bps、メイカーは最大 50 bps で、プラットフォーム手数料に加算され、builder ウォレットに精算されます。
  2. サーバーの実行環境で export ODDSRAIL_BUILDER_CODE=0x... を実行します。
  3. 設定すると、エージェントが place_order を通じてルーティングするすべての注文で、署名前に V2 注文構造体の builder フィールドへコードが設定されます。そのため、アトリビューションはオンチェーンに記録され、CTF Exchange V2 のすべての OrderFilled イベントで確認できます。
  4. builder_stats ツール(公開の builder-trades エンドポイント+リーダーボード)で確認します。

これを設定しない場合、注文には同じフィールドに同梱の oddsrail builder code(0xa576c5ce…、メイカー 0 bps/テイカー 0 bps で登録済み)が設定されます。費用はかからず、取引高はプロジェクトに帰属します。独自のコードを設定すれば、そちらが優先されます。デフォルトはあくまで初期設定であり、固定ではありません。

oddsrail の builder プロファイルは Polymarket の builder プログラムで検証済みです(2026-09-02)。また、Polymarket の builder チームは、セルフホスト型で非カストディアルなツールには builder-code アトリビューションが適切な方式であることを確認しています。製品にキーは同梱されず、コードはオペレーター自身のウォレットによって付与され、署名されます。

環境変数

変数デフォルト説明
ODDSRAIL_DRY_RUN1注文はシミュレーションされて返されますが、送信されません。実取引が有効になるのは、0、false、no の場合のみです。それ以外の値ではドライランが維持されます。
ODDSRAIL_BUILDER_CODEプロジェクトのデフォルト値お客様の bytes32 ビルダーコードです。組み込みのプロジェクトデフォルト値を上書きし、アトリビューション(および報酬プールの分配分)が代わりにお客様に付与されます。
POLYMARKET_PRIVATE_KEY未設定運用者のウォレットキーです。実取引の場合のみ必要です。このマシンの外部に送信されることはありません。
POLYMARKET_WALLET_ADDRESS未設定アカウントで使用している場合は、プロキシ/入金用ウォレットのアドレスです。
POLYMARKET_RELAYER_API_KEY未設定ガス代不要の split_position / merge_positions / redeem_positions 用のお客様自身の Relayer API キー(polymarket.com → Settings → Relayer API keys)です。
POLYMARKET_RELAYER_API_KEY_ADDRESS未設定リレイヤーキーの発行先アドレスです。両方の値が必要です。設定されていない場合、ガス代不要のツールは何も送信しません。
ODDSRAIL_MAX_ORDER_NOTIONAL未設定ガードレール:注文ごとの最大 USDC 名目額です。ドライラン中も含め、リクエストの前に適用されます。
ODDSRAIL_MAX_SESSION_NOTIONAL未設定ガードレール:このサーバープロセスが送信するライブ注文の累積名目額の上限です。
ODDSRAIL_MAX_OPEN_ORDERS未設定ガードレール:アカウントで未約定のまま残る注文数の上限です。注文の発注前に取引所で確認されます。
ODDSRAIL_ALLOWED_MARKETS未設定ガードレール:許可する市場識別子をカンマ区切りで指定します。Polymarket では、正確なアウトカムトークン ID を使用してください。それ以外はすべて拒否されます。
ODDSRAIL_PAPER1ライブブックに対して Polymarket 注文をペーパートレードするドライランです。0 で無効になります。
ODDSRAIL_PAPER_LEDGER~/.oddsrail/paper.jsonペーパートレードの台帳の保存先です。ローカルの JSON ファイルが 1 つ作成されます。
ODDSRAIL_PAPER_BANKROLL1000ペーパートレードで使用する開始時の現金(USDC)です。

プライバシーとネットワークアクセス

ローカルサーバーは、テレメトリー、分析データ、使用状況データを一切送信せず、oddsrail.app やプロジェクトが運営するほかのサーバーに接続することもありません。以下に示す取引所およびブロックチェーンのホストとのみ通信し、ツールが必要とする場合に限って接続します。各ホストには、このマシンの IP アドレスが通知されます。

ホスト接続するタイミング送信される内容
gamma-api.polymarket.com市場の検索、詳細、一覧表示(search_markets、find_markets、get_market、closing_soon、resolution_criteria、check_order、dispute_risk)検索テキスト、および指定した市場 ID、スラッグ、トークン ID
clob.polymarket.comオーダーブック(get_orderbook、quote_cost、check_order、ペーパーフィル)、ビルダートレード。取引キーがある場合は、注文、キャンセル、アカウント情報の読み取りトークン ID とビルダーコード。キーがある場合、このマシンで署名された注文と、キーから生成された認証情報で認証されるリクエスト。秘密鍵そのものが送信されることはありません。
data-api.polymarket.com価格履歴、ポジション、約定、ポートフォリオ価値、ビルダーのランキングトークン ID と、照会対象のウォレットアドレス(my_fills と my_positions では設定済みのウォレット)
ws-subscriptions-clob.polymarket.comwatch_book の WebSocket購読するトークン ID
polymarket.com/api/geoblockserver_infoリクエスト自体。これにより Polymarket は、この IP アドレスの管轄区域に関する判定を返せます。
relayer-v2.polymarket.com取引キーがある場合、取引クライアントの起動時のウォレット確認。リレイヤーキーがある場合、ガス不要の split_position、merge_positions、redeem_positionsウォレットアドレス、署名済みトランザクション、リレイヤー API キー
パブリック Polygon RPC(固定された polymarket-client SDK のデフォルトである polygon.drpc.org)ガス不要ツールで SDK が行う、残高やガス見積もりなどのオンチェーン読み取りパブリックウォレットアドレスとコントラクトアドレス
external-api.kalshi.com(KALSHI_DEMO=1 の場合は external-api.demo.kalshi.co)kalshi_* ツール、compare_venues と settlement_audit、venues に Kalshi を含めた場合の find_markets/closing_soon(デフォルトでは両方)、および venue='kalshi' を指定した場合の quote_cost/resolution_criteria/check_order検索テキストとティッカー。Kalshi のキーがある場合、このマシンで署名されたリクエスト

server_info は、gamma-api、clob、data-api、external-api.kalshi.com にそれぞれ認証なしの接続確認リクエストを 1 回送信します(取引キーが設定されている場合はリレイヤーにも送信します)。pip または uvx でインストールすると、PyPI からパッケージとその依存関係がダウンロードされます。これはパッケージマネージャーによるものであり、サーバーではありません。

このマシンに保持されるもの:キー、ガードレールのカウンター、ペーパーレジャー(デフォルトでは ~/.oddsrail/paper.json)。AI クライアントは、プロバイダー独自のポリシーに従って、すべてのツール呼び出しと結果を確認できます。ホスト型コネクター mcp.oddsrail.app はアカウントを必要とする別のサービスです。保存される情報についてはプライバシーポリシーをご覧ください。

セキュリティ

脆弱性は公開イシューではなく、非公開で報告してください。報告方法と対象範囲については、SECURITY.mdをご覧ください。

ステータス

テスト: 0.18.1 リリースと、そのテストのみの後続リリースでは、Python 3.11、3.12、3.13 で 1,356 件の Python テスト、さらに 119 件の JavaScript テストに合格しました。テストには、支出上限、同時送信、注文照合、板の走査、数量決定、ドライラン動作、ウォレット認証、ビルダーへの引き継ぎが含まれます。固定された環境とコマンドについては、テストガイドをご覧ください。

リリース検証: インストーラーの起動コマンドで公開済みの PyPI パッケージをインストールし、実際の MCP セッションを完了しました。デフォルトおよび予期しないモード設定はシミュレーション状態のままでした。このリリース確認では資金を使った注文は行っていません。デスクトップホストのインターフェース経由でのインストールと、資金を使った取引は、引き続きテストが必要です。

帰属情報付き注文やガス不要のポジション管理など、以前に実施した Polymarket 統合確認の記録は、ライブ検証メモをご覧ください。

ここでの動作

oddsrail による取引を妨げる要因は 2 つあり、それぞれ対処方法が正反対です。1 つは注文時に適用される、取引所の制限です。もう 1 つはネットワークフィルターで、接続そのものを遮断します。

Polymarket の制限。 Polymarket は、制限対象の管轄区域の一覧を API リファレンスとして公開しています:https://docs.polymarket.com/api-reference/geoblock。制限には 3 つの段階があります。OFAC の制裁対象管轄区域(イラン、シリア、キューバ、北朝鮮、およびウクライナのクリミア、ドネツク、ルハンシク地域)は、フロントエンドと API の両方でブロックされ、新規注文だけでなく、既存ポジションの決済もできません。2 つ目の、より長い一覧の管轄区域では、フロントエンドと API の両方で決済のみ可能です。既存ポジションは決済できますが、新規ポジションは建てられません。これには、米国、英国、フランス、ドイツ、イタリア、ポーランド、スロバキア、ベルギー、シンガポール、オーストラリア、ニュージーランド、ブラジル、ロシア、台湾、タイ、およびカナダのオンタリオ州、ケベック州、ブリティッシュコロンビア州、アルバータ州が含まれます。3 つ目のグループであるアイルランド、日本、マルタ(スポーツのみ)、オランダでは、Polymarket のフロントエンドでのみ決済可能で、API は明示的に制限対象外です。

この障害の特徴に注意してください。接続ではなく、注文に対して発生します。公開データの読み取りには問題がないため、注文が拒否される直前まで oddsrail は正常に動作しているように見えます。2026-08-31 に Polymarket のドキュメントで確認済みです。Polymarket は予告なく一覧を更新するため、この段落ではなく URL を確認してください。

米国。 oddsrail が接続する取引所 polymarket.com は、米国では決済のみ可能です。Polymarket はこれとは別に、CFTC 規制下の指定契約市場である Polymarket US(polymarket.us)を運営しており、運営会社は QCX LLC です。oddsrail はこれをサポートしていません。 API ホスト、認証方式(EIP-712 ウォレット署名ではなく API キーヘッダー)、SDK、資金の入出金経路がそれぞれ異なります。polymarket.us のアカウントとそのキーは、このサーバーでは使用できません。

ネットワークフィルター。 取引所の規則とは別に、国のフィルターによってドメイン自体がブロックされる場合があります。トルコがその例です。Polymarket はトルコを制限していませんが、トルコの ISP は polymarket.com をブロックしています。これは接続の問題であり、取引資格の問題ではありません。また、DNS エラー、TLS エラー、接続リセット、JSON が返されるはずの場所に表示される ISP のインタースティシャルページなど、症状も異なります。oddsrail はどちらの状態かを判別し、呼び出し元のエージェントにどちらが発生したかを伝えます。

取引資格に関する責任は、ツールではなく運営者にあります。 oddsrail はセルフホスト可能で、カストディアルではありません。これは大きな利点である一方、アカウントを保有し、取引所への申告を行うのは あなた であることも意味します。あなたの代わりに申告を行う仲介者はいません。Polymarket の取引フローでは、米国人ではないこと、制限対象の管轄区域に居住していないこと、および制限を回避または回避しようとする目的で「VPN またはその他の手段を使用していない」ことを証明する必要があります。また、規約に準拠しないウォレットを決済のみ可能なモードにする権利を Polymarket が留保すると明記されています。server_info は、このマシンの IP に対する Polymarket のジオブロック判定を報告しますが、技術的な確認はコンプライアンスチェックではありません。規約で基準となるのは送信元 IP ではなく、居住地、市民権、法人設立地です。規約をお読みください。これらのいずれかが関係する場合は、ご自身で法律上の助言を受けてください。ここに記載されている内容は、法律上の助言ではありません。

これらにかかわらず、シグナルロジック、MCP レイヤー、テストスイート全体はオフラインでも問題なく動作します。

ガードレール:エージェントが覆せない制限

エージェントに鍵を渡す人が最初に求めるのは、1注文あたりの上限、1セッションあたりの上限、そして取引を許可する市場の制限の3つです。これらに未約定注文の上限を加えたすべての制限は、運用者が設定する環境変数(上の表を参照)であり、注文を送信する前にチェックされます。1注文あたりの上限と許可された市場はドライランにも適用されます。セッション上限と未約定注文の上限は、ライブ注文のみを対象とします。拒否時には、ルール、上限、リクエストを示す構造化された応答が返されます。

{"accepted": false, "blocked_by": "guardrail", "rule": "max_order_notional",
 "limit": 25.0, "requested": 99.5, "note": "refused by an operator-set guardrail ... Nothing was sent."}

セッションカウンターはサーバープロセス内に保持されます。再起動すると予算がリセットされますが、これは運用者の判断によります。server_info では有効な制限と、セッション予算の使用量を確認できます。

ペーパートレード:状態を保持するドライラン

デフォルトでは、Polymarket のドライラン注文はすべて、ライブの注文板に対して指値の範囲内で約定します。約定しなかった分はペーパー注文として残り、市場価格がその価格に達すると後で約定します。paper_positions では現金、現在の評価額でのポジション、実現損益と未実現損益、未約定のペーパー注文を確認できます。paper_reset で最初からやり直せます。台帳はローカルの JSON ファイル1つです。この仕組みの前提を明確にしておいてください。ペーパー取引では、注文の待ち行列内の位置、遅延、市場インパクト、手数料を考慮しないため、ペーパー取引の結果は、同じ戦略をライブで運用した場合の上限値です。

リアルタイム:注文板の動きを監視する

watch_book(token_id, seconds, max_events) はトークンのリアルタイムストリームを購読し、届いたイベント(注文板のスナップショット、その後の価格変動と取引)を返します。エージェントが動きのない市場でセッションを止めてしまわないよう、最大60秒に制限されています。判断に必要なのが注文板の現在の状態だけでなく、その動きである場合は、get_orderbook の後に使用してください。

REST ツールが動作する一方で、ストリームが CERTIFICATE_VERIFY_FAILED で失敗する場合、Python に CA バンドルがありません(python.org の macOS インストールでよく起こります)。oddsrail はこれを local_tls として分類し、修正方法をエージェントに伝えます。/Applications 内の Python フォルダーにある Install Certificates.command を実行するか、SSL_CERT_FILE に python -m certifi が出力するパスを設定してください。

ガス不要のポジション管理(リレイヤー)

Polymarket のリレイヤーを通じて、ガス代を支払わずに担保を移動するツールが3つあります。split_position(USDC → YES と NO の完全なセット)、merge_positions(対応する YES と NO → USDC、または max)、redeem_positions(解決済み市場の勝ちシェア → USDC)です。いずれもドライランに対応し、リレイヤーのトランザクション ID とハッシュに加え、最終的な結果を返します。

これらのツールでは、polymarket.com → Settings → Relayer API keys で作成し、POLYMARKET_RELAYER_API_KEY と POLYMARKET_RELAYER_API_KEY_ADDRESS としてエクスポートしたご自身の Relayer API キーを使用します。これは、セルフホスト可能なツールについて Polymarket のビルダーチームが推奨する方法です。oddsrail にビルダーの秘密情報は含まれず、各運用者が自分自身としてリレイヤーに認証します。リレイヤーの上限はビルダーティアごとに異なり、未認証では1日あたり100リクエスト、認証済みでは10,000リクエストです。キーがない場合、ツールは「未設定」を示す構造化された応答を返し、何も送信しません。署名者からガス代を支払うブロードキャストにフォールバックすることはありません。

ライブ環境での検証済み(2026-09-02): このコードからメンテナーのテストアカウントの専用 Relayer API キーを使い、1 USDC の分割と、それに対応する統合をリレイヤー経由でガス代なしで実行しました。リレイヤー ID と Polygon のトランザクションハッシュは docs/live-proof.md に記載されています。redeem_positions は、ライブ環境での動作がまだ実証されていません。勝ちシェアを持つ解決済み市場が必要ですが、このアカウントはまだそのようなシェアを保有したことがありません。redeemable_positions は、設定済みウォレットが現時点で償還または統合できる対象を一覧表示します。また、settle_resolved プロンプトは、この2つのツールを連続して実行します。

市場の発見と取引コスト

  • find_markets(query, venues="polymarket"):Polymarket を検索し、正規化された市場 ID、タイトル、アウトカム価格、買値/売値、スプレッド、出来高、終了時刻を返します。このワークフローでは、取引所を明示的に指定してください。
  • quote_cost("polymarket", market_id, side, size):指定されたシェア数についてオーダーブックをたどります。平均約定価格、スリッページ、想定元本、消費した価格レベル、指定サイズで約定可能かどうか、および公開されている場合は市場の手数料体系を返します。

注文のライフサイクルと確認

  • order_status(order_id):resting/partially_filled/filled/gone と、約定済みサイズを返します。place_order の後にエージェントが必要とする情報です。
  • my_fills()、my_positions():アドレスを使い分けることなく、オペレーターの約定と保有状況を確認できます。(約定情報は Data API のアクティビティフィードから取得します。SDK の list_account_trades は市場の 公開 取引履歴を返すため、使用しません。)
  • cancel_all_orders():緊急停止スイッチです。すべての有効な注文を一度に取り消します。
  • resolution_criteria(venue, market_id) は、解決条件の契約全体を返します。YES と判定される条件、解決を行う主体、その情報源が記載されています。価格を信頼する前に確認してください。
  • closing_soon(hours, venues="polymarket"):指定した時間以内に終了する Polymarket 市場を返します。取引が集中する市場を確認できます。

ワークフロープロンプト

MCP プロンプトは、クライアント内にすぐ使えるワークフローとして表示され、エージェントが問題を起こさないための操作の順序を組み込みます。専門性の要となるのは手順の順序であり、ツールを平坦に並べるだけでは伝えられません。

  • /find_fade_setup(query, bankroll):シグナル → オーダーブック → コスト → 解決条件 → サイズ → ドライランの順に進み、各ステップで却下条件を示します
  • /daily_review:保有状況、有効な注文、約定、終了間近の市場、アトリビューション

取引前の確認とサイズ設定

  • check_order(venue, market_id, side, price, size, intent):place_order の直前に行う最後のステップです。提案された注文を、依頼内容の短い言い換え(市場とアウトカム)およびリアルタイムの市場情報と照らし合わせ、決定論的に確認します。市場が存在し注文を受け付けているか、依頼内容の文言が市場と YES/NO のサイドに一致しているか、価格がオーダーブックに照らして妥当か、サイズが Polymarket の最低額である 1 ドルを上回りガードレールの範囲内か、指値以内に流動性があるか、解決情報源が明示されているかを確認します。各確認の根拠と一行の確認結果を添えて、ok/caution/block を返します。別のモデルによる判定はなく、何も送信されません。オプトイン方式です。place_order が自動で実行することはないため、注文ごとにエージェントへ呼び出すよう依頼してください。
  • position_size(bankroll_usd, price, fair_value):上限付きのフラクショナル・ケリー方式でサイズを算出し、期待値がマイナスのベットは拒否して、計算に用いた前提も返します。

Polymarket ツールの概要

  • search_markets、get_market、get_orderbook、price_history、get_positions:読み取り専用で、キーは不要です
  • overshoot_signal(無料):急騰の新たな検出と、同じ期間内に発生した過去の急騰の中央値回帰を確認します(polymarket-wc アナライザーから移植)
  • dispute_risk(無料):異議申し立ての対象になりやすい(UMA 紛争の可能性が高い)解決について、透明性のある 0〜100 のヒューリスティックを返します
  • place_order、cancel_order、open_orders:取引機能です。デフォルトではドライランです。price は (0,1) の範囲の確率、size はシェア数であり、取引所は成行可能な注文に 想定元本 1 ドル以上 の最低額を適用します。取引ツールには、クライアントが利用を制限できるよう destructiveHint アノテーションが付いています。
  • builder_stats:アトリビューションの検証と、公開ビルダーランキング
  • find_markets、quote_cost:市場の発見と取引コスト(上記)
  • server_info:サーバーモード、設定済みの認証情報、オペレーターのガードレール

スタックに関する補足

  • 公式の統合 SDK polymarket-client(このリリース候補では 0.12.0):データには AsyncPublicClient を使用し、注文の帰属には AsyncSecureClient.place_limit_order(..., builder_code=...) を使用します。レガシーの py-clob-client はアーカイブ済みで、ビルダーコードを添付できません。使用しないでください。
  • MCP SDK 2.0:mcp.server.mcpserver の MCPServer を使用します(古い mcp.server.fastmcp.FastMCP のインポートは 2.x では廃止されています)。

対象ユーザー

Polymarket の公開ビルダーランキングを見ると、単独の運営者が自分のフローをルーティングする価値が分かります。このサーバー独自の builder_stats ツールを使って 2026-08-31 に取得したデータです。もう一度実行すると、数値は変わります:

週間取引量
#1(traderline)$7.70M
上位 25 件の中央値$533K
上位 25 件に入るための額$140K

参考になるのは、小規模な項目です。MagicMarkets はアクティブユーザー 1 人で週あたり $901K をルーティングしています。Jupiter は 1 人で $515K、Sharkbetting は 2 人で $1.15M です。これらは自分のフローをルーティングするボット運営者であり、まさにこのために構築されています。

ロードマップ

  1. ブロックされていないネットワークからのライブスモークテスト:2026-08-23 に完了、すべてのツールが合格
  2. ビルダーコードを登録(polymarket.com → Settings → Builders)し、ローンチ時の手数料を 0 bps に設定して、ODDSRAIL_BUILDER_CODE をエクスポートします。その後、少額で最初の帰属注文を行います。

有料プランはなく、現在提供しているものもありません。2 つのシグナルを含むすべてのツールが無料です。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。