PolyMarket MCP Server
PolyMarket MCP 서버
PolyMarket API를 통해 예측 시장 데이터에 접근할 수 있는 모델 컨텍스트 프로토콜(MCP) 서버입니다. 이 서버는 예측 시장에서 시장 정보, 가격 및 과거 데이터를 검색하기 위한 표준화된 인터페이스를 구현합니다.
특징
현재 가격과 확률을 포함한 실시간 예측 시장 데이터
카테고리, 해결 날짜 및 설명을 포함한 자세한 시장 정보
사용자 정의 가능한 기간(1일, 7일, 30일, 전체)을 통한 과거 가격 및 거래량 데이터
내장된 오류 처리 및 속도 제한 관리
간편한 사용을 위한 깔끔한 데이터 포맷
Related MCP server: Polymarket MCP Server
설치
Smithery를 통해 설치
Smithery를 통해 Claude Desktop용 PolyMarket Predictions를 자동으로 설치하려면:
지엑스피1
클로드 데스크탑
MacOS의 경우:
~/Library/Application\ Support/Claude/claude_desktop_config.jsonWindows의 경우:
%APPDATA%/Claude/claude_desktop_config.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"
}
}
}지역적으로 실행
저장소를 복제하고 종속성을 설치합니다.
라이브러리 설치
uv pip install -e .달리기
json 파일을 통해 Claude 클라이언트를 MCP 도구에 연결하고 패키지를 설치한 후 Claude는 서버의 mcp 도구를 볼 수 있어야 합니다.
다음을 통해 서버를 직접 실행할 수 있습니다. polymarket-mcp repo에서:
uv run src/polymarket_mcp/server.py*서버와 함께 서버 검사기를 실행하려면:
npx @modelcontextprotocol/inspector uv --directory C:\\Users\\{INSERT_USER}\\YOUR\\PATH\\TO\\polymarket-mcp run src/polymarket_mcp/server.pyPolyMarket API 키로
.env파일을 만듭니다.
Key=your_api_key_here
Funder=poly market wallet addressjson 파일을 통해 Claude 클라이언트를 MCP 도구와 연결한 후 서버를 실행합니다. alpha-vantage-mcp repo에서: uv run src/polymarket_mcp/server.py
사용 가능한 도구
서버는 4가지 도구를 구현합니다.
get-market-info: 특정 예측 시장에 대한 자세한 정보를 가져옵니다.list-markets: 필터링 옵션을 사용하여 사용 가능한 예측 시장을 나열합니다.get-market-prices: 현재 가격 및 거래 정보를 가져옵니다.get-market-history: 과거 가격 및 거래량 데이터 가져오기
시장 정보 얻기
입력 스키마:
{
"market_id": {
"type": "string",
"description": "Market ID or slug"
}
}응답 예시:
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...
---목록 시장
입력 스키마:
{
"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
}
}응답 예시:
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
---시장 가격 얻기
입력 스키마:
{
"market_id": {
"type": "string",
"description": "Market ID or slug"
}
}응답 예시:
Current Market Prices for US Presidential Election 2024
Outcome: Democratic
Price: $0.6500
Probability: 65.0%
---
Outcome: Republican
Price: $0.3500
Probability: 35.0%
---시장 이력 가져오기
입력 스키마:
{
"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"
}
}응답 예시:
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
---오류 처리
서버에는 다양한 시나리오에 대한 포괄적인 오류 처리 기능이 포함되어 있습니다.
속도 제한(429 오류)
잘못된 API 키(403 오류)
잘못된 시장 ID(404 오류)
네트워크 연결 문제
API 타임아웃 조건(30초 타임아웃)
잘못된 응답
오류 메시지는 사람이 읽을 수 있는 명확한 형식으로 반환됩니다.
필수 조건
파이썬 3.9 이상
httpx>=0.24.0
mcp-코어
파이썬-dotenv>=1.0.0
기여하다
기여를 환영합니다! 풀 리퀘스트를 제출해 주세요. 주요 변경 사항의 경우, 먼저 이슈를 열어 변경 사항을 논의해 주세요.
Available Tools
4 toolsget-market-historyC
Get historical price and volume data for a market
| Name | Required | Description | Default |
|---|---|---|---|
| market_id | Yes | Market ID or slug | |
| timeframe | No | Time period for historical data | 7d |
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 of behavioral disclosure. While it indicates this is a read operation ('Get'), it lacks details on permissions, rate limits, data freshness, or error handling. For a tool fetching historical market data, this omission is significant, as users need to understand constraints like data availability or API limits.
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, efficient sentence: 'Get historical price and volume data for a market'. It's front-loaded with the core purpose, has zero waste, and is appropriately sized for a simple tool. Every word earns its place without redundancy.
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 tool's complexity (historical data retrieval with parameters) and lack of annotations and output schema, the description is incomplete. It doesn't explain what the return values look like (e.g., data format, fields), potential limitations (e.g., max timeframe), or how it differs from siblings. For a tool without structured output documentation, this leaves gaps in usability.
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%, so the input schema already documents both parameters ('market_id' and 'timeframe') with descriptions and an enum for 'timeframe'. The description adds no additional parameter semantics beyond implying historical data retrieval, which is already covered by the tool's purpose. Baseline 3 is appropriate as the schema handles most documentation.
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 purpose: 'Get historical price and volume data for a market'. It specifies the verb ('Get'), resource ('historical price and volume data'), and target ('for a market'). However, it doesn't explicitly distinguish this tool from sibling tools like 'get-market-prices' or 'get-market-info', which might also retrieve market data but with different scopes or timeframes.
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 provides no guidance on when to use this tool versus alternatives. It doesn't mention sibling tools like 'get-market-prices' or 'get-market-info', nor does it specify scenarios where this tool is preferred (e.g., for historical analysis vs. current data). Without such context, users might struggle to choose between similar tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get-market-infoC
Get detailed information about a specific prediction market
| Name | Required | Description | Default |
|---|---|---|---|
| market_id | Yes | Market ID or slug |
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 states the tool retrieves 'detailed information' but doesn't specify what that includes (e.g., market status, participants, outcomes), whether it's read-only (implied by 'Get'), or any behavioral traits like rate limits, authentication needs, or error handling.
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, efficient sentence that directly states the tool's purpose without unnecessary words. It's appropriately sized for a simple tool with one parameter and is front-loaded with the core action.
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 no annotations and no output schema, the description is incomplete. It doesn't explain what 'detailed information' entails, the return format, or how this tool fits with siblings. For a tool that likely returns complex market data, more context is needed to guide effective 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?
Schema description coverage is 100%, with the single parameter 'market_id' documented as 'Market ID or slug'. The description adds no additional parameter semantics beyond what the schema provides, such as format examples or valid slug patterns, so it meets the baseline for high schema coverage.
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 resource ('detailed information about a specific prediction market'), making the purpose unambiguous. However, it doesn't explicitly differentiate from siblings like 'get-market-history' or 'get-market-prices', which likely provide different types of market data.
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 provides no guidance on when to use this tool versus alternatives like 'list-markets' or 'get-market-history'. It doesn't specify prerequisites, such as needing a market ID, or contextual factors like whether this is for real-time data or historical analysis.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get-market-pricesB
Get current prices and trading information for a market
| Name | Required | Description | Default |
|---|---|---|---|
| market_id | Yes | Market ID or slug |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states the tool retrieves 'current prices and trading information', implying a read-only operation, but doesn't specify aspects like rate limits, authentication needs, data freshness, or error handling. For a tool with zero annotation coverage, this leaves significant gaps in understanding its 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, efficient sentence that directly states the tool's purpose without any wasted words. It is front-loaded with the core functionality, making it easy to parse and understand quickly.
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 tool's low complexity (one parameter, no output schema, no annotations), the description is adequate but has clear gaps. It covers the basic purpose but lacks usage guidelines and behavioral details, making it incomplete for optimal agent decision-making in a context with sibling tools.
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 input schema has 100% description coverage, with the 'market_id' parameter clearly documented as 'Market ID or slug'. The description adds no additional meaning beyond this, such as examples or format details, but since the schema does the heavy lifting, the 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 purpose with a specific verb ('Get') and resource ('current prices and trading information for a market'), making it easy to understand what it does. However, it doesn't explicitly differentiate itself from sibling tools like 'get-market-info' or 'get-market-history', which might also retrieve market-related data, so it doesn't reach the highest score.
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 provides no guidance on when to use this tool versus alternatives like 'get-market-info' or 'get-market-history'. It lacks context about specific use cases, prerequisites, or exclusions, leaving the agent to infer usage based on tool names alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list-marketsB
Get a list of prediction markets with optional filters
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Number of markets to return (default: 10) | |
| offset | No | Number of markets to skip (for pagination) | |
| status | No | Filter by market status (e.g., open, closed, resolved) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions 'optional filters' but fails to describe key behaviors: whether this is a read-only operation, how pagination works with limit/offset, what the default sorting is, or what the response format looks like. For a listing tool with zero annotation coverage, this leaves significant gaps in understanding its operation.
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, efficient sentence that front-loads the core purpose ('Get a list of prediction markets') and adds essential qualification ('with optional filters'). There is no wasted language, and every word serves to clarify the tool's function appropriately for its complexity.
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 annotations and output schema, the description is incomplete for a listing tool with 3 parameters. It doesn't explain the return format, pagination behavior, or any error conditions. While the schema covers parameters well, the overall context for agent usage remains underspecified, especially for behavioral aspects.
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%, with all parameters well-documented in the schema (limit, offset, status with enum values). The description adds minimal value beyond the schema by mentioning 'optional filters,' which aligns with the status parameter but doesn't provide additional context or examples. This meets the baseline for high schema coverage.
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 resource ('list of prediction markets'), making the purpose immediately understandable. It distinguishes this tool from its siblings (get-market-history, get-market-info, get-market-prices) by focusing on listing with filters rather than retrieving specific market details. However, it doesn't explicitly contrast with siblings beyond the general 'list' vs 'get' distinction.
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 through 'with optional filters,' suggesting this tool is for filtered listing operations. However, it provides no explicit guidance on when to use this tool versus its siblings (e.g., use list-markets for overviews vs get-market-info for details) or any prerequisites. The context is clear but lacks specific alternatives or exclusions.
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.
4 tool updates
v1.0.0- First observed
get-market-history - First observed
get-market-info - First observed
get-market-prices - First observed
list-markets
TDQS
Scored across 4 tools
The tools have overlapping purposes that could cause confusion. get-market-history, get-market-info, and get-market-prices all retrieve data about a specific market, making it unclear which to use for different needs. However, the descriptions provide some guidance on the type of data each returns (historical vs. current vs. detailed info), which helps reduce misselection.
All tool names follow a consistent verb_noun pattern with hyphens (e.g., get-market-history, list-markets). The naming is predictable and uniform across all four tools, making it easy for agents to understand the pattern and purpose at a glance.
With only 4 tools, the server feels thin for a prediction market domain, which typically involves actions like creating markets, placing bets, or managing positions. While the tools cover data retrieval well, the lack of operational tools (e.g., trade, create-market) suggests the scope is limited, bordering on under-provisioned for the apparent purpose.
There are significant gaps in the tool surface for a prediction market server. The tools only support read-only operations (get and list), with no ability to interact with markets (e.g., trade, resolve, create). This will cause agent failures when trying to perform common actions in this domain, as the surface is severely incomplete for the stated purpose.
Maintenance
Related MCP Connectors
Polymarket in your AI: market rules, real fill costs, who is trading, top traders. Read-only.
71Live prediction markets: Polymarket + Kalshi prices, odds, order books. Pay-per-call USDC, no key.
Live Polymarket odds, order books, fee-inclusive quotes and non-custodial prediction trading.
Polymarket MCP — prediction-market data via Gamma + CLOB + Data public APIs.
Related MCP Servers
- FlicenseNot gradedqualityCmaintenanceEnables interaction with Polymarket prediction markets through read-only access to market data, events, orderbooks, and user positions, plus authenticated trading capabilities for creating and managing orders.1-
- AlicenseAqualityDmaintenanceEnables AI assistants to interact with Polymarket prediction markets, including retrieving market data, user positions, and trading history.810 npm12Apache 2.0
- AlicenseNot gradedqualityBmaintenanceProvides access to Polymarket prediction-market data via Gamma and CLOB public APIs, enabling AI agents to query market information.412 npmMIT
- AlicenseBqualityDmaintenanceEnables LLM agents to interact with Polymarket prediction markets, including market discovery, real-time pricing, analytics, account management, and trading with built-in safety guards.34MIT