@gonzih/poly-scout
v0.1.0
Published
Polymarket smart money tracker — MCP skill for Claude
Maintainers
Readme
poly-scout
Polymarket smart money tracker — MCP skill for Claude.
Tracks wallets with consistent positive ROI across many Polymarket markets. Smart money moves before the crowd; poly-scout surfaces where it is and what it's betting on.
What it does
- Scans top-volume Polymarket markets for wallet activity
- Scores wallets by trade count, diversification, and ROI proxy
- Surfaces consensus signals: where multiple smart wallets are positioned
- Tracks late money: unusual 48h volume spikes indicating informed positioning
- Returns raw trade feeds for any market
Data sources: data-api.polymarket.com (no auth required) and gamma-api.polymarket.com.
Installation
npx @gonzih/poly-scoutRedis is used for caching (optional — gracefully skips if unavailable). Set REDIS_URL env var if you have Redis running.
Add to Claude
In your Claude settings.json (usually ~/.claude/settings.json):
{
"mcpServers": {
"poly-scout": {
"command": "npx",
"args": ["--yes", "-y", "@gonzih/poly-scout"],
"env": {
"REDIS_URL": "redis://localhost:6379"
}
}
}
}Restart Claude after saving. The tools will appear as poly-scout:scan_smart_money, etc.
Tools
scan_smart_money()
No parameters. Returns top wallets by win rate and ROI, their current open positions, and a consensus map showing where smart money is concentrated.
{
"wallets": [
{
"address": "0xabc...",
"trade_count": 47,
"roi_proxy": 0.312,
"total_usdc_traded": 14200,
"open_positions": [
{
"market_id": "0x...",
"question": "Will X happen?",
"outcome": "Yes",
"price": 0.72,
"size_usdc": 420
}
]
}
],
"consensus": [
{
"market_id": "0x...",
"question": "Will X happen?",
"direction": "YES",
"confidence": 0.81,
"smart_wallet_count": 5
}
]
}Results cached 5 minutes.
get_wallet_positions(address: string)
Full position breakdown for any wallet: open positions, current P&L, entry prices, end dates.
{
"address": "0xabc...",
"open_positions": [
{
"market_id": "0x...",
"question": "Will X happen?",
"outcome": "No",
"entry_price": 0.22,
"cur_price": 0.35,
"size_usdc": 840,
"cash_pnl": 491,
"pct_pnl": 58.5,
"end_date": "2026-05-01"
}
],
"recent_trades": [...]
}get_late_money(market_id: string, token_id?: string)
Detects unusual position buildup in the last 48h for a specific market. Volume spike vs 5-day baseline, net direction, wallet concentration.
{
"signal": "YES",
"confidence": 0.74,
"volume_48h_usdc": 85000,
"volume_48h_vs_baseline": 3.4,
"yes_usdc_48h": 61000,
"no_usdc_48h": 24000,
"unique_wallets_48h": 23,
"top_wallets": ["0xabc...", "0xdef..."]
}Pass the conditionId from the gamma API as market_id, plus token_id (from clobTokenIds[0]) if known.
get_market_trades(token_id: string, limit?: number)
Raw trade feed — last N trades (max 500) for a market. Returns wallet addresses, prices, sizes, outcomes, timestamps.
Integration with polly-gamba
poly-scout complements polly-gamba (the automated Polymarket trading system). Use scan_smart_money() to identify which markets have smart wallet consensus, then pass those market IDs to polly-gamba's position sizing logic.
Workflow:
scan_smart_money()→ identify high-confidence consensus marketsget_late_money(market_id)→ verify the signal isn't noiseget_wallet_positions(address)→ validate specific wallets before following- Feed signals into polly-gamba entry criteria
License
MIT
