Polymarket MCP Server
by rafael-pina
README.md
# Polymarket MCP Server
[](https://modelcontextprotocol.io)
[](https://opensource.org/licenses/MIT)
[](https://nodejs.org)
A powerful **MCP (Model Context Protocol) server** for querying [Polymarket](https://polymarket.com) prediction markets. Access real-time odds, market data, price history, and order books directly from your AI assistant.
## 🎯 What is This?
This MCP server enables AI assistants like **Claude**, **Cursor**, and other MCP-compatible tools to interact with Polymarket's prediction markets API. Query live market odds, track price movements, analyze order books, and explore markets by category — all through natural language.
## ✨ Features
| Tool | Description |
| ------------------------ | ----------------------------------------------------------- |
| `list_markets` | List and paginate through all Polymarket prediction markets |
| `search_markets` | Search markets by keyword (questions & descriptions) |
| `get_market` | Get detailed information about a specific market by ID |
| `get_event` | Fetch event details with all sub-markets grouped together |
| `get_events_by_category` | Filter markets by category (politics, crypto, sports, etc.) |
| `list_categories` | List all available market categories |
| `get_trending_markets` | Discover hot markets by volume or price movement |
| `get_price_history` | Historical price/odds data for any market |
| `get_order_book` | Real-time order book depth (bids & asks) |
## 📦 Installation
```bash
# Clone the repository
git clone https://github.com/yourusername/poly-mcp.git
cd poly-mcp
# Install dependencies
npm install
# Build the project
npm run build
```
## 🚀 Usage
### Running the Server
```bash
# Production mode
npm start
# Development mode (with hot reload)
npm run dev
# MCP Inspector (for testing)
npm run client
```
### Adding to Cursor IDE
Add this to your Cursor MCP settings file (`~/.cursor/mcp.json`):
```json
{
"mcpServers": {
"polymarket": {
"command": "node",
"args": ["/absolute/path/to/poly-mcp/dist/index.js"]
}
}
}
```
### Adding to Claude Desktop
Add to your Claude Desktop config (`~/Library/Application Support/Claude/claude_desktop_config.json` on macOS):
```json
{
"mcpServers": {
"polymarket": {
"command": "node",
"args": ["/absolute/path/to/poly-mcp/dist/index.js"]
}
}
}
```
## 🛠️ Tools Reference
### `list_markets`
List prediction markets from Polymarket with pagination support.
| Parameter | Type | Default | Description |
| --------- | ------- | ------- | ------------------------- |
| `limit` | number | 10 | Number of markets (1-100) |
| `active` | boolean | - | Filter by active status |
| `closed` | boolean | - | Filter by closed status |
| `offset` | number | 0 | Pagination offset |
**Example:** _"List 20 active markets on Polymarket"_
---
### `search_markets`
Search for markets by keyword matching questions and descriptions.
| Parameter | Type | Default | Description |
| --------- | ------- | ---------- | ------------------------ |
| `query` | string | _required_ | Search query |
| `limit` | number | 10 | Number of results (1-50) |
| `active` | boolean | - | Filter by active status |
| `closed` | boolean | - | Filter by closed status |
**Example:** _"Search for Bitcoin prediction markets"_
---
### `get_market`
Get detailed information about a specific market.
| Parameter | Type | Description |
| ----------- | ------ | ---------------------- |
| `market_id` | string | The market ID to fetch |
**Example:** _"Get details for market ID 0x..."_
---
### `get_event`
Fetch an event with all its sub-markets. Events group related markets together.
| Parameter | Type | Description |
| ------------- | ------- | ------------------------------------------------------ |
| `slug` | string | Event slug (e.g., `presidential-election-winner-2024`) |
| `event_id` | string | Event ID |
| `list_events` | boolean | List available events instead |
| `limit` | number | Number of events to list (default: 10) |
**Example:** _"Show me the presidential election event on Polymarket"_
---
### `get_events_by_category`
Filter prediction markets by category for focused exploration.
| Parameter | Type | Default | Description |
| ---------- | ------- | ---------- | --------------------------- |
| `category` | enum | _required_ | Category filter (see below) |
| `limit` | number | 10 | Number of events (1-50) |
| `active` | boolean | true | Filter by active status |
| `closed` | boolean | false | Filter by closed status |
**Available Categories:**
- `politics` — Elections, government, political events
- `crypto` — Cryptocurrency, blockchain, DeFi
- `sports` — NFL, NBA, Soccer, and more
- `world` — International relations, geopolitics
- `entertainment` — Music, TV, celebrities
- `economy` — GDP, markets, business
- `science` — Technology, AI, space, climate
- `legal` — Court cases, laws
- `racing` — F1, NASCAR, motorsports
**Example:** _"Show me politics markets on Polymarket"_
---
### `list_categories`
List all available categories for filtering markets.
**Example:** _"What categories are available on Polymarket?"_
---
### `get_trending_markets`
Discover trending markets sorted by activity metrics.
| Parameter | Type | Default | Description |
| --------- | ------ | ------------ | ------------------------ |
| `sort_by` | enum | `volume24hr` | Sort metric |
| `limit` | number | 10 | Number of markets (1-50) |
**Sort Options:**
- `volume24hr` — 24-hour trading volume
- `volume1wk` — Weekly trading volume
- `oneDayPriceChange` — 24-hour price movement
- `oneWeekPriceChange` — Weekly price movement
**Example:** _"Show me the hottest markets by 24h volume"_
---
### `get_price_history`
Get historical price/odds data for market analysis.
| Parameter | Type | Default | Description |
| --------------- | ------ | ---------- | ----------------------- |
| `market_id` | string | _required_ | Market ID |
| `outcome_index` | number | 0 | Outcome index (0 = Yes) |
| `interval` | enum | `1m` | Time range |
**Intervals:** `1d`, `1w`, `1m`, `3m`, `1y`, `max`
**Example:** _"Show price history for market 0x... over the past month"_
---
### `get_order_book`
Get real-time order book depth showing current bids and asks.
| Parameter | Type | Default | Description |
| --------------- | ------ | ---------- | ----------------------- |
| `market_id` | string | _required_ | Market ID |
| `outcome_index` | number | 0 | Outcome index (0 = Yes) |
**Example:** _"Show me the order book for market 0x..."_
## 💡 Example Queries
Once configured, you can ask your AI assistant:
- _"Show me politics markets with more than 50% odds for Yes"_
- _"What are the trending crypto markets right now?"_
- _"Search for Trump prediction markets"_
- _"Get the price history for the Bitcoin $100k market"_
- _"List all sports betting markets"_
- _"What's the order book depth for the presidential election market?"_
### Prompt Templates
Quick prompts to try with your AI assistant:
```
# Quick market check
What does Polymarket say about [TOPIC]? Show me the odds.
# Cross-source validation
News reports say [EVENT]. Check Polymarket and tell me if the
smart money agrees.
# Find opportunities
Find markets closing in the next 24 hours with 90%+ odds on one side.
```
## 🔧 Development
```bash
# Install dependencies
npm install
# Run in development mode
npm run dev
# Build for production
npm run build
# Test with MCP Inspector
npm run client
```
## 📄 API Sources
This server uses the following Polymarket APIs:
- **Gamma API** (`gamma-api.polymarket.com`) — Market and event data
- **CLOB API** (`clob.polymarket.com`) — Order books and price history
## 🤝 Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
## 📜 License
MIT License - see [LICENSE](LICENSE) for details.
## 🔗 Links
- [Polymarket](https://polymarket.com) — The prediction market platform
- [Model Context Protocol](https://modelcontextprotocol.io) — MCP specification
- [MCP TypeScript SDK](https://github.com/modelcontextprotocol/typescript-sdk) — Official SDK
---
**Keywords:** Polymarket, MCP, Model Context Protocol, prediction markets, AI assistant, Claude, Cursor, betting odds, crypto markets, political betting, sports betting, market analysis, order book, price history
This server cannot be deployed
Maintenance
ActivityInactive
ResponsivenessNo issues