使用说明
Polymarket MCP服务器
MCP(模型上下文协议)服务器,通过CLI包装器公开Polymarket预测市场。
使AI代理能够以编程方式发现市场、查看价格和进行交易。
特性
只读工具(无需钱包)
markets_search--按关键字搜索市场markets_get--获取特定市场详细信息markets_list--列出带有过滤器的市场(活动、交易量等)clob_price--获取令牌ID的当前价格clob_midpoint--获取中点价格clob_book--获取订单簿深度price_history--历史价格(1米、1小时、1天等)
经过身份验证的工具(需要钱包)
create_order--下达限价订单(按指定价格买入/卖出)market_order--下达市价单(按当前价格买入/卖出)cancel_order--取消现有订单positions--获取投资组合头寸balance--获取钱包余额(USDC/条件代币)
安装
先决条件
-
安装Polymarket CLI:
brew tap Polymarket/polymarket-cli https://github.com/Polymarket/polymarket-cli brew install polymarket -
验证CLI是否正常工作:
polymarket markets list --limit 3
安装MCP服务器
cd polymarket-mcp
npm install
npm run build
配置
环境变量
创建 .env 文件(参见 .env.example):
# Required for authenticated operations (trading)
POLYMARKET_PRIVATE_KEY=0x...
# Optional
CHAIN_ID=137 # Polygon mainnet
SIGNATURE_TYPE=proxy # proxy | eoa | gnosis-safe
POLYGON_RPC_URL=https://polygon-rpc.com
MCP客户端配置
添加到您的MCP客户端配置中(例如,Claude Desktop、mcporter、Polygent):
{
"mcpServers": {
"polymarket": {
"command": "node",
"args": ["/path/to/polymarket-mcp/dist/index.js"],
"env": {
"POLYMARKET_PRIVATE_KEY": "0x...",
"CHAIN_ID": "137",
"SIGNATURE_TYPE": "proxy"
}
}
}
}
用法示例
浏览市场
// Search for Bitcoin markets
markets_search({ query: "bitcoin", limit: 5 })
// Get specific market
markets_get({ market_id: "will-btc-hit-100k" })
// List active markets sorted by volume
markets_list({ active: true, order: "volume_num", limit: 10 })
查看价格
// Get buy price
clob_price({ token_id: "0xABC...", side: "buy" })
// Get midpoint (average of bid/ask)
clob_midpoint({ token_id: "0xABC..." })
// Get full order book
clob_book({ token_id: "0xABC..." })
// Get price history
price_history({ token_id: "0xABC...", interval: "1d", fidelity: 30 })
交易(已认证)
// Place limit order: buy 10 shares at $0.50
create_order({
token_id: "0xABC...",
side: "buy",
price: 0.50,
size: 10
})
// Place market order: buy $5 worth at current price
market_order({
token_id: "0xABC...",
side: "buy",
amount: 5
})
// Cancel order
cancel_order({ order_id: "0xORDER..." })
// Check positions
positions({ wallet_address: "0xYOUR_WALLET..." })
// Check balance
balance({ asset_type: "collateral" })
安全
钱包密钥管理
- 从不记录私钥 --密钥仅用于CLI签名
- 仅环境变量 --密钥从未硬编码
- 回复中没有关键暴露 --MCP响应不包括密钥
输入验证
- 所有输入均已验证 黄道带 执行CLI之前
- 令牌ID必须与十六进制模式匹配(
0x[0-9a-fA-F]+) - 钱包地址已验证(
0x[0-9a-fA-F]{40}) - 执行价格限制(0.01至0.99)
- 正尺寸/数量验证
速率限制
- CLI超时:每个命令30秒
- 缓冲区限制:最大响应大小10MB
- 遵守Polymarket API速率限制(60请求/分钟)
命令注入保护
- 用户输入无shell插值
- 以数组形式传递的预验证参数
- 用途
child_process.exec具有超时+缓冲限制
测试
手动测试(MCP检查员)
npx @modelcontextprotocol/inspector node dist/index.js
测试只读工具
# List markets
echo '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"markets_search","arguments":{"query":"bitcoin","limit":3}}}' | node dist/index.js
测试认证工具
需要 .env 随着 POLYMARKET_PRIVATE_KEY:
# Check balance
echo '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"balance","arguments":{"asset_type":"collateral"}}}' | node dist/index.js
与Polygent集成
看 INTEGRATION.md 获取详细的集成指南。
快速启动:
- 在Polygent VPS上安装MCP服务器
- 配置
mcporter使用服务器路径+env变量 - 更新Polygent代理以调用MCP工具
- 添加MCP服务器状态的健康检查
故障排除
“钱包未配置”错误
- 集
POLYMARKET_PRIVATE_KEY在.env或MCP客户端配置 - 验证密钥格式:
0x+64个十六进制字符
“找不到命令:polymarket”
- 安装Polymarket CLI:
brew install polymarket - 验证:
which polymarket
“无法解析CLI输出”
- 检查CLI版本:
polymarket --version - 确保JSON输出模式正常工作:
polymarket -o json markets list --limit 1
速率限制错误(429)
- 遵守60个要求/分钟的限制
- 在代理逻辑中添加指数退避
- 在可用的情况下使用批处理端点
建筑
polymarket-mcp/
├── src/
│ ├── index.ts # MCP server (tool definitions)
│ └── lib/
│ ├── env.ts # Environment validation (Zod)
│ ├── cli.ts # CLI wrapper functions
│ └── types.ts # TypeScript types
├── dist/ # Compiled output
├── .env.example
├── package.json
├── tsconfig.json
└── README.md
设计:
- 无数据库 --纯CLI包装器
- 快速验证失败 --启动时检查环境变量
- 结构化错误 --始终返回错误对象,从不抛出
- 类型安全 --完整的TypeScript+Zod验证
相关项目
- Polymarket CLI: https://github.com/Polymarket/polymarket-cli
- MCP规范: https://modelcontextprotocol.io
- 一夫多妻制: https://polygent.market
许可证
麻省理工学院