Skip to main content
Glama
berlinbra

PolyMarket MCP Server

README.md5.85 kB
# PolyMarket MCP Server [![smithery badge](https://smithery.ai/badge/polymarket_mcp)](https://smithery.ai/server/polymarket_mcp) 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. <a href="https://glama.ai/mcp/servers/c255m147fd"> <img width="380" height="200" src="https://glama.ai/mcp/servers/c255m147fd/badge" alt="PolyMarket Server MCP server" /> </a> [![MseeP.ai Security Assessment Badge](https://mseep.net/pr/berlinbra-polymarket-mcp-badge.png)](https://mseep.ai/app/berlinbra-polymarket-mcp) ## 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](https://smithery.ai/server/polymarket_mcp): ```bash 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` <summary>Development/Unpublished Servers Configuration</summary> ```json "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 ``` 2. 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:** ```json { "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:** ```json { "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:** ```json { "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:** ```json { "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.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/berlinbra/polymarket-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server