Parlay 工作原理
Parlay 如何将 Polymarket、Kalshi 和 Manifold 映射到同一套 MCP 工具模式。
文档索引
想要一份机器可读的 Parlay 文档地图?请查看 简介
了解人类可读版本,或访问 /docs/llms.txt 获取面向 Agent 的索引。
Parlay 站在 AI 助手与三家预测市场交易场所(Polymarket、Kalshi、Manifold)之间,把它们三种不同的 API 收敛为同一套强类型 MCP 工具模式。模型只用一套协议;Parlay 负责处理交易场所的差异化对接。下面按层级拆解整条管线。
完整管线
用户提出问题
在 AI 客户端里输入自然语言:"6 月联储降息哪家价格最好?"或"2026 年大选哪个市场流动性最强?"
AI 客户端选择工具
模型读取 Parlay 的 MCP descriptor,挑选 search_markets 或 get_quote,填入强类型参数,通过 HTTP 或 stdio 发起调用。
Parlay 校验并路由
Parlay MCP 服务器校验你的 API 密钥,按工具 schema 校验参数,然后把调用路由到对应的交易场所适配器。
适配器调用上游 API
Polymarket、Kalshi 或 Manifold 返回各自的原生载荷。Parlay 把字段名、单位、时间戳统一规范化,跨三家场所保持一致。
客户端拿到强类型 JSON
模型直接读取结构化字段。不再有页面抓取,不再有逐场所的解析逻辑,客户端也不需要任何 SDK。
第 1 层:你的 AI 客户端
客户端由你提供。Parlay 兼容当前所有支持 MCP 的客户端:Claude(桌面版与网页版)、ChatGPT(通过 MCP 连接器)、Gemini CLI、OpenClaw、Cursor 与 Windsurf。客户端带来的能力包括:
| 能力 | 它带来什么 |
|---|---|
| 自然语言理解 | 把"联储降息最佳赔率"翻译为真实的 search_markets 调用。 |
| 多步推理 | 自动串联 search_markets → get_quote → get_orderbook,无需逐步追问。 |
| 文件与上下文支持 | 从你分享的文档中提取代码、日期或主题。 |
| 用户确认 | 交易类工具(即将上线)在任何状态变更前都会向用户确认。 |
| 结果格式化 | 把强类型 JSON 渲染为用户可读的散文、表格或图表。 |
第 2 层:MCP(Model Context Protocol)
MCP 是 Anthropic 推出的开放规范,让任何客户端无需自定义 SDK 即可与任意工具服务器对话。Parlay 对所有客户端只暴露一个端点:
https://parlay.run/mcp同一个 URL 同时服务 Claude、ChatGPT、Gemini、OpenClaw 以及未来任何 MCP 客户端。Descriptor 握手会告诉客户端有哪些工具,以及每次调用应该长什么样。
只读工具 — 已上线
search_markets、get_quote、get_orderbook、get_trades。四个工具都跨 Polymarket、Kalshi、Manifold 共用同一套 schema。
写入工具 — 即将上线
place_order 与 cancel_order 正在开发中。会采用按调用显式确认 + 独立 scope 的 API 密钥。
如需了解 wire-level 握手细节与 descriptor 示例,请查看 MCP 工作原理。
第 3 层:身份认证(API 密钥 + Bearer)
Parlay 采用单账户 API 密钥模式,而非按场所做 OAuth。各场所的凭据保存在服务端,不会下发到客户端。
在控制台签发密钥
登录 parlay.run,在 Dashboard → API Keys 中创建 API 密钥。每个密钥与你的账户绑定,可随时轮换或撤销。
把密钥设置到客户端
HTTP 客户端(Claude、ChatGPT、Gemini、Cursor)在 MCP 连接器中以 Bearer 形式粘贴密钥:
Authorization: Bearer <your-api-key>stdio 客户端(OpenClaw、Gemini CLI)在 shell 中导出环境变量:
export PARLAY_API_KEY=<your-api-key>Parlay 校验并圈定 session 范围
服务器对照账户校验密钥,把 session 限定在只读工具范围内,并按账户做速率限制。无效或已撤销的密钥会在 descriptor 握手阶段失败 — 不会触达任何场所。
适配器在服务端调用各场所
Parlay 适配器使用平台托管的场所凭据获取实时数据。你的 API 密钥永远不会接触 Polymarket 钱包、Kalshi 交易密钥或 Manifold 会话 token。
Parlay 永远不会从你这里看到:
- 你的钱包助记词或私钥
- 你在交易场所的 API 密钥
- 你在任何平台的托管资金余额
- 你的 IP 绑定登录会话
第 4 层:预测市场 API
Parlay 的核心是:同一个工具名,无论由哪个场所应答,返回的 JSON 形状都一样。下表展示当前每个工具在三家场所的映射:
| Parlay 工具 | 底层调用 | 返回内容 |
|---|---|---|
search_markets | Polymarket Gamma API /markets | 命中关键词/分类的活跃市场,带截止日期与场所标记。 |
search_markets | Kalshi /trade-api/v2/markets | Kalshi 活跃市场,规范化为同一形状。 |
search_markets | Manifold /v0/search-markets | Manifold 活跃市场,规范化为同一形状。 |
get_quote | Polymarket CLOB /midpoint + book | 当前 yes/no 隐含概率与最近成交时间。 |
get_quote | Kalshi /markets/{id} | 取自 Kalshi bid/ask 的当前 yes/no 概率。 |
get_quote | Manifold /market/{id} | 取自 Manifold 市场状态的当前概率。 |
get_orderbook | Polymarket CLOB /book | 前 N 档买/卖盘价位与成交量(以美分计)。 |
get_orderbook | Kalshi /markets/{id}/orderbook | 前 N 档买/卖盘价位与成交量,规范化后返回。 |
get_trades | Polymarket CLOB /trades | 近期成交记录:价格、数量、方向、时间戳。 |
get_trades | Kalshi /markets/{id}/trades | 近期成交记录,规范化为同一字段集合。 |
Manifold 当前未公开盘口与成交流,因此 get_orderbook 与 get_trades 会优雅跳过 Manifold — 响应中带 not_supported 标记,而不会让整次调用失败。
安全模型
Parlay 当前是只读的,但安全模型已经为后续上线交易工具做好分层。
| 层级 | 防护 | 由谁强制 |
|---|---|---|
| API 密钥 scope | 每个密钥绑定单一账户;撤销立即生效。 | Parlay 控制平面 |
| 工具表面 | 当前只暴露读类工具;写类工具需要独立 scope。 | Parlay MCP 服务器 |
| 速率限制 | 按账户配额防止失控 Agent 暴打交易场所。 | Parlay 边缘 |
| 场所服务条款 | 适配器尊重各场所的 robots、速率与可接受使用规则。 | Parlay 适配器 |
| 数据最小化 | 只有工具 schema 声明的字段才会离开服务器。 | Parlay MCP 服务器 |
| 审计日志 | 每次工具调用都按时间、工具、账户记录,可供追溯。 | Parlay 控制平面 |
数据流总览
| 数据 | 存放位置 | 谁能访问 |
|---|---|---|
| 你的 Parlay API 密钥 | 在 Parlay 控制平面以 hash 存储;原始值仅在签发时显示一次。 | 客户端侧由你保管。Parlay 创建后只持有 hash。 |
| 场所凭据 | Parlay 托管的密钥,加密存储,从不下发到客户端。 | 仅 Parlay 适配器。 |
| 行情数据(报价、盘口、成交) | 热门市场会在边缘做短时缓存;否则实时拉取。 | 发起请求的客户端,按需访问。 |
| 请求日志 | 按账户隔离的审计日志。 | 你(通过 Dashboard)与 Parlay 支持团队。 |
| 用户原始 prompt | 仅停留在 AI 客户端;只有强类型工具参数会到达 Parlay。 | 你的 AI 客户端。Parlay 看不到原始 prompt。 |
| 响应载荷 | 返回客户端,不会在审计日志条目之外保留。 | 你的 AI 客户端。 |