A Polymarket market-data, replay, simulation, and opt-in trading MCP server
Server has 42 well-named tools with consistent verb_noun patterns (get_, list_, search_, place_, cancel_, etc.). All tools have descriptions (10-200 chars, within baseline 34-392 range). Input schemas are present and properly typed with JSON Schema objects. However, parameter descriptions are sparse or missing entirely, most parameters lack explanatory text beyond the name. Output schemas are not visible in the provided source, making it impossible to verify structured return types. Error handling guidance is absent from tool descriptions. The server demonstrates solid naming discipline and basic schema structure but falls short on parameter documentation and output clarity, typical of a C-grade implementation.
Analyze price consistency across markets for the same event.
Analyze order book microstructure including spread, depth, and liquidity concentration.
Cancel all open orders for the account.
Cancel all open orders for a specific market.
Cancel a single open order by ID.
Compare multiple markets side-by-side with prices, liquidity, and volume metrics.
Get the USDC balance and trading allowance for the configured account.
Parameter descriptions are missing or minimal. Most parameters (e.g., 'limit', 'offset', 'interval', 'amount', 'price') lack explanatory text. LLMs cannot infer parameter meaning from names alone, a 'limit' could mean result count, time window, or price threshold.
Output schemas are not visible in the provided source code. Without documented return types, LLMs cannot plan downstream tool calls or extract required fields for chaining (e.g., market_id from search results).
No error handling guidance in tool descriptions. Tools like 'place_order' and 'cancel_order' perform irreversible state changes but provide no recovery hints (e.g., 'If order placement fails due to insufficient balance, call get_balance_allowance first').
Inferred effective spec: 2026-07-28+.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 59 | 2026-07-28+ | v2 |
Get an event by ID with all associated markets and outcomes.
Get a live snapshot of market state including current prices, order book, and recent trades.
Get one market by its Gamma market ID, including outcome token IDs and current CLOB V2 order-book summaries when the market is open.
Get a market brief with current prices, recent price history, and outcome holder distribution.
Get the top outcome token holders for a market with their positions and percentages.
Get details of a specific order by ID.
Get the approval status for an order.
Get the current CLOB V2 order book for a market, including bid/ask levels and liquidity.
Get historical price data for a market outcome over a specified time range and interval.
Get accumulated real-time events from watched markets.
Get the status of all active market watches and WebSocket connections.
Get accumulated real-time events for the user's account.
Get the status of the user's real-time event watch.
Get a wallet's Polymarket positions, balances, and portfolio summary.
List all trades executed by the account.
List active Polymarket markets with optional filtering by event category, status, or sorting.
List all open orders for the account.
List all recorded market event sessions in the local database.
Place an order that has been pre-approved.
Place multiple orders in a single batch transaction.
Place a limit order on the CLOB V2.
Preview an order without placing it, showing estimated fill price and fees.
Replay recorded market events from a recording session.
Replay a market's price history from recorded events.
Scan multiple markets for microstructure patterns and anomalies.
Search active Polymarket events and return matching markets with IDs, outcome token mappings, prices, liquidity, and 24-hour volume.
Report this server's version, operating mode, database, and configured Polymarket API endpoints. This tool makes no network request.
Simulate the execution of a hypothetical order and return expected fill price and slippage.
Start recording real-time market events to the local database.
Stop recording a watch and flush events to the database.
Stop watching user events and close the WebSocket subscription.
Stop watching a market and close its WebSocket subscription.
Get the trading account status and available balance.
Subscribe to real-time updates for one or more markets via WebSocket.
Subscribe to real-time updates for the user's orders and trades.
Destructive operations (cancel_all_orders, place_batch_orders) lack confirmation or dry-run support. Agents can accidentally cancel all open orders or place unintended batch trades without a safety gate.
place_batch_orders has an underspecified schema: 'orders' is an array of generic objects with no item schema. LLMs cannot validate order structure or understand required fields (market_id, outcome_index, side, amount, price).