{"serverId":"mcp-registry/io.tooloracle/predictionguard","tools":[{"name":"pg_information_advantage_score","fixed":{"name":"pg_information_advantage_score","description":"Composite A-F rating for whether a wallet appears to have had non-public information on a specific market. Aggregates pg_position_timing_anomaly (50% weight) + pg_insider_signal_scan (30%) plus bonuses for being in top positioners (+10), new to market (+10), and sensitive category (+10). Returns letter grade A-F, composite score 0-100, all component scores, and interpretation guide. Pattern-matches reported cases (Van Dyke, Hyperliquid whale). Statistical signal only — not a legal determination.","inputSchema":{"type":"object","required":["wallet"],"properties":{"id":{"type":"string","description":"Market id / conditionId"},"slug":{"type":"string","description":"Market slug"},"wallet":{"type":"string","description":"Wallet to score (0x + 40 hex)"}},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":235,"tokensAfter":235},{"name":"pg_kalshi_conflict_of_interest_check","fixed":{"name":"pg_kalshi_conflict_of_interest_check","description":"CFTC Rule 5.17(z) conflict-of-interest pre-trade check. Analyzes a Kalshi market's metadata to detect whether trading it would expose decision-makers (election candidates, government officials, athletes, regulators) to insider-trading liability. Pattern-matches against the Kalshi April 2026 disciplinary cases (Moran/Klein/Enriquez) and the CFTC Van Dyke complaint. Returns ALLOW/MONITOR/WARN/BLOCK recommendation + 0-100 score + reference cases. Cannot identify actual trader identity (Kalshi publi","inputSchema":{"type":"object","properties":{"ticker":{"type":"string","description":"Kalshi market ticker"},"event_ticker":{"type":"string","description":"Or event_ticker for the whole event"},"candidate_name":{"type":"string","description":"Optional: specific person's name to match against title (e.g. 'Mark Moran')"}},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":255,"tokensAfter":255},{"name":"pg_kalshi_orderbook_analysis","fixed":{"name":"pg_kalshi_orderbook_analysis","description":"Forensic orderbook analysis for one Kalshi market. Detects manipulation-vulnerable patterns: (1) wide spread (>$0.10), (2) shallow depth (<10 contracts), (3) few price levels, (4) single-order dominance (>80% in top level), (5) penny-wall pattern (large bids at ≤$0.005, commonly used to fake depth). Returns 0-100 score, severity, and full level-by-level data. Kalshi returns bids only — implied asks computed via yes_bid + no_bid = $1 reciprocity.","inputSchema":{"type":"object","required":["ticker"],"properties":{"ticker":{"type":"string","description":"Kalshi market ticker"}},"additionalProperties":false},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":186,"tokensAfter":186},{"name":"pg_kalshi_search","fixed":{"name":"pg_kalshi_search","description":"Search Kalshi prediction markets (CFTC-regulated event contracts). Returns events ranked by aggregate 24h volume across all markets in the event. Kalshi categories include Elections, Politics, Economics, Climate, Sports, Entertainment, Financials. Public data, no auth needed. Each event has one or more child markets (mutually exclusive or yes/no).","inputSchema":{"type":"object","properties":{"limit":{"type":"integer","default":25,"description":"Max events to return (default 25, max 100)"},"query":{"type":"string","description":"Keyword search in title, sub_title, event_ticker"},"status":{"enum":["open","closed","settled"],"type":"string","default":"open"},"category":{"type":"string","description":"Optional category filter (Elections, Politics, Economics, ...)"}},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":235,"tokensAfter":235},{"name":"pg_market_search","fixed":{"name":"pg_market_search","description":"Search Polymarket markets by keyword (e.g. 'election', 'fed', 'bitcoin'). Returns question, slug, 24h volume, liquidity, end date.","inputSchema":{"type":"object","required":["query"],"properties":{"limit":{"type":"integer","default":10,"description":"Max results (default 10, max 50)"},"query":{"type":"string","description":"Keyword to search"},"active_only":{"type":"boolean","default":true,"description":"Only active / non-closed markets"}},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":144,"tokensAfter":144},{"name":"pg_pep_check_entity","fixed":{"name":"pg_pep_check_entity","description":"Politically Exposed Person (PEP) check via Wikidata. Delegates to AMLOracle. Relevant for prediction markets where reported traders overlap with political figures.","inputSchema":{"type":"object","required":["name"],"properties":{"name":{"type":"string","description":"Person name"},"country":{"type":"string","description":"Optional ISO country code"}},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":120,"tokensAfter":120},{"name":"pg_uma_status","fixed":{"name":"pg_uma_status","description":"Global UMA Optimistic Oracle health on Polygon. Scans event logs from OOv2 (and optionally OOv1) over a configurable window, tallies events by type (RequestPrice / ProposePrice / DisputePrice / Settle), computes per-hour rate, and derives a dispute/propose ratio — a leading indicator of oracle-level contention.","inputSchema":{"type":"object","properties":{"include_v1":{"type":"boolean","default":false,"description":"Also scan UMA OOv1 (legacy, default false)"},"blocks_back":{"type":"integer","default":5000,"description":"Blocks to scan back (default 5000 ≈ 3h, max 20000)"}},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":181,"tokensAfter":181},{"name":"pg_wallet_entity_resolve","fixed":{"name":"pg_wallet_entity_resolve","description":"Resolve a Polygon address to a known entity via PredictionGuard's Wallet Registry (Polymarket core contracts, major stablecoins, known CEX hot wallets), falling back to on-chain heuristic classification for unknown addresses. Returns entity name, type, category, AML relevance, confidence, and source-of-record URL.","inputSchema":{"type":"object","required":["address"],"properties":{"address":{"type":"string","description":"Polygon address (0x + 40 hex chars)"}},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":152,"tokensAfter":152},{"name":"pg_wallet_lookup","fixed":{"name":"pg_wallet_lookup","description":"Polygon wallet base profile via JSON-RPC (Ankr-backed when RPC_POLYGON is set, public fallback otherwise). Returns MATIC balance, outbound tx count, contract-vs-EOA detection, and a lightweight risk heuristic.","inputSchema":{"type":"object","required":["address"],"properties":{"address":{"type":"string","description":"Polygon address (0x + 40 hex chars)"}},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":120,"tokensAfter":120},{"name":"pg_whale_add","fixed":{"name":"pg_whale_add","description":"Add a Polygon wallet to the PredictionGuard watchlist. Takes an initial baseline snapshot so subsequent pg_whale_scan calls can detect movement. Set alert_threshold_matic to tune sensitivity (default 100 MATIC). Tags are free-form.","inputSchema":{"type":"object","required":["address"],"properties":{"tags":{"type":"array","items":{"type":"string"},"description":"Free-form tags (e.g. ['polymarket','pre-election','whale'])"},"alias":{"type":"string","description":"Optional human-readable label"},"notes":{"type":"string","description":"Free-form notes"},"address":{"type":"string","description":"Polygon address (0x + 40 hex)"},"alert_threshold_matic":{"type":"number","default":100,"description":"Balance delta threshold in MATIC for alerts (default 100)"}},"additionalProperties":false},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":231,"tokensAfter":231},{"name":"pg_whale_list","fixed":{"name":"pg_whale_list","description":"List all watched wallets with their alias, threshold, tags, notes, and last snapshot. Optionally filter by tag.","inputSchema":{"type":"object","properties":{"tag":{"type":"string","description":"Optional tag filter"},"limit":{"type":"integer","default":100,"description":"Max results (max 500)"}},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":102,"tokensAfter":102},{"name":"pg_whale_remove","fixed":{"name":"pg_whale_remove","description":"Remove a wallet from the watchlist. By default keeps historical snapshots and alerts (for audit trail). Set keep_history=false to purge everything for this address.","inputSchema":{"type":"object","required":["address"],"properties":{"address":{"type":"string"},"keep_history":{"type":"boolean","default":true,"description":"Keep snapshot + alert history (default true)"}},"additionalProperties":false},"annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: true, idempotentHint: true (inferred from the name).","verify":true}],"tokensBefore":124,"tokensAfter":124}],"toolsChanged":12,"tokensSaved":0,"todo":[{"tool":"pg_kalshi_search","params":["status"]},{"tool":"pg_kyc_bundle_entity","params":["name"]},{"tool":"pg_market_integrity_scan","params":["id","slug"]},{"tool":"pg_market_volume_profile","params":["id","slug"]},{"tool":"pg_pre_event_flow_analysis","params":["id","slug"]},{"tool":"pg_resolution_risk_score","params":["id","slug"]},{"tool":"pg_whale_alerts","params":["address","severity"]},{"tool":"pg_whale_remove","params":["address"]}],"note":"Deterministic fixes. Changes marked verify need a human look before shipping (renames, inferred annotations, inferred types, removed text). Parameter descriptions in `todo` need to be written by someone who knows the API."}