Polymarket MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| CHAIN_ID | No | Blockchain network chain ID | 137 |
| DATA_API_URL | No | Polymarket Data API base URL | https://data-api.polymarket.com |
| CLOB_API_BASE | No | Polymarket CLOB API base URL | https://clob.polymarket.com |
| GAMMA_API_URL | No | Polymarket Gamma API base URL | https://gamma-api.polymarket.com |
| BRIDGE_API_URL | No | Polymarket Bridge API base URL | https://bridge.polymarket.com |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {} |
| logging | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| get_tool_guideB | Return a concise usage guide with workflows, dependencies, and examples for this MCP. |
| get_market_by_slugA | Get detailed market info by slug. Source: slug from search_markets or list_markets. Returns market with clobTokenIds for CLOB tools. Example: slug=will-biden-win-2024. |
| get_event_by_slugA | Get event details by slug. Source: slug from search_markets or list_events. Returns event and associated markets. Example: slug=presidential-election-2024. |
| list_active_marketsA | List active markets sorted by volume. Use clobTokenIds/conditionId from results for CLOB or Data API tools. Example: limit=20, order=volume24hr. |
| search_marketsC | Search for markets, events, and profiles using text search. limit applies per type (events/markets/profiles). Example: query=trump, limit=3. |
| get_markets_by_tagB | Get markets filtered by tag ID. Source: tag_id from get_all_tags. Example: tag_id=2, limit=20, closed=false. |
| get_all_tagsB | List all tags. Use tag id/slug with get_markets_by_tag or list_markets tag_slug. Example: call then pick tag_id. |
| get_order_bookA | Get order book via CLOB /book for token_id. Source: clobTokenIds from list_active_markets or get_market_details. If token has no active order book, returns 404. Example: token_id=clobTokenIds[0]. |
| get_trending_marketsC | Get markets with highest trading volume for timeframe. Returns active markets sorted by volume. Example: timeframe=24h, limit=10. |
| get_closing_soon_marketsA | Get markets closing within specified hours. Returns active markets sorted by endDate. Example: hours=24, limit=20. |
| get_featured_marketsA | Get featured/promoted markets. Falls back to top-volume active markets. Example: limit=10. |
| filter_markets_by_categoryA | Filter markets by tag/category slug (case-insensitive). Source: get_all_tags for slug list. Example: category=politics, active_only=true. |
| get_event_marketsB | Get markets for a specific event. Provide event_id or event_slug from list_events/search_markets. Example: event_id=80505. |
| compare_marketsB | Compare multiple markets by slug. Source: slugs from search_markets/list_markets. Returns market data or error per slug. Example: market_slugs=[a,b]. |
| get_market_detailsA | Get complete market information including metadata, tokens, volume, liquidity, and livePrice by token_id. livePrice may be null when tokens are closed or have no active CLOB. |
| get_current_priceA | Get CLOB /price for BUY/SELL and return bid/ask/mid. Source: clobTokenIds from list_active_markets or get_market_details. If token has no active CLOB/order book, returns 404. Example: token_id=clobTokenIds[0], side=BOTH. |
| get_spreadA | Compute spread from CLOB /book best bid/ask. Source: clobTokenIds from list_active_markets or get_market_details. If token has no active CLOB/order book, returns 404. Example: token_id=clobTokenIds[0]. |
| get_market_volumeB | Get volume and liquidity for a market by slug. Source: slug from search_markets/list_markets. Example: slug=will-biden-win-2024. |
| get_liquidityA | Compute liquidity from CLOB /book depth (bid/ask USD). Source: clobTokenIds from list_active_markets or get_market_details. If token has no active CLOB/order book, returns 404. Example: token_id=clobTokenIds[0]. |
| analyze_market_opportunityC | Heuristic market analysis using volume, liquidity, spread, and time-to-close. Uses first clobTokenIds entry when available. Example: slug=will-biden-win-2024. |
| subscribe_market_pricesB | Subscribe to real-time price changes by market condition IDs (conditionId). Source: list_markets/list_active_markets/get_market_by_slug. Use get_realtime_status to inspect events. Example: market_ids=[conditionId]. |
| subscribe_orderbook_updatesB | Subscribe to real-time orderbook updates by token_ids (clobTokenIds). Source: list_active_markets/get_market_details. Use get_realtime_status to inspect events. Example: token_ids=[clobTokenIds[0]]. |
| subscribe_market_resolutionB | Subscribe to market resolution alerts by condition IDs. Source: list_markets/list_active_markets/get_market_by_slug. Example: market_ids=[conditionId]. |
| get_realtime_statusA | Get status of WebSocket subscriptions (active topics, connection state, stats, recent messages). connected=false means offline; subscriptions can exist but will not receive events until connected. |
| unsubscribe_realtimeB | Unsubscribe from a real-time feed. Source: subscription_id from subscribe_* response. Example: subscription_id=abc. |
| get_price_historyB | Get historical price data for a token. Source: clobTokenIds from list_active_markets or get_market_details. If no history, returns history=[]. Example: token_id=clobTokenIds[0], interval=1h. |
| get_midpointB | Get midpoint price via CLOB /midpoint. Source: clobTokenIds from list_active_markets or get_market_details. If token has no active CLOB/order book, returns 404. Example: token_id=clobTokenIds[0]. |
| get_batch_pricesB | Batch prices via POST CLOB /prices. Source: clobTokenIds from list_active_markets or get_market_details. If none found, returns {}. Example: token_ids=[clobTokenIds[0], clobTokenIds[1]]. |
| get_batch_spreadsB | Batch spreads via POST CLOB /spreads. Source: clobTokenIds from list_active_markets or get_market_details. If none found, returns {}. Example: token_ids=[clobTokenIds[0], clobTokenIds[1]]. |
| get_batch_order_booksB | Batch order books via POST CLOB /books. Source: clobTokenIds from list_active_markets or get_market_details. If none found, returns []. Example: token_ids=[clobTokenIds[0], clobTokenIds[1]]. |
| get_market_by_idB | Get market details by numeric id. Source: id from list_markets. Returns clobTokenIds and conditionId. Example: id=680392. |
| list_marketsB | List markets with filters (active/closed/tag/date/sort). Use conditionId for Data API and clobTokenIds for CLOB tools. Example: active=true, limit=20. |
| list_eventsB | List events with filters and pagination. Use event id for list_comments/get_event_by_id/get_live_volume. Example: active=true, limit=20. |
| get_event_by_idA | Get event details by id, including associated markets. Source: id from list_events. Example: id=80505. |
| list_seriesC | List series from the Gamma API. limit applies to series count; each series can include a large events array. Example: limit=1, offset=0. |
| get_series_by_idB | Get series by id. Source: id from list_series. Series includes events array. Example: id=10543. |
| get_sports_metadataA | Get sports metadata (leagues, seasons, etc.). Use with list_teams or sports market filters. Example: no params. |
| list_teamsB | List sports teams with pagination. Use to map team names/abbreviations in sports markets. Example: limit=20, offset=0. |
| get_public_profileA | Get a user's public profile by Ethereum address. Unknown address may return 404. Example: address=0xabc.... |
| list_commentsA | List comments from Gamma API /comments. Requires parent_entity_type and parent_entity_id in practice (use list_events/list_series/list_markets to get IDs); otherwise Gamma often returns 422. Example: parent_entity_type=Event, parent_entity_id=80505. |
| get_comment_by_idB | Get a comment by id. Source: id from list_comments. Example: id=2064395. |
| get_valid_sports_market_typesB | Get valid sports market types from Gamma API /sports/market-types (returns {marketTypes:[...]}). Example: use result in sports filters. |
| check_health_gammaA | Check Gamma API health via GET /status. Returns plain text OK. |
| get_positionsB | Get a user's open positions (public on-chain data). Use user address; optional market conditionId. Example: user=0xabc..., market=0x... |
| get_closed_positionsB | Get a user's closed/settled positions (public on-chain data). Use user address; optional market conditionId. Example: user=0xabc... |
| get_tradesB | Get trade history (public data). Filter by user address and/or market conditionId from list_markets. Example: user=0xabc..., market=0x... |
| get_user_activityB | Get a user's activity feed (public data). Use user address. Example: user=0xabc..., limit=50. |
| get_top_holdersB | Get top holders for a market. Source: market conditionId from list_markets. Example: market=0x... |
| get_positions_valueB | Get total value of a user's positions (public data). Use user address. Example: user=0xabc.... |
| get_open_interestB | Get open interest for a market. Source: market conditionId from list_markets. Example: market=0x... |
| get_live_volumeB | Get live trading volume for an event. Source: event id from list_events. Example: id=80505. |
| get_total_tradedB | Get total markets a user has traded in (public data). Use user address. Example: user=0xabc.... |
| get_trader_leaderboardB | Get trader leaderboard (public). Use limit/offset for pagination. Example: limit=50, offset=0. |
| get_builder_leaderboardB | Get builder leaderboard (public). Use limit/offset for pagination. Example: limit=50, offset=0. |
| get_builder_volume_timeseriesC | Get builder daily volume timeseries (public). Use limit for number of points. Example: limit=30. |
| check_health_data_apiB | Check Data API health via GET /. Returns JSON {data:"OK"}. |
| get_bridge_transaction_statusB | Check bridge transactions via GET https://bridge.polymarket.com/status/{address}. Address must have bridge history; invalid/unknown addresses may return 500. Example: address=0xabc.... |
| get_supported_assetsA | Get bridge-supported assets and chains. Use to fill get_bridge_quote params. Example: call then pick fromTokenAddress/toTokenAddress. |
| get_bridge_quoteB | Get a bridge quote from /quote. Source: token/chain from get_supported_assets. Requires fromAmountBaseUnit and recipientAddress. Example: fromChainId=137, toChainId=137. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/traderalvin1/polymarket-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server