用 REST 和 MCP 把 Kalshi 与 Polymarket 数据接入同一工作流
同时处理 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_markets、find_arbitrage、list_markets、list_leagues、get_market、get_spreads、report_bad_arb 和 watch_markets。所有活跃套餐都可以使用这些工具。WebSocket 的订阅范围随套餐而变,Free 包含 sample 与 status,付费套餐提供 markets:*。
实现时应保留的边界
匹配的作用是让相关市场能够在同一数据流程中被核验。最终结算规则由各平台定义。应用中除了保存 API 返回值,也建议同时展示每个 id 的详情、查询时间和结算风险,后续排查会更清楚。
dino.markets 文档覆盖体育、天气、加密资产和经济相关市场。本文使用公开 API 的 sport=baseball 过滤器,便于从一个可复现的入口开始。
端点、认证和 REST 过滤条件见中文文档。各 MCP 客户端的连接方法见中文 MCP 文档。MCP 服务器的公开仓库为 dino-markets-mcp。