Skip to main content
Glama
fzlzjerry

polymarket-mcp

by fzlzjerry

Polymarket MCP Server (read-only)

A 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 — all over public, unauthenticated endpoints.

Read-only by design. No order placement, cancellation, signing, wallets, or private keys. No API keys, no environment variables, zero secrets.

Tools

Tool

What it does

polymarket_search

Natural-language search across events / markets / tags.

polymarket_list_markets

Browse & filter markets (volume, liquidity, dates, tags).

polymarket_get_market

Full detail for one market by id, slug, or condition_id.

polymarket_list_events

Browse & filter events (groups of markets).

polymarket_get_event

Event detail with all child markets.

polymarket_trending_markets

What's hot right now (top markets by 24h volume).

polymarket_get_live_price

Freshest CLOB midpoint / bid / ask / spread for an outcome token.

polymarket_get_order_book

Live order book (top N levels) for an outcome token.

polymarket_get_price_history

Historical probability time-series for an outcome token.

polymarket_get_user_positions

Public current holdings for a wallet.

polymarket_get_user_activity

Recent on-chain activity for a wallet.

polymarket_get_market_holders

Top holders per outcome token for a market.

polymarket_get_user_value

Total portfolio value (USDC) for a wallet.

polymarket_market_snapshot

Recommended: live odds for one market in a single call.

Every tool is annotated readOnlyHint=True, openWorldHint=True.

Key concepts

  • Prices are probabilities. Outcome prices are floats in [0, 1] (e.g. 0.41 = 41%). Tools also surface a human-readable probability_pct.

  • token_id vs conditionId. CLOB pricing/book/history tools key on a CLOB token id (one per outcome, from a market's clobTokenIds) — not a slug or conditionId. The Data API's condition_id identifies the market itself.

  • Freshness. Gamma discovery data can lag the live CLOB book by a few seconds. For the freshest odds use polymarket_get_live_price / polymarket_market_snapshot (CLOB midpoint).

Related MCP server: polyrouter-mcp

Install

Requires uv (Python 3.11+).

Published to PyPI as mcp-polymarket:

# Run on demand (no install):
uvx mcp-polymarket

# Or install as a persistent tool:
uv tool install mcp-polymarket

Registration

No environment variables or API keys are required.

Claude Code (CLI)

claude mcp add polymarket -- uvx mcp-polymarket

Claude Desktop

Add to claude_desktop_config.json:

{
  "mcpServers": {
    "polymarket": {
      "command": "uvx",
      "args": ["mcp-polymarket"]
    }
  }
}

Development

From a checkout of this repo:

uv sync                              # install deps
uv run mcp-polymarket                # run the server (stdio)
uv run python tests/smoke_test.py    # live smoke test (hits the public API)

Inspect the tool schemas and annotations:

npx @modelcontextprotocol/inspector uvx mcp-polymarket

Publishing

Releases are published to PyPI automatically via Trusted Publishing — no API tokens are stored. The workflow in .github/workflows/publish.yml runs uv build and uploads the artifacts whenever a GitHub Release is published. To cut a release:

# bump `version` in pyproject.toml, commit, then:
gh release create v0.1.0 --generate-notes

Self-hosting over HTTP (optional)

In addition to the default stdio transport, the server can run over streamable-HTTP:

uv run polymarket-mcp --http --host 0.0.0.0 --port 8000
# served at http://<host>:<port>/mcp

Evaluation

evaluation.xml contains stable, verifiable, read-only questions exercising multi-tool workflows (search → market → price history → live price, etc.).

Available Tools

14 tools
polymarket_get_eventA
Read-only

Event detail with all child markets (parsed outcomes/prices/tokenIds).

Useful for multi-candidate / neg-risk events. Provide an id or a slug.

ParametersJSON Schema
NameRequiredDescriptionDefault
idNo
slugNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
idNo
tickerNo
slugNo
titleNo
volumeNo
volume24hrNo
liquidityNo
open_interestNo
neg_riskNo
end_dateNo
marketsNo
descriptionNo

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnlyHint and openWorldHint. The description adds value by specifying that outcomes/prices/tokenIds are parsed, providing behavioral context beyond the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise: three sentences, no redundant information. Each sentence adds value—purpose, usage hint, and parameter guidance.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the presence of an output schema, the description covers the essential aspects: what is returned (child markets with parsed data), how to identify (id/slug), and when to use. It lacks mention of any limits or edge cases, but is largely complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description compensates by stating 'Provide an id or a slug,' clarifying that either can be used as an identifier. However, it does not detail behavior when both are provided or format requirements.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool retrieves event details with all child markets, including parsed outcomes/prices/tokenIds. It distinguishes from siblings like 'polymarket_get_market' by focusing on events with multiple markets.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It mentions usefulness for multi-candidate/neg-risk events, which implies a use case but does not explicitly state when not to use or provide alternatives. The guidance is implied rather than explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

polymarket_get_live_priceA
Read-only

Freshest live odds for one outcome token from the CLOB.

token_id is a CLOB token id (one of a market's clobTokenIds) — NOT a slug or conditionId. Returns midpoint, best bid/ask, spread, and probability_pct. These are fresher than Gamma's cached prices.

ParametersJSON Schema
NameRequiredDescriptionDefault
token_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
token_idYes
midpointNo
best_bidNo
best_askNo
spreadNo
probability_pctNo

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, and the description reinforces a safe read operation. It adds behavioral context by listing returned fields and emphasizing freshness over cached data. No contradictions or missing behavioral traits beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise, consisting of two sentences. It front-loads the core purpose in the first sentence and adds critical detail in the second. No redundant or irrelevant information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given there is one parameter and an output schema exists, the description adequately covers what the tool returns and its freshness advantage. It could be slightly more explicit about its relationship to sibling tools, but overall it is complete for an agent to understand when and how to use it.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description fully compensates by explaining that token_id is a CLOB token id (one of a market's clobTokenIds) and explicitly clarifying it is NOT a slug or conditionId. This adds crucial meaning beyond the schema type.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool returns 'live odds' for one outcome token from the CLOB, specifies the token_id parameter is a CLOB token id (not slug or conditionId), and lists the returned fields (midpoint, best bid/ask, spread, probability_pct). It distinguishes itself from related tools like Gamma's cached prices, making its purpose unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use this tool by stating it provides 'fresher than Gamma's cached prices', suggesting it is for real-time needs. However, it does not explicitly mention when not to use it or provide direct alternatives among siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

polymarket_get_marketA
Read-only

Resolve one market in full detail by id, slug, OR condition_id (provide one).

Args: id: Numeric Gamma market id (e.g. "507034"). A "0x..." value is treated as a condition id. slug: Market slug (e.g. "will-trump-win-the-2024-us-presidential-election"). condition_id: On-chain condition id ("0x...").

ParametersJSON Schema
NameRequiredDescriptionDefault
idNo
slugNo
condition_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
idNo
questionNo
slugNo
condition_idNo
outcomesNo
volume24hrNo
liquidityNo
best_bidNo
best_askNo
last_trade_priceNo
one_day_price_changeNo
end_dateNo
activeNo
closedNo
descriptionNo
volumeNo
spreadNo
enable_order_bookNo
order_price_min_tick_sizeNo
order_min_sizeNo
uma_resolution_statusNo
clob_token_idsNo
tagsNo

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already provide readOnlyHint and openWorldHint. The description adds that the tool returns 'full detail' and clarifies the id parameter's dual interpretation (numeric vs 0x as condition_id). This enhances transparency beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise with one clear sentence followed by structured param explanations. Minor improvement could be formatting the args as a list, but it remains efficient and front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the presence of an output schema (covering return values) and annotations, the description adequately covers usage, parameter semantics, and the tool's scope. No critical gaps remain.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Despite 0% schema description coverage, the description thoroughly explains each parameter with examples and nuance (e.g., 'A "0x..." value is treated as a condition id'). This provides essential meaning missing from the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool 'Resolve[s] one market in full detail', specifying three alternative identifiers (id, slug, condition_id). This distinguishes it from sibling tools like polymarket_list_markets which return multiple markets.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly says 'provide one' among the three parameters, implying mutual exclusivity. It lacks explicit guidance on when not to use this tool versus alternatives, but the purpose and parameter choices make it clear for a single-market lookup.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

polymarket_get_market_holdersA
Read-only

Top holders per outcome token for a market.

Args: condition_id: The market's on-chain condition id ("0x..."). (Maps to the Data API's market param.) limit: Top-N holders per token, capped at 20 by the API.

ParametersJSON Schema
NameRequiredDescriptionDefault
condition_idYes
limitNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
condition_idYes
tokensNo

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint and openWorldHint. The description adds that limit is capped at 20 by the API, which is useful, but otherwise provides no further behavioral context (e.g., pagination, data freshness). Adequate but minimal beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence followed by a clear parameter list. No redundant information, all sentences add value. Efficient and well-structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read-only tool with two parameters and an existing output schema, the description covers the core functionality and parameter details. It does not explain the output structure, but the output schema presumably does. Slightly incomplete regarding edge cases or behavior when API returns errors.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description fully explains both parameters: condition_id as 'on-chain condition id' and its mapping to the Data API's market param, and limit as 'Top-N holders per token, capped at 20.' This adds meaningful context beyond the bare schema types.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Top holders per outcome token for a market,' specifying the resource (holders) and action (retrieve top ones). It distinguishes from sibling tools like polymarket_get_order_book and polymarket_get_market by focusing on holders per outcome token.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 only lists parameters but does not explain scenarios or exclusions. Given multiple related tools, explicit usage direction is absent.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

polymarket_get_order_bookA
Read-only

Live order book for one outcome token: best bid/ask, midpoint, spread, top levels.

token_id is a CLOB token id. depth caps the number of price levels per side (default 10, max 50). Level prices/sizes are parsed to floats.

ParametersJSON Schema
NameRequiredDescriptionDefault
token_idYes
depthNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
token_idYes
market_condition_idNo
best_bidNo
best_askNo
midpointNo
spreadNo
bidsNo
asksNo

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate readOnlyHint=true and openWorldHint=true. The description adds that it provides best bid/ask, midpoint, spread, top levels, and that prices/sizes are parsed to floats. No contradictions; behavioral traits are fully consistent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two succinct sentences that front-load core purpose and immediately explain key parameters. No wasted words; every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the presence of an output schema (covers return values), the description fully covers purpose, parameters, and behavior. It is complete for a simple order book tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, but the description adds meaningful context: token_id is 'a CLOB token id' and depth 'caps the number of price levels per side (default 10, max 50)'. This adds value beyond the schema's type declarations.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Live order book for one outcome token: best bid/ask, midpoint, spread, top levels.' It uses a specific verb and resource, and distinguishes from siblings like get_live_price (single price) or get_market (market details).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage when needing order book depth for a token, provides context for token_id and depth parameters, and the sibling list helps differentiate. However, it does not explicitly state when not to use this tool or mention alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

polymarket_get_price_historyA
Read-only

Historical probability time-series for one outcome token.

token_id is a CLOB token id (it maps to the misleadingly-named market param).

Args: interval: One of "1h", "6h", "1d", "1w", "1m" (1 month), "max", "all". Ignored when an explicit start_ts/end_ts range is given. fidelity: Resolution in minutes. Defaults to a safe value per interval (wider ranges require a higher minimum). start_ts/end_ts: Optional unix-second bounds (override interval).

Long series are downsampled to <=500 points (flagged in the result).

ParametersJSON Schema
NameRequiredDescriptionDefault
token_idYes
intervalNo1d
fidelityNo
start_tsNo
end_tsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
token_idYes
intervalYes
countNo
downsampledNo
noteNo
pointsNo

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already mark it as readOnly and openWorld. The description adds useful behavioral details: token_id is a CLOB token id, downsampling to ≤500 points, and that interval defaults to '1d'. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is somewhat lengthy but well-structured: purpose first, then token_id note, then parameter details, then downsampling. Every sentence adds value, though it could be slightly condensed.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the moderate complexity (5 params with interplay), the description covers all necessary aspects: parameter behavior, defaults, edge cases (downsampling), and result flag. Output schema exists, so return values need no explanation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description fully compensates by explaining each parameter: token_id, interval values, fidelity, and start_ts/end_ts. It provides context on their interactions and defaults.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it provides 'Historical probability time-series for one outcome token', directly indicating the tool's function and output. It distinguishes itself from sibling tools like polymarket_get_live_price by focusing on historical data.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains how to use parameters like interval and start_ts/end_ts, and notes that interval is ignored when explicit time bounds are given. It does not explicitly mention when not to use this tool, but the purpose is clear enough to guide selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

polymarket_get_user_activityA
Read-only

Recent on-chain activity (trades, splits, merges, redeems...) for a wallet.

Args: wallet: EVM address (0x...). limit: 1-100 (default 20). type: Optional activity type, e.g. "TRADE", "SPLIT", "MERGE", "REDEEM", "REWARD".

ParametersJSON Schema
NameRequiredDescriptionDefault
walletYes
limitNo
typeNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and openWorldHint=true. Description adds context by listing specific activity types (TRADE, SPLIT, etc.), enhancing transparency. Does not describe pagination or ordering but provides reasonable additional behavioral context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Highly concise: one sentence for purpose followed by a clear parameter list. No redundant or unnecessary information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Input parameters are well-covered, but given that an output schema exists (as per context signals), the description does not hint at the structure of returned data. For a user activity tool, knowing output fields (timestamps, market details) would be helpful.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema coverage, description compensates by explaining wallet as EVM address, limit as 1-100 with default 20, and type as optional with examples. Adds meaning beyond schema, though formal enum for type is missing.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states 'Recent on-chain activity (trades, splits, merges, redeems...) for a wallet,' providing a specific verb and resource. Distinguishes from sibling tools like polymarket_get_user_positions and polymarket_get_user_value by focusing on activity types.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Implies usage for fetching recent activity but does not explicitly state when to use this tool versus alternatives like polymarket_get_user_positions or polymarket_get_user_value. No when-not or exclusions provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

polymarket_get_user_positionsA
Read-only

Public current holdings for a wallet address (0x...).

Args: wallet: EVM address, e.g. "0x...". limit: 1-100 (default 20). sort_by: One of CURRENT, CASHPNL, PERCENTPNL, TOKENS, INITIAL, PRICE, AVGPRICE, TITLE, RESOLVING (default CURRENT). Sorted descending.

ParametersJSON Schema
NameRequiredDescriptionDefault
walletYes
limitNo
sort_byNoCURRENT

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint and openWorldHint. The description adds that results are sorted descending by default and provides the range for limit, but does not detail behavior for invalid wallets, rate limits, or response structure beyond what the output schema may provide.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise: a one-line summary followed by a structured Args block. Every sentence adds value with no redundancy. The important information (purpose and parameter details) is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the presence of an output schema and the tool's simplicity (read-only, single wallet), the description covers the key aspects. However, it could briefly note that only current holdings are retrieved (not historical) or that the wallet must exist, but overall is sufficiently complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description fully compensates: 'wallet' is explained as an EVM address with example format, 'limit' includes range (1-100) and default (20), and 'sort_by' lists all enum values with default and notes descending order. This is excellent documentation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it retrieves 'Public current holdings for a wallet address (0x...)', specifying the resource (holdings) and the scope (by wallet). This directly distinguishes it from sibling tools like 'get_user_activity' or 'get_user_value', which serve different purposes.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description does not provide explicit guidance on when to use this tool versus alternatives. While the purpose is clear, there is no mention of exclusions or context that would help an agent decide between related tools such as 'get_user_activity' or 'get_user_value'.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

polymarket_get_user_valueA
Read-only

Total current value (USDC) of a wallet's Polymarket positions.

Args: wallet: EVM address (0x...).

ParametersJSON Schema
NameRequiredDescriptionDefault
walletYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
userYes
valueNo

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and openWorldHint=true, so the safety profile is clear. The description adds that the value is in USDC and aggregates positions, but does not discuss edge cases (e.g., empty wallet, network errors). No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise: two sentences for the tool and one for the parameter. No wasted words or redundant information. Every sentence serves a purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple value retrieval tool with one parameter and an output schema (per context signals), the description is sufficiently complete. It states what is returned (total current value in USDC). It does not explain how to interpret the output, but the presence of an output schema mitigates this need.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0% (no description in input schema), so the description must compensate for the single 'wallet' parameter. It specifies 'EVM address (0x...)' which clarifies format and prefix. This adds meaningful information beyond the schema's title and type.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description explicitly states 'Total current value (USDC) of a wallet's Polymarket positions.' This uses a specific verb ('get' implied) and resource (value of positions), clearly differentiating it from siblings like polymarket_get_user_positions (which returns individual positions) or polymarket_get_user_activity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 polymarket_get_user_positions or polymarket_get_market. The description does not mention prerequisites, limitations, or when not to use it. Given the number of sibling tools, explicit differentiation would be beneficial.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

polymarket_list_eventsA
Read-only

Browse and filter events (groups of related markets). Same shape as list_markets.

Note: events use volume_min/liquidity_min (NOT the _num_ infix that markets use).

ParametersJSON Schema
NameRequiredDescriptionDefault
activeNo
closedNo
tag_idNo
orderNovolume24hr
ascendingNo
volume_minNo
liquidity_minNo
start_date_minNo
start_date_maxNo
end_date_minNo
end_date_maxNo
limitNo
offsetNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint and openWorldHint. The description adds behavioral context by explaining that events use specific parameter names (volume_min/liquidity_min) and that the structure is similar to list_markets. No contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences plus a note, no unnecessary words. It is front-loaded with purpose and immediately provides relevant differentiation. Highly efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the existence of an output schema and annotations, the description covers essential usage: what events are, filtering capabilities, and parameter differences. It assumes knowledge of list_markets, which may be a slight gap, but overall sufficient for a list/filter tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, placing burden on description. The description clarifies the naming nuance for volume_min and liquidity_min but does not explain the other 11 parameters (e.g., start_date_min, tag_id). Some benefit, but insufficient for full parameter understanding.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Browse and filter events (groups of related markets)', identifying the verb (browse/filter) and resource (events). It distinguishes from sibling list_markets by noting 'Same shape as list_markets' and highlighting a key difference in parameter naming.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit guidance on parameter naming differences between events and markets, aiding correct usage. It implies when to use this tool vs list_markets by defining events as 'groups of related markets', though it could more explicitly state when to choose one over the other.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

polymarket_list_marketsA
Read-only

Browse and filter markets. Defaults to active, open markets by 24h volume.

Args: active: Best-effort active filter (Gamma honors it though it's under-documented). closed: Include resolved/closed markets (default False). tag_id: Single numeric tag id to filter by. order: Sort field, e.g. "volume24hr", "liquidity_num", "volume_num", "endDate". ascending: Sort ascending (default False = highest first). volume_num_min: Minimum total volume (note the _num_ infix for markets). liquidity_num_min: Minimum liquidity. start_date_min/start_date_max/end_date_min/end_date_max: ISO-8601 bounds. limit: 1-100 (default 20). offset: paging offset.

ParametersJSON Schema
NameRequiredDescriptionDefault
activeNo
closedNo
tag_idNo
orderNovolume24hr
ascendingNo
volume_num_minNo
liquidity_num_minNo
start_date_minNo
start_date_maxNo
end_date_minNo
end_date_maxNo
limitNo
offsetNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds value beyond annotations by disclosing that the 'active' filter is 'best-effort' and under-documented, and notes the 'volume_num_min' parameter's naming nuance. No contradictions with annotations (readOnlyHint=true, openWorldHint=true).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description starts with a clear summary sentence and lists arguments in a readable bullet-like format. It is appropriately sized for 13 parameters, though the 'Args:' section could be slightly more concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (13 parameters), presence of an output schema, and annotations, the description covers essential use cases and quirks. It may lack format details for some parameters but is sufficient for basic usage.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Despite 0% schema description coverage, the description explains most parameters including their purpose and examples (e.g., order sort fields, date bounds as ISO-8601). This compensates well, though some parameters like 'tag_id' are only described as 'numeric tag id' which is minimal.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Browse and filter markets' and explains default behavior. However, it does not explicitly differentiate from sibling tools like 'polymarket_search' or 'polymarket_trending_markets', so the purpose is clear but lacks distinction from alternatives.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage by specifying defaults (active, open markets by 24h volume) but does not provide explicit guidance on when to use this tool versus alternatives, nor does it state prerequisites or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

polymarket_market_snapshotA
Read-only

Live odds for one market in a single call (the recommended starting point).

Resolves a market (by slug, or by searching free text and picking the most liquid match), then fetches the freshest CLOB midpoint for each outcome token. Gamma's cached price can lag the live book — live_midpoint is the freshest value.

Provide a slug (preferred) or a free-text query.

ParametersJSON Schema
NameRequiredDescriptionDefault
slugNo
queryNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
questionNo
slugNo
condition_idNo
volume24hrNo
liquidityNo
one_day_price_changeNo
end_dateNo
outcomesNo

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already mark it as readOnlyHint=true (safe read) and openWorldHint=true (dynamic data). The description adds valuable behavioral context: 'Gamma's cached price can lag the live book — `live_midpoint` is the freshest value,' which warns about potential staleness. No contradictions with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three sentences: a clear headline, a process explanation, and input guidance. Every sentence adds value without redundancy or wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (2 optional params, no required) and the presence of an output schema, the description adequately covers input behavior, caching notes, and the resolution process. It is sufficiently complete for an AI agent to use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It explains that `slug` is preferred and `query` is free-text for searching, and it will pick the most liquid match. This adds meaning beyond the schema but could be more specific about format or constraints.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it provides 'Live odds for one market in a single call' and positions itself as 'the recommended starting point.' It explains the mechanism (resolves market by slug or free text, fetches CLOB midpoint) and differentiates from siblings by being a single-call solution.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description advises to 'Provide a slug (preferred) or a free-text query' and mentions that Gamma's cached price can lag. However, it does not explicitly state when to use this tool versus alternatives, nor does it provide exclusions or 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. Dates show when Glama detected each change.

  1. 14 tool updatesv0.1.0
    • First observedpolymarket_get_event
    • First observedpolymarket_get_live_price
    • First observedpolymarket_get_market
    • First observedpolymarket_get_market_holders
    • First observedpolymarket_get_order_book
    • First observedpolymarket_get_price_history
    • First observedpolymarket_get_user_activity
    • First observedpolymarket_get_user_positions
    • First observedpolymarket_get_user_value
    • First observedpolymarket_list_events
    • First observedpolymarket_list_markets
    • First observedpolymarket_market_snapshot
    • First observedpolymarket_search
    • First observedpolymarket_trending_markets

TDQS

A4.2/5.0

Scored across 14 tools

Disambiguation5/5

Each tool targets a distinct data item (event, market, order book, price history, user activity, etc.) with precise descriptions that show clear differences. No two tools overlap in functionality.

Naming Consistency5/5

All tools follow a consistent 'polymarket_verb_noun' pattern, e.g., get_event, list_markets, search. Verbs like get, list, search are used logically and uniformly.

Tool Count5/5

14 tools cover all major read operations for a prediction market: browsing, searching, detailed views, prices, order books, user data. This is well-scoped for the domain.

Completeness5/5

The tool set provides comprehensive coverage for querying Polymarket: event/market discovery, live prices, historical data, order books, and user positions/value. No obvious gaps for read-only access.

Maintenance

ActivityInactive
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • F
    license
    A
    quality
    B
    maintenance
    AI-agent ready FastMCP server for Polymarket market discovery, wallet analytics, and public CLOB data, providing a read-only interface for querying markets, wallets, and order books.
    22
    -
  • A
    license
    B
    quality
    A
    maintenance
    MCP server for Polymarket prediction markets enabling query of markets, events, narratives, arbitrage, and more via MCP or HTTP.
    9
    MIT
  • A
    license
    B
    quality
    C
    maintenance
    MCP server to query Polymarket prediction market data via The Graph subgraphs and REST APIs, enabling AI agents to search markets, get live prices, order books, on-chain analytics, and trader profiles.
    32
    130
    MIT

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/fzlzjerry/polymarket-mcp'

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