Skip to main content
Glama
Arjein

Polymarket MCP Server

by Arjein

Polymarket MCP Server

An MCP (Model Context Protocol) server that gives LLM agents full access to Polymarket โ€” the world's largest prediction market. Discover markets, analyze trends, monitor positions, and execute trades.

34 tools ยท 4 APIs ยท Read + Write ยท Safety Guards Built-in

Features

Category

Tools

Auth Required

๐Ÿ” Market Discovery

search_events, search_markets, get_event, get_gamma_market

โŒ

๐Ÿ“Š Real-Time Pricing

get_price, get_midpoint, get_spread, get_order_book, get_last_trade_price + batch variants

โŒ

๐Ÿ“ˆ Analytics

get_price_history, get_open_interest

โŒ

๐Ÿฆ Account

get_positions, get_trade_history, get_activity

Wallet address

๐Ÿ’ฐ Trading

place_order, cancel_order, cancel_all_orders, get_open_orders, get_balance_allowance

Private key

โš™๏ธ Market Metadata

get_tick_size, get_neg_risk, get_fee_rate, CLOB market listings

โŒ

Related MCP server: Polymarket MCP Server

Quick Start

Prerequisites

  • Python 3.12+

  • uv (recommended) or pip

Installation

git clone https://github.com/Arjein/polymarket-mcp.git
cd polymarket-mcp
uv sync

Configuration

cp .env.example .env

For read-only tools (market data, analytics): no configuration needed.

For trading tools: add your credentials to .env:

POLYMARKET_PRIVATE_KEY=0xYourPrivateKey
POLYMARKET_WALLET_ADDRESS=0xYourWalletAddress
POLYMARKET_DRY_RUN=true        # Start with dry-run!
POLYMARKET_MAX_ORDER_SIZE=100  # Safety limit in USD

Connect to Claude Desktop

Add to your Claude Desktop config (~/Library/Application Support/Claude/claude_desktop_config.json):

{
  "mcpServers": {
    "polymarket": {
      "command": "uv",
      "args": ["--directory", "/path/to/polymarket-mcp", "run", "server.py"]
    }
  }
}

Run Standalone

uv run server.py

Architecture

polymarket-mcp/
โ”œโ”€โ”€ server.py              # MCP server entrypoint
โ”œโ”€โ”€ clients/
โ”‚   โ”œโ”€โ”€ clob.py            # CLOB API (public reads + price history)
โ”‚   โ”œโ”€โ”€ gamma.py           # Gamma API (market/event discovery)
โ”‚   โ”œโ”€โ”€ data.py            # Data API (positions, trades, open interest)
โ”‚   โ””โ”€โ”€ auth_clob.py       # Authenticated CLOB (orders, balances)
โ”œโ”€โ”€ tools/
โ”‚   โ”œโ”€โ”€ clob_tools.py      # 18 read-only CLOB tools
โ”‚   โ”œโ”€โ”€ gamma_tools.py     # 4 market discovery tools
โ”‚   โ”œโ”€โ”€ data_tools.py      # 5 analytics & account tools
โ”‚   โ””โ”€โ”€ trading_tools.py   # 7 authenticated trading tools
โ”œโ”€โ”€ .env.example           # Configuration template
โ””โ”€โ”€ pyproject.toml         # Dependencies & metadata

API Coverage

API

Base URL

Purpose

CLOB

clob.polymarket.com

Order books, prices, spreads, market data

Gamma

gamma-api.polymarket.com

Market/event discovery, metadata, search

Data

data-api.polymarket.com

Positions, trades, activity, open interest

CLOB Auth

clob.polymarket.com

Order placement/cancellation, balances

Development

npx -y @modelcontextprotocol/inspector uv run polymarket-mcp

Safety Guards

The trading tools include built-in safety mechanisms:

  • Dry-run mode (POLYMARKET_DRY_RUN=true): Orders are simulated and returned as JSON without executing. Enabled by default.

  • Max order size (POLYMARKET_MAX_ORDER_SIZE): Orders exceeding this USD value are rejected. Default: $100.

  • Lazy authentication: The server starts without credentials โ€” read-only tools work immediately. Auth is only initialized when a trading tool is first called.

Tool Reference

Tool

Description

search_events

Search events by query, tag, active/closed status

get_event

Get event details including all child markets

search_markets

Search markets with filters (volume, tag, status)

get_gamma_market

Get full market metadata by ID or slug

Tool

Description

get_price

Best bid/ask price for a token

get_midpoint / get_midpoints

Mid-market price (single / batch)

get_spread / get_spreads

Bid-ask spread (single / batch)

get_order_book / get_order_books

Full order book depth (single / batch)

get_last_trade_price / get_last_trades_prices

Last executed price (single / batch)

Tool

Description

get_price_history

Historical time-series with configurable interval and fidelity

get_open_interest

Total shares outstanding for a market

Tool

Description

get_positions

Current holdings with P&L breakdown

get_trade_history

Historical executed trades

get_activity

Full audit trail (trades, splits, merges, rewards)

Tool

Description

place_order

Place a limit order (BUY/SELL, GTC/FOK/GTD/FAK)

cancel_order

Cancel a specific order

cancel_orders

Cancel multiple orders

cancel_all_orders

Emergency kill switch โ€” cancel everything

get_open_orders

List all pending orders

get_order

Get order status and details

get_balance_allowance

Check USDC balance and approvals

Tool

Description

clob_health_check

API health check

clob_server_time

Server timestamp

get_clob_markets / get_clob_simplified_markets

Browse CLOB market listings

get_tick_size / get_neg_risk / get_fee_rate

Market trading parameters

get_market_trades_events

Live trade feed for a market

Example Usage

Once connected to Claude Desktop, you can ask:

"What are the hottest markets on Polymarket right now?"

"Show me the Bitcoin price history over the last week"

"What's the order book depth for the Fed rate decision market?"

"Place a dry-run buy order for 100 YES shares at $0.35 on the Super Bowl market"

โš ๏ธ Disclaimer

This software is provided for educational and informational purposes only. It is not financial advice.

  • Trading prediction markets involves risk. You may lose some or all of your funds.

  • The authors are not responsible for any financial losses incurred through the use of this software.

  • You are solely responsible for your own trading decisions and for complying with all applicable laws and regulations in your jurisdiction.

By using this software, you acknowledge and accept these risks.

License

MIT

Available Tools

34 tools
cancel_all_ordersB

Cancel ALL currently active open orders sequentially. Functions as an emergency kill switch.

Deploy this operation functionally to immediately liquidate all pending structural positions.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.4/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full behavioral burden. It conveys the destructive blast radius ('ALL', 'liquidate all pending positions') and ordering behavior ('sequentially'), but omits irreversibility, permission requirements, and how partial cancellations or failures are handled.

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

Conciseness3/5

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

The first sentence is tight and front-loaded. The second sentence ('Deploy this operation functionally to immediately liquidate all pending structural positions') is jargon-heavy and largely restates the first, so it does not fully earn its place.

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?

An output schema exists, so return values need not be explained. However, for a zero-annotation destructive operation, the description should disclose irreversibility or failure behavior and does not, leaving an important gap.

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?

The tool takes no parameters, so per the baseline this scores 4. There is nothing for the description to clarify beyond the schema.

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?

Specific verb plus resource: 'Cancel ALL currently active open orders' clearly states what happens and the scope ('ALL'). The 'emergency kill switch' framing reinforces the distinct blast radius versus sibling tools like cancel_order and cancel_orders, though it never names those siblings explicitly.

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?

'Functions as an emergency kill switch' implies an when-to-use context, but usage is only implied rather than stated. There is no guidance on when NOT to use it (e.g., prefer cancel_order for a single order) nor any stated prerequisite or alternative.

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

cancel_orderA

Cancel an individual specified open limit order directly via its unique ID.

Args: order_id (str): The unique transaction order ID returned functionally during order placement.

ParametersJSON Schema
NameRequiredDescriptionDefault
order_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.6/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full behavioral burden. It states that the order is 'open' and canceled 'directly' via its ID, but does not disclose whether cancellation is irreversible, what permissions are required, what happens if the order is already filled, or any error/failure behavior.

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 front-loaded with the tool's action and scope, followed by a single parameter note. It is appropriately sized overall, though 'individual specified' is slightly redundant and 'returned functionally' is imprecise.

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?

For a simple single-parameter cancellation tool with an output schema, the description is adequate but not fully complete. It identifies the parameter's origin but omits important behavioral context such as permissions, finality, and edge-case handling, which matters for a mutation operation with no annotations.

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 adds useful meaning by identifying order_id as the unique transaction order ID returned during order placement, but it is somewhat awkwardly worded and does not specify the expected format or constraints of the ID.

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 states a specific verb (cancel) and resource (an individual specified open limit order via its unique ID). It clearly distinguishes this tool from siblings like cancel_all_orders and cancel_orders by emphasizing the individual, ID-based scope.

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 phrase 'individual specified open limit order' implies this is for canceling one order rather than many, which implicitly contrasts with bulk cancel tools. However, it does not explicitly name alternatives or state when not to use this tool.

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

cancel_ordersB

Cancel multiple open limit orders concurrently via their unique IDs.

Args: order_ids (str): A comma-separated sequential string of order IDs to be canceled.

ParametersJSON Schema
NameRequiredDescriptionDefault
order_idsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.3/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full behavioral burden, and it discloses almost nothing. It does not say whether cancellation is irreversible, what happens if some IDs are invalid or already filled (partial-batch semantics), whether it is atomic, or what auth/permissions are required โ€” all material for a batch mutation.

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 operative sentence is front-loaded and tight; the Args block is boilerplate that largely restates the schema property name. Small waste, but the core statement is efficient.

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?

An output schema exists, so return values need not be explained. However, for a batch cancellation with zero annotations, the absence of failure/partial-success semantics and permission requirements leaves the definition only minimally sufficient.

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 description coverage is 0% and the schema only declares a bare string, so the description's 'comma-separated sequential string of order IDs' is the only source of format information and is essential to call the tool correctly. It could add an example or ID format specifics, but it meaningfully compensates for the empty schema.

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?

States a specific verb and resource ('Cancel multiple open limit orders') plus the mechanism ('via their unique IDs'), which implicitly separates it from cancel_all_orders and cancel_order. It never names those siblings, so the differentiation is inferable rather than explicit.

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 'multiple ... via their unique IDs' phrasing implies the situation (you hold a set of IDs), but there is no explicit guidance on when to prefer this over cancel_order or cancel_all_orders, nor any prerequisites. Usage is left to inference.

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

clob_health_checkA

Check if the Polymarket Central Limit Order Book (CLOB) API server is reachable and operational. Returns 'OK' if the API is currently healthy.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior3/5

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

With no annotations, the description carries the full behavioral burden. It discloses the success return value ('OK') and the two conditions tested, which is useful. It omits failure behavior (throws vs returns an error status), auth requirements, and timeout characteristics โ€” modest gaps given the tool's simplicity.

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 short sentences, the purpose front-loaded and the return value second. No filler or restatement of the name.

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?

An output schema exists, so return formatting need not be explained, and the description covers what is checked. The only remaining gap is failure-mode behavior (error vs negative result), which an agent would benefit from knowing before relying on it.

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?

The tool takes zero parameters, so there is nothing for the description to disambiguate. Baseline of 4 applies.

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?

States a specific verb ('Check') and resource ('Polymarket Central Limit Order Book (CLOB) API server') with the condition being tested ('reachable and operational'). This is unambiguously distinct from every sibling tool, all of which fetch market data rather than probe server liveness.

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 purpose implies usage (pre-flight check, connectivity troubleshooting) but never states when to call it, e.g. before placing orders or after a failed request. No alternatives or exclusions are named, though none are really needed for a liveness probe.

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

clob_server_timeA

Get the current server time from the Polymarket CLOB API as a Unix timestamp.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.6/5.0
Behavior2/5

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 the return format but omits any information about authentication requirements, rate limits, caching, or safety profile (e.g., read-only nature).

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?

A single, front-loaded sentence with no superfluous words. It efficiently conveys the essential 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 the low complexity (zero params, output schema provided), the description is nearly complete. It states what is returned and from where, but lacks any indication of when an agent should call it, which would be helpful for routing.

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?

The tool takes zero parameters, and the description adds no parameter information because none is needed. Baseline score of 4 for a parameterless tool is appropriate.

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 states a specific verb ('Get'), resource ('current server time'), source ('Polymarket CLOB API'), and return format ('Unix timestamp'). It is unambiguous and clearly distinct from sibling market-data tools.

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 is given on when to use this tool versus alternatives, nor any prerequisites or exclusions. The description only states what the tool does, leaving the agent to infer usage context.

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

get_activityA

Retrieve a comprehensive activity log for the authenticated user, encompassing trades, splits, merges, and rewards.

Provides a detailed audit trail of all supported account actions. Automatically utilizes the wallet address defined in the POLYMARKET_WALLET_ADDRESS environment variable.

Args: market (Optional[str]): Filter logs by a specific market condition ID. activity_type (Optional[str]): Filter logs by explicit activity type (e.g., 'TRADE', 'SPLIT', 'MERGE', 'REDEEM', 'REWARD', 'CONVERSION'). limit (Optional[int]): The maximum number of paginated results to return. offset (Optional[int]): The pagination offset.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
marketNo
offsetNo
activity_typeNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.6/5.0
Behavior3/5

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

With no annotations, the description must carry the behavioral burden. It discloses an auth/environment detail (POLYMARKET_WALLET_ADDRESS) and that it's a detailed audit trail, which is useful. But it doesn't say whether it requires specific permissions, how pagination interacts with the account-wide scope, or rate limits.

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 first two sentences are front-loaded and efficient, then it transitions to a standard Args block that is appropriate for the 0% schema coverage. There is minor repetition between the first and second paragraphs.

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 that an output schema exists, the description needn't explain return values. It covers the scope, the auth dependency, and all parameters, so it is sufficient for an agent to call it correctly, though it could be clearer on filtering precedence.

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 description coverage is 0%, so the description must document the parameters. It does so for all four, including the activity_type enum values, which compensates for the schema gaps. It could add more on limit/offset defaults or constraints, but it meaningfully covers the parameters.

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 opens with a clear verb+resource (retrieve an activity log) and enumerates the activity categories it covers (trades, splits, merges, rewards). It distinguishes itself from siblings like get_trade_history and get_positions by covering all account actions, though it doesn't explicitly name the alternative tools.

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 gives the context that this is an audit trail for the authenticated user and that it uses a configured wallet address, which implies when to use it. However, it doesn't explicitly say when to prefer this over get_trade_history or what conditions select it.

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

get_balance_allowanceC

Retrieve the functional token balance and structural approval threshold metrics on the Polymarket protocol.

Args: asset_type (Optional[str]): 'COLLATERAL' to fetch the cumulative USDC balance or 'CONDITIONAL' to query conditional outcome token holdings. token_id (Optional[str]): Required intrinsically when the specified 'asset_type' functions as 'CONDITIONAL'.

ParametersJSON Schema
NameRequiredDescriptionDefault
token_idNo
asset_typeNoCOLLATERAL

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.8/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full behavioral burden. It implies a read via 'retrieve' but never states whether authentication is required, whether the data is on-chain vs cached, or any rate/scope behavior. For a query tool with zero annotation coverage this is a notable gap.

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

Conciseness3/5

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

The Args block is well-structured, but the lead sentence is bloated with opaque modifiers ('functional', 'structural', 'metrics') and the token_id note is convoluted. It is appropriately sized overall but not as front-loaded or plain as it could be.

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?

An output schema exists, so return values need not be explained. However, for a tool with no annotations and no sibling routing, the description omits authentication/scope context and any hint of when this beats get_positions, leaving meaningful gaps for proper invocation.

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%, so the description is the only source of parameter meaning, and it delivers: it defines asset_type ('COLLATERAL' for USDC balance, 'CONDITIONAL' for outcome token holdings) and the conditional dependency of token_id. The wording ('Required intrinsically when... functions as') is awkward and the token_id format is unspecified, but it substantially compensates for the bare schema.

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

Purpose3/5

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

The verb 'retrieve' is clear, but the resource is obscured by jargon: 'functional token balance and structural approval threshold metrics' is abstract where 'token balance and allowance' would be precise. An agent can infer this reports balances/allowances, but the phrasing is vague and gives no differentiation from siblings like get_positions.

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?

There is no statement of when to use this tool versus alternatives (e.g. get_positions, get_activity), nor any prerequisites or context. Usage must be entirely inferred from the name and the one-line purpose.

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

get_clob_marketB

Retrieve detailed, comprehensive information regarding a single Polymarket prediction market.

Args: condition_id (str): The unique on-chain identifier corresponding to the specific market's conditions.

ParametersJSON Schema
NameRequiredDescriptionDefault
condition_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full behavioral burden, yet it discloses nothing about auth requirements, rate limits, caching, or what happens when the condition_id is unknown. "Detailed, comprehensive" is marketing framing rather than behavioral disclosure.

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?

One front-loaded sentence stating purpose and scope, followed by a minimal Args line. No filler beyond the slightly redundant restatement of the parameter in docstring form.

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?

An output schema exists, so return-value detail is not needed. What is missing for a single-resource lookup tool is how to source the condition_id, error behavior for invalid ids, and routing versus the plural/gamma market siblings.

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 coverage is 0% and the schema only labels the field "Condition Id", so the description's "unique on-chain identifier corresponding to the specific market's conditions" genuinely adds meaning. However, it does not give the expected format (hex, length) or where to obtain the value.

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?

States a specific verb ("Retrieve") and resource ("a single Polymarket prediction market") with detail scope. The word "single" implicitly contrasts with the list-oriented siblings get_clob_markets/get_clob_simplified_markets, though no sibling is named explicitly.

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 choose this over get_clob_markets, get_gamma_market, or search_markets, and no prerequisites (e.g., where a condition_id comes from) are stated. Usage is only implied by the word "single".

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

get_clob_marketsB

Retrieve a paginated list of all prediction markets actively trading on the Polymarket CLOB API.

Provides comprehensive details for each market, including the on-chain condition IDs, corresponding outcome token IDs, and trading configuration parameters.

Args: next_cursor (Optional[str]): The pagination cursor string returned from a previous request. Omit this argument to fetch the first page of results.

ParametersJSON Schema
NameRequiredDescriptionDefault
next_cursorNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.4/5.0
Behavior3/5

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

No annotations, so the description carries the full behavioral burden. It discloses the pagination model and that only actively-trading markets are returned, which is useful. But it omits auth/permission requirements and rate-limit behavior; the output schema covers return format, so this is adequate-but-incomplete.

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?

Three short, front-loaded paragraphs; the core purpose leads and the param note is compact. Minor redundancy between the opening line and the detail sentence, but nothing wasteful.

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?

An output schema exists, so return-value explanation is unnecessary and correctly absent. The description covers what the list contains and how to page through it; the main gap is sibling differentiation for a tool family with heavy overlap.

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%, so the description must compensate, and it does: it fully explains next_cursor as a cursor from a prior request and instructs omitting it to get the first page. This adds meaning the schema does not.

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?

States a specific verb (Retrieve/list) and resource (prediction markets actively trading on the Polymarket CLOB API) with clear scope. The 'comprehensive details' framing hints at how it differs from get_clob_simplified_markets, but it never names a sibling to disambiguate.

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?

The only usage guidance is about the pagination parameter ('omit to fetch the first page'). There is no when-to-use, when-not-to-use, or routing to alternatives like get_clob_simplified_markets, get_clob_market, or search_markets, despite many overlapping siblings.

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

get_clob_simplified_marketsA

Retrieve a paginated, simplified list of all prediction markets actively trading on the Polymarket CLOB API.

This provides less detail than get_clob_markets but operates significantly faster, making it suitable for overview data.

Args: next_cursor (Optional[str]): The pagination cursor string returned from a previous request. Omit this argument to fetch the first page of results.

ParametersJSON Schema
NameRequiredDescriptionDefault
next_cursorNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.2/5.0
Behavior3/5

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

No annotations are provided, so the description must carry behavioral context. It discloses the performance tradeoff (faster, less detail) and pagination via cursor, which adds value. But it doesn't mention rate limits, authentication requirements, expected response size, or pagination termination behavior.

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?

Front-loaded with purpose and scope, followed by the comparison to the sibling and a targeted Args section. Every sentence adds information without redundancy.

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 an output schema exists, the description needn't explain return values. It covers the tool's purpose, the performance tradeoff, and the sole parameter's semantics. It could be more complete by mentioning authentication or rate limits, but for a read-only overview tool it's nearly sufficient.

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 description coverage is 0%, so the description must compensate. It explains the next_cursor parameter: it's a pagination cursor from a previous request, and omitting it fetches the first page. This adds meaningful semantics beyond the empty schema. A 4 rather than 5 because it doesn't describe cursor format or maximum page size.

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?

States a specific verb (retrieve), resource (paginated simplified list of prediction markets), scope (actively trading on the Polymarket CLOB API), and explicitly distinguishes it from the sibling get_clob_markets by stating it provides less detail but is faster.

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?

Clearly states when to use this tool (overview data, faster) and names the alternative (get_clob_markets) with the tradeoff. However, it doesn't give explicit when-not conditions or describe scenarios where the fuller detail is required.

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

get_eventA

Retrieve detailed, comprehensive information regarding a specific Polymarket event.

Provides complete event metadata alongside a listing of all associated constituent markets, including their real-time prices, trading volumes, and specific outcome token identifiers.

Args: event_id (str): The unique Gamma identifier for the event (formatted as a numeric string).

ParametersJSON Schema
NameRequiredDescriptionDefault
event_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.6/5.0
Behavior3/5

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

With no annotations, the description carries the full behavioral burden. It does disclose the payload shape (metadata plus constituent markets with prices, volumes, token IDs), which implies a read-only, rich-return operation, but says nothing about authentication, rate limits, pagination, or error behavior for an invalid event_id.

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 purpose sentence is front-loaded and information-dense, and the Args block is short. The parameter line mildly restates the schema name, but the format hint earns its place.

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?

An output schema exists, so return-value explanation is technically optional, yet the description adds a useful summary of the payload. With a single fully-described required parameter and no complex nested structures, an agent has enough to invoke it correctly.

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 description coverage is 0%, so the description must compensate, and it does: event_id is characterized as the unique Gamma identifier formatted as a numeric string, adding source-system and format meaning beyond the bare 'Event Id' title in the schema.

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?

States a specific verb ('Retrieve') and resource ('a specific Polymarket event') and enumerates what the response contains (metadata, constituent markets, prices, volumes, outcome token identifiers). This clearly distinguishes it from siblings like search_events or get_gamma_market, though it does not name those siblings explicitly.

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?

Usage is only implied: the 'specific event' framing signals lookup-by-identifier rather than discovery, so an agent can infer it is the counterpart to search_events. However, there is no explicit when-to-use/when-not statement, no mention of prerequisites, and no named alternative.

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

get_fee_rateC

Retrieve the baseline trading fee rate (measured in basis points) applicable to a specific token's market.

Args: token_id (str): The fundamental token identifier indicating the outcome side.

ParametersJSON Schema
NameRequiredDescriptionDefault
token_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.7/5.0
Behavior2/5

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 says the rate is 'baseline' and 'applicable to a specific token's market', which hints at scoping, but it does not disclose whether the value is static, cached, rate-limited, or how it varies over time. No output schema is referenced in the text, though one exists.

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 front-loaded and concise, with the core purpose in the first sentence and a brief parameter note. The 'Args:' block is slightly redundant given the single parameter but not wasteful.

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

Completeness2/5

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

With no annotations, low parameter coverage, and no reference to the existing output schema, the description is insufficient for a tool that returns a numeric rate. It omits units context beyond 'basis points', default behavior, and edge cases, leaving the agent under-informed.

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

Parameters2/5

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

Schema description coverage is 0% and there is one required parameter. The description adds only 'The fundamental token identifier indicating the outcome side', which is somewhat vague and does not explain format, source, or relationship to other tools. It adds marginal meaning but does not compensate for the missing schema descriptions.

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?

States a specific verb and resource ('Retrieve the baseline trading fee rate... for a specific token's market') and clarifies the unit (basis points). It does not explicitly differentiate itself from siblings like get_tick_size or get_neg_risk, but the resource is distinct enough to be identifiable.

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, no prerequisites, and no exclusions. The agent must infer usage from the name and description alone.

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

get_gamma_marketB

Retrieve detailed, comprehensive information regarding a single, specific Polymarket market natively via the Gamma API.

Provides complete structural market metadata including the core question, qualitative description, array of outcomes, respective CLOB token IDs, global condition ID, cumulative volume, and definitive resolution parameters.

Args: market_id_or_slug (str): The unique Gamma market mapping ID (numeric string) or URL-friendly slug.

ParametersJSON Schema
NameRequiredDescriptionDefault
market_id_or_slugYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.3/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. 'Retrieve' plus the enumerated metadata (question, outcomes, CLOB token IDs, condition ID, volume, resolution params) makes clear this is a non-mutating read and tells the agent what data comes back. It omits auth requirements, error behavior for invalid slugs, and rate limits.

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

Conciseness3/5

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

Front-loaded with the core action, which is good, but 'detailed, comprehensive' is redundant padding and 'natively' adds little. The Args block usefully documents the parameter but is somewhat verbose for a single argument.

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 one required string parameter, an existing output schema (so return values need not be spelled out), and read-only semantics, the definition covers what the agent needs to invoke correctly. The main missing piece is routing guidance relative to the many sibling market/event tools.

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 description coverage is 0%, so the description must compensate, and it does: it explains that the argument is the Gamma market mapping ID (numeric string) or a URL-friendly slug, which the bare schema never says. Minor gap is that it doesn't note format constraints or invalid-input behavior.

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?

States a specific verb (Retrieve) and resource (a single Polymarket market) and names the API surface (Gamma API), which implicitly distinguishes it from the CLOB-family siblings like get_clob_market. It does not explicitly name the sibling alternative, so it stops short of a 5.

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?

The phrase 'a single, specific market' implies this is for one known market rather than list/search, but there is no explicit when-to-use, when-not-to-use, or named alternative (e.g. search_markets, get_event, get_clob_market). The agent must infer routing.

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

get_last_trade_priceC

Retrieve the exact transaction price of the most recently executed trade for an outcome token.

Args: token_id (str): The fundamental token identifier indicating the outcome side.

ParametersJSON Schema
NameRequiredDescriptionDefault
token_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description carries the full behavioral burden. It implies a read operation but says nothing about staleness of the 'last' price, behavior when no trades have executed, error conditions, or rate limits โ€” meaningful gaps for a market-data lookup in a trading context.

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?

Two sentences plus a short Args block, with the core purpose front-loaded and no wasted prose. The Args restatement adds little, but the whole thing stays tight.

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?

An output schema exists, so return-format explanation is not required. However, for a read-only market-data tool with zero annotation coverage and 0% param coverage, the missing notes on no-trade/no-data behavior and token_id format leave the definition merely adequate.

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% and the schema only labels the field 'Token Id', so the description must compensate. It does add meaning by calling token_id 'the fundamental token identifier indicating the outcome side', but gives no format or how to obtain a valid token_id, leaving the gap only partially closed.

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?

States a specific verb ('Retrieve') and resource ('exact transaction price of the most recently executed trade') scoped to an outcome token. The singular 'most recently executed trade' implicitly distinguishes it from the plural sibling get_last_trades_prices, but it never names or explicitly contrasts with that sibling or with get_price.

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?

The description only says what the tool does; it gives no context on when to prefer it over get_price, get_last_trades_prices, or get_price_history. There are no exclusions or prerequisites stated, so the agent must infer usage from the name alone.

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

get_last_trades_pricesB

Retrieve the transaction prices of the most recently executed trades for multiple outcome tokens concurrently.

Args: token_ids (str): A comma-separated list of foundational token IDs.

ParametersJSON Schema
NameRequiredDescriptionDefault
token_idsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.4/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full behavioral burden. It does not state read-only/non-destructive nature, rate limits, behavior on missing/invalid token IDs, or error handling for tokens with no trades. 'Most recently executed trades' hints at latest-price semantics but nothing more.

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 core sentence is front-loaded, precise, and free of filler. The Args block is slightly redundant in restating the string type and adds little beyond the schema, so not a perfect score.

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?

Because an output schema exists, return values need not be explained. But with no annotations and a mutation-free read tool, missing guidance on batch behavior, missing-token handling, and explicit sibling differentiation leaves an agent with unanswered operational questions.

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% and there is only one parameter. The description compensates by specifying the format: a comma-separated list of foundational token IDs. That is genuinely useful beyond the schema, but the term 'foundational' is ambiguous and no ID format or example is given.

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?

States a specific verb (retrieve), resource (transaction prices of most recently executed trades), and scope (multiple outcome tokens concurrently). Distinguishes itself from the singular sibling get_last_trade_price by emphasizing the concurrent multi-token batch behavior.

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 phrase 'most recently executed trades' and 'multiple outcome tokens concurrently' implies a batch-latest-price use case, and the singular sibling name suggests a per-token alternative. However, the description never explicitly says when to prefer this over get_last_trade_price or get_price, leaving the agent to infer.

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

get_market_trades_eventsB

Fetch the stream of live trade activity and lifecycle events occurring on a specific Polymarket prediction market.

Args: condition_id (str): The unique on-chain identifier corresponding to the specific market's conditions.

ParametersJSON Schema
NameRequiredDescriptionDefault
condition_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.4/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full disclosure burden. It conveys that this returns a live stream of trades plus lifecycle events, which is useful behavioral context, but says nothing about auth requirements, rate limits, or mutability. Output formatting is covered by the output schema, so that gap is acceptable.

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?

Purpose is front-loaded in the first sentence, with the argument detail following in an Args block. No filler, though the Args formatting is slightly heavier than a one-parameter tool strictly needs.

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?

The tool is simple (one required parameter) and an output schema covers return values, so the description need not explain them. It documents the lone parameter and the live-stream nature adequately; the main omission is explicit usage routing against siblings.

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 sole parameter is documented only by its bare title in the schema. The description compensates by explaining that condition_id is the unique on-chain identifier for the market's conditions, adding meaning beyond the schema.

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?

States a specific verb ('Fetch') and resource ('stream of live trade activity and lifecycle events') scoped to a specific prediction market. The word 'live' implicitly distinguishes it from historical siblings, but it never names an alternative sibling to sharpen the distinction.

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?

There is no explicit when-to-use guidance and no comparison against alternatives like get_trade_history or get_activity. The only routing signal is the implied 'live' vs historical framing, which an agent must infer.

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

get_midpointB

Calculate and return the mid-market price for a specified outcome token.

The midpoint serves as a fair-value indicator generated by averaging the current best bid and best ask prices.

Args: token_id (str): The fundamental token identifier indicating the outcome side.

ParametersJSON Schema
NameRequiredDescriptionDefault
token_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.1/5.0
Behavior3/5

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

No annotations are supplied, so the description must carry the behavioral load. It does add real value by explaining the computation (averaging current best bid and best ask), which tells the agent what the value represents, but it omits behavior for illiquid/empty books, error conditions, and confirms nothing about read-only safety.

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

Conciseness3/5

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

The core sentences are lean and front-loaded, but the trailing 'Args: token_id (str)' block merely restates the schema and duplicates information already available, adding mild waste without new meaning.

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?

An output schema exists, so return-value explanation is not required, and the single read-only parameter keeps the tool simple. Missing is any routing guidance relative to the many price/spread siblings, leaving the definition adequate but with an obvious gap.

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% (the schema only gives the bare string type 'Token Id'). The description partially compensates by describing token_id as 'the fundamental token identifier indicating the outcome side', which adds outcome-side meaning, but it still does not explain format, where to obtain it, or how it maps to a market.

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?

States a specific verb+resource ('Calculate and return the mid-market price for a specified outcome token') and defines what a midpoint is, so the operation is unambiguous. However it never differentiates itself from the very similar sibling get_midpoints (plural), which an agent would need to disambiguate.

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?

There is no when-to-use guidance, no prerequisite, and no direction to alternatives such as get_price, get_spread, or get_midpoints. The only hint is the 'fair-value indicator' framing, which implies a use case but does not route the agent between siblings.

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

get_midpointsA

Calculate and return the mid-market prices concurrently for multiple outcome tokens.

Args: token_ids (str): A comma-separated list of foundational token IDs to fetch fair value for.

ParametersJSON Schema
NameRequiredDescriptionDefault
token_idsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.9/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full behavioral burden. It usefully discloses that prices are calculated concurrently, but it does not state read-only safety, authentication needs, rate limits, or error behavior; the output schema helps only with return shape.

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 purpose sentence is front-loaded and the Args block is compact and directly useful. There is no redundant or wasted text.

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?

With an output schema present, return values do not need explanation. The description covers the single parameter and the operation clearly enough for a simple getter, though it omits explicit routing guidance versus the singular get_midpoint.

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% and the schema only says token_ids is a string. The description fully compensates by explaining that token_ids is a comma-separated list of foundational token IDs used to fetch fair value.

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 uses a specific verb and resource: calculate and return mid-market prices. It also scopes the operation to multiple outcome tokens, which implicitly separates it from the singular get_midpoint sibling, though it does not name that sibling explicitly.

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 phrase 'for multiple outcome tokens' implies when this batch tool should be used instead of a single-token alternative, but no explicit when/when-not guidance or named alternative is provided. Usage is therefore implied rather than stated.

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

get_neg_riskC

Verify whether a specified outcome token's market utilizes the negative risk mathematical framework.

Args: token_id (str): The fundamental token identifier indicating the outcome side.

ParametersJSON Schema
NameRequiredDescriptionDefault
token_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full behavioral burden. 'Verify whether' implies a read-only determination (likely a boolean), which is some disclosure, but it says nothing about auth needs, rate limits, or what the check actually entails. The return shape is covered only by the output schema.

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 purpose is front-loaded in a single clear sentence, and the Args block is minimal. Formatting is slightly verbose for a single parameter but nothing is wasted.

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?

An output schema exists, so return values needn't be explained. However, with no annotations and no usage guidance, the definition is only minimally complete for a domain-specific tool, and it never explains what the negative-risk framework is or when the result matters.

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 partially does by explaining that token_id is 'the fundamental token identifier indicating the outcome side,' adding meaning beyond the bare schema. It still leaves open the token format/origin.

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 states a specific verb ('Verify whether') and a precise resource (a specified outcome token's market and its use of the negative-risk framework), which is unambiguous for an agent. It doesn't explicitly differentiate from siblings, but none of the listed siblings perform this neg-risk check, so confusion risk is low.

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?

There is no guidance on when to call this versus alternatives, no prerequisites, and no indication of why one would verify neg-risk (e.g., before trading or resolving a multi-outcome market). Usage can only be inferred from the name and description.

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

get_open_interestA

Retrieve the current open interest (total outstanding shares) for a specific market or globally.

Open interest serves as an indicator of market conviction and overall liquidity.

Args: condition_id (Optional[str]): The unique on-chain identifier for a specific market's conditions. Omit to retrieve a global aggregate.

ParametersJSON Schema
NameRequiredDescriptionDefault
condition_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.6/5.0
Behavior3/5

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

With no annotations, the description must carry the full behavioral burden. 'Retrieve' implies a safe read, and it explains the meaning of the metric (conviction/liquidity indicator), but it states nothing about authentication, rate limits, data freshness, or what the aggregate actually represents. Some value added, but major traits undisclosed.

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?

Front-loaded with the core action and reasonably tight. The middle sentence about open interest as an indicator of conviction/liquidity is contextual but somewhat filler relative to invocation needs, though not egregious.

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 single optional parameter read tool with an output schema present, the description covers the essential invocation semantics. Return values need not be explained given the output schema, leaving only minor gaps around data source and timeliness.

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%, so the description must compensate, and it does: condition_id is described as the unique on-chain market condition identifier, and the omission semantics (global aggregate) are spelled out. This adds meaning well beyond the bare schema property name.

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?

States a specific verb (Retrieve) and resource (open interest), defines it as total outstanding shares, and covers both market-scoped and global scope. It is clear and distinguishable from data siblings like get_price, though it does not name any sibling explicitly.

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 gives a useful usage signal: omit condition_id to get a global aggregate. However, it offers no explicit when-to-use-vs-alternatives guidance and does not say when open interest is preferable over related market-data tools such as get_spread or get_order_books.

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

get_open_ordersB

Retrieve a comprehensive list of all open/pending limit orders currently active for the authenticated account.

Args: market (Optional[str]): Explicitly filter results chronologically by market condition ID. asset_id (Optional[str]): Explicitly filter results specifically by CLOB token ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
marketNo
asset_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.4/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden. It does disclose that results are limited to the authenticated account and to active orders only, which is useful behavioral context, but it says nothing about pagination limits, ordering, rate limits, or auth/permission requirements for a listing endpoint that may return many records.

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 purpose is front-loaded in a single clear sentence and the Args block is compact. There is mild redundancy in 'comprehensive list of all open/pending limit orders currently active', but nothing is wasted to the point of harm.

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?

An output schema exists, so return values needn't be explained. For a low-complexity read tool with two optional parameters, the description covers purpose, scope, and both filter parameters; the only real gap is pagination/volume behavior, which is minor here.

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 description coverage is 0%, so the description must compensate, and it does document both parameters with domain-specific meaning ('market condition ID' and 'CLOB token ID') rather than bare types. The phrasing 'filter results chronologically by market condition ID' is slightly muddled, keeping it from a 5.

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?

States a specific verb and resource ('Retrieve ... open/pending limit orders') scoped to 'the authenticated account', which is enough to distinguish it from siblings like get_order (single order), get_trade_history, and get_positions. It does not explicitly name an alternative tool, so it falls short of a 5.

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?

There is no when-to-use guidance, no statement of when not to use it, and no mention of sibling alternatives such as get_order or cancel_all_orders. Usage must be inferred entirely from the purpose sentence.

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

get_orderB

Retrieve granular structural details and fundamental status of a specifically defined order.

Args: order_id (str): The unique transaction order ID to dynamically query.

ParametersJSON Schema
NameRequiredDescriptionDefault
order_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.4/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full behavioral burden and largely fails it. It does not say whether the order must belong to the caller, what happens for an unknown/cancelled order_id, whether authentication is required, or whether the returned status is live or last-known. Only the trivial fact that this is a read is conveyed.

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?

Very short and front-loaded, with the parameter documented in a clean Args block. The opening clause is somewhat inflated ('granular structural details and fundamental status') where a plain 'returns order details and status' would earn its place better.

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?

An output schema exists, so return-value documentation is unnecessary, and for a single-parameter read tool the description covers what an agent needs to invoke it. The remaining gap (error/auth behavior) is minor given the tool's simplicity.

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 coverage is 0% (order_id has no description in the schema), so the description must compensate and partially does by defining order_id as 'the unique transaction order ID to dynamically query.' However it omits format expectations (string encoding, exchange/symbol scoping), leaving some ambiguity for a required parameter.

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?

Specific verb (Retrieve/query) plus resource (order) and scope (a specifically defined order, i.e. by ID), which distinguishes it from the list-style sibling get_open_orders. The phrasing 'granular structural details and fundamental status' is vague marketing filler rather than a precise statement of what fields come back, but the core purpose is unmistakable.

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?

No explicit when-to-use statement and no named alternatives, but the phrase 'a specifically defined order' implicitly signals the by-ID lookup case versus bulk/list tools like get_open_orders. An agent can infer the use case but is given no exclusions or prerequisite conditions.

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

get_order_bookB

Retrieve the current full depth of the order book (all pending bids and asks) for a specific outcome token.

This provides a complete snapshot of all open buy and sell orders mapped to their respective price levels.

Args: token_id (str): The fundamental token ID associated with a specific outcome (e.g., the YES or NO side of the bet) in a prediction market.

ParametersJSON Schema
NameRequiredDescriptionDefault
token_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.2/5.0
Behavior3/5

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

No annotations provided, so description carries full burden. It mentions 'full depth' and 'complete snapshot of all open buy and sell orders mapped to their respective price levels,' which adds some behavioral context about what's returned. However, it doesn't disclose rate limits, caching, or auth requirements. Since output schema exists, return format is less critical.

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?

Front-loaded with the core action and resource, followed by a concise elaboration and parameter description. No wasted sentences, though the Args section is brief.

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?

With output schema present, the description needn't explain return values, and it does provide parameter semantics. However, as a market data tool with no annotations, more guidance on when to use it vs siblings and any behavioral traits (e.g., data freshness) would improve completeness.

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%, but the description provides semantic meaning for token_id: 'The fundamental token ID associated with a specific outcome (e.g., the YES or NO side of the bet) in a prediction market.' This adds context beyond the schema's bare 'Token Id' title, compensating for the lack of schema description.

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?

Clear specific verb+resource: 'Retrieve the current full depth of the order book (all pending bids and asks) for a specific outcome token.' This distinguishes it from sibling get_price and get_order_books (plural), though the description doesn't explicitly differentiate from the plural variant. Purpose is clear but lacks sibling differentiation.

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 vs alternatives like get_order_books (plural), get_price, or get_midpoint. The description implies it's for a single token's full depth, but doesn't state exclusions or alternatives.

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

get_order_booksB

Retrieve the current order books for up to multiple discrete tokens concurrently.

Args: token_ids (str): A comma-separated list of foundational token IDs to fetch mapping for.

ParametersJSON Schema
NameRequiredDescriptionDefault
token_idsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.3/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full behavioral burden. It says the data is current and can be fetched concurrently, but does not disclose authentication needs, rate limits, failure behavior, or whether the result is a snapshot.

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 front-loaded and appropriately sized: one main sentence followed by a compact Args block. There is no filler, though 'up to multiple' is slightly awkward phrasing.

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?

An output schema exists, so return details need not be explained, and the lone parameter is documented. Still, with no annotations and no explicit routing between this and the singular get_order_book, the definition leaves some operational context implicit.

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 description coverage is 0%, so the description must compensate for the single parameter. It usefully defines token_ids as a comma-separated list of foundational token IDs, adding format meaning beyond the schema's bare string type.

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 states a specific verb and resource: retrieve current order books. The phrase 'up to multiple discrete tokens concurrently' distinguishes it implicitly from the singular sibling get_order_book, though that sibling is not named explicitly.

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 concurrency and multi-token phrasing implies this is for fetching several order books at once, rather than the singular get_order_book. However, there is no explicit when-not guidance or named alternative.

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

get_positionsA

Retrieve current portfolio positions and quantitative holdings for the authenticated user.

Provides detailed position data including share size, average entry price, and calculated P&L for each held outcome token. Automatically utilizes the wallet address defined in the POLYMARKET_WALLET_ADDRESS environment variable.

Args: market (Optional[str]): Filter results by a specific market condition ID. event_id (Optional[str]): Filter results by a specific overarching event ID. size_threshold (Optional[float]): The minimum numerical position size required for inclusion in the results. limit (Optional[int]): The maximum number of paginated results to return. offset (Optional[int]): The pagination offset.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
marketNo
offsetNo
event_idNo
size_thresholdNo

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?

No annotations are provided, so the description carries the full burden, and it does disclose the key behavioral trait: it 'Automatically utilizes the wallet address defined in the POLYMARKET_WALLET_ADDRESS environment variable', which is critical auth context. It also describes returned fields (share size, entry price, P&L). It stops short of stating rate limits, error behavior, or what empty results mean.

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?

Front-loaded purpose sentence, then a detail sentence, then a clean Args block per parameter. Well-structured and each section earns its place. Slightly verbose in prose but no wasted filler.

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?

For a 5-param, no-required, read-only positions tool with an output schema present (so return values need not be explained), the description covers purpose, auth source, and all parameter semantics. Nothing an agent needs to call it correctly is missing.

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 description coverage is 0%, so the description must compensate, and it does document all five parameters with types and intent (filter by market condition ID, event ID, min size threshold, pagination limit/offset). This meaningfully exceeds the bare schema. Minor gap: no default/pagination interaction detail.

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?

States a specific verb+resource ('Retrieve current portfolio positions and quantitative holdings') and scopes it to the authenticated user. Distinguishes itself from price/market siblings like get_price and get_clob_markets by describing position-level P&L data. An agent can tell this returns holdings, not market data.

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 establishes context ('for the authenticated user') and reveals the env-var wallet source, which implies usage preconditions. However, it never states when to use this over alternatives like get_activity or get_trade_history, nor exclusions. Usage is implied rather than guided.

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

get_priceB

Fetch the single best available price for a given outcome token on a specified directional side.

Pricing maps intrinsically to outcome probabilities in the range 0.00 to 1.00.

Args: token_id (str): The fundamental token identifier indicating the outcome side. side (str): The designated trading side to check, either strictly 'BUY' or 'SELL'.

ParametersJSON Schema
NameRequiredDescriptionDefault
sideYes
token_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.4/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full behavioral burden. It usefully discloses that the returned price maps to an outcome probability in the 0.00โ€“1.00 range and that side must be strictly 'BUY' or 'SELL', but it omits freshness, failure modes, rate limits, and authentication requirements.

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 front-loaded with the core purpose, then adds a useful semantic note and a structured Args list. It is appropriately sized, with only minor filler in phrasing like 'intrinsically'.

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?

An output schema exists, so return-value details are not required here. Given the simple two-parameter read operation, the description covers purpose, both parameters, the side enum, and the output range well enough to call the tool correctly, though it lacks alternative-tool guidance.

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 description coverage is 0%, so the description must compensate. It documents both parameters and supplies the critical side enum ('BUY' or 'SELL') that the schema leaves as a bare string, though token_id is described somewhat vaguely as a 'fundamental token identifier' without format or examples.

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?

States a specific verb ('Fetch') and resource ('single best available price') and scopes it to an outcome token and directional side. It implicitly distinguishes itself from siblings like get_last_trade_price and get_price_history, but does not name them or explicitly contrast the difference.

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?

The description implies a use case (current best price for a BUY or SELL side) but gives no explicit when-to-use guidance, no when-not-to-use guidance, and no alternatives such as get_midpoint, get_spread, or get_price_history.

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

get_price_historyA

Retrieve historical price time-series data for a specified token.

Provides a chronologically ordered list of objects containing timestamp and price data, facilitating charting and trend analysis.

Args: token_id (str): The fundamental token ID associated with a specific outcome. interval (Optional[str]): A predefined time window ending at the current moment. Valid options include: '1h', '6h', '1d', '1w', '1m', 'max'. This parameter is mutually exclusive with 'start_ts'/'end_ts'. fidelity (Optional[int]): The data resolution expressed in minutes (e.g., 60 for hourly data, 1440 for daily data). start_ts (Optional[int]): The starting Unix timestamp in UTC. Use in conjunction with 'end_ts' instead of 'interval'. end_ts (Optional[int]): The ending Unix timestamp in UTC. Use in conjunction with 'start_ts' instead of 'interval'.

ParametersJSON Schema
NameRequiredDescriptionDefault
end_tsNo
fidelityNo
intervalNo
start_tsNo
token_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.9/5.0
Behavior3/5

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 discloses the return format ('chronologically ordered list of objects containing timestamp and price data') and parameter mutual exclusivity, which is useful. However, it omits important behavioral traits such as authentication requirements, rate limits, or error conditions. An output schema exists, so return details are partially covered, but the description still leaves gaps for a read operation.

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 structured with a clear purpose statement, a return format explanation, and an Args section. It is front-loaded with the core function. Some minor redundancy exists (e.g., repeating the mutual exclusivity in both interval and start_ts/end_ts descriptions), but overall it is 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 complexity of the tool (5 parameters, 1 required) and the richness of the input schema (which lacks descriptions), the description provides essential parameter semantics, mutual exclusivity, and return format. An output schema exists, so return values needn't be further explained. It is nearly complete, though it could mention authentication or rate limits for full contextual completeness.

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 description coverage is 0%, so the description must compensate. It provides clear semantics for all five parameters: token_id as the fundamental ID, interval with valid options and mutual exclusivity with start_ts/end_ts, fidelity as resolution in minutes with examples, and start_ts/end_ts as Unix timestamps to use together. This adds substantial meaning beyond the schema's bare 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 states a specific verb (retrieve) and resource (historical price time-series data for a specified token). It clearly distinguishes itself from siblings like get_price (current price) or get_last_trade_price (last trade) by emphasizing historical time-series, which enables charting and trend analysis.

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 for charting and trend analysis but does not explicitly state when to choose this tool over siblings like get_price or get_trade_history. No exclusions or alternatives are provided, leaving the agent to infer context.

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

get_spreadC

Calculate and return the current bid-ask spread for a specified outcome token.

The spread serves as a key liquidity indicator; smaller spreads typically denote deeper, more efficient markets.

Args: token_id (str): The fundamental token identifier indicating the outcome side.

ParametersJSON Schema
NameRequiredDescriptionDefault
token_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full behavioral burden. It explains what the spread value means ('liquidity indicator'), but discloses nothing about auth requirements, rate limits, error behavior, or how the value is computed, which is a notable gap for a computation tool.

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?

Front-loaded with the core purpose, followed by a brief semantic note and an Args block. The liquidity-indicator sentence is mildly interpretive but earns its place as context; overall it is efficiently sized.

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?

An output schema exists, so return-format explanation is not required. Yet with zero annotations, no usage guidance, and a near-identical sibling (get_spreads), the definition is only minimally sufficient for a trivial single-parameter read 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% (only 'Token Id' with no description), so the description must compensate. Its Args section adds some meaning ('fundamental token identifier indicating the outcome side'), but 'fundamental token identifier' is still vague and doesn't explain format or where to obtain it.

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?

States a specific verb ('Calculate and return') and resource ('bid-ask spread for a specified outcome token'), which is clear enough for an agent to know what it does. However, it does not distinguish itself from the very similar sibling get_spreads (plural/batch), leaving ambiguity about which to pick.

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?

The description provides no when-to-use guidance, prerequisites, or alternatives. With siblings like get_spreads, get_midpoint, and get_price available, the agent gets no signal about when this single-token spread lookup is the right choice.

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

get_spreadsB

Calculate and return the current bid-ask spreads for multiple specified tokens concurrently.

Args: token_ids (str): A comma-separated list of foundational token IDs.

ParametersJSON Schema
NameRequiredDescriptionDefault
token_idsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.3/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full behavioral burden. 'Calculate and return' implies a read-only computation, but there is no disclosure of authentication requirements, rate limits, whether spreads are real-time or delayed, or how concurrent requests are handled. This is thin for a zero-annotation tool.

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 short and front-loads the purpose before the Args block. The parameter format note is useful, though the Args-style formatting is slightly verbose for a single parameter.

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?

An output schema exists, so return values need not be explained. However, for a no-annotation query tool the description lacks usage routing against siblings and behavioral context like auth or rate limits, leaving meaningful gaps.

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 description coverage is 0%, so the description must compensate, and it does by specifying the exact format: a comma-separated list of token IDs. That is essential syntactic information the bare string schema does not provide.

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 states a specific verb ('Calculate and return') and resource ('current bid-ask spreads') with the multiplicity scope ('multiple specified tokens concurrently'), which implicitly distinguishes it from the singular sibling get_spread. It does not explicitly name the alternative, but the batch-versus-single distinction is clear enough.

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 word 'multiple' implies use when querying several tokens at once, and the sibling get_spread exists for single-token queries, but the description never states when to prefer this tool over get_spread or get_midpoints. Usage is implied rather than instructed.

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

get_tick_sizeB

Retrieve the minimum allowable price increment (tick size) for trading a specific token's market.

Args: token_id (str): The fundamental token identifier indicating the outcome side.

ParametersJSON Schema
NameRequiredDescriptionDefault
token_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.2/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full behavioral burden. 'Retrieve' implies a non-destructive read, which is the key behavioral signal for an agent, but there is no mention of auth requirements, caching, or whether the value is static per market. For a simple tolerant getter this is minimal but adequate.

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?

Front-loaded single sentence stating purpose, followed by a short Args block that adds the only semantic detail present. No filler, though the Args restatement of an already-named parameter is slightly redundant.

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?

An output schema exists, so return values need not be explained, and the single parameter is described. However, with no annotations and no usage context, the agent gets purpose and parameter meaning but nothing about when to reach for this tool over the many sibling price getters.

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, and it does partially by explaining that token_id is 'the fundamental token identifier indicating the outcome side.' It adds meaning beyond the bare 'Token Id' title, but gives no format/example and only covers the single parameter.

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?

States a specific verb 'Retrieve' and precisely names the resource: the minimum allowable price increment (tick size) for a token's market. This is distinguishable from siblings like get_midpoint and get_spread, though it never explicitly contrasts itself with them.

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?

The description only says what the tool returns; it gives no when-to-use context, no prerequisites (e.g., a valid market/token must exist), and no indication of when another price tool would be preferred. The 'for trading a specific token's market' phrase is scope, not guidance.

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

get_trade_historyB

Retrieve the historical log of executed trades associated with a specific user or market.

Provides chronological records of executed trades, detailing transaction price, share size, designated side, and timestamp.

Args: user (Optional[str]): The wallet address to query historical trades for. market (Optional[str]): Filter results by a specific market condition ID. limit (Optional[int]): The maximum number of paginated results to return. offset (Optional[int]): The pagination offset.

ParametersJSON Schema
NameRequiredDescriptionDefault
userNo
limitNo
marketNo
offsetNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.3/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. 'Retrieve' and 'executed trades' imply a read-only historical query, and it discloses the record contents (price, size, side, timestamp) plus the pagination model โ€” useful behavioral context. However, it says nothing about authentication requirements, data freshness/delay, rate limits, or what happens when both optional filters are omitted.

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 purpose is front-loaded in the first sentence, followed by a single detail sentence and an Args list. The structure is efficient and scannable, with only minor redundancy between the Args block and the schema properties.

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?

An output schema exists, so return-value documentation is not needed, and all four parameters are covered. The gaps are the usage/routing guidance against similar siblings and the unspecified behavior when no filters are supplied โ€” both of which matter for an agent choosing among many trade-related tools.

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 description coverage is 0%, so the schema supplies only types and null defaults. The Args block compensates well: it identifies user as a wallet address, market as a market condition ID, and limit/offset as pagination controls. This is meaningful meaning beyond the schema, though it doesn't state defaults or valid ranges for limit.

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 opens with a specific verb and resource: 'Retrieve the historical log of executed trades,' and states the scoping dimension (specific user or market). It clearly distinguishes itself from price-oriented siblings like get_price_history, but it never explicitly names or contrasts the closest alternatives such as get_market_trades_events or get_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?

There is no when-to-use or when-not-to-use guidance, and no alternative is named. With siblings like get_market_trades_events, get_activity, and get_positions in the same namespace, an agent is left to guess which tool yields an executed-trade log versus trade events or account activity.

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

place_orderA

Place a limit order on a Polymarket prediction market.

โš ๏ธ WARNING: This action actively spends real currency! The total order value (price ร— size) is validated against the POLYMARKET_MAX_ORDER_SIZE prior to API submission. To test safely without financial execution, configure POLYMARKET_DRY_RUN=true in the environment .env file.

Args: token_id (str): The fundamental CLOB token ID indicating the precise outcome side (e.g., YES or NO). price (float): The designated limit price, scaling strictly between 0.01 and 0.99 (representing outcome probability). size (float): The aggregate number of shares to purchase or sell. side (str): The functional trading direction, strictly either 'BUY' or 'SELL'. order_type (Optional[str]): The operational order type payload. Options: GTC (Good-Til-Cancelled), FOK (Fill-Or-Kill), GTD (Good-Til-Date), FAK (Fill-And-Kill). tick_size (Optional[str]): The calculated market tick size structure (e.g., '0.1', '0.01', '0.001', '0.0001'). neg_risk (Optional[bool]): Designates whether the overarching market utilizes a negative risk framework.

ParametersJSON Schema
NameRequiredDescriptionDefault
sideYes
sizeYes
priceYes
neg_riskNo
token_idYes
tick_sizeNo0.01
order_typeNoGTC

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?

With no annotations, the description carries the full burden and does disclose the critical trait: this is a real-money mutation with a pre-submission size validation and a dry-run escape hatch. It does not state auth prerequisites, reversibility/cancellability of a placed order, or failure behavior, leaving some behavioral gaps.

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 warning is front-loaded ahead of the Args block, which is the right priority ordering. Phrasing is somewhat inflated ("The functional trading direction", "The fundamental CLOB token ID") but no sentence is truly wasted.

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?

An output schema exists, so return values need not be described, and the high-stakes money-spend risk plus all params are covered. For a 7-param mutation tool with no annotations, only missing prerequisites (auth, reversibility) keep it from being fully 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?

Schema description coverage is 0%, so the description must compensate, and it does: every one of the 7 params is documented with type and meaning (price bounded 0.01-0.99 as probability, side BUY/SELL, order_type GTC/FOK/GTD/FAK, tick_size examples, neg_risk). This adds substantially more meaning than the bare schema titles.

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?

States a specific verb and resource ("Place a limit order on a Polymarket prediction market") and even pins the order type as a limit order. There is no overlapping sibling (the others are read/cancel tools), so differentiation is effectively automatic, though the description never explicitly routes against alternatives.

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?

Gives strong operating context: it spends real currency, order value is validated against POLYMARKET_MAX_ORDER_SIZE, and POLYMARKET_DRY_RUN=true enables safe testing. It lacks explicit when-not conditions or named alternatives (e.g. checking balance/order book first, using cancel_order to reverse), so it stops short of full alternative guidance.

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

search_eventsA

Search and discover Polymarket prediction events.

Events function as high-level thematic containers grouping related markets (e.g., '2024 US Presidential Election' containing multiple candidate markets). This serves as the primary entry point for exploring the Polymarket ecosystem.

Args: query (Optional[str]): A search term utilized to filter events by their title or descriptive slug. tag (Optional[str]): A thematic category tag for filtering (e.g., 'politics', 'crypto', 'sports'). active (Optional[bool]): Set to true to strictly return currently active and open events. closed (Optional[bool]): Set to true to strictly return resolved or closed events. order (Optional[str]): The chronological or statistical field to sort results by (e.g., 'volume', 'created_at', 'end_date_iso'). ascending (Optional[bool]): The sort direction. Defaults to false (descending order). limit (Optional[int]): The maximum number of paginated results to return. offset (Optional[int]): The pagination offset for results.

ParametersJSON Schema
NameRequiredDescriptionDefault
tagNo
limitNo
orderNo
queryNo
activeNo
closedNo
offsetNo
ascendingNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior3/5

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

No annotations are provided, so the description carries the burden. It discloses read-only search semantics, pagination via limit/offset, and default sort direction (ascending defaults to false). But it omits return format, default page size, behavior when no filters are passed, and rate/limit constraints. Has an output schema, which covers return shape, lowering the bar somewhat.

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

Conciseness3/5

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

Front-loaded with purpose and hierarchy explanation, which is good. The Args block is functional but verbose in a Python-docstring style; the ordering sentence is slightly wordy ('chronological or statistical field to sort results by'). Trade-off between completeness and conciseness is acceptable but not tight.

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 an 8-parameter, filter-heavy search with optional params and an output schema, the description covers purpose, placement in the ecosystem, and every parameter. Missing only cross-references to sibling tools (search_markets/get_event) and return-volume/pagination defaults, so it is nearly complete.

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%, so the description must compensate: it does, documenting all 8 parameters with semantics (query filters by title/slug, tag is thematic category, active/closed scopers, order field examples, ascending default). It adds real meaning beyond the bare schema, though some specifics (valid order values, max limit) are generalized rather than enumerated.

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?

States a clear verb (search/discover) and resource (Polymarket prediction events), and importantly distinguishes events from markets: 'Events function as high-level thematic containers grouping related markets.' This differentiates it from sibling search_markets and get_event.

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?

Explicitly frames the tool as 'the primary entry point for exploring the Polymarket ecosystem,' giving clear context for when to use it. However, it does not name alternatives (e.g., search_markets for individual markets, get_event for a specific event id) or state when not to use it.

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

search_marketsB

Search and discover specific, individual Polymarket prediction markets.

Each individual market constitutes a singular yes/no predictive question utilizing tradeable outcome tokens. These markets provide the fundamental CLOB token IDs intrinsically required for pricing and order book evaluations.

Args: query (Optional[str]): A search term utilized to filter markets by their title or descriptive slug. tag (Optional[str]): A thematic category tag for filtering. active (Optional[bool]): Set to true to strictly return currently active and successfully tradeable markets. closed (Optional[bool]): Set to true to strictly return definitively resolved or settled markets. condition_id (Optional[str]): Filter intrinsically by a unique on-chain condition ID. clob_token_ids (Optional[str]): Filter fundamentally by defined CLOB token IDs. order (Optional[str]): The specific field to sort the payload by. ascending (Optional[bool]): The structural sort direction. limit (Optional[int]): The maximum number of paginated results to return. offset (Optional[int]): The defined pagination offset limit.

ParametersJSON Schema
NameRequiredDescriptionDefault
tagNo
limitNo
orderNo
queryNo
activeNo
closedNo
offsetNo
ascendingNo
condition_idNo
clob_token_idsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.4/5.0
Behavior3/5

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

No annotations provided, so the description carries the full load. It adds genuine domain context about the returned entities and their downstream use, but omits operational behavior: pagination defaults, what happens when active/closed are both unset, and result-size limits. Safe read-only nature is only inferable from the verb 'search'.

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

Conciseness3/5

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

The Args block is well-organized, but the introductory sentences are padded with filler adverbs ('intrinsically', 'fundamentally', 'structural sort direction'). The second sentence's value is real but could be stated in fewer words, so structure is adequate rather than tight.

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?

With 10 optional params, no annotations, and an existing output schema (so return values need not be explained), the description covers parameters and domain model acceptably. It still leaves default pagination behavior, sort-field enumeration, and the boundary with search_events/get_clob_markets to inference.

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 description coverage is 0%, so the description must compensate, and it documents all ten parameters with brief meanings (query filters by title/slug, tag is thematic, active/closed are strict filters, condition_id and clob_token_ids are lookup keys, limit/offset are pagination). Gaps remain for 'order' (allowed field values unstated) and 'ascending' (described only as 'structural sort direction').

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?

Clear verb+resource: 'Search and discover specific, individual Polymarket prediction markets.' It also explains what a market is (a yes/no question with tradeable outcome tokens) and what it yields (CLOB token IDs). Differentiation from siblings like search_events/get_clob_markets is only implied by the word 'individual', not stated outright.

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?

Usage is implied rather than stated: the note that markets 'provide the fundamental CLOB token IDs intrinsically required for pricing and order book evaluations' hints at when to reach for this tool. But there is no explicit when-to-use vs. search_events, get_clob_markets, or get_gamma_market, and no when-not guidance.

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.

  1. 34 tool updatesv1.0.0
    • First observedcancel_all_orders
    • First observedcancel_order
    • First observedcancel_orders
    • First observedclob_health_check
    • First observedclob_server_time
    • First observedget_activity
    • First observedget_balance_allowance
    • First observedget_clob_market
    • First observedget_clob_markets
    • First observedget_clob_simplified_markets
    • First observedget_event
    • First observedget_fee_rate
    • First observedget_gamma_market
    • First observedget_last_trade_price
    • First observedget_last_trades_prices
    • First observedget_market_trades_events
    • First observedget_midpoint
    • First observedget_midpoints
    • First observedget_neg_risk
    • First observedget_open_interest
    • First observedget_open_orders
    • First observedget_order
    • First observedget_order_book
    • First observedget_order_books
    • First observedget_positions
    • First observedget_price
    • First observedget_price_history
    • First observedget_spread
    • First observedget_spreads
    • First observedget_tick_size
    • First observedget_trade_history
    • First observedplace_order
    • First observedsearch_events
    • First observedsearch_markets

TDQS

B3.2/5.0

Scored across 34 tools

Disambiguation3/5

Many tools target distinct operations, but multiple market-retrieval endpoints overlap heavily: get_clob_markets, get_clob_simplified_markets, get_clob_market, get_gamma_market, and search_markets all fetch market information. Singular/plural order-book tools and price variants also require careful selection, though the descriptions help clarify differences.

Naming Consistency4/5

Most tools use snake_case with predictable action prefixes such as get_, place_, cancel_, and search_, and batch variants are generally pluralized. Minor deviations include clob_health_check and clob_server_time, which lack the get_ action prefix, but the overall naming pattern is readable and consistent.

Tool Count2/5

With 34 tools, the surface is above the 25-tool threshold for being heavy and includes several singular/plural duplicates and thin API wrappers. The domain is broad, but the set feels over-expanded rather than tightly scoped.

Completeness4/5

The server covers market discovery, pricing, order books, trading, order management, positions, and balance allowance, which is a strong lifecycle surface for Polymarket. Missing order modification and direct redeem/split/merge operations are minor gaps that agents can partly work around.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    B
    quality
    Not graded
    maintenance
    Enables AI agents to interact with the Polymarket prediction market platform to discover markets, analyze real-time pricing, and monitor public portfolio data. It provides comprehensive access to market analytics, implied probabilities, and order books through the Model Context Protocol.
    59
    23 npm
    -