# io.github.PaulieB14/graph-polymarket-mcp (npm · graph-polymarket-mcp)

Query Polymarket prediction markets via The Graph — 20 tools, 8 subgraphs

- Trust score: 71/100 (medium)
- Change this week: +18
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-08-03

## Components

- npm · `graph-polymarket-mcp`: 71/100 (this document), [markdown](https://verifymcp.io/servers/paulieb14-graph-polymarket-mcp/graph-polymarket-mcp.md), [page](https://verifymcp.io/servers/paulieb14-graph-polymarket-mcp/graph-polymarket-mcp)

## Channel facts

- Registry: `npm`
- Package: `graph-polymarket-mcp`
- Version: `1.4.0`
- Transport: `stdio`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, 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-08-03.

- **Supply Chain Security**: 87/100
  - No malware found by supply-chain analysis.
  - Only part of the dependency tree could be resolved (95 of 99), so this covers what we could see, not the whole tree.
  - No install/post-install scripts declared.
  - Only part of the dependency tree could be resolved (95 of 99), so this covers what we could see, not the whole tree.
- **Provenance & Transparency**: 45/100
  - Source repository is publicly reachable at the declared URL.
  - Provenance check failed: no build-provenance attestation is published.
  - Clear OSI-approved license (MIT).
  - Actively maintained (last published 127 days ago).
  - Disclosure check failed: no security disclosure policy was found in the source repository.
- **Schema Quality & AI Usability**: 82/100
  - 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).
  - AI-judged instruction clarity (good).
  - Tool/resource definitions use about 1298 tokens (~64/item across 20 items; 20 tools + 0 resources), lean.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 27/100
  - Stability observed for 8 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 100% of tool parameters carry a description.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

## Install

### Claude

```bash
claude mcp add paulieb14-graph-polymarket-mcp -- npx -y graph-polymarket-mcp
```

### Codex

```bash
codex mcp add paulieb14-graph-polymarket-mcp -- npx -y graph-polymarket-mcp
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "paulieb14-graph-polymarket-mcp": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "graph-polymarket-mcp"
      ],
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add paulieb14-graph-polymarket-mcp --command npx --arg -y --arg graph-polymarket-mcp
```

### Hermes

```yaml
mcp_servers:
  paulieb14-graph-polymarket-mcp:
    command: "npx"
    args: ["-y", "graph-polymarket-mcp"]
```

### Other

```json
{
  "mcpServers": {
    "paulieb14-graph-polymarket-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "graph-polymarket-mcp"
      ]
    }
  }
}
```

## 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-08-03 (score 71, +1)

No change was recorded against any check on this day. Stability & Change Management went from 23 to 27. That category is still filling its 30-day observation window: 7 days of observed history at the previous scan, 8 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-08-02 (score 70, +44)

- [security regression] Provenance: unverified → fail
- [security improvement] Install scripts: unverified → pass
- [security improvement] Known CVEs: unverified → partial
- [security improvement] Malware scan: unverified → pass
- [functional regression] Schema quality: 100 → unverified
- [functional regression] Tool coverage: 100 → unverified
- [functional regression] Security disclosure: fail → unverified
- [functional improvement] License: unverified → pass
- [functional improvement] Dependency health: unverified → partial
- [functional improvement] Maintenance: unverified → pass
- [functional improvement] MCP protocol: unverified → pass
- [functional improvement] Stability: unverified → 0.23
- [functional improvement] Schema quality: unverified → good
- [functional] Licence: MIT

### 2026-08-01 (score 26, −15)

- [security regression] Malware scan: pass → unverified

### 2026-07-31 (score 41, +17)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-30 (score 24, −29)

- [functional regression] Schema quality: 100 → unverified
- [functional regression] Tool coverage: 100 → unverified

### 2026-07-27 (score 53)

First indexed and scored.

## MCP tools (20)

### `list_subgraphs` (~23 tokens)

List all available Polymarket subgraphs with descriptions and key entities

### `get_subgraph_schema` (~57 tokens)

Get the full GraphQL schema (introspection) for a Polymarket subgraph

Input parameters:

- `subgraph` (string, required): Subgraph identifier: main, beefy_pnl, slimmed_pnl, activity, or orderbook

### `query_subgraph` (~78 tokens)

Execute a custom GraphQL query against a Polymarket subgraph

Input parameters:

- `query` (string, required): GraphQL query string
- `subgraph` (string, required): Subgraph identifier: main, beefy_pnl, slimmed_pnl, activity, or orderbook
- `variables` (object): Optional GraphQL variables as key-value pairs

### `get_market_data` (~65 tokens)

Get Polymarket market/condition data including outcomes and volumes from the Main subgraph

Input parameters:

- `first` (number): Number of markets to return (1-100)
- `orderBy` (string): Field to order by
- `orderDirection` (string): Sort direction

### `get_account_pnl` (~45 tokens)

Get a trader's P&L and performance metrics from the Beefy P&L subgraph

Input parameters:

- `account` (string, required): Ethereum address of the trader (lowercase)

### `get_user_positions` (~48 tokens)

Get a user's current positions from the Slimmed P&L subgraph. Falls back gracefully if indexers are behind.

Input parameters:

- `account` (string, required): Ethereum address of the user (lowercase)

### `get_recent_activity` (~50 tokens)

Get recent splits, merges, and redemptions from the Activity subgraph

Input parameters:

- `account` (string): Optional: filter by Ethereum address
- `first` (number): Number of events to return

### `get_orderbook_trades` (~62 tokens)

Get recent order fills from the Orderbook subgraph

Input parameters:

- `first` (number): Number of trades to return
- `maker` (string): Optional: filter by maker address
- `taker` (string): Optional: filter by taker address

### `get_global_stats` (~41 tokens)

Get aggregate Polymarket platform statistics. Combines market counts from the Main subgraph with accurate volume/fee/trade data from the Orderbook subgraph.

### `get_daily_stats` (~62 tokens)

Get daily platform statistics from the Beefy P&L subgraph: volume, fees, trader counts, and market activity per day. Use this for trend analysis and historical performance.

Input parameters:

- `days` (number): Number of recent days to return (1-90)

### `get_top_traders` (~85 tokens)

Get the top Polymarket traders ranked by realized P&L, win rate, or volume from the Beefy P&L subgraph.

Input parameters:

- `first` (number): Number of traders to return (1-100)
- `minTrades` (number): Minimum number of trades to filter out inactive accounts
- `orderBy` (string): Metric to rank traders by

### `get_market_positions` (~91 tokens)

Get the top positions for a specific market token from the Beefy P&L subgraph. Shows who holds the largest positions and their P&L.

Input parameters:

- `first` (number): Number of positions to return
- `orderBy` (string): Field to sort by
- `tokenId` (string, required): The outcome token ID (large integer string from orderbook takerAssetId/makerAssetId)

### `get_market_open_interest` (~90 tokens)

Get the top Polymarket markets ranked by open interest (USDC locked in outstanding positions). This data is unique to the Open Interest subgraph — no other Polymarket subgraph tracks OI.

Input parameters:

- `first` (number): Number of markets to return (1-100)
- `orderBy` (string): Field to rank markets by
- `orderDirection` (string): Sort direction

### `get_oi_history` (~101 tokens)

Get hourly open interest snapshots for a specific Polymarket market. Use this to chart OI trends over time. The conditionId can be obtained from get_market_open_interest or the main subgraph.

Input parameters:

- `conditionId` (string, required): The conditionId (hex string) of the market
- `first` (number): Number of hourly snapshots to return (default 168 = 1 week)
- `orderDirection` (string): Sort direction by timestamp

### `get_global_open_interest` (~33 tokens)

Get the total open interest across all Polymarket markets — the aggregate USDC locked in outstanding positions platform-wide.

### `get_market_resolution` (~95 tokens)

Get the UMA oracle resolution status for Polymarket markets. Shows whether a market is initialized, proposed, disputed, or resolved, plus proposed/final prices and dispute history.

Input parameters:

- `first` (number): Number of markets to return (1-100)
- `orderBy` (string): Field to sort by
- `orderDirection` (string): Sort direction
- `status` (string): Optional: filter by resolution status

### `get_disputed_markets` (~57 tokens)

Get Polymarket markets that were disputed during the UMA oracle resolution process. Disputes happen when someone challenges a proposed outcome — these are high-signal events.

Input parameters:

- `first` (number): Number of disputed markets to return

### `get_market_revisions` (~62 tokens)

Get moderator revisions/updates for Polymarket markets. Shows when and how moderators intervened in market resolution.

Input parameters:

- `first` (number): Number of revisions to return
- `questionId` (string): Optional: filter revisions for a specific market questionId

### `get_trader_profile` (~72 tokens)

Get a trader's on-chain profile from the Traders subgraph: when they first appeared, their recent CTF events (splits, merges, transfers), and USDC flows.

Input parameters:

- `address` (string, required): Ethereum address of the trader
- `eventLimit` (number): Number of recent events to return

### `get_trader_usdc_flows` (~81 tokens)

Get USDC deposit/withdrawal history for a trader. Shows inbound and outbound USDC transfers, useful for tracking when traders fund or withdraw from Polymarket.

Input parameters:

- `address` (string, required): Ethereum address of the trader
- `direction` (string): Filter by transfer direction
- `first` (number): Number of transfers to return

## Diagnostics

Captured diagnostic sections: Provenance, Dependencies. The full working is on the page: https://verifymcp.io/servers/paulieb14-graph-polymarket-mcp/graph-polymarket-mcp#diagnostics

## Score history

- 2026-08-03: 71
- 2026-08-02: 70
- 2026-08-01: 26
- 2026-07-31: 41
- 2026-07-30: 24
- 2026-07-28: 53
- 2026-07-27: 53

## Links

- npm package: https://www.npmjs.com/package/graph-polymarket-mcp
- Socket report: https://socket.dev/npm/package/graph-polymarket-mcp
- Repository: https://github.com/PaulieB14/graph-polymarket-mcp
- Changelog RSS feed: https://verifymcp.io/servers/paulieb14-graph-polymarket-mcp/graph-polymarket-mcp/changelog.xml
- Changelog JSON feed: https://verifymcp.io/servers/paulieb14-graph-polymarket-mcp/graph-polymarket-mcp/changelog.json
- HTML version of this page: https://verifymcp.io/servers/paulieb14-graph-polymarket-mcp/graph-polymarket-mcp
