Back to Browse

Graph Polymarket MCP Server

Developer ToolsModerate6.8MCP RegistryLocal
Free

Server data from the Official MCP Registry

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

About

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

Security Report

6.8
Moderate6.8Moderate Risk

Valid MCP server (2 strong, 3 medium validity signals). 4 known CVEs in dependencies (0 critical, 3 high severity) Package registry verified. Imported from the Official MCP Registry.

3 files analyzed · 5 issues found

Security scores are indicators to help you make informed decisions, not guarantees. Always review permissions before connecting any MCP server.

What You'll Need

Set these up before or after installing:

API key for The Graph network (optional, for higher rate limits)Required

Environment variable: GRAPH_API_KEY

How to Install

Add this to your MCP configuration file:

{
  "mcpServers": {
    "io-github-paulieb14-graph-polymarket-mcp": {
      "env": {
        "GRAPH_API_KEY": "your-graph-api-key-here"
      },
      "args": [
        "-y",
        "graph-polymarket-mcp"
      ],
      "command": "npx"
    }
  }
}

Documentation

View on GitHub

From the project's GitHub README.

graph-polymarket-mcp

npm version MCP Registry smithery badge

MCP server for querying Polymarket prediction market data via The Graph subgraphs and Polymarket REST APIs.

Exposes 31 tools that AI agents (Claude, Cursor, etc.) can use to search markets, get real-time CLOB prices and order books, query on-chain data, trader P&L, positions, activity, open interest, market resolution status, and trader profiles.

v2.0.0 — adds 10 new tools powered by Polymarket's Gamma and CLOB APIs (inspired by polymarket-cli): market search, event browsing, live prices, spreads, order books, price history, and more. No API key needed for these tools — they hit Polymarket's public REST endpoints directly.

Published to the MCP Registry as io.github.PaulieB14/graph-polymarket-mcp

Prerequisites

You need a free Graph API key (takes ~2 minutes):

  1. Go to The Graph Studio
  2. Connect your wallet (MetaMask, WalletConnect, etc.)
  3. Click "API Keys" in the sidebar and create one
  4. Free tier includes 100,000 queries/month

Installation

npm install -g graph-polymarket-mcp

Or use directly with npx:

npx graph-polymarket-mcp

Configuration

Claude Desktop

Add to your claude_desktop_config.json:

{
  "mcpServers": {
    "graph-polymarket": {
      "command": "npx",
      "args": ["-y", "graph-polymarket-mcp"],
      "env": {
        "GRAPH_API_KEY": "your-api-key-here"
      }
    }
  }
}

Claude Code

claude mcp add graph-polymarket -- npx -y graph-polymarket-mcp

Set the environment variable GRAPH_API_KEY before running.

Cursor / Other MCP Clients

Use the stdio transport with npx graph-polymarket-mcp as the command, passing GRAPH_API_KEY as an environment variable.

OpenClaw / Remote Agents (SSE)

The SSE transport has no authentication. Anyone who can reach the port can call every tool, and those calls spend your GRAPH_API_KEY quota. --http binds 0.0.0.0 inside a container, so publish it to 127.0.0.1 on the host and put a reverse proxy with TLS and auth in front of anything reachable off-box. For local agents, prefer the default stdio transport — it has no network surface at all.

Start the server with the HTTP transport:

# Dual transport — stdio + SSE on port 3851
GRAPH_API_KEY=your-key npx graph-polymarket-mcp --http

# SSE only (for remote/server deployments)
GRAPH_API_KEY=your-key npx graph-polymarket-mcp --http-only

# Custom port
MCP_HTTP_PORT=4000 GRAPH_API_KEY=your-key npx graph-polymarket-mcp --http

Then point your agent at the SSE endpoint:

{
  "mcpServers": {
    "graph-polymarket": {
      "url": "http://localhost:3851/sse"
    }
  }
}

Transport Modes

InvocationTransportsUse case
npx graph-polymarket-mcpstdioClaude Desktop, Cursor, Claude Code
npx graph-polymarket-mcp --httpstdio + SSE :3851Dual — local + remote agents
npx graph-polymarket-mcp --http-onlySSE :3851OpenClaw, remote deployments

A /health endpoint is available at http://localhost:3851/health when HTTP transport is active.

Available Tools

Core Tools

ToolDescription
list_subgraphsList all available Polymarket subgraphs with descriptions and key entities
get_subgraph_schemaGet the full GraphQL schema for a specific subgraph
query_subgraphExecute a custom GraphQL query against any subgraph

Domain-Specific Tools

ToolDescriptionSubgraphs
get_market_dataGet market/condition data with outcomes and resolution statusMain
get_global_statsGet platform stats: market counts + real volume/fees/tradesMain + Orderbook
get_account_pnlGet a trader's P&L and performance metrics (winRate, profitFactor, maxDrawdown)Beefy P&L
get_top_tradersLeaderboard ranked by PnL, winRate, volume, or profitFactor. Cross-refs Orderbook to flag rows where OB volume exceeds Beefy-tracked volume and surface OB-only traders absent from the leaderboard.Beefy P&L + Orderbook
get_daily_statsDaily volume, fees, trader counts, and market activity (1–90 days)Beefy P&L
get_market_positionsTop holders for a specific outcome token with their P&LBeefy P&L
get_user_positionsCurrent token positions. Cross-refs Orderbook: flags ⚠ orderbook-only entry when totalBought=0 but OB volume exists, and ⚠ mixed entry when OB volume > 2× split collateral.Slimmed P&L + Orderbook
get_recent_activityUnified chronological feed interleaving splits, merges, and redemptions with orderbook fills. Supports optional address filter.Activity + Orderbook
get_orderbook_tradesGet recent order fills with maker/taker filteringOrderbook
get_market_open_interestTop markets ranked by USDC locked in outstanding positions. Cross-refs Main subgraph to flag ⚠ dead money OI on resolved markets (losing-side tokens that will never be redeemed on-chain).Open Interest + Main
get_oi_historyHourly OI snapshots for a specific market (for charting trends)Open Interest
get_global_open_interestTotal platform-wide open interest and market countOpen Interest
get_market_resolutionUMA oracle resolution status with filtering by statusResolution
get_disputed_marketsMarkets disputed during oracle resolution (high-signal events)Resolution
get_market_revisionsModerator interventions and updates on market resolutionResolution
get_trader_profileFull trader profile combining CTF events and USDC flows with Orderbook fills. Classifies wallet as hybrid / orderbook-only / split-collateral-only and warns when P&L subgraphs are unreliable.Traders + Orderbook
get_trader_usdc_flowsUSDC deposit/withdrawal history with direction filteringTraders

Polymarket REST API Tools (no Graph API key needed)

ToolDescriptionAPI
search_marketsSearch markets by text query with filters (active, closed, sort by volume/liquidity)Gamma
get_market_infoGet detailed market metadata by slug or condition IDGamma
list_polymarket_eventsBrowse events (groups of related markets) with tag/status filtersGamma
get_polymarket_eventGet a single event with all its associated marketsGamma
get_live_pricesReal-time CLOB prices for outcome tokens (buy/sell, single or batch)CLOB
get_live_spreadBid-ask spread + midpoint for assessing market liquidityCLOB
get_live_orderbookFull order book (all resting bids and asks) for a tokenCLOB
get_price_historyHistorical price time-series (1m to max interval, configurable fidelity)CLOB
get_last_tradeLast trade price for an outcome tokenCLOB
get_clob_marketCLOB market details: token IDs, live prices, min order/tick sizesCLOB
search_markets_enrichedPower tool: search + auto-enrich with live CLOB prices AND on-chain resolution status in one callGamma + CLOB + Graph

CLOB V2 Tools

Polymarket migrated to V2 exchange contracts on 2026-04-28. These tools read the V2 subgraphs, which index from block 84902353 and hold no pre-migration history — V1 and V2 are different eras, not old and new.

ToolDescriptionSubgraphs
get_builder_leaderboardRank V2 builders by routed volume, order count or fees, with each builder's share of V2 volume. No V1 equivalent — the V1 contracts never emitted a builder codeV2 Orderbook
get_builder_activityRecent fills routed by one builder code, plus that builder's aggregate totalsV2 Orderbook
get_v2_top_tradersTop real V2 traders, with the exchange contracts filtered outV2 Orderbook
check_subgraph_freshnessHow far behind chainhead any subgraph is, read live from its _meta blockAny

Builder attribution is the capability V2 adds. Every V2 fill carries the builder code of the frontend, bot or integrator that routed it, so "who is actually routing this flow" becomes an answerable question — 3,325 builders as of 2026-08-08.

Two traps these tools handle for you. The V2 exchange contracts appear as Account rows, because the exchange is the taker when an order matches the book — ranking accounts naively returns 0xe111…996b (176M fills) and 0xe222…0f59 (41M fills) above every human. get_v2_top_traders excludes them. And v2_main is still syncing, so it answers with stale data rather than erroring; check_subgraph_freshness tells you how stale before you trust a number.

Data Sources

The Graph Subgraphs (requires GRAPH_API_KEY)

On-chain indexed data — authoritative for historical analytics, P&L, open interest, and resolution status.

Subgraphs

NameIPFS HashDescription
MainQmdyCguLEisTtQFveEkvMhTH7UzjyhnrF9kpvhYeG4QX8aComplete ecosystem data
Beefy P&LQmbHwcGkumWdyTK2jYWXV3vX4WyinftEGbuwi7hDkhPWqGComprehensive P&L tracking
Slimmed P&LQmZAYiMeZiWC7ZjdWepek7hy1jbcW3ngimBF9ibTiTtwQUMinimal position data
ActivityQmf3qPUsfQ8et6E3QNBmuXXKqUJi91mo5zbsaTkQrSnMAPPosition management events
OrderbookQmVGA9vvNZtEquVzDpw8wnTFDxVjB6mavTRMTrKuUBhi4tOrder fill analytics
Open InterestQmbT2MmS2VGbGihiTUmWk6GMc2QYqoT9ZhiupUicYMWt6HPer-market and global OI with hourly snapshots
ResolutionQmZnnrHWCB1Mb8dxxXDxfComjNdaGyRC66W8derjn3XDPgUMA oracle resolution lifecycle
TradersQmfT4YQwFfAi77hrC2JH3JiPF7C4nEn27UQRGNpSpUupqnPer-trader event logs and USDC flows

CLOB V2 (from block 84902353 — no earlier history)

NameIPFS HashStatusDescription
V2 OrderbookQmNtJGxpAjFgoHhMwdijyvbLrpPPiHHX2qct56nTpk42Bsat chainheadV2 fills with builder-code attribution
V2 P&LQmT21E4p8r6FCzW2EPK4NVj1dbcggdvKxZr8uuMcB4P5Cuat chainheadCost basis and realized P&L from V2 fills only
V2 MainQmTKrqyYg23BjhihmsrRjbV9cVS2piNmnHsr7cjYaTgdWu⚠️ syncingConditions and counters — ~86 days behind as of 2026-08-08

Open Interest (above) is already a V2 deployment; it reads ConditionalTokens, which V2 left unchanged, so it has no migration discontinuity.

Which era to ask: all-time or pre-2026-04-28 → V1. Post-migration activity, or anything about builders → V2. beefy_pnl keeps the hedge-fund metrics (winRate, profitFactor, maxDrawdown, daily series) that V2 P&L does not have, so trader-quality scoring stays on V1.

Example Queries

Once connected, an AI agent can:

Market Discovery (Gamma API)

  • "Search for prediction markets about AI"
  • "Show me the most active Polymarket events right now"
  • "Find markets about the 2024 election sorted by volume"
  • "What markets are in the 'crypto' category?"

Live Trading Data (CLOB API)

  • "What's the current price for the Trump YES token?"
  • "Show me the full order book for this market"
  • "What's the bid-ask spread on this token?"
  • "Show me the price history for this market over the last week"

On-Chain Analytics (The Graph)

  • "What are the current Polymarket global stats?"
  • "Show me the latest 20 orderbook trades"
  • "What are the positions for address 0x...?" (flags if wallet entered via OB buys only)
  • "Get the P&L for trader 0x...?"
  • "Which markets have the most open interest right now?" (flags dead-money OI on resolved markets)
  • "Show me disputed markets on Polymarket"
  • "Who are the top traders?" (flags any with OB volume not captured by Beefy P&L)
  • "Show me the full trading history for wallet 0x..." (includes OB fills + entry type classification)

Development

git clone https://github.com/PaulieB14/graph-polymarket-mcp.git
cd graph-polymarket-mcp
npm install
npm run build
GRAPH_API_KEY=your-key node build/index.js

License

MIT

Reviews

No reviews yet

Be the first to review this server!