polymarket_whale_positions
Identify the largest Polymarket positions by whale wallets, showing active trades over $10k to inform copy-trading decisions.
Instructions
Top Polymarket whale wallets and their current active positions sized >$10k. Copy-trade reference.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| min_position_usd | No |
Implementation Reference
- falsifylab_alpha_mcp.py:205-206 (handler)Dispatch handler for polymarket_whale_positions — calls backend API endpoint /api/polymarket/whales with provided args via _api_get helper.
if name == "polymarket_whale_positions": return _api_get("/api/polymarket/whales", args) - falsifylab_alpha_mcp.py:174-184 (schema)Tool definition with name, description, and inputSchema (accepts optional min_position_usd integer parameter).
{ "name": "polymarket_whale_positions", "description": "Top Polymarket whale wallets and their current " "active positions sized >$10k. Copy-trade reference.", "inputSchema": { "type": "object", "properties": { "min_position_usd": {"type": "integer", "default": 10000}, }, }, }, - falsifylab_alpha_mcp.py:174-185 (registration)Tool is registered in the TOOLS list alongside other tools, exposed to clients via tools/list.
{ "name": "polymarket_whale_positions", "description": "Top Polymarket whale wallets and their current " "active positions sized >$10k. Copy-trade reference.", "inputSchema": { "type": "object", "properties": { "min_position_usd": {"type": "integer", "default": 10000}, }, }, }, ] - falsifylab_alpha_mcp.py:51-70 (helper)The _api_get helper used by the handler to make HTTP GET requests to the backend API.
def _api_get(path: str, params: dict | None = None) -> dict: if params: from urllib.parse import urlencode path = f"{path}?{urlencode(params)}" req = urllib.request.Request( f"{API_BASE}{path}", headers={ "User-Agent": USER_AGENT, "Accept": "application/json", **({"Authorization": f"Bearer {API_KEY}"} if API_KEY else {}), }, ) try: with urllib.request.urlopen(req, timeout=20) as r: return json.loads(r.read()) except urllib.error.HTTPError as e: body = e.read().decode(errors="ignore")[:400] return {"error": f"HTTP {e.code}: {body}"} except Exception as e: return {"error": str(e)[:200]}