MCP server providing Polymarket prediction market data via The Graph and Polymarket REST APIs.
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent โ or use 1-click editor setup below.
We haven't yet run this listing's install command through our automated sandbox check. This isn't a red flag โ we're steadily working through the catalog.
๐ก Paste the JSON block into your client's configuration file under mcpServers, then restart the application.
Inspect callable tools, capabilities, and parameters exposed to AI agents by Graph Polymarket MCP.
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
get_market_dataGet market/condition data with outcomes and resolution status
get_global_statsGet platform stats: market counts + real volume/fees/trades
get_account_pnlGet a trader's P&L and performance metrics (winRate, profitFactor, maxDrawdown)
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
You need a free Graph API key (takes ~2 minutes):
Or use directly with npx:
Add to your claude_desktop_config.json:
Set the environment variable GRAPH_API_KEY before running.
Use the stdio transport with npx graph-polymarket-mcp as the command, passing GRAPH_API_KEY as an environment variable.
The SSE transport has no authentication. Anyone who can reach the port can call every tool, and those calls spend your
GRAPH_API_KEYquota.--httpbinds0.0.0.0inside a container, so publish it to127.0.0.1on 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:
Then point your agent at the SSE endpoint:
| Invocation | Transports | Use case |
|---|---|---|
npx graph-polymarket-mcp | stdio | Claude Desktop, Cursor, Claude Code |
npx graph-polymarket-mcp --http | stdio + SSE :3851 | Dual โ local + remote agents |
npx graph-polymarket-mcp --http-only | SSE :3851 | OpenClaw, remote deployments |
A /health endpoint is available at http://localhost:3851/health when HTTP transport is active.
| Tool | Description |
|---|---|
list_subgraphs | List all available Polymarket subgraphs with descriptions and key entities |
get_subgraph_schema | Get the full GraphQL schema for a specific subgraph |
query_subgraph | Execute a custom GraphQL query against any subgraph |
| Tool | Description | Subgraphs |
|---|---|---|
get_market_data | Get market/condition data with outcomes and resolution status | Main |
get_global_stats | Get platform stats: market counts + real volume/fees/trades | Main + Orderbook |
get_account_pnl | Get a trader's P&L and performance metrics (winRate, profitFactor, maxDrawdown) | Beefy P&L |
get_top_traders | Leaderboard 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_stats | Daily volume, fees, trader counts, and market activity (1โ90 days) | Beefy P&L |
get_market_positions | Top holders for a specific outcome token with their P&L | Beefy P&L |
get_user_positions | Current 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_activity | Unified chronological feed interleaving splits, merges, and redemptions with orderbook fills. Supports optional address filter. | Activity + Orderbook |
get_orderbook_trades | Get recent order fills with maker/taker filtering | Orderbook |
get_market_open_interest | Top 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_history | Hourly OI snapshots for a specific market (for charting trends) | Open Interest |
get_global_open_interest | Total platform-wide open interest and market count | Open Interest |
get_market_resolution | UMA oracle resolution status with filtering by status | Resolution |
get_disputed_markets | Markets disputed during oracle resolution (high-signal events) | Resolution |
get_market_revisions | Moderator interventions and updates on market resolution | Resolution |
get_trader_profile | Full 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_flows | USDC deposit/withdrawal history with direction filtering | Traders |
| Tool | Description | API |
|---|---|---|
search_markets | Search markets by text query with filters (active, closed, sort by volume/liquidity) | Gamma |
get_market_info | Get detailed market metadata by slug or condition ID | Gamma |
list_polymarket_events | Browse events (groups of related markets) with tag/status filters | Gamma |
get_polymarket_event | Get a single event with all its associated markets | Gamma |
get_live_prices | Real-time CLOB prices for outcome tokens (buy/sell, single or batch) | CLOB |
get_live_spread | Bid-ask spread + midpoint for assessing market liquidity | CLOB |
get_live_orderbook | Full order book (all resting bids and asks) for a token | CLOB |
get_price_history | Historical price time-series (1m to max interval, configurable fidelity) | CLOB |
get_last_trade | Last trade price for an outcome token | CLOB |
get_clob_market | CLOB market details: token IDs, live prices, min order/tick sizes | CLOB |
search_markets_enriched | Power tool: search + auto-enrich with live CLOB prices AND on-chain resolution status in one call | Gamma + CLOB + Graph |
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.
| Tool | Description | Subgraphs |
|---|---|---|
get_builder_leaderboard | Rank 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 code | V2 Orderbook |
get_builder_activity | Recent fills routed by one builder code, plus that builder's aggregate totals | V2 Orderbook |
get_v2_top_traders | Top real V2 traders, with the exchange contracts filtered out | V2 Orderbook |
check_subgraph_freshness | How far behind chainhead any subgraph is, read live from its _meta block | Any |
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.
GRAPH_API_KEY)On-chain indexed data โ authoritative for historical analytics, P&L, open interest, and resolution status.
Factual signals from GitHub, npm, and our automated checks โ not a rating.
No reviews yet โ be the first to share how this listing worked for you.
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/paulieb14-graph-polymarket-mcp)<a href="https://allmcps.com/mcp/paulieb14-graph-polymarket-mcp"><img src="https://allmcps.com/api/badge/paulieb14-graph-polymarket-mcp?style=directory" alt="Graph Polymarket MCP on AllMCPs" /></a>