MCP 工作原理
Model Context Protocol 是一种契约,让 Claude、ChatGPT、Gemini 以及任何 MCP 客户端都能调用 Parlay 的强类型预测市场工具。
Model Context Protocol(MCP)是一种契约,让任意 AI 客户端 — Claude、ChatGPT、Gemini、OpenClaw — 不依赖 SDK 即可调用 Parlay 的预测市场工具。客户端连上 Parlay 端点后,服务器返回一份 descriptor 描述自身可用的工具、资源与提示模板;随后客户端用强类型参数调用,得到强类型 JSON 结果。
为什么这一点很重要
连接一次,所有支持 MCP 的客户端就能以同样的方式访问 Polymarket、Kalshi 与 Manifold:无需 SDK,无需逐个交易场所的胶水代码,无需抓取页面 — 每次调用都打到实时数据。
为什么用 MCP 接入预测市场
一次接入,处处可用
同一个 MCP 端点同时服务 Claude、ChatGPT、Gemini CLI、OpenClaw 以及未来任何支持该协议的客户端。
强类型工具,而非页面抓取
每个市场查询都有 JSON schema。模型传入真实参数,得到真实字段,不会产生臆造的列。
实时数据,而非训练记忆
每次工具调用都实时打到交易场所。盘口、深度、成交都是当下数据,不是上个季度的快照。
MCP descriptor 长什么样
客户端连接时,服务器会返回一份 descriptor 描述自身与对外能力。Parlay 的 descriptor 形如:
{
"server": {
"name": "Parlay",
"version": "1.0.0",
"transport": "http"
},
"capabilities": {
"tools": {
"search_markets": {
"description": "按关键词、分类或截止日期跨 Polymarket、Kalshi、Manifold 搜索活跃市场。",
"inputSchema": { "type": "object", "properties": { "query": { "type": "string" }, "venue": { "type": "string" } }, "required": ["query"] }
},
"get_quote": {
"description": "返回指定市场在一个或多个交易场所的当前 yes/no 隐含概率。",
"inputSchema": { "type": "object", "properties": { "market_id": { "type": "string" } }, "required": ["market_id"] }
},
"get_orderbook": {
"description": "返回市场的实时盘口深度,用于评估流动性与滑点。",
"inputSchema": { "type": "object", "properties": { "market_id": { "type": "string" }, "depth": { "type": "integer" } }, "required": ["market_id"] }
},
"get_trades": {
"description": "返回市场近期成交,适合做动量与成交量分析。",
"inputSchema": { "type": "object", "properties": { "market_id": { "type": "string" }, "limit": { "type": "integer" } }, "required": ["market_id"] }
}
},
"resources": [
{
"uri": "parlay://venues",
"name": "venues",
"description": "支持的交易场所目录,包含状态、监管管辖与可用工具。",
"mimeType": "application/json"
}
],
"prompts": []
}
}每个 MCP 服务器都由三类原语承载:
Tools(工具)
模型可以用强类型参数调用的函数。Parlay 目前提供搜索、报价、盘口深度与成交历史;交易工具紧随其后。
Resources(资源)
客户端按 URI 拉取的静态或近静态参考数据。Parlay 在 parlay://venues 提供交易场所目录。
Prompts(提示模板)
服务器可选公布的可复用提示模板。Parlay 当前列表为空 — 由客户端主导交互。
一次请求是怎样流转的
连接到端点
客户端打开 MCP 传输通道(托管 Parlay 走 HTTP,本地 CLI 代理走 stdio),并使用控制台中的 API key 完成鉴权。
服务器宣告能力
Parlay 返回上面的 descriptor。客户端立即知道工具名、参数形态与响应类型 — 无需任何额外文档。
客户端调用工具
模型选定一个工具,按 schema 填入参数发起调用。协议会在请求抵达 Parlay 的交易场所适配层之前先做类型校验。
服务器返回强类型 JSON
Parlay 把调用路由到正确的交易场所(Polymarket、Kalshi 或 Manifold),归一化响应,然后返回模型可以直接推理的强类型 JSON。
传输方式
Parlay 支持两种传输方式。托管客户端使用 HTTP;本地 CLI 代理使用 stdio。
大多数客户端 — Claude、ChatGPT、Gemini、Cursor — 通过 HTTP + API key 连接。
https://parlay.run/mcp
Authorization: Bearer <your-api-key>把 URL 粘贴到客户端的 MCP connector 设置里,登录,descriptor 握手会自动完成。
OpenClaw 这类 CLI 代理可以把 Parlay 拉起为本地子进程,通过 stdio 收发 MCP 消息:
npx -y @parlay/mcp@latestCLI 会从环境变量读取 PARLAY_API_KEY。如果你希望代理与服务器之间没有任何网络跳转,选这种方式。
不同传输方式的鉴权方式不同
HTTP 使用绑定到控制台账号的 bearer token。stdio 继承当前 shell
环境,因此请把 PARLAY_API_KEY 留在本地,不要提交到代码库。
一次工具调用示例
实际线上调用就是这样 — 请求和响应都是强类型 JSON。
{
"tool": "get_quote",
"arguments": {
"market_id": "polymarket:will-fed-cut-rates-in-june-2026"
}
}{
"venue": "polymarket",
"market_id": "polymarket:will-fed-cut-rates-in-june-2026",
"yes_price": 0.62,
"no_price": 0.39,
"implied_probability": 0.62,
"last_trade_at": "2026-04-27T11:42:18Z"
}{
"tool": "get_orderbook",
"arguments": {
"market_id": "kalshi:FED-25JUN-CUT",
"depth": 5
}
}{
"venue": "kalshi",
"market_id": "kalshi:FED-25JUN-CUT",
"yes": [
{ "price": 0.61, "size": 1200 },
{ "price": 0.60, "size": 3400 }
],
"no": [
{ "price": 0.40, "size": 980 },
{ "price": 0.41, "size": 2100 }
],
"as_of": "2026-04-27T11:42:18Z"
}