polymarket-mcp

MCP.Pizza Chef: berlinbra

Four read-only tools promise market listings, details, current prices, and history. Only the listing one really delivers: the history tool never fetches any history and silently ignores the time period you choose, the price tool reads a field the service does not send back, and the status filter matches nothing. More seriously, the credential it asks for is not an ordinary key but your Polymarket wallet's private key, which you would be leaving in a plain settings file. The code has not changed since June 2025.

Unmaintained · no code changes since June 2025
Data
Web/Research

Use This MCP server To

Browse which prediction markets are open right now See the trading volume on a market I care about Look up the identifier for a market I want to research Check whether a particular market has closed yet Skim a page of markets and their end dates

README

PolyMarket MCP Server

smithery badge

A Model Context Protocol (MCP) server that provides access to prediction market data through the PolyMarket API. This server implements a standardized interface for retrieving market information, prices, and historical data from prediction markets.

PolyMarket Server MCP server

MseeP.ai Security Assessment Badge

Features

  • Real-time prediction market data with current prices and probabilities
  • Detailed market information including categories, resolution dates, and descriptions
  • Historical price and volume data with customizable timeframes (1d, 7d, 30d, all)
  • Built-in error handling and rate limit management
  • Clean data formatting for easy consumption

Installation

Installing via Smithery

To install PolyMarket Predictions for Claude Desktop automatically via Smithery:

npx -y @smithery/cli install polymarket_mcp --client claude
Claude Desktop
  • On MacOS: ~/Library/Application\ Support/Claude/claude_desktop_config.json
  • On Windows: %APPDATA%/Claude/claude_desktop_config.json
Development/Unpublished Servers Configuration
    "mcpServers": {
        "polymarket-mcp": {
            "command": "uv",
            "args": [
            "--directory",
            "/Users/{INSERT_USER}/YOUR/PATH/TO/polymarket-mcp",
            "run",
            "polymarket-mcp" //or src/polymarket_mcp/server.py
            ],
            "env": {
                "KEY": "<insert poly market api key>",
                "FUNDER": "<insert polymarket wallet address>"
            }
        }
    }

Running Locally

  1. Clone the repository and install dependencies:
Install Libraries
uv pip install -e .

Running

After connecting Claude client with the MCP tool via json file and installing the packages, Claude should see the server's mcp tools:

You can run the sever yourself via: In polymarket-mcp repo:

uv run src/polymarket_mcp/server.py

*if you want to run the server inspector along with the server:

npx @modelcontextprotocol/inspector uv --directory C:\\Users\\{INSERT_USER}\\YOUR\\PATH\\TO\\polymarket-mcp run src/polymarket_mcp/server.py
  1. Create a .env file with your PolyMarket API key:
Key=your_api_key_here
Funder=poly market wallet address

After connecting Claude client with the MCP tool via json file, run the server: In alpha-vantage-mcp repo: uv run src/polymarket_mcp/server.py

Available Tools

The server implements four tools:

  • get-market-info: Get detailed information about a specific prediction market
  • list-markets: List available prediction markets with filtering options
  • get-market-prices: Get current prices and trading information
  • get-market-history: Get historical price and volume data

get-market-info

Input Schema:

{
    "market_id": {
        "type": "string",
        "description": "Market ID or slug"
    }
}

Example Response:

Title: Example Market
Category: Politics
Status: Open
Resolution Date: 2024-12-31
Volume: $1,234,567.89
Liquidity: $98,765.43
Description: This is an example prediction market...
---

list-markets

Input Schema:

{
    "status": {
        "type": "string",
        "description": "Filter by market status",
        "enum": ["open", "closed", "resolved"]
    },
    "limit": {
        "type": "integer",
        "description": "Number of markets to return",
        "default": 10,
        "minimum": 1,
        "maximum": 100
    },
    "offset": {
        "type": "integer",
        "description": "Number of markets to skip (for pagination)",
        "default": 0,
        "minimum": 0
    }
}

Example Response:

Available Markets:

ID: market-123
Title: US Presidential Election 2024
Status: Open
Volume: $1,234,567.89
---

ID: market-124
Title: Oscar Best Picture 2024
Status: Open
Volume: $234,567.89
---

get-market-prices

Input Schema:

{
    "market_id": {
        "type": "string",
        "description": "Market ID or slug"
    }
}

Example Response:

Current Market Prices for US Presidential Election 2024

Outcome: Democratic
Price: $0.6500
Probability: 65.0%
---

Outcome: Republican
Price: $0.3500
Probability: 35.0%
---

get-market-history

Input Schema:

{
    "market_id": {
        "type": "string",
        "description": "Market ID or slug"
    },
    "timeframe": {
        "type": "string",
        "description": "Time period for historical data",
        "enum": ["1d", "7d", "30d", "all"],
        "default": "7d"
    }
}

Example Response:

Historical Data for US Presidential Election 2024
Time Period: 7d

Time: 2024-01-20T12:00:00Z
Price: $0.6500
Volume: $123,456.78
---

Time: 2024-01-19T12:00:00Z
Price: $0.6300
Volume: $98,765.43
---

Error Handling

The server includes comprehensive error handling for various scenarios:

  • Rate limiting (429 errors)
  • Invalid API keys (403 errors)
  • Invalid market IDs (404 errors)
  • Network connectivity issues
  • API timeout conditions (30-second timeout)
  • Malformed responses

Error messages are returned in a clear, human-readable format.

Prerequisites

  • Python 3.9 or higher
  • httpx>=0.24.0
  • mcp-core
  • python-dotenv>=1.0.0

Contributing

Contributions are welcome! Please feel free to submit a Pull Request. For major changes, please open an issue first to discuss what you would like to change.

polymarket-mcp FAQ

What credential does it need?
Not a normal key, despite how the instructions read. It wants the private key for your Polymarket wallet plus that wallet's address, and you would be storing the private key as plain text in a settings file. That key is what controls the money in the wallet, so treat this as a genuine risk rather than a formality.
Can it place bets or spend my money?
Not as written. None of the four tools buy, sell, or move anything, and no trading action is offered to the assistant. The concern is the key itself: anything that could read that file would hold the keys to the wallet.
Does the historical data tool work?
No. It asks for the same basic market record as the details tool and then looks for history inside it, which is never there, so you get nothing back. The time period you choose is read into the code and then never used.
Can I use this to check the current odds on a market?
Not reliably. The price tool looks for a field the service does not return, so the price usually comes back as unavailable. Listing markets and reading their volumes is the part that actually works.
Is it still being maintained?
No. There have been no code changes since June 2025, well over a year ago, and the known problems above are still present.
How hard is setup?
This one is for confident users. You clone the code, install it with a Python tool, and point your app at a folder on your machine; there is no simple one-line install.
Which apps does it work in?
Claude Desktop is the documented target, and there is a Smithery installer. Any app where you can point at a local command would also work.
Does it need a paid Polymarket account?
There is no subscription, but the wallet it wants the key for is a real funded Polymarket wallet, so it assumes you already have one set up.