Polymarket MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| POLYGON_ADDRESS | Yes | Your Polygon wallet address | |
| MAX_ORDER_SIZE_USD | No | Maximum dollar amount per order | 1000 |
| POLYGON_PRIVATE_KEY | Yes | Your Polygon wallet private key (without 0x prefix) | |
| MAX_SPREAD_TOLERANCE | No | Maximum spread tolerance (e.g., 0.05 for 5%) | 0.05 |
| MAX_TOTAL_EXPOSURE_USD | No | Maximum total portfolio exposure in dollars | 5000 |
| MIN_LIQUIDITY_REQUIRED | No | Minimum required market liquidity in dollars | 10000 |
| ENABLE_AUTONOMOUS_TRADING | No | Enable or disable autonomous trading | true |
| MAX_POSITION_SIZE_PER_MARKET | No | Maximum position size per market in dollars | 2000 |
| REQUIRE_CONFIRMATION_ABOVE_USD | No | Require user confirmation for orders above this dollar amount | 500 |
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 | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| search_marketsB | Search markets by text query, slug, or keywords. Returns markets matching the search criteria. |
| get_trending_marketsA | Get markets with highest trading volume in specified timeframe. Returns top markets sorted by volume. |
| filter_markets_by_categoryA | Filter markets by category or tag (e.g., Politics, Sports, Crypto). Returns markets in the specified category. |
| get_event_marketsB | Get all markets for a specific event. Returns all markets belonging to the event. |
| get_featured_marketsB | Get featured or promoted markets. Returns curated list of important markets. |
| get_closing_soon_marketsB | Get markets closing within specified timeframe. Returns markets sorted by closing time. |
| get_sports_marketsC | Get sports betting markets. Optionally filter by specific sport type. |
| get_crypto_marketsB | Get cryptocurrency-related markets. Optionally filter by specific crypto symbol. |
| get_market_detailsC | Get complete market information including metadata, tokens, volume, and liquidity. |
| get_current_priceB | Get current bid/ask prices for a token. Returns PriceData with bid, ask, and mid prices. |
| get_orderbookC | Get complete order book with bids and asks arrays. |
| get_spreadA | Get current spread (difference between bid and ask prices). |
| get_market_volumeA | Get volume statistics for different timeframes (24h, 7d, 30d, all-time). |
| get_liquidityC | Get available liquidity in USD for a market. |
| get_price_historyB | Get historical price data (OHLC). Note: Limited availability via public API. |
| get_market_holdersA | Get top position holders for a market. Note: Requires authenticated access. |
| analyze_market_opportunityC | AI-powered market analysis with trading recommendation, risk assessment, and confidence score. |
| compare_marketsC | Compare multiple markets side-by-side with key metrics (volume, liquidity, etc.). |
| subscribe_market_pricesA | Subscribe to real-time price changes for one or more markets. Receives notifications whenever the price changes for subscribed markets. Useful for monitoring market movements and price action. |
| subscribe_orderbook_updatesA | Subscribe to real-time orderbook updates for one or more tokens. Receives notifications with aggregated bid/ask levels whenever the orderbook changes. Useful for monitoring liquidity and best bid/ask prices. |
| subscribe_user_ordersB | Subscribe to real-time updates for user's orders. Receives notifications when orders are created, filled, partially filled, or cancelled. Requires CLOB authentication. Optionally filter by specific markets. |
| subscribe_user_tradesA | Subscribe to real-time updates for user's trades. Receives notifications when orders are matched and trades execute. Requires CLOB authentication. Optionally filter by specific markets. |
| subscribe_market_resolutionA | Subscribe to market resolution alerts. Receives notifications when specified markets are resolved (closed with final outcome). Useful for tracking when bets settle and positions can be claimed. |
| get_realtime_statusA | Get status of all real-time WebSocket subscriptions. Shows active subscriptions, connection status, event statistics, and errors. Use this to monitor the health of real-time data feeds. |
| unsubscribe_realtimeA | Unsubscribe from a real-time data feed. Removes a subscription by ID (obtained from subscribe_* tools). Stops receiving updates for that subscription. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| Connection Status | Check Polymarket connection and authentication status |
| Configuration | View current safety limits and trading configuration |
| Rate Limiter Status | Check API rate limit status across all endpoint categories |
TDQS
Scored across 25 tools
Core market data tools are distinct, but the many market discovery variants (search_markets, get_trending_markets, filter_markets_by_category, get_featured_markets, get_closing_soon_markets, get_sports_markets, get_crypto_markets) overlap in purpose and can be hard to choose between. The subscription tools are clearly separated, but the listing surface creates real ambiguity.
Tool names mostly follow a readable verb_noun snake_case pattern (get_market_details, subscribe_orderbook_updates, unsubscribe_realtime). The main deviation is the mix of generic action verbs like search, compare, analyze, and filter, but the overall pattern remains predictable.
At 25 tools, the server sits at the heavy end and includes many narrow market query variants that could be consolidated into a more compact surface. The count is not unreasonable for a market data and subscription server, but it feels larger than necessary.
The server provides strong coverage of market discovery, pricing, order books, and real-time subscriptions, but it completely lacks trade execution tools such as place order, cancel order, or position management. This is a major gap for a Polymarket server, especially since user order/trade subscriptions require authentication.