polymarket-mcp
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@polymarket-mcpshow me the top markets by volume"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Polymarket MCP Server
Model Context Protocol server for Polymarket prediction markets. v0.3.0
Query Polymarket markets, events, narratives, arbitrage opportunities, and more — from any MCP-compatible client (Claude Desktop, OpenClaw, Cursor, etc.) OR via HTTP REST.
Zero dependencies. No API key required. MIT license.
Quick Start
Option A: MCP (recommended)
Option B: HTTP (for curl/web/dashboards)
Related MCP server: Polymarket MCP Server
Available Tools
Tool | Description |
top_markets | Top markets by volume (24h or total) with formatted prices |
search_markets | Client-side keyword search across title+description |
get_market | Detailed market info by slug |
top_movers | Biggest price movers with price formatting |
list_events | List events with optional child market details |
market_narratives | Cluster events by theme/narrative with volume analysis |
detect_volume_spikes | Find markets with unusual 24h volume spikes |
find_arbitrage | Discover Yes+No != 100% opportunities |
market_summary | Comprehensive ecosystem snapshot |
Changelog
v0.3.0 (2026-06-26)
HTTP mode: --http PORT starts a REST API at /health, /tools, /call/{tool_name}
HTML status page: GET / shows a human-readable dashboard
CORS headers: All endpoints support cross-origin requests
v0.2.0 (2026-06-26)
Smart price formatting (Yes 52¢ / No 48¢)
Proper client-side search
Retry logic (429, 502, 503, 504)
Connection resilience
Technical Details
Protocol: JSON-RPC 2.0 over stdio (MCP) OR HTTP REST
Dependencies: Zero (Python standard library only)
API: Polymarket Gamma API (public, no key needed)
Python: 3.7+
License: MIT
Configuration with Claude Desktop
Add to claude_desktop_config.json:
Available Tools
9 toolsdetect_volume_spikesC
Detect Polymarket markets with unusual 24h volume
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Number of results (default 10) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears full responsibility for behavioral disclosure. It fails to explain how 'unusual' is determined, potential data freshness, or any side effects. For a detection tool, this is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence with no extraneous words. However, it sacrifices completeness for brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple (one parameter, no output schema, no annotations), but the description is insufficient to fully understand the tool's behavior. It does not explain the detection algorithm or expected output format, leaving ambiguity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with the 'limit' parameter described. The description adds no extra meaning beyond the schema, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool detects Polymarket markets with unusual 24h volume, using a specific verb and resource. It distinguishes from siblings like 'top_markets' and 'top_movers', but the term 'unusual' is vague.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like 'top_markets' or 'search_markets'. The description lacks context on prerequisites or typical use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
find_arbitrageB
Find arbitrage opportunities where Yes+No != 100%
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Number of results (default 10) | |
| min_spread | No | Minimum total spread for arb detection (default 0.0) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description must disclose behavioral traits. It does not mention whether the tool is real-time or historical, any side effects, permission requirements, or output structure. The agent is left uninformed about important behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no wasted words. It is appropriately sized for the information it conveys, though it could include more detail without losing conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has no output schema, but the description does not explain what the result contains (e.g., markets, spreads). Combined with missing annotations, the description is incomplete for an agent to fully understand the tool's output.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema description coverage, the schema already documents the parameters. The description adds no new parameter information, so a baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: finding arbitrage opportunities where Yes+No probabilities do not sum to 100%. This is specific and distinct from sibling tools like get_market or top_markets, which do not focus on arbitrage.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives, nor any prerequisites or context. The description only states what it does without indicating optimal usage scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_marketC
Get detailed info about a specific Polymarket market by slug
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | Market slug (e.g. 'will-bitcoin-reach-100k-by-2025') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description should disclose behaviors like read-only nature or rate limits. It only says 'get detailed info' but omits any description of side effects, authorization needs, or response characteristics.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence conveying essential purpose with no fluff. Efficient and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
While the tool is simple, the description lacks details on return values or response format. No output schema is provided, leaving the agent without expectations of what 'detailed info' contains.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for the single parameter (slug). The description adds minimal value beyond the schema, as the schema already provides an example. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it gets detailed info about a specific market by slug, distinguishing it from siblings that list or search multiple markets. However, it could be more specific about what 'detailed info' includes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. The description does not mention exclusions or context such as needing a known slug.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_eventsC
List Polymarket events with child markets
| Name | Required | Description | Default |
|---|---|---|---|
| tag | No | Filter by tag (e.g. 'crypto', 'election', 'sports') | |
| limit | No | Number of events (default 10) | |
| with_markets | No | Include child market details |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description fully bears the burden. It states 'List' (read-only) but omits behavioral details like pagination, rate limits, or response structure. This is insufficient for a listing tool with potential large data volumes.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence of acceptable length, but it lacks specificity. It could be more informative while remaining concise, e.g., by clarifying what 'events' are.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and minimal description, the agent lacks understanding of what the response contains (e.g., event IDs, names, nested markets). The 3 parameters are well-described in schema, but overall context is incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the description adds no extra meaning beyond the parameter descriptions. It mentions 'with child markets', which aligns with the 'with_markets' param, but doesn't enhance understanding of format or constraints.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'List' and the resource 'Polymarket events', distinguishing it from sibling tools like 'get_market' (a single market) and 'search_markets' (searching). However, it does not clarify that an event is a grouping of markets, leaving some ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives such as 'search_markets' or 'top_markets'. The sibling list exists but the description offers no context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
market_narrativesB
Cluster Polymarket events by theme/narrative
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Number of events to analyze (default 50) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It only states the action 'Cluster' without disclosing whether it is a read-only analysis, side effects, or authentication requirements. Behavioral context is minimal.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise (3 words) and front-loaded with the verb. While very short, it is not wasteful, though it could be slightly expanded for clarity without losing conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has no output schema, and the description does not specify what the tool returns (e.g., clusters, categories, counts). Given the lack of output documentation, the description is incomplete for an agent to fully understand the tool's behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The only parameter 'limit' is fully documented in the schema with description, type, and default. The tool description adds no additional semantic context for the parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'Cluster' and clearly identifies the resource 'Polymarket events' and the criterion 'by theme/narrative'. This distinguishes it from siblings like 'detect_volume_spikes' or 'list_events'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for thematic grouping but does not explicitly state when to use this tool versus alternatives like 'list_events' or 'search_markets'. No when-not or alternatives are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
market_summaryA
Get a comprehensive summary of the Polymarket ecosystem right now
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It does not disclose any behavioral traits such as data freshness, scope of summary, or side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, no wasted words, perfectly concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Adequate for a zero-parameter tool, but could be more specific about what the 'comprehensive summary' includes. Lacks detail on output.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters exist, and schema coverage is 100%. The description adds no extra meaning but is not deficient.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get' and the resource 'comprehensive summary of the Polymarket ecosystem', which distinguishes it from sibling tools that focus on specific markets or events.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like list_events or top_markets. The description does not mention any exclusions or context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_marketsC
Search Polymarket markets by keyword
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Number of results (default 10) | |
| query | Yes | Search term |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It only states 'Search Polymarket markets by keyword' with no details on return format, pagination, sorting, or other behavioral traits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, which is concise but too minimal for a search tool. It lacks important details without being overly verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, and the description does not explain return values or result structure. For a search tool, this is insufficient for an agent to interpret results correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for both parameters (query and limit). The description adds no additional meaning beyond the schema, meeting the baseline but not exceeding it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (search) and resource (Polymarket markets by keyword), distinguishing it from siblings like get_market (specific market) or list_events (events). However, it lacks specificity on scope (e.g., all markets vs. active only).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives like get_market or list_events. The description implies usage in search scenarios but provides no exclusions or context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
top_marketsC
Top Polymarket markets by 24h volume
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Number of results (default 10) | |
| by_total | No | Sort by total volume instead of 24h |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description must cover behavioral traits. It only states the output is top markets by volume, omitting details like return format, read-only nature, or any side effects. Minimal transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is a single concise sentence. It is well-structured and front-loaded, but could be slightly more informative without losing conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of an output schema and the tool's simplicity, the description still fails to specify what data fields are returned or how it complements sibling tools. Incomplete for reliable selection and invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for both parameters. The tool description adds no additional meaning beyond the schema, so baseline score of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool returns top Polymarket markets sorted by 24h volume. It identifies the resource and sorting criterion, but does not explicitly differentiate from siblings like 'top_movers' which may involve price movement.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance provided on when to use this tool versus sibling tools like 'search_markets' or 'top_movers'. The description lacks context for appropriate invocation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
top_moversC
Biggest price movers on Polymarket
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Number of results (default 10) | |
| period | No | Lookback period in days (default 1) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description offers no behavioral details beyond the name. No annotations are provided, so the description carries full responsibility but fails to disclose core traits (e.g., read-only, sorting order, authentication needs, or whether it returns absolute or percentage changes).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise (single phrase), which is efficient but at the cost of adequacy. It is front-loaded but sacrifices completeness for brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no output schema and minimal parameter information, the description should hint at return format or interpretation (e.g., 'top movers by percentage change'). The current description leaves ambiguity about what 'biggest price movers' means, making it incomplete for practical agent use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Both parameters ('limit', 'period') are fully described in the input schema (100% coverage). The description adds no additional semantics beyond what the schema provides, meeting the baseline expectation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Biggest price movers on Polymarket' conveys a clear resource (price movers) and context (Polymarket), but lacks an explicit verb like 'list' or 'get'. It effectively distinguishes from siblings like 'top_markets' which deals with overall market rankings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives such as 'detect_volume_spikes'. There are no examples, when-not-to-use conditions, or mentions of prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
9 tool updates
v0.3.0- First observed
detect_volume_spikes - First observed
find_arbitrage - First observed
get_market - First observed
list_events - First observed
market_narratives - First observed
market_summary - First observed
search_markets - First observed
top_markets - First observed
top_movers
TDQS
Scored across 9 tools
Each tool has a clearly distinct purpose: detection of volume spikes, arbitrage, specific market details, events listing, narrative clustering, ecosystem summary, keyword search, top markets by volume, and top movers. No two tools overlap in functionality, so an agent can easily distinguish them.
Seven out of nine tools follow a consistent verb_noun pattern (e.g., detect_volume_spikes, get_market, search_markets). Two tools, market_narratives and market_summary, use a noun_noun format, which is a minor deviation but still clear.
With 9 tools, the server provides a broad yet focused set of functionalities for analyzing Polymarket prediction markets. The count is well-scoped for a single-purpose server, neither too few nor too many.
The tools cover key analytical tasks for Polymarket: searching, listing, summarizing, detecting anomalies, and identifying opportunities. For a read-only analysis server, the surface is complete; adding betting or account tools would shift scope.
Maintenance
Related MCP Connectors
Polymarket MCP — prediction-market data via Gamma + CLOB public APIs.
Hosted MCP for Kalshi prediction markets: search, odds, order books, settlement rules, and trading.
Read-only MCP server for live Polymarket, Kalshi, Limitless odds; Manifold sentiment.
Live prices, perps, prediction markets and a paper trading desk over one MCP.
Related MCP Servers
- AlicenseAqualityCmaintenanceA read-only MCP server exposing Polymarket's public prediction-market data. Search markets, read live odds and order books, pull historical probability time-series, and inspect public wallet positions.14MIT
- FlicenseNot gradedqualityDmaintenanceMCP server that exposes Polymarket prediction markets via CLI wrapper. Enables AI agents to discover markets, check prices, and place trades programmatically.-
- AlicenseNot gradedqualityDmaintenanceA Model Context Protocol server that enables seamless integration with Polymarket, providing tools to search markets, fetch events, analyze leaderboards, query user activity, and more via MCP-compatible clients like Claude.23 npmMIT
- AlicenseNot gradedqualityCmaintenanceMCP server for querying and optionally trading across prediction markets (Polymarket, Kalshi, Limitless, Manifold) through a unified API.31MIT