Skip to content
← ブログ

ClaudeとCursor向けのKalshi + Polymarket MCP

dino.markets

ClaudeとCursorは、DinoのネイティブなModel Context Protocolサーバーを通じてKalshiとPolymarketを確認できます。この接続は、マッチング済みmarketをツールとして公開します。エージェントはmarket名を安定したDinoのidに解決し、その価格比較の背後にある解決の開示内容を読み取れます。

このガイドでは、無料のDinoキーでMCPクライアントを接続します。サーバーは読み取り専用です。marketデータと確定済みのOpportunityを返しますが、取引はすべて自分のvenueアカウント内にとどまります。

キーを作成し、ソースコードの外に保管する

無料APIキーを作成し、このサーバーブロックをClaude DesktopまたはCursorに追加します。どちらのクライアントも mcp-remote を使って、ローカルのMCPプロセスをDinoのStreamable HTTPエンドポイントに橋渡しできます。プライベートなローカルクライアント設定にあるプレースホルダーを置き換えます。

{
  "mcpServers": {
    "dino-markets": {
      "command": "npx",
      "args": [
        "mcp-remote",
        "https://api.dino.markets/v2/mcp/",
        "--header",
        "Authorization:Bearer ${DINO_API_KEY}"
      ],
      "env": {
        "DINO_API_KEY": "sk_live_..."
      }
    }
  }
}

env ブロックは、ローカルの mcp-remote プロセスに DINO_API_KEY を渡します。header引数はその値を読み取ります。このクライアント設定にはシークレットが含まれるため、リポジトリや共有フォルダーには置かず、自分のユーザーアカウントだけにアクセスを制限してください。

/v2/mcp/ の末尾のスラッシュは重要です。厳格なクライアントでは、スラッシュなしのURLからのリダイレクトで失敗することがあるためです。設定を保存したらクライアントを再起動してください。キーが写るスクリーンショットは避けてください。

具体的な質問でツールを確認する

サーバーがクライアントのツールリストに表示されたら、1つの明確な操作に対応する質問をしてみます。次のプロンプトは、エージェントにタイトルからmarketの同一性を推測させることなく、発見と詳細取得のフローを試すものです。

  1. "Dinoで利用できるmarketのカテゴリと有効なフィルターを一覧表示して。"
  2. "KalshiとPolymarket全体で、オープン中のBTC閾値marketを探して。"
  3. "最初の結果を開いて、outcomeの構成と解決のリスクを要約して。"
  4. "確定済みの野球のOpportunityを探して、最初の結果の背後にある完全なMarketを確認して。"

期待されるツールの経路は回答の中に表れます。カテゴリの発見は list_categories を呼び出します。名前やトピックでの検索は find_markets を呼び出します。完全な規約情報は get_market から得られます。確定済みのOpportunityは find_arbitrage から得られ、返された market_id を使って get_market を呼び出すのが適切です。

価格の前にエージェントに規約を読ませる

有用なvenue間リサーチのプロンプトは、エージェントにどのチェックを行うべきかを伝えます。marketが両venueに存在する場合は、次の形を使います。

[topic]に一致するmarketを探してください。選択したidに対してget_marketを使ってください。
価格について述べる前に、次を報告してください。

- マッチング済みMarketのoutcomeのキーと名前
- すべてのoutcomeについて両venueに価格があるかどうか
- settlementのparityと開示されている各リスク
- パーセンテージポイントでの価格差(priced_atとともに)

spreadは観測された差として扱ってください。find_arbitrageが返した場合にのみ、
確定済みOpportunityと呼んでください。

この順序が重要なのは、2つの掲載が同じ見出しを共有していても、締め切り、データソース、outcomeの区分け、境界の文言が異なる場合があるためです。DinoのMarket詳細は、こうした違いを settlement.risks[] に保持します。signal フィールドは、ペアが完全なparityとリスクのゲートを通過しない限り spread のままです。

MCPサーバーの境界を把握する

MCPサーバーは、Dinoのマッチング済みカタログと公開のOpportunityリソースを読み取ります。venueアカウントや資金へのアクセスはなく、発注もできません。これは開発者向けデータであり、投資助言や取引助言ではありません。watch_markets はWebSocketチケットと、Dinoのプランで許可されたチャンネルを返します。そのストリームを消費する処理は、依然としてWebSocketクライアントか公式SDKのいずれかが担います。

ドキュメント化されたMCPツールはすべてFreeで利用できます。チャンネルへのアクセスはプランによって異なります。Freeはキュレーションされた samplestatus チャンネルを受け取り、有料プランは markets:* ストリーム全体を受け取ります。完全な引数についてはMCPツールリファレンスを、サーバーが使用する確信度と解決のゲートについてはマッチングガイドを参照してください。

無料キーを作成して、サーバーに接続します。まずは上のカテゴリのプロンプトから始めてください。

ブログの他の記事