这是一个用于与Polymarket预测市场互动的Model Context Protocol (MCP)服务器实现。该服务器提供了通过Polymarket API检索市场数据和执行交易的工具,使AI代理能够无缝地与预测市场进行交互。
当配置了POLYMARKET_PRIVATE_KEY时,交易工具会自动启用:
注意:如果没有配置私钥,则只有读取市场数据的工具可用。
此MCP服务器已发布到npm,可以直接使用npx运行 - 不需要安装!
使用pnpx是最简单的方式,它直接从npm注册表运行包:
{
"mcpServers": {
"polymarket": {
"command": "pnpx",
"args": ["@iqai/mcp-polymarket"]
}
}
}
{
"mcpServers": {
"polymarket": {
"command": "pnpx",
"args": ["@iqai/mcp-polymarket"],
"env": {
"POLYMARKET_PRIVATE_KEY": "your_private_key_here"
}
}
}
}
可选地,你可以配置一个自定义的Polygon RPC端点(建议为了可靠性):
{
"mcpServers": {
"polymarket": {
"command": "pnpx",
"args": ["@iqai/mcp-polymarket"],
"env": {
"POLYMARKET_PRIVATE_KEY": "your_private_key_here",
"POLYMARKET_RPC_URL": "https://polygon-mainnet.g.alchemy.com/v2/<YOUR_KEY>"
}
}
}
}
如果你想要修改服务器或参与开发:
git clone https://github.com/IQAIcom/mcp-polymarket
cd mcp-polymarket
pnpm install
pnpm run build
服务器在stdio传输上运行,可以集成到兼容MCP的客户端中,如Claude Desktop、Cline或其他任何兼容MCP的AI代理系统。
在你的Claude Desktop配置文件中添加以下内容:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
如果你已经本地克隆并构建了项目,可以使用绝对路径来使用它:
{
"mcpServers": {
"polymarket": {
"command": "node",
"args": ["/absolute/path/to/mcp-polymarket/build/index.js"],
"env": {
"POLYMARKET_PRIVATE_KEY": "your_private_key_here"
}
}
}
}
使用交易功能时,你需要提供以太坊钱包的私钥。你需要知道以下几点:
✅ 你的密钥是安全的:
⚠️ 重要安全实践:
🔒 工作原理:
如果没有配置私钥,只有读取市场数据的工具可用。
此服务器不会自动批准代币。当操作需要批准时,工具返回一个结构化的“需要批准”的响应,解释:
approve_allowances工具运行approve_allowances后,只需重试你的原始操作。批准是标准的ERC20/ERC1155权限,可以在你的钱包中随时撤销。
配置完成后,你可以通过你的MCP客户端使用这些工具。这里有一些示例查询:
你的AI代理现在可以回答问题和执行如下操作:
市场情报问题:
市场分析问题:
交易及投资组合问题(需要私钥):
获取特定市场:
获取具有slug "will-trump-win-2024"的市场信息
搜索市场:
搜索与“选举”相关的市场
列出活跃市场:
显示最近的10个活跃市场
获取订单簿:
显示token ID "123456..."的订单簿
检查余额:
检查我的COLLATERAL余额
下单:
在token ID "123456..."上以0.65的价格下单购买100股
查看未完成订单:
显示我所有的未完成订单
取消订单:
取消ID为"0x123..."的订单
授予批准(当提示时):
授予交易所需的批准
如果缺少批准,代理通常会提示运行此命令,然后重试你的操作。
此服务器使用以下Polymarket API:
Gamma Markets API:用于市场数据检索
https://gamma-api.polymarket.comCLOB API:用于订单簿和交易
https://clob.polymarket.com`pnpm run build
pnpm run watch
此项目使用Biome进行代码质量检查:
pnpm run check # 检查并修复问题
pnpm run lint # 仅检查
pnpm run format # 仅格式化
此项目使用Changesets进行版本管理和自动化发布。
当你所做的更改应该触发发布时,创建一个更改集:
pnpm changeset
这将提示你:
package.json中的版本CHANGELOG.mdpnpm run version # 更新版本和变更日志
pnpm run release # 构建并发布到npm
mcp-polymarket/
├── src/
│ ├── services/ # 服务层
│ │ ├── api.ts # Gamma API客户端
│ │ ├── config.ts # 配置管理
│ │ ├── trading.ts # 交易客户端(CLOB)
│ │ └── approvals.ts # 批准服务(检查/断言/批准)
│ ├── tools/ # MCP工具实现
│ │ ├── cancel-all-orders.ts
│ │ ├── cancel-order.ts
│ │ ├── get-all-tags.ts
│ │ ├── get-balance-allowance.ts
│ │ ├── approve-allowances.ts
│ │ └── ... # 其他工具文件
│ ├── index.ts # 主MCP服务器
│
├── dist/ # 编译后的JavaScript输出
├── .changeset/ # 更改集配置
├── .github/ # GitHub Actions和模板
├── node_modules/ # 依赖项
├── .env.example # 环境变量模板
├── biome.json # Biome配置
├── package.json # 项目依赖项和脚本
├── package-lock.json # 锁定文件
├── pnpm-lock.yaml # pnpm锁定文件
├── tsconfig.json # TypeScript配置
└── README.md # 此文件
要启用交易功能:
设置带有私钥的钱包
在Polygon网络上为钱包充值USDC
配置私钥
POLYMARKET_PRIVATE_KEY批准和限额
update_balance_allowance工具仍然可用支持以下环境变量:
POLYMARKET_PRIVATE_KEY(交易所需):用于交易的钱包私钥POLYMARKET_RPC_URL(可选):广播批准交易的Polygon RPC URL。默认值为https://polygon-rpc.com关于依赖项:此项目使用@polymarket/clob-client,其间接依赖项在旧版本的axios中有已知漏洞。这些漏洞(SSRF、CSRF)在这种用例中得到了缓解,因为:
这是一个非官方工具,与Polymarket无关。自行承担风险使用。始终验证交易并了解预测市场交易的风险。