预测市场AI代理工具

一个完整的解决方案,用于构建与Polymarket预测市场交互的AI代理,提供前端Web应用和后端MCP服务器。

  • by polysolmcp
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 polysolmcp/polysolmcp

使用说明

Polymarket代理中心

构建与Polymarket预测市场交互的AI代理的完整解决方案。 该存储库包含用于连接和测试MCP服务器的web应用程序, 以及功能齐全的MCP(模型上下文协议)服务器。

里面是什么

此存储库提供两个主要组件:

  1. Polymarket代理中心(前端) -一个现代的Next.js 14 web应用程序,允许用户连接和测试MCP服务器
  2. PolyMarket MCP服务器(后端) -一个生产就绪的Python MCP服务器,为AI代理提供对Polymarket预测市场数据的访问

快速开始

对于Web应用程序

# Install dependencies
npm install

# Run development server
npm run dev

# Build for production
npm run build
npm start

访问 http://localhost:3000 访问web应用程序,您可以在其中连接并测试MCP服务器。

对于MCP服务器

# Clone the repository
git clone https://github.com/polysolmcp/polysolmcp.git
cd polysolmcp

# Install Python dependencies
uv pip install -e .

# Create .env file with your credentials
echo "KEY=your_polymarket_api_key_here" > .env
echo "FUNDER=your_polymarket_wallet_address" >> .env

# Run the server
uv run src/polymarket_mcp/server.py

第1部分:Polymarket代理中心(前端)

概述

Polymarket Agent Hub是一个使用Next.js 14、TypeScript和Tailwind CSS构建的web应用程序。它提供:

  • 用于连接和测试MCP服务器的交互式界面
  • 明确解释MCP服务器的功能
  • 分步安装和配置说明
  • 代码示例和配置片段
  • 代理商蓝图创意灵感
  • 常见问题

技术栈

  • Next.js 14 -带有App Router的现代React框架
  • TypeScript -类型安全开发
  • 顺风CSS -实用性优先的深色主题造型

发展

npm install          # Install dependencies
npm run dev         # Start development server (http://localhost:3000)
npm run build       # Build for production
npm start           # Run production server

第2部分:MCP服务器(后端)

什么是MCP服务器?

模型上下文协议(MCP)是AI代理与外部数据源交互的标准化方式。 MCP服务器充当AI客户端(如Claude Desktop)和外部API或服务之间的桥梁。 此MCP服务器专门将AI代理连接到Polymarket的预测市场。

特性

  • ✅ 实时市场数据 -获取任何市场的当前价格和概率
  • ✅ 市场发现 -按状态、类别等列出和筛选市场
  • ✅ 历史分析 -通过可定制的时间框架访问价格和交易量历史记录
  • ✅ 错误处理 -针对API故障和速率限制的稳健错误处理
  • ✅ 干净数据格式 -响应格式便于人工智能代理使用

安装方法

选项1:通过Smithery安装(推荐)

安装Claude Desktop的最简单方法:

npx -y @smithery/cli install polymarket_mcp --client claude

选项2:手动安装

  1. 克隆和安装依赖关系:
git clone https://github.com/polysolmcp/polysolmcp.git
cd polysolmcp
uv pip install -e .
  1. 设置环境变量:

创建一个 .env 项目根目录中的文件:

KEY=your_polymarket_api_key_here
FUNDER=your_polymarket_wallet_address

如何获取您的凭据:

  • 钥匙:从Polymarket UI导出私钥(设置→ API密钥)
  • 提供资金者:您的Polymarket钱包地址(在您的帐户设置中找到)
  1. 配置Claude桌面:

编辑您的Claude Desktop配置文件:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • 视窗: %APPDATA%/Claude/claude_desktop_config.json

添加此配置:

{
    "mcpServers": {
        "polymarket-mcp": {
            "command": "uv",
            "args": [
                "--directory",
                "/path/to/polysolmcp",
                "run",
                "src/polymarket_mcp/server.py"
            ],
            "env": {
                "KEY": "your_polymarket_api_key",
                "FUNDER": "your_polymarket_wallet_address"
            }
        }
    }
}

重要提示: 替换 /path/to/polysolmcp 使用克隆存储库的实际路径。

  1. 运行服务器:
# Standard run
uv run src/polymarket_mcp/server.py

# With MCP Inspector (for debugging)
npx @modelcontextprotocol/inspector uv --directory /path/to/polysolmcp run src/polymarket_mcp/server.py

可用的MCP工具

服务器提供了AI代理可以使用的四个主要工具:

1. get-market-info

获取特定预测市场的详细信息。

输入:

{
    "market_id": "0x1234..." // Market ID or slug
}

退货: 市场名称、类别、状态、处置日期、交易量、流动性和描述。

2. list-markets

通过过滤和分页列出可用的预测市场。

输入:

{
    "status": "active",     // Optional: "active" or "resolved"
    "limit": 10,            // Optional: Number of results (1-100, default: 10)
    "offset": 0             // Optional: Pagination offset (default: 0)
}

退货: 带有ID、标题、状态、类别和数量的市场列表。

3. get-market-prices

获取市场的当前价格和交易信息。

输入:

{
    "market_id": "0x1234..." // Market ID or slug
}

退货: 当前价格和每个结果的隐含概率。

4. get-market-history

获取市场的历史价格和交易量数据。

输入:

{
    "market_id": "0x1234...",  // Market ID or slug
    "timeframe": "7d"          // Optional: "1d", "7d", "30d", or "all" (default: "7d")
}

退货: 适用于图表和回溯测试的时间序列数据。


错误处理

服务器优雅地处理各种错误情况:

  • 速率限制(429) -自动重试逻辑
  • 无效的API密钥(403) -清除错误消息
  • 无效的市场ID(404) -有用的错误响应
  • 网络问题 -超时处理(30秒)
  • 响应格式错误 -安全错误恢复

所有错误都以清晰、人类可读的格式返回,AI代理可以理解并与用户沟通。


先决条件

用于前端开发

  • Node.js 18或更高版本
  • npm、yarn或pnpm

对于MCP服务器

  • Python 3.10或更高版本
  • uv 包管理器(推荐)或 pip
  • 所需的Python包:
    • mcp>=0.1.0
    • httpx>=0.24.0
    • python-dotenv>=1.0.0
    • py-clob-client

运行时,所有依赖项都会自动安装 uv pip install -e .


项目结构

polysolmcp/
├── src/
│   ├── app/                    # Next.js frontend application
│   │   ├── layout.tsx          # Root layout with metadata
│   │   ├── page.tsx            # Main landing page with all sections
│   │   └── globals.css         # Global styles and Tailwind imports
│   └── polymarket_mcp/         # MCP server Python package
│       ├── __init__.py         # Package initialization
│       └── server.py           # Main MCP server implementation
├── package.json                 # Node.js dependencies and scripts
├── pyproject.toml              # Python package configuration
├── next.config.mjs             # Next.js configuration
├── tailwind.config.ts          # Tailwind CSS configuration
├── tsconfig.json               # TypeScript configuration
├── Dockerfile                  # Docker configuration for MCP server
├── smithery.yaml               # Smithery installation configuration
├── LICENSE                     # MIT License
└── README.md                   # This file

用例

此MCP服务器使AI代理能够:

  • 监控市场 -跟踪特定预测市场的变化
  • 分析趋势 -研究历史价格走势和模式
  • 发现机会 -寻找大批量或有趣的市场
  • 构建交易机器人 -创建基于市场数据做出决策的自动化代理
  • 研究 -收集数据进行分析和报告

故障排除

服务器无法启动

  • 检查你的 .env 文件存在并且包含有效 KEY 和 FUNDER 价值观
  • 验证是否安装了Python 3.10+: python --version
  • 确保安装了依赖项: uv pip install -e .

Claude Desktop无法连接

  • 验证中的路径 claude_desktop_config.json 是正确的
  • 检查配置文件中是否设置了环境变量
  • 更改配置后重新启动Claude Desktop

API错误

  • 验证您的API密钥是否有效并具有正确的权限
  • 检查您的钱包地址(FUNDER)是否正确
  • 确保您没有达到速率限制

贡献

欢迎投稿!以下是您可以提供帮助的方式:

  1. 复刻仓库
  2. 创建要素分支(git checkout -b feature/amazing-feature)
  3. 进行更改
  4. 以明确的信息提交(git commit -m 'Add amazing feature')
  5. 推到您的分支(git push origin feature/amazing-feature)
  6. 打开拉取请求

对于重大更改,请先打开一个问题来讨论您想要更改的内容。


许可证

此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。


支持

  • GitHub问题:报告错误或请求功能
  • Web应用程序:访问应用程序 http://localhost:3000 在本地运行以连接和测试MCP服务器时
  • MCP协议:了解有关MCP的更多信息,请访问 模型上下文协议.io

注: 该项目不隶属于Polymarket。使用风险自负。始终验证API响应,并在生产环境中正确处理错误。