Polymarket MCP Bot Analyst

Polymarket MCP Bot Analyst

MCP server for analyzing successful trading bots on Polymarket, enabling discovery of top traders, AI-powered strategy classification, and bot detection.

Category
Visit Server

README

šŸ¤– Polymarket MCP Bot Analyst

MCP server for analyzing successful trading bots on Polymarket — discover top traders, classify their strategies with AI, and detect bots on the world's largest prediction market.

TypeScript MCP Node.js CI Release


šŸ“‹ Table of Contents


Overview

This project implements a Model Context Protocol (MCP) server that exposes three powerful tools for analyzing trading activity on Polymarket. It combines real-time leaderboard data from Polymarket's Data API with LLM-powered strategy classification via OpenAI.

Key Features

  • šŸ† Top Trader Discovery — Fetch leaderboard rankings by timeframe
  • 🧠 AI Strategy Analysis — Classify strategies (arbitrage, market-making, etc.) using GPT-4o-mini
  • šŸ¤– Bot Detection — Heuristic + LLM-based identification of automated traders
  • šŸ“Š Batch Reporting — Concurrent analysis of multiple profiles
  • šŸ”„ Resilient API Layer — Exponential backoff, rate-limit handling (429 + Retry-After), graceful fallbacks

graph TD
    subgraph Client ["Client Layer"]
        MCP_Client["MCP Client (e.g., Claude Desktop)"]
    end

    subgraph Server ["MCP Server Layer"]
        index["index.ts (McpServer)"]
        Validation["Zod Validation"]
    end

    subgraph Tools ["Tool Handlers"]
        Traders["traders.ts (find_top_traders)"]
        Analysis["analysis.ts (analyze_trader_strategy)"]
        Reports["reports.ts (generate_batch_report)"]
    end

    subgraph Services ["External Services & Utils"]
        PAPI["api/polymarket.ts (Polymarket Data API)"]
        LLM["utils/llm.ts (OpenAI GPT-4o-mini)"]
    end

    MCP_Client -- "stdio (JSON-RPC)" --> index
    index --> Validation
    Validation --> Traders
    Validation --> Analysis
    Validation --> Reports

    Traders --> PAPI
    Analysis --> PAPI
    Analysis --> LLM
    Reports --> Analysis
    Reports --> PAPI

    style Client fill:#f9f,stroke:#333,stroke-width:2px
    style Server fill:#bbf,stroke:#333,stroke-width:2px
    style Tools fill:#dfd,stroke:#333,stroke-width:2px
    style Services fill:#ffd,stroke:#333,stroke-width:2px

Tool Execution Flow

sequenceDiagram
    participant C as MCP Client
    participant S as MCP Server
    participant T as Tool Handler
    participant P as Polymarket API
    participant L as OpenAI LLM

    C->>S: Call "analyze_trader_strategy"
    S->>S: Validate Input (Zod)
    S->>T: handleAnalyzeStrategy(profile_id)
    T->>P: Fetch Profile Data & PnL
    P-->>T: User Data
    T->>P: Fetch Trade History
    P-->>T: Trade History
    T->>L: Classify strategy (history)
    L-->>T: strategy_analysis (JSON)
    T-->>S: strategy_result
    S-->>C: Tool Response (JSON)

Tools

1. find_top_traders

Fetch top-performing traders from the Polymarket leaderboard with bot detection.

Parameter Type Description
limit integer Number of traders (1–50)
timeframe string "7d", "30d", or "all_time"

Output: Array<{ profile_id, pnl, is_bot }>

2. analyze_trader_strategy

Deep-dive analysis of a single trader using trade history + LLM classification.

Parameter Type Description
profile_id string Wallet address (0x…) or username (@name)

Output: { strategy_description, risk_level, risk_justification, success_score, is_bot }

3. generate_batch_report

Concurrent analysis of multiple profiles with error-resilient execution.

Parameter Type Description
profile_ids string[] Array of profile IDs (1–50)

Output: Array<{ profile_id, pnl, strategy_description, risk_level, risk_justification, success_score, is_bot }>


Getting Started

Prerequisites

  • Node.js ≄ 22
  • npm ≄ 10
  • OpenAI API key (for strategy analysis)

Installation

# Clone the repository
git clone <your-repo-url>
cd polymarket-mcp-bot-analyst

# Install dependencies
npm install

# Configure environment
cp .env.example .env
# Edit .env and add your OPENAI_API_KEY

Build & Run

# Build TypeScript
npm run build

# Start the MCP server (stdio transport)
npm start

# Or run directly with tsx (development)
npm run dev

Connect to Claude Desktop

Add this server to your Claude Desktop configuration:

macOS

Edit ~/Library/Application Support/Claude/claude_desktop_config.json:

{
  "mcpServers": {
    "polymarket-bot-analyst": {
      "command": "node",
      "args": ["/absolute/path/to/polymarket-mcp-bot-analyst/dist/index.js"],
      "env": {
        "OPENAI_API_KEY": "sk-..."
      }
    }
  }
}

Windows

Edit %APPDATA%\Claude\claude_desktop_config.json:

{
  "mcpServers": {
    "polymarket-bot-analyst": {
      "command": "node",
      "args": ["C:\\path\\to\\polymarket-mcp-bot-analyst\\dist\\index.js"],
      "env": {
        "OPENAI_API_KEY": "sk-..."
      }
    }
  }
}

After saving, restart Claude Desktop. The three tools will appear in the tools menu (šŸ”Ø icon).


Run the Test Suite

The test runner executes all three tools against the live Polymarket API and generates the required JSON artifacts:

npm run test:run

This produces:

File Description
test_run.json Full execution log with data for 3+ traders
performance_report.json Latency metrics for each endpoint
my_report.json Architectural description of each endpoint

Project Structure

polymarket-mcp-bot-analyst/
ā”œā”€ā”€ src/
│   ā”œā”€ā”€ index.ts              # MCP server entry point
│   ā”œā”€ā”€ types.ts              # Shared interfaces & config
│   ā”œā”€ā”€ api/
│   │   └── polymarket.ts     # Polymarket Data API wrapper
│   ā”œā”€ā”€ tools/
│   │   ā”œā”€ā”€ traders.ts        # find_top_traders handler
│   │   ā”œā”€ā”€ analysis.ts       # analyze_trader_strategy handler
│   │   └── reports.ts        # generate_batch_report handler
│   ā”œā”€ā”€ utils/
│   │   └── llm.ts            # OpenAI LLM integration
│   └── test-run.ts           # Artifact generator script
ā”œā”€ā”€ test_run.json             # Generated test run log
ā”œā”€ā”€ performance_report.json   # Generated latency metrics
ā”œā”€ā”€ my_report.json            # Generated architecture report
ā”œā”€ā”€ package.json
ā”œā”€ā”€ tsconfig.json
ā”œā”€ā”€ .env.example
└── .gitignore

Configuration

Environment Variable Required Description
OPENAI_API_KEY Yes OpenAI API key for GPT-4o-mini

Internal Constants (in src/types.ts)

Constant Default Description
POLYMARKET_API_BASE https://data-api.polymarket.com API base URL
REQUEST_TIMEOUT_MS 15000 HTTP request timeout
MAX_RETRIES 3 Max retry attempts per request
RETRY_BASE_DELAY_MS 1000 Base delay for exponential backoff
BOT_TRADE_THRESHOLD 200 Min trades to flag as bot
BOT_TRADES_PER_HOUR_THRESHOLD 10 Min trades/hour for bot flag

License

MIT

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured