{"name":"io.github.0xinsider/mcp","slug":"0xinsider-mcp","title":"0xinsider","description":"Read-only Polymarket sports and esports data: wallet grades on settled P&L, large trades, markets.","url":"https://mcp.market/server/0xinsider-mcp","rating":null,"grade":"A","score":85,"certified":false,"status":"active","category":"other","tags":[],"presence":{"score":0,"stars":null,"forks":null,"downloads_week":null,"last_push_at":null,"license":null},"claimed":false,"transport":"mixed","callable_via_gateway":true,"default_price_micros":0,"repository":"https://github.com/0xinsider/agent-plugin","website":"https://0xinsider.com/mcp","version":"1.2.3","remotes":[{"type":"streamable-http","url":"https://api.0xinsider.com/api/v1/mcp"}],"packages":[{"registryType":"npm","registryBaseUrl":"https://registry.npmjs.org","identifier":"@0xinsider/mcp","version":"1.2.3","runtimeHint":"npx","transport":{"type":"stdio"},"environmentVariables":[{"description":"0xinsider API key (oxi_sk_live_...) from https://0xinsider.com/developers","isRequired":true,"format":"string","isSecret":true,"name":"OXINSIDER_API_KEY"}]}],"tools":[{"name":"batch_get_market_intel","description":"Read-only batch lookup for 1-25 raw provider condition_id values. Results preserve request order and duplicate inputs return duplicate rows. Uses the same V1 batch item quota as POST /api/v1/markets/intel/batch.\n\nArgs:\n  - condition_ids (string[], required): Raw provider condition IDs\n  - timeframe (string, optional): \"1h\", \"4h\", \"24h\", or \"7d\" (default \"24h\")\n\nReturns: Ordered batch market-intelligence results with per-item success or error details.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"condition_ids":{"description":"Raw provider condition_id values","items":{"minLength":1,"type":"string"},"maxItems":25,"minItems":1,"type":"array"},"timeframe":{"default":"24h","description":"Shared lookback window","enum":["1h","4h","24h","7d"],"type":"string"}},"required":["condition_ids"],"additionalProperties":false}},{"name":"batch_get_traders","description":"Read-only batch lookup for 1-25 trader wallet addresses or known usernames. Results preserve request order and duplicate inputs return duplicate rows. Uses the same V1 batch item quota as POST /api/v1/traders/batch.\n\nArgs:\n  - traders (string[], required): Wallet addresses or known usernames\n  - expand (string[], optional): Heavy fields to include for every trader: \"strategy\", \"categories\", \"quant_metrics\" (per-item quant_metrics is omitted unless its computed row is strictly under six hours old)\n\nReturns: Ordered batch trader results with per-item success or error details.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"expand":{"description":"Shared heavy fields to include for every trader item","items":{"enum":["strategy","categories","quant_metrics"],"type":"string"},"type":"array"},"traders":{"description":"Wallet addresses or known usernames","items":{"minLength":1,"type":"string"},"maxItems":25,"minItems":1,"type":"array"}},"required":["traders"],"additionalProperties":false}},{"name":"explore_markets","description":"Browse whale-active titled markets for discovery surfaces. Returns grouped event clusters or standalone markets plus live facets. Cursor-paginated over visible discovery entries.\n\nArgs:\n  - limit (number, 1-48, default 24): Max discovery entries per page\n  - cursor (string, optional): Pagination cursor from previous response\n  - category (string, optional): Filter by provider-native market category\n  - status (string, optional): Filter by status: \"active\", \"closed\", or \"all\"\n  - platform (string, optional): Explore is Polymarket-only; accepted for backward-compatibility, does not change the result set\n  - sort (string, optional): Sort by \"trending\", \"hot\", \"expiring\", \"whales\", \"volume\", or \"newest\"\n  - q (string, optional): Keyword search against market titles, up to 64 characters before whitespace trimming\n\nReturns: Market discovery entries, facets, and pagination metadata.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"category":{"description":"Filter by provider-native market category","type":"string"},"cursor":{"description":"Pagination cursor from previous response","type":"string"},"limit":{"default":24,"description":"Max discovery entries (1-48, default 24)","maximum":48,"minimum":1,"type":"integer"},"platform":{"default":"polymarket","description":"Explore is Polymarket-only; accepted for backward-compatibility and does not change the result set","enum":["polymarket"],"type":"string"},"q":{"description":"Keyword search against market titles, up to 64 characters before whitespace trimming","maxLength":64,"type":"string"},"sort":{"default":"trending","description":"Discovery sort order","enum":["trending","hot","expiring","whales","volume","newest"],"type":"string"},"status":{"default":"all","description":"Filter by market status","enum":["active","closed","all"],"type":"string"}},"additionalProperties":false}},{"name":"get_daily_report_snapshot","description":"Read one dated daily whale-activity report snapshot.\n\nArgs:\n  - date (string, required): UTC report date in YYYY-MM-DD format\n\nReturns: Report snapshot metadata and entries.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"date":{"description":"UTC report date in YYYY-MM-DD format","pattern":"^\\d{4}-\\d{2}-\\d{2}$","type":"string"}},"required":["date"],"additionalProperties":false}},{"name":"get_event_replay_since","description":"Replay durable public whale-trade intelligence events strictly after an opaque cursor backed by whale_alerts.id.\n\nArgs:\n  - cursor (string, optional): Opaque event replay cursor\n  - limit (number, 1-100, default 50)\n\nReturns: Event replay window with retention and completeness metadata.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"cursor":{"description":"Opaque event replay cursor","type":"string"},"limit":{"default":50,"description":"Max events (1-100, default 50)","maximum":100,"minimum":1,"type":"integer"}},"additionalProperties":false}},{"name":"get_insider_radar","description":"Stored trades whose recorded suspicion score meets the live flag threshold. Cursor-paginated by suspicion score (highest first).\n\nEach flag includes:\n- suspicion_score (60-100)\n- severity (currently flag)\n- Sub-scores: size and fresh_wallet when recorded; timing and edge are null\n- Evidence JSON with the scorer's stored signals\n\nArgs:\n  - limit (number, 1-100, default 20): Max results per page\n  - cursor (string, optional): Pagination cursor from previous response\n  - min_suspicion (number, 0-100, default 0): Minimum score; the live floor of 60 also applies\n  - severity (string, optional): \"flag\" selects live rows; \"watch\" returns none because no live watch policy exists\n\nReturns: List of radar flags with trader, market, scores, and evidence.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"cursor":{"description":"Pagination cursor from previous response","type":"string"},"limit":{"default":20,"description":"Max results (1-100, default 20)","maximum":100,"minimum":1,"type":"integer"},"min_suspicion":{"default":0,"description":"Minimum suspicion score (0-100)","maximum":100,"minimum":0,"type":"number"},"severity":{"description":"Filter by severity level","enum":["flag","watch"],"type":"string"}},"additionalProperties":false}},{"name":"get_insider_radar_flag","description":"Read one insider-radar flag by ID. Accepts the rf_ ID returned by list responses or the raw numeric whale_alerts.id.\n\nArgs:\n  - id (string, required): Radar flag ID such as rf_123 or 123\n\nReturns: One radar flag with trader, market, suspicion scores, and evidence.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"id":{"description":"Entity ID returned by the matching list endpoint","minLength":1,"type":"string"}},"required":["id"],"additionalProperties":false}},{"name":"get_large_positions","description":"List the largest current open positions from graded traders (Polymarket-only). Each row carries position value, open (unrealized) P&L, share count, entry/current price, outcome label, and trader/market context. Cursor-paginated by position value descending.\n\nPolymarket-only: the scanner filters platform = 'polymarket', so an unknown condition_id matches nothing and returns an empty list (never fabricated rows).\n\nArgs:\n  - limit (number, 1-100, default 20): Max results per page\n  - cursor (string, optional): Opaque pagination cursor from previous response\n  - min_size (number, optional): Minimum position value in USD\n  - category (string, optional): Filter by provider-backed market category\n  - min_grade (string, optional): Minimum trader grade (S, A, B, C, D, F)\n  - condition_id (string, optional): Scope to one market (raw provider id or mkt_-prefixed)\n\nReturns: List of large positions with trader, market, value, P&L, and pagination metadata.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"category":{"description":"Filter by provider-backed market category","type":"string"},"condition_id":{"description":"Scope to one market (raw provider condition_id or mkt_-prefixed). Polymarket-only; an unknown id returns an empty list.","type":"string"},"cursor":{"description":"Opaque pagination cursor from previous response","type":"string"},"limit":{"default":20,"description":"Max results (1-100, default 20)","maximum":100,"minimum":1,"type":"integer"},"min_grade":{"description":"Minimum trader grade","enum":["S","A","B","C","D","F"],"type":"string"},"min_size":{"description":"Minimum position value in USD","minimum":0,"type":"number"}},"additionalProperties":false}},{"name":"get_leaderboard","description":"Get the top-ranked prediction market traders (grades S, A, B only). Sorted by composite score descending. Supports cursor pagination and optional filters.\n\nArgs:\n  - limit (number, 1-100, default 20): Max results per page\n  - cursor (string, optional): Pagination cursor from previous response\n  - category (string, optional): Filter by category slug\n  - strategy (string, optional): Filter by strategy type\n\nReturns: Ranked list of traders with grade, score, P&L, volume, win rate, and strategy.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"category":{"description":"Filter by category slug","type":"string"},"cursor":{"description":"Pagination cursor from previous response","type":"string"},"limit":{"default":20,"description":"Max results (1-100, default 20)","maximum":100,"minimum":1,"type":"integer"},"strategy":{"description":"Filter by strategy type","type":"string"}},"additionalProperties":false}},{"name":"get_market_intel","description":"Smart money flow analysis for a specific prediction market. Shows net flow direction, whale trade count, buy/sell volumes, and top graded trader positions.\n\nUse search_markets first to find the condition_id for a market.\n\nArgs:\n  - condition_id (string, required): Market condition ID (from search_markets results)\n  - timeframe (string, optional): Lookback window: \"1h\", \"4h\", \"24h\", \"7d\" (default \"24h\")\n\nReturns: Market info, smart money flow (net_flow_usd, direction YES/NO, volumes), and top 5 trader positions.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"condition_id":{"description":"Market condition ID","type":"string"},"timeframe":{"default":"24h","description":"Lookback window (default 24h)","enum":["1h","4h","24h","7d"],"type":"string"}},"required":["condition_id"],"additionalProperties":false}},{"name":"get_market_snapshot","description":"Provider-first live market-card snapshot for one raw provider condition_id. Forwards IDs to the V1 handler without mkt_ rewriting.\n\nArgs:\n  - condition_id (string, required): Raw provider condition_id returned by search or explore\n\nReturns: Market identity, outcomes, liquidity, sports context, and freshness states.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"condition_id":{"description":"Raw provider condition_id","minLength":1,"type":"string"}},"required":["condition_id"],"additionalProperties":false}},{"name":"get_monthly_report_snapshot","description":"Read one UTC monthly whale-activity report snapshot.\n\nArgs:\n  - month (string, required): UTC report month in YYYY-MM format\n\nReturns: Report snapshot metadata and entries.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"month":{"description":"UTC report month in YYYY-MM format","pattern":"^\\d{4}-\\d{2}$","type":"string"}},"required":["month"],"additionalProperties":false}},{"name":"get_pick_of_the_day","description":"Get today's published Pick of the Day: the sports markets where graded (S/A/B) smart money is positioned, frozen at publish time. Pro-tier. Read `picks` in `pick_rank` order (normally 3-6 items, never more than six). Each pick carries the matchup, the backed side (pick_outcome_label), the frozen pre-game price and $100 return, the smart-money holders on that side, the top grade, CLV capture status, and the thesis. `scheduled_picks` lists today's selected-but-unreleased slots with only pick_rank, release_at, and kickoff; no market identity exists before release.\n\nBefore any pick is released the tool returns an error carrying reason pick_not_released and a retry_at instant: schedule the next read from retry_at (or the earliest scheduled_picks.release_at) instead of polling. A current-day pick whose holder proof is not readable yet is listed in `proof_pending_picks` (pick_rank, release_at, kickoff, retry_at) while `picks` carries the proof-readable picks; the tool returns read_model_warming with a retry only when no published pick has readable proof.\n\nArgs: none\n\nReturns: The published pick set for the current product day (America/New_York), or a pick_not_released error with retry_at.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{},"additionalProperties":false}},{"name":"get_pick_of_the_day_archive","description":"Get the complete Pick of the Day track record: every published pick with its settled outcome (win, loss, void, or pending), the frozen backed price, unit score, and CLV fields, plus the rolling hit rate (wins / decided; void and pending excluded) and the flat-$100-stake profit and ROI. Pro-tier. A published pick is never deleted, re-pointed, or re-priced, so the archive is the whole record, losses included. Resolved picks are public on the web; a still-pending pick's backed side is included here because the API key proves Pro.\n\nArgs: none\n\nReturns: picks[] newest first with outcome and CLV fields, plus the aggregate record (hit_rate, decided, wins, losses, voids, profit, roi, total risked).","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{},"additionalProperties":false}},{"name":"get_platforms","description":"Read the provider capability matrix declaring which V1 intelligence surfaces are supported, partial, or unsupported per platform. Polymarket reports a status (supported, partial, or unsupported) for grade, pnl, strategy, timeline, whale_signal, insider_radar, and market_snapshot. Use this before choosing trader, market, whale, or radar routes so you do not assume parity across providers.\n\nArgs: none\n\nReturns: Static backend-owned platform capability matrix keyed by platform.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{},"additionalProperties":false}},{"name":"get_position_timeline","description":"Get stored Polymarket fills available for one tracked trader in one market, newest first, with server-computed running_amount and running_avg_price. The REST identity accepts a 0x wallet, username, trd_-prefixed trader id, or bare integer traders.id with precedence wallet, trd_, integer, then username. Only HOT and WARM tier traders are tracked.\n\nArgs:\n  - condition_id (string, required): Market condition ID\n  - address (string, optional): Any supported REST trader identity, including a bare integer traders.id\n  - trader_id (number, optional): Convenience alias for a bare integer traders.id; provide exactly one of address or trader_id\n  - limit (number, 1-100, default 20): Max events per page\n  - cursor (string, optional): Pagination cursor from previous response\n\nReturns: List of position timeline events with pagination metadata.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"address":{"description":"Trader identity: 0x wallet, username, trd_-prefixed traders.id, or bare integer traders.id","maxLength":100,"minLength":1,"type":"string"},"condition_id":{"description":"Market condition ID","minLength":1,"type":"string"},"cursor":{"description":"Pagination cursor from previous response","type":"string"},"limit":{"default":20,"description":"Max events (1-100, default 20)","maximum":100,"minimum":1,"type":"integer"},"trader_id":{"description":"Internal traders.id alias","minimum":1,"type":"integer"}},"required":["condition_id"],"additionalProperties":false,"oneOf":[{"not":{"required":["trader_id"]},"required":["address"]},{"not":{"required":["address"]},"required":["trader_id"]}]}},{"name":"get_position_timeline_by_id","description":"Get stored Polymarket fills available for one internal trader id in one market, newest first, using the public V1 /api/v1/traders/{id}/position-timeline route.\n\nArgs:\n  - condition_id (string, required): Market condition ID\n  - trader_id (number, required): Internal traders.id alias\n  - limit (number, 1-100, default 20)\n  - cursor (string, optional)\n\nReturns: List of position timeline events with pagination metadata.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"condition_id":{"description":"Market condition ID","minLength":1,"type":"string"},"cursor":{"description":"Pagination cursor from previous response","type":"string"},"limit":{"default":20,"description":"Max events (1-100, default 20)","maximum":100,"minimum":1,"type":"integer"},"trader_id":{"description":"Internal traders.id alias","minimum":1,"type":"integer"}},"required":["condition_id","trader_id"],"additionalProperties":false}},{"name":"get_positions","description":"List current prediction-market positions from the public positions-board feed. Returns trader, market, value, side, share, P&L, and freshness context. Cursor-paginated by current value descending.\n\nArgs:\n  - limit (number, 1-100, default 20): Max results per page\n  - cursor (string, optional): Pagination cursor from previous response\n  - min_size (number, default 100): Minimum current value in USD\n  - category (string, optional): Filter by provider-backed market category\n  - min_grade (string, optional): Minimum trader grade (S, A, B, C, D, F)\n  - side (string, optional): Filter by binary side: \"yes\" or \"no\"\n\nReturns: List of current positions with pagination metadata.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"category":{"description":"Filter by provider-backed market category","type":"string"},"cursor":{"description":"Pagination cursor from previous response","type":"string"},"limit":{"default":20,"description":"Max results (1-100, default 20)","maximum":100,"minimum":1,"type":"integer"},"min_grade":{"description":"Minimum trader grade","enum":["S","A","B","C","D","F"],"type":"string"},"min_size":{"default":100,"description":"Minimum current position value in USD","minimum":0,"type":"number"},"side":{"description":"Filter by binary outcome side","enum":["yes","no"],"type":"string"}},"additionalProperties":false}},{"name":"get_report","description":"Unified whale-activity report snapshot selector. One route for all three granularities; dispatches to the same per-granularity cap and date window as the granularity-specific report tools.\n\nArgs:\n  - granularity (string, required): \"daily\", \"weekly\", or \"monthly\"\n  - period (string, required): Period token for the granularity. daily: UTC date YYYY-MM-DD. weekly: ISO week YYYY-WW, or a from,to YYYY-MM-DD pair. monthly: UTC month YYYY-MM.\n\nReturns: Report snapshot metadata and entries (source_range, snapshot.status, completeness, reconciliation, report).","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"granularity":{"description":"Report granularity selector","enum":["daily","weekly","monthly"],"type":"string"},"period":{"description":"Period token: daily YYYY-MM-DD, weekly YYYY-WW or a from,to YYYY-MM-DD pair, monthly YYYY-MM","minLength":1,"type":"string"}},"required":["granularity","period"],"additionalProperties":false}},{"name":"get_sharp_money_flows","description":"Ranked sharp-money flow discovery across prediction markets. Use this before you know a condition_id to find where graded traders are net buying or selling. Cursor-paginated, ranked by absolute net flow descending.\n\nArgs:\n  - timeframe (string, optional): Lookback window: \"1h\", \"4h\", \"24h\", \"7d\" (default \"24h\")\n  - limit (number, 1-100, default 20): Max results per page\n  - cursor (string, optional): Pagination cursor with smf_ prefix\n  - category (string, optional): Filter by provider-backed market category\n  - platform (string, optional): \"polymarket\" or \"all\" (default \"all\")\n  - min_grade (string, optional): Minimum trader grade S, A, B, C, D, or F (default \"B\" = S/A/B)\n  - direction (string, optional): Filter by net flow direction: \"YES\" or \"NO\"\n\nReturns: Ranked markets with sharp_money (net_flow_usd, direction, whale_trade_count, buy/sell volumes) and market identity. smart_money is a deprecated byte-identical alias of sharp_money.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"category":{"description":"Filter by provider-backed market category","type":"string"},"cursor":{"description":"Pagination cursor with smf_ prefix","type":"string"},"direction":{"description":"Filter by net flow direction","enum":["YES","NO"],"type":"string"},"limit":{"default":20,"description":"Max results (1-100, default 20)","maximum":100,"minimum":1,"type":"integer"},"min_grade":{"default":"B","description":"Minimum trader grade (default B = S/A/B)","enum":["S","A","B","C","D","F"],"type":"string"},"platform":{"default":"all","description":"Platform filter (default all)","enum":["polymarket","all"],"type":"string"},"timeframe":{"default":"24h","description":"Lookback window (default 24h)","enum":["1h","4h","24h","7d"],"type":"string"}},"additionalProperties":false}},{"name":"get_smart_money_flows","description":"Ranked smart-money flow discovery across prediction markets. Use this before you know a condition_id to find where graded traders are net buying or selling. Cursor-paginated, ranked by absolute net flow descending.\n\nArgs:\n  - timeframe (string, optional): Lookback window: \"1h\", \"4h\", \"24h\", \"7d\" (default \"24h\")\n  - limit (number, 1-100, default 20): Max results per page\n  - cursor (string, optional): Pagination cursor with smf_ prefix\n  - category (string, optional): Filter by provider-backed market category\n  - platform (string, optional): \"polymarket\" or \"all\" (default \"all\")\n  - min_grade (string, optional): Minimum trader grade S, A, B, C, D, or F (default \"B\" = S/A/B)\n  - direction (string, optional): Filter by net flow direction: \"YES\" or \"NO\"\n\nReturns: Ranked markets with sharp_money (net_flow_usd, direction, whale_trade_count, buy/sell volumes) and market identity. smart_money is a deprecated byte-identical alias of sharp_money.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"category":{"description":"Filter by provider-backed market category","type":"string"},"cursor":{"description":"Pagination cursor with smf_ prefix","type":"string"},"direction":{"description":"Filter by net flow direction","enum":["YES","NO"],"type":"string"},"limit":{"default":20,"description":"Max results (1-100, default 20)","maximum":100,"minimum":1,"type":"integer"},"min_grade":{"default":"B","description":"Minimum trader grade (default B = S/A/B)","enum":["S","A","B","C","D","F"],"type":"string"},"platform":{"default":"all","description":"Platform filter (default all)","enum":["polymarket","all"],"type":"string"},"timeframe":{"default":"24h","description":"Lookback window (default 24h)","enum":["1h","4h","24h","7d"],"type":"string"}},"additionalProperties":false}},{"name":"get_trader","description":"Look up a prediction market trader by wallet address or username. Returns grade (S through F), P&L breakdown, win rate, and volume.\n\nOptional expand fields for heavier data:\n- strategy: Trading strategy classification\n- categories: Per-category performance breakdown\n- quant_metrics: curated advanced metrics (copy_score and smart_score 0-100, sharpe_30d, sharpe_7d, profit_factor, edge_consistency, sharpe_percentile, pf_percentile, consistency_percentile); emitted only for a computed row strictly under six hours old, otherwise omitted; each present value is a number or null\n- trust: Per-field provenance (source, freshness, reconciliation, completeness) for grade, P&L, and stats\n\nUnknown addresses or usernames return sync_status \"unknown\" (not an error).\n\nArgs:\n  - address (string, required): Ethereum wallet address (0x...) or trader username\n  - expand (string[], optional): Heavy fields to include: \"strategy\", \"categories\", \"quant_metrics\", \"trust\"\n\nReturns: Trader profile with grade, P&L, stats, and optional expanded fields.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"address":{"description":"Ethereum wallet address (0x...) or trader username","maxLength":100,"minLength":1,"type":"string"},"expand":{"description":"Optional heavy fields to include","items":{"enum":["strategy","categories","quant_metrics","trust"],"type":"string"},"type":"array"}},"required":["address"],"additionalProperties":false}},{"name":"get_trader_export_snapshot","description":"Read export source-range, completeness, volume reconciliation, row-count estimate, and large-export policy for one trader. Metadata only; does not start an export job.\n\nArgs:\n  - address (string, required): Trader wallet address, known username-style lookup, or trd_-prefixed trader ID emitted by the API. Bare integer database IDs are not accepted\n\nReturns: Trader export snapshot metadata.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"address":{"description":"Trader wallet address, known username-style lookup, or trd_-prefixed trader ID emitted by the API. Bare integer database IDs are not accepted","minLength":1,"type":"string"}},"required":["address"],"additionalProperties":false}},{"name":"get_trader_pnl","description":"Get a trader's daily P&L time series and pre-derived stats from the precomputed daily_pnl read model. Returns entries (daily cumulative P&L), period stats (all/90d/30d/7d), monthly aggregation, per-year totals, and the drawdown series.\n\nReads the refreshed read model, not a per-request equity replay. A resolved trader with no daily P&L returns an empty structured object (HTTP 200); an unknown address returns not found.\n\nArgs:\n  - address (string, required): Wallet address (0x...), username, or trd_-prefixed trader id\n\nReturns: Structured trader P&L object (entries, stats, monthly, year_totals, drawdown).","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"address":{"description":"Wallet address (0x...), username, or trd_-prefixed trader id","maxLength":100,"minLength":1,"type":"string"}},"required":["address"],"additionalProperties":false}},{"name":"get_trending_wallets","description":"List wallets ranked by trailing-window realized P&L (Polymarket-only discovery). Each row carries the window P&L, volume, distinct markets, grade, hot-streak tier, and a shape-only daily P&L series (per-day deltas from the provider curve; dates ascending, gaps are gaps — NOT zero-filled, and not guaranteed to sum to the window P&L). Cursor-paginated by window P&L descending.\n\nA cold read model returns a 503 retry-after (warming), never a 500 or fabricated ranking.\n\nArgs:\n  - limit (number, 1-50, default 20): Max results per page\n  - cursor (string, optional): Opaque pagination cursor from previous response\n  - window (string, optional): Trailing window: \"7d\" (default) or \"30d\"\n\nReturns: Ranked trending wallets with window stats and pagination metadata.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"cursor":{"description":"Opaque pagination cursor from previous response","type":"string"},"limit":{"default":20,"description":"Max results (1-50, default 20; the provider board caps the ranked set at 50)","maximum":50,"minimum":1,"type":"integer"},"window":{"default":"7d","description":"Trailing window (default 7d)","enum":["7d","30d"],"type":"string"}},"additionalProperties":false}},{"name":"get_webhook","description":"Read-only lookup of one webhook endpoint owned by the authenticated API key user. This does not create, update, verify, rotate, or delete webhook endpoints.\n\nArgs:\n  - id (number, required): Webhook endpoint id\n\nReturns: Webhook endpoint configuration record.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"id":{"description":"Webhook endpoint id","minimum":1,"type":"integer"}},"required":["id"],"additionalProperties":false}},{"name":"get_weekly_report_snapshot","description":"Read one weekly whale-activity report snapshot. Pass either from/to UTC dates or an ISO YYYY-WW week token.\n\nArgs:\n  - week (string, optional): YYYY-WW selector\n  - from/to (string, optional): UTC dates in YYYY-MM-DD format\n\nReturns: Report snapshot metadata and entries.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"from":{"description":"UTC source-range start in YYYY-MM-DD format","pattern":"^\\d{4}-\\d{2}-\\d{2}$","type":"string"},"to":{"description":"UTC source-range end in YYYY-MM-DD format","pattern":"^\\d{4}-\\d{2}-\\d{2}$","type":"string"},"week":{"description":"ISO week selector in YYYY-WW format","pattern":"^\\d{4}-\\d{2}$","type":"string"}},"additionalProperties":false,"oneOf":[{"not":{"anyOf":[{"required":["from"]},{"required":["to"]}]},"required":["week"]},{"not":{"required":["week"]},"required":["from","to"]}]}},{"name":"get_whale_trade","description":"Read one whale trade by ID. Accepts either the wt_ ID returned by whale-trade list/history responses or the raw numeric whale_alerts.id.\n\nArgs:\n  - id (string, required): Whale trade ID such as wt_123 or 123\n\nReturns: One whale trade with trader info, market context, size, side, price, current signal_score, optional recorded_signal_score, optional suspicion_score, and optional suspicion_track. A null suspicion track means the persisted legacy row has no track label.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"id":{"description":"Entity ID returned by the matching list endpoint","minLength":1,"type":"string"}},"required":["id"],"additionalProperties":false}},{"name":"get_whale_trades","description":"Get recent large trades from graded prediction market traders. Each trade includes signal scoring, persisted suspicion facts, trader grade, and market context. Cursor-paginated, newest first.\n\nArgs:\n  - limit (number, 1-100, default 20): Max results per page\n  - cursor (string, optional): Pagination cursor from previous response\n  - min_size (number, default 5000): Minimum trade size in USD\n  - category (string, optional): Filter by market category (case-insensitive)\n  - min_grade (string, optional): Minimum trader grade (S, A, B, C, D, F)\n  - suspicious_only (boolean, optional): Keep only persisted suspicion_score >= 60; false preserves the current result set\n\nReturns: List of whale trades with trader info, market context, size, side, price, current signal_score, optional recorded_signal_score, optional suspicion_score, and optional suspicion_track. A null suspicion track means the persisted legacy row has no track label.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"category":{"description":"Filter by market category (case-insensitive)","type":"string"},"cursor":{"description":"Pagination cursor from previous response","type":"string"},"limit":{"default":20,"description":"Max results (1-100, default 20)","maximum":100,"minimum":1,"type":"integer"},"min_grade":{"description":"Minimum trader grade","enum":["S","A","B","C","D","F"],"type":"string"},"min_size":{"default":5000,"description":"Minimum trade size in USD (default 5000)","minimum":0,"type":"number"},"suspicious_only":{"default":false,"description":"Keep only rows with persisted suspicion_score >= 60","type":"boolean"}},"additionalProperties":false}},{"name":"get_whale_trades_history","description":"Replay historical whale trades from local whale_alerts rows. Supports cursor pagination plus condition, trader, category, grade, platform, suspicion, and RFC3339 from/to filters.\n\nArgs:\n  - limit (number, 1-100, default 20)\n  - cursor (string, optional): Pagination cursor with wth_ prefix\n  - min_size (number, optional): Minimum trade size in USD\n  - condition_id (string, optional): Exact raw provider condition_id\n  - trader (string, optional): Wallet, alias, or username\n  - category (string, optional)\n  - min_grade (string, optional): S, A, B, C, D, or F\n  - suspicious_only (boolean, optional): Keep only persisted suspicion_score >= 60\n  - platform (string, optional): polymarket or all\n  - from/to (string, optional): RFC3339 traded_at bounds\n\nReturns: Historical whale trades with replay metadata, current signal_score, optional recorded_signal_score, optional suspicion_score, and optional suspicion_track. A null suspicion track means the persisted legacy row has no track label.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"category":{"description":"Filter by market category","type":"string"},"condition_id":{"description":"Exact raw provider condition_id","type":"string"},"cursor":{"description":"Pagination cursor from previous response","type":"string"},"from":{"description":"Inclusive traded_at lower bound","format":"date-time","type":"string"},"limit":{"default":20,"description":"Max results (1-100, default 20)","maximum":100,"minimum":1,"type":"integer"},"min_grade":{"description":"Minimum trader grade","enum":["S","A","B","C","D","F"],"type":"string"},"min_size":{"default":5000,"description":"Minimum trade size in USD","minimum":0,"type":"number"},"platform":{"description":"Filter by provider platform","enum":["polymarket","all"],"type":"string"},"suspicious_only":{"default":false,"description":"Keep only rows with persisted suspicion_score >= 60","type":"boolean"},"to":{"description":"Exclusive traded_at upper bound","format":"date-time","type":"string"},"trader":{"description":"Trader wallet, alias, or username","type":"string"}},"additionalProperties":false}},{"name":"list_webhooks","description":"Read-only list of webhook endpoints owned by the authenticated API key user. This does not create, update, verify, rotate, or delete webhook endpoints.\n\nArgs: none\n\nReturns: List of webhook endpoint configuration records.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{},"additionalProperties":false}},{"name":"search_content","description":"Search 0xinsider's editorial content by keyword. Returns matching learn articles, glossary entries, comparisons, research, and trading strategies with their canonical URLs.\n\nArgs:\n  - q (string, required): Search query, 1-256 characters before whitespace trimming\n  - limit (number, 1-50, default 10): Max results\n\nReturns: List of matching content items with content_id, kind, slug, title, excerpt, and url.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"limit":{"default":10,"description":"Max results (1-50, default 10)","maximum":50,"minimum":1,"type":"integer"},"q":{"description":"Search query (1-256 characters before whitespace trimming, non-empty after trimming)","maxLength":256,"minLength":1,"type":"string"}},"required":["q"],"additionalProperties":false}},{"name":"search_markets","description":"Search prediction markets by keyword. Returns matching markets with status, category, and platform. Use this to find condition_id values needed by get_market_intel.\n\nArgs:\n  - q (string, required): Search query\n  - limit (number, 1-100, default 20): Max results\n  - status (string, optional): Filter by status: \"active\", \"closed\", or \"all\" (default \"all\")\n  - category (string, optional): Filter by category\n\nReturns: List of matching markets with id, condition_id, title, slug, category, platform, status.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"category":{"description":"Filter by category","type":"string"},"limit":{"default":20,"description":"Max results (1-100, default 20)","maximum":100,"minimum":1,"type":"integer"},"q":{"description":"Search query (1-512 characters before whitespace trimming, non-empty after trimming)","maxLength":512,"minLength":1,"type":"string"},"status":{"default":"all","description":"Filter by market status","enum":["active","closed","all"],"type":"string"}},"required":["q"],"additionalProperties":false}}],"scan":{"score":85,"grade":"A","scanned_at":"2026-09-18T04:54:02.596Z","report":{"scannerVersion":"0.1.2","scannedAt":"2026-09-18T04:54:02.527Z","components":{"code":{"score":25,"max":25,"notes":["47 source files scanned"]},"reliability":{"score":20,"max":20,"notes":["remote reachable in 1932ms"]},"poisoning":{"score":15,"max":15,"notes":["33 tool descriptions checked"]},"auth":{"score":3,"max":15,"notes":["open endpoint exposes 1 write-action tools with no auth"]},"maintenance":{"score":15,"max":15,"notes":["last push 1 days ago"]},"identity":{"score":7,"max":10,"notes":["registry namespace matches repository owner"]}},"findings":[{"id":"auth.open-write","severity":"high","component":"auth","title":"Write-action tools reachable without authentication"}],"inputs":{"probes":[{"url":"https://api.0xinsider.com/api/v1/mcp","reachable":true,"authRequired":false,"latencyMs":1932,"serverInfo":{"name":"0xinsider","version":"0.1.0"}}],"packages":[{"registryType":"npm","identifier":"@0xinsider/mcp","version":"1.2.3","found":true,"license":"MIT","hasInstallScripts":false,"dependencyCount":2,"publishedAt":"2026-09-17T04:53:08.556Z","repositoryUrl":"git+https://github.com/0xinsider/0xinsider.git","weeklyDownloads":223}],"repo":{"found":true,"owner":"0xinsider","repo":"agent-plugin","archived":false,"pushedAt":"2026-09-17T03:51:16Z","stars":0,"openIssues":0,"ownerType":"Organization","ownerCreatedAt":"2026-03-21T00:02:29Z","license":"MIT"}}}},"grade_history":[],"reviews":[]}