article
README
🚀 预测市场MCP
预测市场MCP(Model Context Protocol)服务器,可从多个平台提供实时的预测市场数据。该服务器允许你通过统一接口查询预测市场的当前赔率、价格和市场信息。
🚀 快速开始
预测市场MCP服务器能让你轻松从多个平台获取实时预测市场数据。只需按照以下步骤操作,即可快速搭建并使用该服务器。
✨ 主要特性
- 多平台支持:可查询加密货币和传统预测市场。
- 实时数据:从活跃市场获取当前赔率和价格。
- 关键词搜索:通过特定关键词或主题过滤市场。
- 统一接口:不同平台的数据格式一致。
- 错误处理:优雅处理API故障和网络问题。
- 类型安全:全面支持TypeScript,具备完善的类型定义。
📦 安装指南
前提条件
- Node.js(v18 或更高版本)
- npm 或 yarn
安装步骤
- 克隆仓库:
git clone <repository-url>
cd prediction-markets-mcp
- 安装依赖:
npm install
- 构建项目:
npm run build
💻 使用示例
启动服务器
启动MCP服务器:
node build/index.js
服务器在标准输入输出上运行,可与兼容MCP的客户端集成。
API端点
服务器提供一个工具:get-prediction-markets
参数
keyword(字符串,必需):用于过滤市场的搜索词- 最大长度:50 个字符
- 示例:"trump"、"election"、"supreme court"
查询示例
// 搜索与特朗普相关的市场
{
"keyword": "trump"
}
// 搜索选举市场
{
"keyword": "election"
}
// 搜索最高法院相关市场
{
"keyword": "supreme court"
}
响应格式
服务器以以下格式返回预测市场数据:
Polymarket市场
**Polymarket: 特朗普会赢得2024年大选吗?**
是: 45.2% | 否: 54.8%
PredictIt市场
**PredictIt: 哪个政党会赢得2025年弗吉尼亚州州长选举?**
民主党: 89.0% | 共和党: 11.0%
📚 详细文档
数据源
Polymarket API
- 基础URL:
https://clob.polymarket.com/markets - 格式:JSON
- 赔率显示:百分比(例如,65.2%)
- 数据:市场问题、活跃状态、代币价格
PredictIt API
- 基础URL:
https://www.predictit.org/api/marketdata/all/ - 格式:JSON
- 赔率显示:美元金额(例如,$0.65)
- 数据:市场名称、合约、交易价格、状态
开发
项目结构
prediction-markets-mcp/
├── src/
│ └── index.ts # 主服务器实现
├── build/ # 编译后的JavaScript输出
├── package.json # 依赖项和脚本
├── tsconfig.json # TypeScript配置
└── README.md # 本文件
关键组件
类型定义
// Polymarket类型
type Market = {
question: string;
active: boolean;
archived: boolean;
tokens: Token[];
};
// PredictIt类型
type PredictItMarket = {
id: number;
name: string;
shortName: string;
contracts: PredictItContract[];
status: string;
};
核心函数
getPolymarketPredictionData():获取并处理Polymarket数据getPredictItMarkets():获取所有PredictIt市场makeApiRequest():使用适当的请求头处理HTTP请求
构建
# 开发构建
npm run build
# 监听模式(如有需要)
npm run dev
测试
要手动测试服务器:
- 启动服务器:
node build/index.js
- 通过MCP客户端发送测试请求或直接测试API端点。
故障排除
常见问题
未找到市场
- 原因:关键词过于具体或没有匹配的市场
- 解决方案:尝试更宽泛的关键词或检查市场可用性
- 示例:使用 "election" 代替 "特定候选人姓名"
开发设置
- 分叉仓库
- 创建功能分支
- 进行更改
- 如有必要添加测试
- 提交拉取请求
代码风格
- 所有新代码使用TypeScript
- 遵循现有的命名约定
- 为公共函数添加JSDoc注释
- 提交前确保所有构建通过
📄 许可证
本项目采用MIT许可证,详情请参阅 LICENSE 文件。
支持
如果你遇到问题或有疑问:
- 查看故障排除部分
- 查看现有的GitHub问题
- 创建一个包含详细信息的新问题
Scan to join WeChat group