This MCP server provides access to Polymarket prediction market data through specialized tools that query The Graph subgraphs, enabling AI agents to analyze markets, trader performance, positions, activity, and platform statistics.
List available subgraphs – Discover all Polymarket subgraphs with their descriptions and key entities
Fetch subgraph schema – Retrieve the full GraphQL schema for a specific subgraph (main, beefy_pnl, slimmed_pnl, activity, or orderbook)
Execute custom GraphQL queries – Run arbitrary GraphQL queries against any supported subgraph with optional variables
Get market data – Retrieve market/condition data including outcomes, volumes, and resolution status from the Main subgraph (supports pagination and ordering)
Get trader P&L – Look up a trader's profit & loss and performance metrics (win rate, profit factor, max drawdown) by Ethereum address
Get user positions – Fetch a user's current token positions from the Slimmed P&L subgraph by wallet address
Get recent activity – View recent splits, merges, and redemptions from the Activity subgraph, optionally filtered by address
Get orderbook trades – Retrieve recent order fills from the Orderbook subgraph, with optional filtering by maker or taker address
Get global platform stats – Access aggregate platform statistics including market counts, volume, fees, trader activity, and open interest
Track open interest & resolution – View per-market and platform-wide open interest, UMA oracle resolution lifecycle, disputed markets, and moderator interventions
Enables querying of Polymarket prediction market data via The Graph subgraphs using GraphQL, providing tools to execute custom queries and retrieve detailed schemas for markets, traders, and activity.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@graph-polymarket-mcpShow me the P&L for trader 0x71C444E949e1A9159d282E376E6c986C887565B1"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
graph-polymarket-mcp
MCP server for querying Polymarket prediction market data via The Graph subgraphs.
Exposes 20 tools that AI agents (Claude, Cursor, etc.) can use to query market data, trader P&L, positions, activity, orderbook trades, open interest, market resolution status, and trader profiles.
v1.6.0 — five tools now cross-query multiple subgraphs in parallel to flag unreliable P&L, dead-money OI, and orderbook-only wallets that would otherwise produce misleading data.
Published to the MCP Registry as
io.github.PaulieB14/graph-polymarket-mcp
Prerequisites
You need a free Graph API key (takes ~2 minutes):
Go to The Graph Studio
Connect your wallet (MetaMask, WalletConnect, etc.)
Click "API Keys" in the sidebar and create one
Free tier includes 100,000 queries/month
Related MCP server: TheGraph MCP Server
Installation
npm install -g graph-polymarket-mcpOr use directly with npx:
npx graph-polymarket-mcpConfiguration
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-mcpSet 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)
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 --httpThen point your agent at the SSE endpoint:
{
"mcpServers": {
"graph-polymarket": {
"url": "http://localhost:3851/sse"
}
}
}Transport Modes
Invocation | Transports | Use case |
| stdio | Claude Desktop, Cursor, Claude Code |
| stdio + SSE :3851 | Dual — local + remote agents |
| SSE :3851 | OpenClaw, remote deployments |
A /health endpoint is available at http://localhost:3851/health when HTTP transport is active.
Available Tools
Core Tools
Tool | Description |
| List all available Polymarket subgraphs with descriptions and key entities |
| Get the full GraphQL schema for a specific subgraph |
| Execute a custom GraphQL query against any subgraph |
Domain-Specific Tools
Tool | Description | Subgraphs |
| Get market/condition data with outcomes and resolution status | Main |
| Get platform stats: market counts + real volume/fees/trades | Main + Orderbook |
| Get a trader's P&L and performance metrics (winRate, profitFactor, maxDrawdown) | Beefy P&L |
| 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 |
| Daily volume, fees, trader counts, and market activity (1–90 days) | Beefy P&L |
| Top holders for a specific outcome token with their P&L | Beefy P&L |
| Current token positions. Cross-refs Orderbook: flags ⚠ orderbook-only entry when | Slimmed P&L + Orderbook |
| Unified chronological feed interleaving splits, merges, and redemptions with orderbook fills. Supports optional address filter. | Activity + Orderbook |
| Get recent order fills with maker/taker filtering | Orderbook |
| 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 |
| Hourly OI snapshots for a specific market (for charting trends) | Open Interest |
| Total platform-wide open interest and market count | Open Interest |
| UMA oracle resolution status with filtering by status | Resolution |
| Markets disputed during oracle resolution (high-signal events) | Resolution |
| Moderator interventions and updates on market resolution | Resolution |
| 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 |
| USDC deposit/withdrawal history with direction filtering | Traders |
Subgraphs
Name | IPFS Hash | Description |
Main |
| Complete ecosystem data |
Beefy P&L |
| Comprehensive P&L tracking |
Slimmed P&L |
| Minimal position data |
Activity |
| Position management events |
Orderbook |
| Order fill analytics |
Open Interest |
| Per-market and global OI with hourly snapshots |
Resolution |
| UMA oracle resolution lifecycle |
Traders |
| Per-trader event logs and USDC flows |
Example Queries
Once connected, an AI agent can:
"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...?"
"Query the main subgraph for all conditions with more than 100 trades"
"Which markets have the most open interest right now?" (flags dead-money OI on resolved markets)
"Show me the OI trend for market 0x..."
"What's the total open interest across all Polymarket markets?"
"Show me disputed markets on Polymarket"
"What's the resolution status of market 0x...?"
"Show me the full trading history for wallet 0x..." (includes OB fills + entry type classification)
"Track USDC deposits and withdrawals for trader 0x..."
"Who are the top traders?" (flags any with OB volume not captured by Beefy P&L)
"Show me recent activity for address 0x..." (unified feed: splits + merges + OB fills)
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.jsLicense
MIT