# 0xinsider (remote · api.0xinsider.com)

Read-only Polymarket sports and esports data: wallet grades on settled P&L, large trades, markets.

- Trust score: 78/100 (medium)
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-09-20

## Components

- remote · `api.0xinsider.com`: 78/100 (this document), [markdown](https://verifymcp.io/servers/0xinsider-mcp/api-v1-mcp.md), [page](https://verifymcp.io/servers/0xinsider-mcp/api-v1-mcp)
- npm · `@0xinsider/mcp`: 38/100, [markdown](https://verifymcp.io/servers/0xinsider-mcp/0xinsider-mcp.md), [page](https://verifymcp.io/servers/0xinsider-mcp/0xinsider-mcp)

## Channel facts

- Endpoint: `https://api.0xinsider.com/api/v1/mcp`
- Transports: `streamable-http`
- Auth: `none`
- Version: `1.3.1`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-09-20.

- **Endpoint Security**: 92/100
  - The endpoint's TLS certificate is valid, in date, and uses a strong key.
  - Authorisation is enforced on tool calls, advertised via RFC 9728 protected-resource metadata. Discovery is public, which costs nothing: no tool can be invoked without a token.
  - HTTPS is enforced; there's no plaintext access path.
  - HSTS check failed: the Strict-Transport-Security header is absent.
  - DNSSEC check failed: this domain isn't protected by DNSSEC.
  - The authorisation server supports Client ID Metadata Documents, the current MCP client-registration mechanism.
- **Transport & Reachability**: 100/100
  - Verified streamable-http transport via a live MCP handshake.
- **Schema Quality & AI Usability**: 68/100
  - AI-judged instruction clarity (excellent).
  - Context-footprint check failed: tool/resource definitions use about 6660 tokens (~195/item across 34 items; 34 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 10/100
  - Stability observed for 3 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 99/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 97% of tool parameters carry a description.
- **Tool Safety**: 100/100
  - No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.
  - We read all 34 captured tool definition(s), and no name or description among them implies an irreversible operation.
  - An AI judge read all 35 captured unit(s) of tool text and found none that tries to manipulate the model reading it.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

## Install

### How do I install the 0xinsider MCP server?

0xinsider is a hosted endpoint at https://api.0xinsider.com/api/v1/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

### Claude

```bash
claude mcp add --transport http 0xinsider-mcp 'https://api.0xinsider.com/api/v1/mcp'
```

### Cursor

```json
{
  "mcpServers": {
    "0xinsider-mcp": {
      "url": "https://api.0xinsider.com/api/v1/mcp"
    }
  }
}
```

### VS Code

```json
{
  "servers": {
    "0xinsider-mcp": {
      "type": "http",
      "url": "https://api.0xinsider.com/api/v1/mcp"
    }
  }
}
```

### Codex

```toml
[mcp_servers.0xinsider-mcp]
url = "https://api.0xinsider.com/api/v1/mcp"
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "0xinsider-mcp": {
      "type": "remote",
      "url": "https://api.0xinsider.com/api/v1/mcp",
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add 0xinsider-mcp --url 'https://api.0xinsider.com/api/v1/mcp' --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  0xinsider-mcp:
    url: "https://api.0xinsider.com/api/v1/mcp"
```

### Netclaw

```json
{
  "McpServers": {
    "0xinsider-mcp": {
      "Transport": "http",
      "Url": "https://api.0xinsider.com/api/v1/mcp"
    }
  }
}
```

### Vellum

```bash
assistant mcp add 0xinsider-mcp -t streamable-http -u 'https://api.0xinsider.com/api/v1/mcp'
```

### Other

```json
{
  "mcpServers": {
    "0xinsider-mcp": {
      "type": "http",
      "url": "https://api.0xinsider.com/api/v1/mcp"
    }
  }
}
```

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-09-19 (score 78, 0)

- [functional] New tool “get_sports_edge_signals”

### 2026-09-18 (score 78, +1)

- [functional improvement] Stability: unverified → 0.03

### 2026-09-17 (score 77)

First indexed and scored.

## MCP tools (34)

### `get_leaderboard` (~175 tokens)

Get Trader Leaderboard

Get the top-ranked prediction market traders (grades S, A, B only). Sorted by composite score descending. Supports cursor pagination and optional filters.

Args:
  \- limit (number, 1-100, default 20): Max results per page
  \- cursor (string, optional): Pagination cursor from previous response
  \- category (string, optional): Filter by category slug
  \- strategy (string, optional): Filter by strategy type

Returns: Ranked list of traders with grade, score, P&L, volume, win rate, and strategy.

Input parameters:

- `category` (string): Filter by category slug
- `cursor` (string): Pagination cursor from previous response
- `limit` (integer): Max results (1-100, default 20)
- `strategy` (string): Filter by strategy type

### `get_trader` (~269 tokens)

Get Trader Intelligence

Look up a prediction market trader by wallet address or username. Returns grade (S through F), P&L breakdown, win rate, and volume.

Optional expand fields for heavier data:
\- strategy: Trading strategy classification
\- categories: Per-category performance breakdown
\- 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
\- trust: Per-field provenance (source, freshness, reconciliation, completeness) for grade, P&L, and stats

Unknown addresses or usernames return sync_status "unknown" (not an error).

Args:
  \- address (string, required): Ethereum wallet address (0x...) or trader username
  \- expand (string[], optional): Heavy fields to include: "strategy", "categories", "quant_metrics", "trust"

Returns: Trader profile with grade, P&L, stats, and optional expanded fields.

Input parameters:

- `address` (string, required): Ethereum wallet address (0x...) or trader username
- `expand` (array): Optional heavy fields to include

### `batch_get_traders` (~158 tokens)

Batch Trader Intelligence

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.

Args:
  \- traders (string[], required): Wallet addresses or known usernames
  \- 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)

Returns: Ordered batch trader results with per-item success or error details.

Input parameters:

- `expand` (array): Shared heavy fields to include for every trader item
- `traders` (array, required): Wallet addresses or known usernames

### `get_whale_trades` (~309 tokens)

List Whale Trades

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.

Args:
  \- limit (number, 1-100, default 20): Max results per page
  \- cursor (string, optional): Pagination cursor from previous response
  \- min_size (number, default 5000): Minimum trade size in USD
  \- category (string, optional): Filter by market category (case-insensitive)
  \- min_grade (string, optional): Minimum trader grade (S, A, B, C, D, F)
  \- suspicious_only (boolean, optional): Keep only persisted suspicion_score >= 60; false preserves the current result set

Returns: 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.

Input parameters:

- `category` (string): Filter by market category (case-insensitive)
- `cursor` (string): Pagination cursor from previous response
- `limit` (integer): Max results (1-100, default 20)
- `min_grade` (string): Minimum trader grade
- `min_size` (number): Minimum trade size in USD (default 5000)
- `suspicious_only` (boolean): Keep only rows with persisted suspicion_score >= 60

### `get_whale_trade` (~128 tokens)

Get Whale Trade

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.

Args:
  \- id (string, required): Whale trade ID such as wt_123 or 123

Returns: 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.

Input parameters:

- `id` (string, required): Entity ID returned by the matching list endpoint

### `get_whale_trades_history` (~387 tokens)

Replay Historical Whale Trades

Replay historical whale trades from local whale_alerts rows. Supports cursor pagination plus condition, trader, category, grade, platform, suspicion, and RFC3339 from/to filters.

Args:
  \- limit (number, 1-100, default 20)
  \- cursor (string, optional): Pagination cursor with wth_ prefix
  \- min_size (number, optional): Minimum trade size in USD
  \- condition_id (string, optional): Exact raw provider condition_id
  \- trader (string, optional): Wallet, alias, or username
  \- category (string, optional)
  \- min_grade (string, optional): S, A, B, C, D, or F
  \- suspicious_only (boolean, optional): Keep only persisted suspicion_score >= 60
  \- platform (string, optional): polymarket or all
  \- from/to (string, optional): RFC3339 traded_at bounds

Returns: 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.

Input parameters:

- `category` (string): Filter by market category
- `condition_id` (string): Exact raw provider condition_id
- `cursor` (string): Pagination cursor from previous response
- `from` (string): Inclusive traded_at lower bound
- `limit` (integer): Max results (1-100, default 20)
- `min_grade` (string): Minimum trader grade
- `min_size` (number): Minimum trade size in USD
- `platform` (string): Filter by provider platform
- `suspicious_only` (boolean): Keep only rows with persisted suspicion_score >= 60
- `to` (string): Exclusive traded_at upper bound
- `trader` (string): Trader wallet, alias, or username

### `get_sports_edge_signals` (~180 tokens)

Get Ranked Sports Edge Signals

Ranked pre-game sports and esports signals for a Pro API key. Eligibility uses recent graded whale flow; ranking uses current graded holder concentration. Returns provider market identity, backed outcome and token ID, kickoff, grade distribution, conviction, snapshot time, and availability. A signal is analytics, not an order instruction. Cached snapshots can include kickoffs that have since passed; inspect timestamps before acting. Supports category, limit (1-100, default 20), cursor, horizon_hours (1-48, default 12), and min_grade (S, A, B; default B).

Input parameters:

- `category` (string): Sport category; omitted means all sports
- `cursor` (string): Opaque cursor pinned to a signal snapshot
- `horizon_hours` (integer)
- `limit` (integer)
- `min_grade` (string)

### `get_market_intel` (~163 tokens)

Get Market Intelligence

Smart money flow analysis for a specific prediction market. Shows net flow direction, whale trade count, buy/sell volumes, and top graded trader positions.

Use search_markets first to find the condition_id for a market.

Args:
  \- condition_id (string, required): Market condition ID (from search_markets results)
  \- timeframe (string, optional): Lookback window: "1h", "4h", "24h", "7d" (default "24h")

Returns: Market info, smart money flow (net_flow_usd, direction YES/NO, volumes), and top 5 trader positions.

Input parameters:

- `condition_id` (string, required): Market condition ID
- `timeframe` (string): Lookback window (default 24h)

### `batch_get_market_intel` (~145 tokens)

Batch Market Intelligence

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.

Args:
  \- condition_ids (string[], required): Raw provider condition IDs
  \- timeframe (string, optional): "1h", "4h", "24h", or "7d" (default "24h")

Returns: Ordered batch market-intelligence results with per-item success or error details.

Input parameters:

- `condition_ids` (array, required): Raw provider condition_id values
- `timeframe` (string): Shared lookback window

### `get_smart_money_flows` (~358 tokens)

List Smart-Money Flows

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.

Args:
  \- timeframe (string, optional): Lookback window: "1h", "4h", "24h", "7d" (default "24h")
  \- limit (number, 1-100, default 20): Max results per page
  \- cursor (string, optional): Pagination cursor with smf_ prefix
  \- category (string, optional): Filter by provider-backed market category
  \- platform (string, optional): "polymarket" or "all" (default "all")
  \- min_grade (string, optional): Minimum trader grade S, A, B, C, D, or F (default "B" = S/A/B)
  \- direction (string, optional): Filter by net flow direction: "YES" or "NO"

Returns: 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.

Input parameters:

- `category` (string): Filter by provider-backed market category
- `cursor` (string): Pagination cursor with smf_ prefix
- `direction` (string): Filter by net flow direction
- `limit` (integer): Max results (1-100, default 20)
- `min_grade` (string): Minimum trader grade (default B = S/A/B)
- `platform` (string): Platform filter (default all)
- `timeframe` (string): Lookback window (default 24h)

### `get_sharp_money_flows` (~358 tokens)

List Sharp-Money Flows

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.

Args:
  \- timeframe (string, optional): Lookback window: "1h", "4h", "24h", "7d" (default "24h")
  \- limit (number, 1-100, default 20): Max results per page
  \- cursor (string, optional): Pagination cursor with smf_ prefix
  \- category (string, optional): Filter by provider-backed market category
  \- platform (string, optional): "polymarket" or "all" (default "all")
  \- min_grade (string, optional): Minimum trader grade S, A, B, C, D, or F (default "B" = S/A/B)
  \- direction (string, optional): Filter by net flow direction: "YES" or "NO"

Returns: 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.

Input parameters:

- `category` (string): Filter by provider-backed market category
- `cursor` (string): Pagination cursor with smf_ prefix
- `direction` (string): Filter by net flow direction
- `limit` (integer): Max results (1-100, default 20)
- `min_grade` (string): Minimum trader grade (default B = S/A/B)
- `platform` (string): Platform filter (default all)
- `timeframe` (string): Lookback window (default 24h)

### `get_market_snapshot` (~85 tokens)

Get Market Snapshot

Provider-first live market-card snapshot for one raw provider condition_id. Forwards IDs to the V1 handler without mkt_ rewriting.

Args:
  \- condition_id (string, required): Raw provider condition_id returned by search or explore

Returns: Market identity, outcomes, liquidity, sports context, and freshness states.

Input parameters:

- `condition_id` (string, required): Raw provider condition_id

### `get_insider_radar` (~246 tokens)

Get Insider Radar Flags

Stored trades whose recorded suspicion score meets the live flag threshold. Cursor-paginated by suspicion score (highest first).

Each flag includes:
\- suspicion_score (60-100)
\- severity (currently flag)
\- Sub-scores: size and fresh_wallet when recorded; timing and edge are null
\- Evidence JSON with the scorer's stored signals

Args:
  \- limit (number, 1-100, default 20): Max results per page
  \- cursor (string, optional): Pagination cursor from previous response
  \- min_suspicion (number, 0-100, default 0): Minimum score; the live floor of 60 also applies
  \- severity (string, optional): "flag" selects live rows; "watch" returns none because no live watch policy exists

Returns: List of radar flags with trader, market, scores, and evidence.

Input parameters:

- `cursor` (string): Pagination cursor from previous response
- `limit` (integer): Max results (1-100, default 20)
- `min_suspicion` (number): Minimum suspicion score (0-100)
- `severity` (string): Filter by severity level

### `get_insider_radar_flag` (~93 tokens)

Get Insider Radar Flag

Read one insider-radar flag by ID. Accepts the rf_ ID returned by list responses or the raw numeric whale_alerts.id.

Args:
  \- id (string, required): Radar flag ID such as rf_123 or 123

Returns: One radar flag with trader, market, suspicion scores, and evidence.

Input parameters:

- `id` (string, required): Entity ID returned by the matching list endpoint

### `get_positions` (~250 tokens)

List Current Positions

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.

Args:
  \- limit (number, 1-100, default 20): Max results per page
  \- cursor (string, optional): Pagination cursor from previous response
  \- min_size (number, default 100): Minimum current value in USD
  \- category (string, optional): Filter by provider-backed market category
  \- min_grade (string, optional): Minimum trader grade (S, A, B, C, D, F)
  \- side (string, optional): Filter by binary side: "yes" or "no"

Returns: List of current positions with pagination metadata.

Input parameters:

- `category` (string): Filter by provider-backed market category
- `cursor` (string): Pagination cursor from previous response
- `limit` (integer): Max results (1-100, default 20)
- `min_grade` (string): Minimum trader grade
- `min_size` (number): Minimum current position value in USD
- `side` (string): Filter by binary outcome side

### `get_position_timeline` (~276 tokens)

Get Position Timeline

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.

Args:
  \- condition_id (string, required): Market condition ID
  \- address (string, optional): Any supported REST trader identity, including a bare integer traders.id
  \- trader_id (number, optional): Convenience alias for a bare integer traders.id; provide exactly one of address or trader_id
  \- limit (number, 1-100, default 20): Max events per page
  \- cursor (string, optional): Pagination cursor from previous response

Returns: List of position timeline events with pagination metadata.

Input parameters:

- `address` (string): Trader identity: 0x wallet, username, trd_-prefixed traders.id, or bare integer traders.id
- `condition_id` (string, required): Market condition ID
- `cursor` (string): Pagination cursor from previous response
- `limit` (integer): Max events (1-100, default 20)
- `trader_id` (integer): Internal traders.id alias

### `get_position_timeline_by_id` (~165 tokens)

Get Position Timeline By Trader ID

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.

Args:
  \- condition_id (string, required): Market condition ID
  \- trader_id (number, required): Internal traders.id alias
  \- limit (number, 1-100, default 20)
  \- cursor (string, optional)

Returns: List of position timeline events with pagination metadata.

Input parameters:

- `condition_id` (string, required): Market condition ID
- `cursor` (string): Pagination cursor from previous response
- `limit` (integer): Max events (1-100, default 20)
- `trader_id` (integer, required): Internal traders.id alias

### `search_markets` (~192 tokens)

Search Markets

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.

Args:
  \- q (string, required): Search query
  \- limit (number, 1-100, default 20): Max results
  \- status (string, optional): Filter by status: "active", "closed", or "all" (default "all")
  \- category (string, optional): Filter by category

Returns: List of matching markets with id, condition_id, title, slug, category, platform, status.

Input parameters:

- `category` (string): Filter by category
- `limit` (integer): Max results (1-100, default 20)
- `q` (string, required): Search query (1-512 characters before whitespace trimming, non-empty after trimming)
- `status` (string): Filter by market status

### `search_content` (~141 tokens)

Search Editorial Content

Search 0xinsider's editorial content by keyword. Returns matching learn articles, glossary entries, comparisons, research, and trading strategies with their canonical URLs.

Args:
  \- q (string, required): Search query, 1-256 characters before whitespace trimming
  \- limit (number, 1-50, default 10): Max results

Returns: List of matching content items with content_id, kind, slug, title, excerpt, and url.

Input parameters:

- `limit` (integer): Max results (1-50, default 10)
- `q` (string, required): Search query (1-256 characters before whitespace trimming, non-empty after trimming)

### `explore_markets` (~321 tokens)

Explore Markets

Browse whale-active titled markets for discovery surfaces. Returns grouped event clusters or standalone markets plus live facets. Cursor-paginated over visible discovery entries.

Args:
  \- limit (number, 1-48, default 24): Max discovery entries per page
  \- cursor (string, optional): Pagination cursor from previous response
  \- category (string, optional): Filter by provider-native market category
  \- status (string, optional): Filter by status: "active", "closed", or "all"
  \- platform (string, optional): Explore is Polymarket-only; accepted for backward-compatibility, does not change the result set
  \- sort (string, optional): Sort by "trending", "hot", "expiring", "whales", "volume", or "newest"
  \- q (string, optional): Keyword search against market titles, up to 64 characters before whitespace trimming

Returns: Market discovery entries, facets, and pagination metadata.

Input parameters:

- `category` (string): Filter by provider-native market category
- `cursor` (string): Pagination cursor from previous response
- `limit` (integer): Max discovery entries (1-48, default 24)
- `platform` (string): Explore is Polymarket-only; accepted for backward-compatibility and does not change the result set
- `q` (string): Keyword search against market titles, up to 64 characters before whitespace trimming
- `sort` (string): Discovery sort order
- `status` (string): Filter by market status

### `get_event_replay_since` (~102 tokens)

Replay Public Events

Replay durable public whale-trade intelligence events strictly after an opaque cursor backed by whale_alerts.id.

Args:
  \- cursor (string, optional): Opaque event replay cursor
  \- limit (number, 1-100, default 50)

Returns: Event replay window with retention and completeness metadata.

Input parameters:

- `cursor` (string): Opaque event replay cursor
- `limit` (integer): Max events (1-100, default 50)

### `list_webhooks` (~52 tokens)

List Webhook Endpoints

Read-only list of webhook endpoints owned by the authenticated API key user. This does not create, update, verify, rotate, or delete webhook endpoints.

Args: none

Returns: List of webhook endpoint configuration records.

### `get_webhook` (~74 tokens)

Get Webhook Endpoint

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.

Args:
  \- id (number, required): Webhook endpoint id

Returns: Webhook endpoint configuration record.

Input parameters:

- `id` (integer, required): Webhook endpoint id

### `get_daily_report_snapshot` (~62 tokens)

Get Daily Report Snapshot

Read one dated daily whale-activity report snapshot.

Args:
  \- date (string, required): UTC report date in YYYY-MM-DD format

Returns: Report snapshot metadata and entries.

Input parameters:

- `date` (string, required): UTC report date in YYYY-MM-DD format

### `get_weekly_report_snapshot` (~122 tokens)

Get Weekly Report Snapshot

Read one weekly whale-activity report snapshot. Pass either from/to UTC dates or an ISO YYYY-WW week token.

Args:
  \- week (string, optional): YYYY-WW selector
  \- from/to (string, optional): UTC dates in YYYY-MM-DD format

Returns: Report snapshot metadata and entries.

Input parameters:

- `from` (string): UTC source-range start in YYYY-MM-DD format
- `to` (string): UTC source-range end in YYYY-MM-DD format
- `week` (string): ISO week selector in YYYY-WW format

### `get_monthly_report_snapshot` (~61 tokens)

Get Monthly Report Snapshot

Read one UTC monthly whale-activity report snapshot.

Args:
  \- month (string, required): UTC report month in YYYY-MM format

Returns: Report snapshot metadata and entries.

Input parameters:

- `month` (string, required): UTC report month in YYYY-MM format

### `get_report` (~176 tokens)

Get Report Snapshot

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.

Args:
  \- granularity (string, required): "daily", "weekly", or "monthly"
  \- 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.

Returns: Report snapshot metadata and entries (source_range, snapshot.status, completeness, reconciliation, report).

Input parameters:

- `granularity` (string, required): Report granularity selector
- `period` (string, required): Period token: daily YYYY-MM-DD, weekly YYYY-WW or a from,to YYYY-MM-DD pair, monthly YYYY-MM

### `get_trader_export_snapshot` (~126 tokens)

Get Trader Export Snapshot

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.

Args:
  \- 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

Returns: Trader export snapshot metadata.

Input parameters:

- `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

### `get_platforms` (~102 tokens)

Get Platform Capability Matrix

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.

Args: none

Returns: Static backend-owned platform capability matrix keyed by platform.

### `get_large_positions` (~339 tokens)

List Large Positions

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.

Polymarket-only: the scanner filters platform = 'polymarket', so an unknown condition_id matches nothing and returns an empty list (never fabricated rows).

Args:
  \- limit (number, 1-100, default 20): Max results per page
  \- cursor (string, optional): Opaque pagination cursor from previous response
  \- min_size (number, optional): Minimum position value in USD
  \- category (string, optional): Filter by provider-backed market category
  \- min_grade (string, optional): Minimum trader grade (S, A, B, C, D, F)
  \- condition_id (string, optional): Scope to one market (raw provider id or mkt_-prefixed)

Returns: List of large positions with trader, market, value, P&L, and pagination metadata.

Input parameters:

- `category` (string): Filter by provider-backed market category
- `condition_id` (string): Scope to one market (raw provider condition_id or mkt_-prefixed). Polymarket-only; an unknown id returns an empty list.
- `cursor` (string): Opaque pagination cursor from previous response
- `limit` (integer): Max results (1-100, default 20)
- `min_grade` (string): Minimum trader grade
- `min_size` (number): Minimum position value in USD

### `get_trending_wallets` (~254 tokens)

List Trending Wallets

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.

A cold read model returns a 503 retry-after (warming), never a 500 or fabricated ranking.

Args:
  \- limit (number, 1-50, default 20): Max results per page
  \- cursor (string, optional): Opaque pagination cursor from previous response
  \- window (string, optional): Trailing window: "7d" (default) or "30d"

Returns: Ranked trending wallets with window stats and pagination metadata.

Input parameters:

- `cursor` (string): Opaque pagination cursor from previous response
- `limit` (integer): Max results (1-50, default 20; the provider board caps the ranked set at 50)
- `window` (string): Trailing window (default 7d)

### `get_trader_pnl` (~182 tokens)

Get Trader P&L Time Series

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.

Reads 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.

Args:
  \- address (string, required): Wallet address (0x...), username, or trd_-prefixed trader id

Returns: Structured trader P&L object (entries, stats, monthly, year_totals, drawdown).

Input parameters:

- `address` (string, required): Wallet address (0x...), username, or trd_-prefixed trader id

### `get_pick_of_the_day` (~279 tokens)

Get Pick of the Day

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.

Before 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.

Args: none

Returns: The published pick set for the current product day (America/New_York), or a pick_not_released error with retry_at.

### `get_pick_of_the_day_archive` (~176 tokens)

Get Pick of the Day Archive

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.

Args: none

Returns: picks[] newest first with outcome and CLV fields, plus the aggregate record (hit_rate, decided, wins, losses, voids, profit, roi, total risked).

## Diagnostics

Captured diagnostic sections: TLS, DNSSEC, Authorisation, Transports. The full working is on the page: https://verifymcp.io/servers/0xinsider-mcp/api-v1-mcp#diagnostics

## Score history

- 2026-09-20: 78
- 2026-09-19: 78
- 2026-09-18: 78
- 2026-09-17: 77

## Common questions

### What is the 0xinsider MCP server?

0xinsider is an MCP server listed in the public MCP registry as io.github.0xinsider/mcp. Read-only Polymarket sports and esports data: wallet grades on settled P&L, large trades, markets. This page covers its hosted endpoint (https://api.0xinsider.com/api/v1/mcp).

### Is the 0xinsider MCP server safe to use?

0xinsider scores 78 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

### What tools does the 0xinsider MCP server expose?

0xinsider exposes 34 tools: get_leaderboard, get_trader, batch_get_traders, get_whale_trades, get_whale_trade, and 29 more. Their descriptions and schemas cost roughly 6,506 tokens of context every time the server is loaded.

### Does the 0xinsider MCP server require authentication?

Yes. 0xinsider asked us for credentials when we connected, so you will need to authorise it in your MCP client before it can do anything.

### Is the 0xinsider MCP server still maintained?

0xinsider is still listed as active in the MCP registry. We last reached this channel on 20 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

## Links

- Remote endpoint: https://api.0xinsider.com/api/v1/mcp
- Repository: https://github.com/0xinsider/agent-plugin
- Website: https://0xinsider.com/mcp
- Changelog RSS feed: https://verifymcp.io/servers/0xinsider-mcp/api-v1-mcp.xml
- Changelog JSON feed: https://verifymcp.io/servers/0xinsider-mcp/api-v1-mcp.json
- HTML version of this page: https://verifymcp.io/servers/0xinsider-mcp/api-v1-mcp
