Polymarket Mcp Bot Analyst — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited Polymarket Mcp Bot Analyst (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
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.
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.
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:2pxsequenceDiagram
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)find_top_tradersFetch 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 }>
analyze_trader_strategyDeep-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 }
generate_batch_reportConcurrent 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 }>
# 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 TypeScript
npm run build
# Start the MCP server (stdio transport)
npm start
# Or run directly with tsx (development)
npm run devAdd this server to your Claude Desktop configuration:
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-..."
}
}
}
}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).
The test runner executes all three tools against the live Polymarket API and generates the required JSON artifacts:
npm run test:runThis 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 |
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| Environment Variable | Required | Description |
|---|---|---|
OPENAI_API_KEY | Yes | OpenAI API key for GPT-4o-mini |
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 |
MIT
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.