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@latest

CLI 会从环境变量读取 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"
}

常见问题

下一步