预测市场数据服务

Polymarket MCP Server是一个为Polymarket预测市场平台提供数据交互的服务器,支持获取市场数据、用户持仓、交易历史等核心功能,适用于AI助手和数据分析场景。

  • by guangxiangdebizi
  • TypeScript
  • 混合部署
  • 12 星标
  • 更新于
在 GitHub 查看 guangxiangdebizi/PolyMarket-MCP

使用说明

Polymarket MCP服务器

一个全面的模型上下文协议(MCP)服务器,用于与全球最大的预测市场平台Polymarket进行交互。该服务器提供对Polymarket API的无缝访问,使AI助手能够检索市场数据、用户头寸、交易历史等。

🚀 特性

市场数据

  • 获取市场:通过过滤和分页检索预测市场
  • 获取活动:访问包含多个相关市场的事件数据
  • 市场价格:实时和历史价格数据以及技术分析
  • 订单簿:实时买卖数据和市场深度分析

交易与活动

  • 交易历史:综合交易数据和统计数据
  • 用户职位:通过损益计算进行投资组合跟踪
  • 用户活动:链上活动,包括交易、拆分、合并和奖励
  • 市场持有者:所有权分布和集中度分析

高级分析

  • 流动性分析和市场深度
  • 价格趋势分析和波动性指标
  • 投资组合绩效跟踪
  • 市场集中度和分销见解

📦 安装

先决条件

  • Node.js 18+
  • TypeScript 5.3+
  • npm或纱线

设置

  1. 克隆存储库

    git clone <repository-url>
    cd polymarket-mcp
    
  2. 安装依赖项

    npm install
    
  3. 构建项目

    npm run build
    
  4. 启动服务器

    npm start
    

🔧 配置

Claude桌面集成

方法1:标准模式(建议开发)

添加到您的Claude Desktop配置文件中:

视窗: %APPDATA%\Claude\claude_desktop_config.json macOS: ~/Library/Application Support/Claude/claude_desktop_config.json Linux: ~/.config/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "polymarket-mcp": {
      "command": "node",
      "args": ["path/to/polymarket-mcp/build/index.js"]
    }
  }
}

方法2:SSE模式(推荐用于生产)

  1. 安装超级网关

    npm install -g supergateway
    
  2. 启动SSE服务器

    npm run sse
    
  3. 配置Claude桌面

    {
      "mcpServers": {
        "polymarket-mcp": {
          "type": "sse",
          "url": "http://localhost:3100/sse",
          "timeout": 600
        }
      }
    }
    

🛠️ 可用工具

1.获得市场

get_markets({
  limit?: number,           // Max results (default: 20, max: 100)
  offset?: number,          // Pagination offset
  active?: boolean,         // Filter by active status
  search?: string,          // Search by title/description
  order?: string,           // Sort by: volume, liquidity, start_date, end_date
  liquidity_min?: number,   // Minimum liquidity threshold
  volume_min?: number       // Minimum volume threshold
})

2.获取活动

get_events({
  limit?: number,           // Max results (default: 20, max: 100)
  offset?: number,          // Pagination offset
  active?: boolean,         // Filter by active status
  search?: string,          // Search by title/description
  order?: string            // Sort by: volume, liquidity, start_date, end_date
})

3.获取用户位置

get_user_positions({
  user_address: string,     // Required: User's wallet address
  limit?: number,           // Max results (default: 50, max: 100)
  market_id?: string,       // Filter by specific market
  min_size?: number,        // Minimum position size
  show_zero_positions?: boolean // Include zero positions
})

4.获取用户活动

get_user_activity({
  user_address: string,     // Required: User's wallet address
  limit?: number,           // Max results (default: 50, max: 100)
  activity_type?: string,   // TRADE, SPLIT, MERGE, REDEEM, REWARD, CONVERSION
  side?: string,            // BUY or SELL (for trades)
  start_date?: string,      // ISO 8601 date format
  end_date?: string         // ISO 8601 date format
})

5.获取市场价格

get_market_prices({
  market_id?: string,       // Market ID (required if no token_id)
  token_id?: string,        // Token ID (required if no market_id)
  interval?: string,        // 1m, 5m, 1h, 1d (default: 1h)
  fidelity?: number,        // Number of price points (default: 100, max: 1000)
  include_orderbook?: boolean // Include current order book
})

6.获取交易

get_trades({
  limit?: number,           // Max results (default: 50, max: 100)
  market_id?: string,       // Filter by market
  user_address?: string,    // Filter by user
  side?: string,            // BUY or SELL
  min_size?: number,        // Minimum trade size
  start_date?: string,      // ISO 8601 date format
  end_date?: string         // ISO 8601 date format
})

7.获取订单簿

get_order_book({
  market_id?: string,       // Market ID (required if no token_id)
  token_id?: string,        // Token ID (required if no market_id)
  depth?: number,           // Price levels to show (default: 10, max: 50)
  include_spread_analysis?: boolean,   // Include spread analysis
  include_liquidity_analysis?: boolean // Include liquidity analysis
})

8.获得市场持有者

get_market_holders({
  market_id?: string,       // Market ID (required if no token_id)
  token_id?: string,        // Token ID (required if no market_id)
  limit?: number,           // Max results (default: 50, max: 100)
  min_balance?: number,     // Minimum balance threshold
  include_user_info?: boolean // Include user profiles
})

📊 示例用法

活跃市场

Show me the top 10 most liquid active prediction markets

分析用户组合

Get positions for wallet address 0x1234... and show P&L analysis

市场分析

Get order book for market ID abc123 with liquidity analysis

交易历史

Show recent trades for market xyz789 with volume over 1000 shares

🏗️ 建筑

src/
├── index.ts              # MCP server entry point
├── lib/
│   └── polymarketClient.ts # Polymarket API client
└── tools/                # Business logic tools
    ├── getMarkets.ts
    ├── getEvents.ts
    ├── getUserPositions.ts
    ├── getUserActivity.ts
    ├── getMarketPrices.ts
    ├── getTrades.ts
    ├── getOrderBook.ts
    └── getMarketHolders.ts

🔗 API覆盖范围

此MCP服务器与多个Polymarket API集成:

  • 伽马市场API:市场数据和元数据
  • API法规:订单簿和交易数据
  • 数据API:用户位置、活动和分析

🤝 贡献

欢迎投稿!请随时提交拉取请求。

📄 许可证

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

👨‍💻 作者

陈兴宇

🙏 致谢


内置于❤️ 预测市场生态系统