Skip to content
← 博客

用 REST 和 MCP 把 Kalshi 与 Polymarket 数据接入同一工作流

dino.markets

同时处理 Kalshi 和 Polymarket 的应用,很快就会遇到不同的市场标识符、结果表达方式和结算条件。dino.markets 通过 REST API 和 MCP 提供已匹配的相关市场数据。本文从获取 REST 快照开始,再把同一数据面接入 MCP 客户端。

本文由 dino.markets 运营方 Nusantara Ventures LLC 委托撰写。价格和价差属于观测数据;做出交易决定前,请自行核验各平台的费用、结算规则和可用性。

你需要 dino.markets API 密钥、curl,以及可选的 MCP 开发环境。创建 API 密钥后,请先阅读中文文档中的认证说明。

先用 REST API 获取市场快照

下面的请求以 signal=arb 筛选 MLB 相关市场。返回空结果也属于正常情况,接口只返回已经匹配且符合当时条件的市场。

export DINO_API_KEY="sk_live_..."

curl -sS "https://api.dino.markets/v2/markets?signal=arb&sport=baseball" \
  -H "Authorization: Bearer ${DINO_API_KEY}" | jq '{
    count,
    markets: [
      .markets[] | {
        id,
        title,
        sport,
        league,
        signal,
        spread_pts,
        potential_arb_pct,
        outcomes
      }
    ]
  }'

响应中的 id 用于进一步查询详情。signal=arb 表示 Dino 的匹配器已核验结算条件的等同性,并且没有发现会阻断匹配的结算风险。平台规则和费用仍可能变化。potential_arb_pct 是交易所费用前、按 ask-to-ask 计算的估算值,不应作为可实现收益率使用。

所有套餐的 REST 快照约有两分钟延迟。它适合监控界面、分析任务和内容研究,并非下单执行的数据面。

在应用代码中,调用的是同一个端点。

const response = await fetch(
  "https://api.dino.markets/v2/markets?signal=arb&sport=baseball",
  { headers: { Authorization: `Bearer ${process.env.DINO_API_KEY}` } },
);

if (!response.ok) throw new Error(`HTTP ${response.status}`);

const { count, markets } = await response.json();
console.log({ count, markets });

在使用单个市场前,请用返回的 id 调用 GET /v2/pairs/{market_id},并检查结果与 settlement.risks。如果使用 signal=spread 数据,这一步尤其应当成为工作流的一部分。

在 MCP 中使用同一数据面

通过 MCP,可以在支持它的客户端或代理对话中完成市场搜索和详情核验。Streamable HTTP 地址是 https://api.dino.markets/v2/mcp/,末尾的斜杠需要保留。

对于会调用 mcp-remote 的客户端,请在配置中加入以下内容。

{
  "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_..." }
    }
  }
}

保存设置并重启 MCP 客户端后,可以先请求这样的数据核验任务。

请用 find_markets 搜索 MLB,然后用找到的 ID 调用 get_market。请概述每个市场的结果与 settlement.risks,并且不要把价格解释为交易判断。

公开 MCP 提供 8 个工具:find_marketsfind_arbitragelist_marketslist_leaguesget_marketget_spreadsreport_bad_arbwatch_markets。所有活跃套餐都可以使用这些工具。WebSocket 的订阅范围随套餐而变,Free 包含 samplestatus,付费套餐提供 markets:*

实现时应保留的边界

匹配的作用是让相关市场能够在同一数据流程中被核验。最终结算规则由各平台定义。应用中除了保存 API 返回值,也建议同时展示每个 id 的详情、查询时间和结算风险,后续排查会更清楚。

dino.markets 文档覆盖体育、天气、加密资产和经济相关市场。本文使用公开 API 的 sport=baseball 过滤器,便于从一个可复现的入口开始。

端点、认证和 REST 过滤条件见中文文档。各 MCP 客户端的连接方法见中文 MCP 文档。MCP 服务器的公开仓库为 dino-markets-mcp

博客中的更多文章