loading…
Search for a command to run...
loading…
Enables interaction with Polymarket prediction markets through read-only access to market data, events, orderbooks, and user positions, plus authenticated tradi
Enables interaction with Polymarket prediction markets through read-only access to market data, events, orderbooks, and user positions, plus authenticated trading capabilities for creating and managing orders.
Browse prediction markets, track positions, and place trades on Polymarket through AI.
A Model Context Protocol (MCP) server that exposes Polymarket's API for querying markets, events, orderbooks, and user activity — with optional trading via the CLOB API.
The Polymarket MCP Server provides full access to Polymarket's prediction market data and trading infrastructure:
Perfect for:
polymarket_health_check — Check server readinessReturns a status object confirming the server is running and reachable.
Inputs: (none)
Output:
{
"status": "ok",
"server": "CL Polymarket MCP Server"
}
polymarket_get_markets — List prediction marketsReturns a paginated list of Polymarket markets with question, status, and end date. No API key required.
Inputs:
- `limit` (integer, optional) — Maximum number of markets to return, 1–1000 (default: 100)
- `offset` (integer, optional) — Number of markets to skip for pagination (default: 0)
- `active` (boolean, optional) — Filter by active status
Output:
{
"success": true,
"count": 10,
"markets": [
{
"id": "0xabc...",
"question": "Will X happen by 2025?",
"active": true,
"closed": false,
"end_date": "2025-12-31T00:00:00Z"
}
]
}
polymarket_get_market — Get a specific marketReturns full details for a single market including condition ID, slug, tokens, and market type. No API key required.
Inputs:
- `market_id` (string, required) — Market ID to retrieve
Output:
{
"success": true,
"market": {
"id": "0xabc...",
"question": "Will X happen?",
"condition_id": "0xdef...",
"slug": "will-x-happen",
"end_date": "2025-12-31T00:00:00Z",
"active": true,
"closed": false,
"market_type": "binary",
"tokens": [...]
}
}
polymarket_get_events — List eventsReturns a paginated list of events. Events group related markets together (e.g. all markets for an election). No API key required.
Inputs:
- `limit` (integer, optional) — Maximum number of events to return, 1–1000 (default: 100)
- `offset` (integer, optional) — Number of events to skip for pagination (default: 0)
Output:
{
"success": true,
"count": 5,
"events": [
{
"id": "123",
"title": "2025 US Election",
"slug": "2025-us-election",
"start_date": "2025-01-01T00:00:00Z",
"end_date": "2025-11-05T00:00:00Z"
}
]
}
polymarket_get_user_positions — Get positions for a walletReturns all open positions held by an Ethereum wallet address. No API key required.
Inputs:
- `user_address` (string, required) — Ethereum wallet address to query
Output:
{
"success": true,
"user_address": "0x123...",
"count": 3,
"positions": [
{
"position_id": "pos_1",
"asset": "0xabc...",
"quantity": 100.0,
"average_price": 0.65,
"current_value": 72.50
}
]
}
polymarket_get_user_trades — Get trade history for a walletReturns the full trade history for an Ethereum wallet address, paginated. No API key required.
Inputs:
- `user_address` (string, required) — Ethereum wallet address to query
- `limit` (integer, optional) — Maximum number of trades to return, 1–1000 (default: 100)
- `offset` (integer, optional) — Number of trades to skip for pagination (default: 0)
Output:
{
"success": true,
"user_address": "0x123...",
"count": 25,
"trades": [
{
"id": "trade_1",
"market": "0xabc...",
"outcome": "YES",
"side": "BUY",
"size": 50.0,
"price": 0.62,
"timestamp": "2025-01-01T12:00:00Z"
}
]
}
polymarket_get_orderbook — Get orderbook for a marketReturns the current bids and asks for a market from the central limit order book. No API key required.
Inputs:
- `market_id` (string, required) — Market ID to get orderbook for
Output:
{
"success": true,
"market": "0xabc...",
"bids": [[0.62, 500], [0.61, 1200]],
"asks": [[0.63, 300], [0.64, 800]],
"timestamp": "2025-01-01T12:00:00Z"
}
polymarket_get_midpoint — Get midpoint price for a marketReturns the midpoint price (average of best bid and best ask) for a market. No API key required.
Inputs:
- `market_id` (string, required) — Market ID to get midpoint for
Output:
{
"success": true,
"market": "0xabc...",
"midpoint": 0.625,
"timestamp": "2025-01-01T12:00:00Z"
}
polymarket_create_order — Place an order on the CLOBCreates a new limit order on Polymarket's central limit order book. Requires an API key with trading permissions.
Inputs:
- `market_id` (string, required) — Market ID to place order on
- `side` (string, required) — Order side: 'BUY' or 'SELL'
- `price` (float, required) — Order price in USD (0–1 for binary markets)
- `size` (float, required) — Order size in number of shares
- `token_id` (string, required) — Token ID for the market outcome
Output:
{
"success": true,
"order_id": "order_abc123",
"market": "0xabc...",
"side": "BUY",
"price": 0.62,
"size": 100.0,
"status": "OPEN"
}
polymarket_cancel_order — Cancel an open orderCancels an existing open order on the CLOB. Requires an API key with trading permissions.
Inputs:
- `order_id` (string, required) — ID of the order to cancel
Output:
{
"success": true,
"order_id": "order_abc123",
"message": "Order cancelled successfully"
}
polymarket_get_orders — Get your open ordersReturns all open orders for the authenticated account, optionally filtered by market. Requires an API key.
Inputs:
- `market_id` (string, optional) — Filter orders by market ID
Output:
{
"success": true,
"count": 2,
"orders": [
{
"id": "order_abc123",
"market": "0xabc...",
"side": "BUY",
"price": 0.62,
"size": 100.0,
"status": "OPEN",
"created_at": "2025-01-01T12:00:00Z"
}
]
}
limit — Maximum number of records to return per request (max 1000, default 100)offset — Number of records to skip; use with limit for paginationmarket_id — A market's on-chain condition ID or internal ID, returned by polymarket_get_marketsMarket ID:
Ethereum condition ID (hex string)
Example: 0x1234567890abcdef...
Wallet Address:
Ethereum address (checksummed or lowercase)
Example: 0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045
Price:
Decimal between 0 and 1 representing implied probability
Example: 0.65 (65% probability = $0.65 per share)
polymarket_create_order, polymarket_cancel_order, and polymarket_get_orders require an API keytoken_id is found in the tokens array of polymarket_get_market — each binary market has a YES and NO tokenside must be 'BUY' or 'SELL' (uppercase)api_key value when connecting your Polymarket credential in MewCPPolymarket's CLOB API uses a signature-based key derivation flow — keys are not issued through a web UI but generated by signing a message with your wallet.
Authorization: Bearer YOUR_API_KEY and X-Mewcp-Credential-Id: CREDENTIAL-ID headers are presentX-Mewcp-Credential-Id headerside is uppercase ('BUY' or 'SELL') and price is between 0 and 1{server-name}/mcp/{tool-name}Run in your terminal:
claude mcp add polymarket-mcp-server -- npx CSA PROJECT - FZCO © 2026 IFZA Business Park, DDP, Premises Number 31174 - 001
Security
Low riskAutomated heuristic from public metadata — not a security guarantee.