MCP server
Give Claude (or any MCP client) direct access to Polyrank with one config snippet.
@polyrank/mcp (v0.4.0) is a stdio Model Context Protocol
server with 26 tools. Eighteen read the free public API and the free agent
manifests — no wallet, no key, no payment. With an API key
(POLYRANK_API_KEY), eight more call the authenticated API: the Ranking Builder
itself (polyrank_rank_wallets — any of the 84 metrics at any window, every
filter, as_of boards), per-window trader metrics, and the Strategy Lab
(backtests and paper trading, SIMULATED). Only the three Lab tools that create
something (polyrank_create_strategy, polyrank_run_backtest, polyrank_start_paper)
write; every other tool is annotated readOnlyHint. Nothing places orders or
moves money.
Install
claude mcp add polyrank -- npx -y @polyrank/mcpAdd to claude_desktop_config.json:
{
"mcpServers": {
"polyrank": {
"command": "npx",
"args": ["-y", "@polyrank/mcp"]
}
}
}Add to .cursor/mcp.json:
{
"mcpServers": {
"polyrank": {
"command": "npx",
"args": ["-y", "@polyrank/mcp"]
}
}
}Or use the one-click deep link: Add polyrank to Cursor
code --add-mcp '{"name":"polyrank","command":"npx","args":["-y","@polyrank/mcp"]}'Or add to .vscode/mcp.json:
{
"servers": {
"polyrank": {
"command": "npx",
"args": ["-y", "@polyrank/mcp"]
}
}
}Tools
| Tool | Input | Returns |
|---|---|---|
polyrank_get_leaderboard | preset? (default polyrank-default), limit? (≤25) | Top traders by composite skill: rank, score, identity, P&L, win rate, volume |
polyrank_get_trader_skill | address (0x…) | Skill profile: rank, P&L, win rate, volume, trades/markets, commodity percentiles |
polyrank_get_trader_calibration | address | 10-bin reliability diagram (predicted probability vs observed outcome) |
polyrank_get_market_consensus | market (conditionId or slug) | Smart-money consensus vs. market mid, 24h volume/fills, positioner counts, top holders |
polyrank_get_pulse | — | Live activity: big wins just banked, sharp moves, biggest recent trades, trending markets, consensus divergence |
polyrank_get_platform_stats | — | Coverage + canonical metric count: wallets, trades, markets, skill-metric count, earliest data year |
polyrank_get_top_roi_trades | limit? (≤100), category?, since_days?, sort?, dir? | Highest-ROI resolved trades (masked identities) — a hall of fame by ROI multiple |
polyrank_get_movers | preset?, lookback_days? (≤30), limit? (≤10) | Skill-rank climbers and fallers over a lookback window |
polyrank_get_smart_money_reports | limit? (≤104) | Archive of weekly Smart-Money Reports (ids/weeks + summaries) |
polyrank_get_smart_money_report | week (e.g. 2026-w26) | One weekly Smart-Money Report in full: big wins, movers, new entrants, calibration leader, divergence |
polyrank_get_trader_by_tid | tid (masked id) | Trader teaser by the opaque masked id returned in leaderboard/pulse/movers/top-ROI rows |
polyrank_get_trader_calibration_by_tid | tid | A masked trader's 10-bin reliability diagram |
polyrank_get_custom_ranking | slug | A published Builder ranking: masked top-25 + its weights and filters |
polyrank_get_traders_batch | tids (≤10) | Masked teasers for several traders in one call |
polyrank_get_metrics_catalog | — | The 84 rankable metrics: id, meaning, direction, the windows each exists at |
polyrank_get_metric_windows | — | Which metric exists at which window, how it can be used, and what an as_of board can answer |
polyrank_list_ranking_templates | — | The Builder's goals ("Copy entries", "Copy engine", …) as ready-to-send requests, plus the preset boards |
With an API key (POLYRANK_API_KEY)
| Tool | Input | Returns |
|---|---|---|
polyrank_resolve_tid | tid | The wallet behind a masked id |
polyrank_rank_wallets | weights (id → weight or {weight, window}), window?, filters?, as_of?, sort_by?, limit?, explain?, … or a template request | The Ranking Builder's board — POST /v1/rankings/custom, exactly what the web Builder runs |
polyrank_get_trader_metrics | address or tid, window?, scope? | Every metric displayable at the window: raw value + percentile in that window's cohort |
polyrank_list_lab_templates | — | Strategy Lab templates (editable specs) with their as-of evidence |
polyrank_create_strategy | name, spec? / template_id? | The saved strategy (validated; refusals carry the reason) |
polyrank_run_backtest | strategy_id or spec, from, to, cuts? | The queued run — poll polyrank_get_backtest |
polyrank_get_backtest | id | Status and, when done, the SIMULATED report |
polyrank_start_paper | strategy_id | A paper run scored against real order books (no orders, no money) |
polyrank_get_paper_run | id, outcome?, limit? | The run's stats and its copies, each with its fate |
Reproduce a Builder board: ask for the templates, then rank with the goal's
request — e.g. "Rank wallets with the Builder's Copy entries goal and show the top 20."
Without a key the public tools stop at commodity depth; the key tools reach the full metric grid. Agents that pay per call instead of holding a key use the x402 Agent API, which takes the same ranking request.
Prompts that work well
- "Who are the 10 most calibrated traders on Polymarket right now?"
- "Is wallet 0xf68A281980f8c13828e84e147e3822381d6e5B1B skilled or just lucky? Check their calibration." (a real top-0.5% wallet — try it)
- "Where does smart money disagree with the market price today?"
- "Show me this week's Polyrank Smart-Money Report."
- "Which wallets climbed the skill leaderboard the most this week?"
- "What are the highest-ROI resolved Sports trades on Polymarket?"
Configuration
| Env var | Default | Purpose |
|---|---|---|
POLYRANK_API_BASE | https://api.polyrank.app | Point at a different API host |
POLYRANK_AGENT_BASE | https://api-agent.polyrank.app | The agent host whose free manifests (catalog, windows, goals) are read |
POLYRANK_API_KEY | — | Your pk_live_… key: unlocks the ranking, trader-metrics, Strategy Lab and tid-resolve tools |
Going deeper than the free tier
Set POLYRANK_API_KEY for the Builder, per-window metrics and the Lab. For
smart-money tags, market positioning and the signal stream without an account,
have your agent pay per request via the x402 Agent API.