dino.markets について
dino.marketsは、KalshiとPolymarketの予測市場を分析する開発者やエージェント向けのホスト型MCPサーバーです。市場の照合、裁定機会、決済条件やマッチング信頼度を提供します。
主な機能
- 01照合済み市場の検索と絞り込み
- 02確認済みの取引所間裁定を取得
- 03価格差と市場詳細を確認
- 04決済差異とマッチング信頼度を確認
- 05WebSocketで市場を監視
活用シーン
- 01KalshiとPolymarketの関連市場を検索
- 02確認済み裁定機会を絞り込み
- 03決済条件と開示リスクを確認
- 04リアルタイム市場ストリームを購読
MCP 対応
ホスト型のStreamable HTTP MCPサーバーで、8つの公開ツールから市場、裁定機会、価格差、決済情報の照会と市場監視を行えます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
dino.markets MCP
Model Context Protocol を介して、スポーツ、暗号資産、天気、経済に関する Kalshi と Polymarket の予測市場を照合します。ホスト型サーバーでは、照合済みカタログ、信頼度の範囲を含む確認済みアービトラージ、リアルタイムの WebSocket ストリームを提供します。
概要
| トランスポート | Streamable HTTP |
| エンドポイント | https://api.dino.markets/v2/mcp/ (末尾のスラッシュが必要です) |
| 認証 | X-API-Key ヘッダー(Authorization: Bearer も使用できます)— Free プランで利用できます |
| 公開ドキュメント記載ツール | 8 |
| ホスティング | ホスト型 — セルフホストはできません |
インストール/接続
公式ブリッジ経由のリモート MCP として、Claude Desktop または Cursor に追加します。
{
"mcpServers": {
"dino-markets": {
"command": "npx",
"args": ["mcp-remote", "https://api.dino.markets/v2/mcp/", "--header", "X-API-Key:${DINO_API_KEY}"],
"env": { "DINO_API_KEY": "sk_live_YOUR_KEY" }
}
}
}
Free プランでも API キーが必要です。匿名モードはありません。https://dino.markets で取得してください。
プランと制限
MCP はすべてのプランに含まれています。REST スナップショットはベストエフォートで提供され、どのプランでも約 2 分遅延します。
| プラン | 価格 | REST リクエスト/月 | REST リクエスト/秒 | WebSocket |
|---|---|---|---|---|
| Free | $0/mo | 10,000 | 10 | 厳選された sample チャネル、1 接続 |
| Basic | $30/mo | 1,000,000 | 10 | 全市場ストリーム、3 接続 |
| Premium | $100/mo | 5,000,000 | 25 | 全市場ストリーム、10 接続 |
| Pro | $200/mo | 5,000,000 | 25 | 全ストリームに加え、生の気配値と早期候補、10 接続 |
公開ドキュメント記載の 8 つのツール
| ツール | 戻り値 | プラン |
|---|---|---|
find_markets | チーム、リーグ、市場のタイトル、市場ファミリーを自由なテキストで検索し、詳細取得用の ID を返します | 有効なすべてのキー |
find_arbitrage | Kalshi と Polymarket 間の確認済みクロスベニュー・アービトラージを、ネイティブの Opportunity オブジェクトとして返します。各結果について、選択された実行レッグを 1 つ(ベニュー、売り気配、サイズ、コントラクト ID)返し、スポーツによる絞り込みもできます | 有効なすべてのキー |
list_markets | 照合済みクロスベニュー・カタログ。スポーツ、リーグ、ステータス、market_type、または signal(spread|candidates — arb は明示的に拒否されます。詳細は以下を参照)で絞り込めます | 有効なすべてのキー |
get_market | ID(dino_<uuid> または UUID のみ)で指定した市場の標準市場オブジェクト。決済に関する開示情報と板の厚さを含みます | 有効なすべてのキー |
list_leagues | シーズン中のスポーツとリーグについて、スポーツごとのオープン/ライブ/決済済み件数を返します — まずこれを呼び出してください | 有効なすべてのキー |
get_spreads | スプレッドのみとして分類された照合済みペアの、検証済みクロスベニュー価格差を返します | 有効なすべてのキー |
report_bad_arb | 不正確なアービトラージ機会を運用担当者の確認用に報告します | 有効なすべてのキー |
watch_markets | 短期間有効な接続チケットを発行します。Free プランでは sample、有料プランでは全ストリームを利用できます | 有効なすべてのキー |
list_markets のデフォルトは moneyline,outright です。market_type には total、spread、team_total、advance、weather_high、crypto_above、fed_decision、econ_print、cb_decision、all も指定できます。決済に関する注意事項については、ライブのツール説明と製品マニュアルを正としてください。
注目の例:find_arbitrage
find_arbitrage は Market オブジェクトではなく、個別の Opportunity リソースを返します。発生した裁定機会では、各アウトカムにつき選択された約定レッグは常に1つだけ(エンジンが実際に選んだ取引所)であるため、両側を持つ Market の行として表現できません。これは意図的な v2 Interface の変更です(2026-07-13)。以前の GET /v2/markets?signal=arb パスは廃止され、list_markets(signal="arb") は、代わりにこちらを案内する型付きエラーを返します。
REST 相当:
curl -s "https://api.dino.markets/v2/arbitrage?sport=baseball" \
-H "Authorization: Bearer $DINO_API_KEY"
MCP ツール呼び出し:find_arbitrage()(引数なし)、または find_arbitrage(sport="baseball")。
レスポンスのエンベロープ({as_of, delay_seconds, count, opportunities:[...]})は、ライブで新たに取得したものではなく、REST API リファレンス をもとに再現しています。このリポジトリには直接アクセスできるサーバーがありません。count: 0 の空の opportunities 配列は通常の待機状態です。値が入っている場合は、次のようになります。
{
"as_of": "2026-07-13T08:00:05Z",
"delay_seconds": 120,
"count": 1,
"opportunities": [
{
"id": "opp_01J2Y9M4X8",
"market_id": "dino_8f3a1c92-47e8-4c3f-b9d2-f1a8e6c4d5f2",
"title": "Nyy vs Bos",
"sport": "baseball",
"league": "MLB",
"start_time": "2026-07-13T23:05:00Z",
"edge_pct": 4.2503,
"roi_pct": 4.439,
"fees_included": true,
"fee_model": "conservative_per_contract",
"cost_per_payout_usd": 0.957497,
"max_contracts": 700,
"max_wager_usd": 670.25,
"confidence": 1.0,
"detected_at": "2026-07-13T08:00:00Z",
"priced_at": "2026-07-13T08:00:05Z",
"legs": [
{
"outcome": "NYY", "venue": "kalshi", "side": "yes",
"ask_usd": 0.44, "stake_fraction": 0.480419,
"available_contracts": 1000,
"contract_id": "KXMLBGAME-NYY-BOS-NYY", "url": null
},
{
"outcome": "BOS", "venue": "polymarket", "side": null,
"ask_usd": 0.49, "stake_fraction": 0.519581,
"available_contracts": 700,
"contract_id": "tok_bos", "url": null
}
]
}
]
}
edge_pct と roi_pct は手数料を差し引いた保守的なモデル上のリターンです。fees_included は明示的に示されます。fee_model: "conservative_per_contract" は、生成側が選択された各レッグにつき1契約をモデル化し、API がそのコストを max_contracts に合わせて拡大することを意味します。そのため、数量に応じた取引所の丸め処理とは異なる場合があります。ask_usd は1契約あたりに支払う米ドル額(そのアウトカムが勝った場合の払戻額は1ドル)です。max_contracts はスナップショット時点で、各アウトカムについて約定可能な同数の契約数であり、max_wager_usd はその規模における手数料込みの保守的な資金見積もりです。as_of はレスポンス内で最も新しい priced_at です。鮮度を判断する際は、リクエスト時刻ではなくこちらを使用してください。現在確認済みの裁定機会がない場合でも、マッチしたカタログを確認するには、フィルターなし、または signal=spread を指定して list_markets を呼び出してください。
Market のシグナルと Opportunity リソース
list_markets と get_market は canonical Market オブジェクトを返します。各オブジェクトには、呼び出しのたびに再導出される独自の signal フィールドが含まれます。キャッシュされたラベルではありません。
signal:"arb"は、両側のカタログを結合したうえでのdecide_signal()によって判定されます。ステータスがオープンで確認が2件以上あり、精算条件の同等性が確認済みで、リスクが高または重大ではなく、すべてのアウトカムが両方の取引所で価格付けされていることが条件です。signal:"spread"はそれ以外のすべてです。観測された価格差(spread_pts)が裁定機会の条件を満たしていない状態であり、実際にリターンを得られる機会ではなく、観測結果です。
この2つのシグナルと find_arbitrage の Opportunity は関連していますが、同じものではありません。発生した Opportunity の台帳レコードには、各アウトカムについて選択された取引所が1つだけ記録されます(エンジンが実際に執行するために選んだ側です)。一方、Market の signal フィールドが "arb" になるには、各アウトカムが両方の取引所で価格付けされている必要があります。この構造上の違いにより、find_arbitrage が同時に実際の有効な Opportunity として報告しているペアでも、get_market/list_markets では signal:"spread" と表示される場合があります。現在オープンで約定可能な裁定機会を確認するには、find_arbitrage が正式な情報源です。signal:"arb" で list_markets を絞り込むのではなく、こちらを直接呼び出してください(前述のとおり、その絞り込みは明示的に拒否されます)。
精算条件の開示と信頼度の帯域
多くのアグリゲーターは数値を提示するだけです。dino は、取引前にその数値を検証するための情報も開示します。get_market(および GET /v2/pairs/{id})は次の情報を返します。
settlement.parity(bool):2つの取引所の精算条件が一致することを確認済みかどうかsettlement.risks[]:開示されている取引所間の相違(引き分けの扱い、キャンセル時の精算など)settlement.verdict:"agree"|"diverge"|"edge_case"|null(マッチャーが2つの取引所の文面を照合するまでは null です。通常は市場の決着後です)confidence.entity/confidence.resolution:2つの取引所が同じ現実のイベントを提示しており、同じ結果で精算されるという、マッチャー自身の信頼度
arb の行を取引可能と判断する前に、settlement.risks と confidence を確認してください。API は判定の算出に使用した取引所の文面(settlement.kalshi_text/settlement.poly_text)も公開するため、単一の数値を信頼するのではなく、自分で確認できます。
ローカライズされたドキュメント
製品ドキュメントは以下の言語で利用できます。このリポジトリは英語版の MCP リファレンスです。
| 言語 | ドキュメント | MCP サーバー |
|---|---|---|
| 日本語 | ドキュメント | MCP |
| 한국어 | ドキュメント | MCP |
| 简体中文 | ドキュメント | MCP |
| Español | ドキュメント | MCP |
リンク
- llms.txt: https://dino.markets/llms.txt
- OpenAPI: https://api.dino.markets/openapi.json
- ドキュメント: https://dino.markets/docs
- 料金: https://dino.markets/pricing
- 関連リポジトリ: dino-markets-skills — この MCP サーバーを基盤とするエージェントスキル
免責事項
これは開発者向けデータであり、取引や金融に関する助言ではありません。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。