kukapay/polymarket-predictions-mcp
If you are the rightful owner of polymarket-predictions-mcp and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.
An MCP server that delivers real-time market odds from Polymarket, enabling AI agents and analysts to access, compare, and act on decentralized prediction data.
Polymarket Predictions MCP
An MCP server that delivers real-time market odds from Polymarket, enabling AI agents and analysts to access, compare, and act on decentralized prediction data.
Features
- Event Retrieval: Fetch Polymarket events with details (
title,description,endDate,volume) and associated markets in a tabulated format. - Market Retrieval: Retrieve markets with key fields (
question, zippedoutcomesandoutcomePrices,endDate,volume,closed) in a table. - Event Search: Search for events using Polymarket's
/public-searchendpoint with comprehensive query parameters. - Prompt Support: Includes a prompt template for analyzing specific markets.
- Formatted Outputs: Uses
tabulatefor clean, readable table outputs and handles JSON parsing for outcomes and prices.
Installation
Prerequisites
- Python 3.10 or higher
- uv (recommended) or
pipfor dependency management
Setup
-
Clone the Repository:
git clone https://github.com/kukapay/polymarket-predictions-mcp.git cd polymarket-predictions-mcp -
Install Dependencies: Using
uv:uv syncOr using
pip:pip install mcp[cli] httpx tabulate -
Install to Claude Desktop:
Install the server as a Claude Desktop application:
uv run mcp install main.py --name "Polymarket Predictions"Configuration file as a reference:
{ "mcpServers": { "Polymarket Predictions": { "command": "uv", "args": [ "--directory", "/path/to/polymarket-predictions-mcp", "run", "main.py" ] } } }Replace
/path/to/polymarket-predictions-mcpwith your actual installation path.
Usage
The server exposes three tools and one prompt:
Tools
-
get_events: Fetches a list of Polymarket events with details and their associated markets.- Parameters:
limit: Number of events (default: 10)offset: Pagination offset (default: 0)order: Fields to order by (e.g.,volume,markets.volume)ascending: Sort order (default:False)id: List of event IDsslug: List of event slugstag_id: Tag ID filterclosed: Filter for closed events (default:False)
- Output: Formatted string with event details (
title,description,endDate,volume) and a table of markets (question,closed,volume,outcomes,outcomePrices).
Example:
-
Prompt
Show me the top 2 Polymarket events by volume, including only open events, with their market details.
-
Sample Output:
## US Presidential Election 2024 Closed: False | End Date: 2024-11-05 | Volume: $1000000 Predict the outcome of the 2024 US Presidential Election... Markets: +--------------------------------------------------+----------+-----------+-------------------+-------------------+ | Question | Closed | Volume | Outcomes | Outcome Prices | +==================================================+==========+===========+===================+===================+ | Who will win the 2024 US Presidential Election? | False | $500000 | Biden, Trump | 0.45, 0.55 | +--------------------------------------------------+----------+-----------+-------------------+-------------------+ | Will Biden win the 2024 election? | False | $200000 | Yes, No | 0.40, 0.60 | +--------------------------------------------------+----------+-----------+-------------------+-------------------+ ## Super Bowl LVIII Closed: True | End Date: 2024-02-11 | Volume: $500000 Predict outcomes related to Super Bowl LVIII... Markets: +--------------------------------------------------+----------+-----------+-------------------+-------------------+ | Question | Closed | Volume | Outcomes | Outcome Prices | +==================================================+==========+===========+===================+===================+ | Who will win Super Bowl LVIII? | True | $300000 | Chiefs, 49ers | 0.60, 0.40 | +--------------------------------------------------+----------+-----------+-------------------+-------------------+
- Parameters:
-
get_markets: Fetches a list of Polymarket markets with specified fields.- Parameters:
limit: Number of markets (default: 10)offset: Pagination offset (default: 0)order: Fields to order by (e.g.,volume)ascending: Sort order (default:False)id: List of market IDsslug: List of market slugscondition_ids: List of condition IDsclosed: Filter for closed markets (default:False)
- Output: Table with
question,options(zippedoutcomesandoutcomePrices),endDate,volume, andclosed.
Example:
-
Prompt:
List the top 2 Polymarket markets by trading volume, showing only open markets with their outcomes and prices.
-
Sample Output:
+--------------------------------------------------+-------------------------+---------------------+-----------+----------+ | Question | Options | End Date | Volume | Closed | +==================================================+=========================+=====================+===========+==========+ | Who will win the 2024 US Presidential Election? | {"Biden": 0.45, "Trump": 0.55} | 2024-11-05 | $500000 | False | +--------------------------------------------------+-------------------------+---------------------+-----------+----------+ | Will Bitcoin reach $100K by end of 2024? | {"Yes": 0.30, "No": 0.70} | 2024-12-31 | $200000 | False | +--------------------------------------------------+-------------------------+---------------------+-----------+----------+
- Parameters:
-
search_events: Searches for events using the/public-searchendpoint.- Parameters:
q: Search query (required)cache: Use cached resultsevents_status: Filter by event statuslimit_per_type: Results per type (default: 10)page: Page number for paginationevents_tag: List of event tagskeep_closed_markets: Number of closed marketssort: Field to sort byascending: Sort ordersearch_tags: Include tags in searchsearch_profiles: Include profiles in searchrecurrence: Filter by recurrence typeexclude_tag_id: List of tag IDs to excludeoptimized: Use optimized search
- Output: Formatted string with event details and markets tables, similar to
get_events.
Example:
-
Prompt:
Search for Polymarket events about 'Bitcoin', filtering for active events with the 'crypto' tag, sorted by volume in ascending order.
-
Sample Output: (Similar format to
get_eventsoutput, with Bitcoin-related events and markets)
- Parameters:
Prompt
-
analyze_market: A prompt template for analyzing a specific market by slug, encouraging use of tools to fetch details and provide insights on probabilities, volume, and outcomes.Example:
-
Prompt:
Analyze the Polymarket prediction market for 'us-presidential-election-2024' and provide insights on its probabilities, trading volume, and potential outcomes.
-
Command:
analyze_market(market_slug="us-presidential-election-2024")
-
License
This project is licensed under the MIT License. See the file for details.