Skip to main content
Glama
demwick

polymarket-trader-mcp

Polymarket Agent MCP Server

polymarket-agent-mcp MCP server

npm version CI GitHub last commit License: MIT Node.js TypeScript MCP SDK Tools Tests SafeSkill 97/100 Socket Badge OpenSSF Scorecard OpenSSF Best Practices

Trade, analyze, and automate Polymarket prediction markets through AI.

The most comprehensive MCP server for Polymarket — 48 tools spanning direct trading, market discovery, smart money tracking, copy trading, backtesting, risk management, and portfolio optimization. Works with Claude Code, Cursor, or any MCP-compatible client.


Tool Overview

Category

Count

Highlights

Discovery

9

Search, trending, featured, events, related markets, smart money flow

Analysis

8

AI opportunity scoring, conviction rating, price history, market quality, top holders, comparison

Trading

8

Buy, sell, batch orders, limit orders, order management, safety limits

Copy Trading

5

Watch traders, auto-monitor, auto-rebalance, backtest

Portfolio

10

Positions, P&L, balance, risk assessment, SL/TP, optimization, market alerts

Utilities

8

Dashboard, config, trade history, watchlists, agent logging


Related MCP server: Polymarket MCP Server

Quick Start

npm Install

npm install -g polymarket-agent-mcp

Docker

docker compose up

Claude Code Config

Add to ~/.claude/settings.json:

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

Usage Examples

Just talk naturally to your AI assistant:

"What are the trending markets today?"

"Search for bitcoin prediction markets"

"Buy $5 on this market"

"Score this trader — should I copy them?"

"Backtest this trader with $10 per trade"

"Show smart money flow — what are the top traders buying?"

"Set stop-loss at 0.30 on my BTC position"

"Optimize my portfolio with a balanced strategy"

"Scan for arbitrage opportunities"

"Compare these two markets side by side"


All 48 Tools

Discovery

Tool

Description

markets.search

Search markets by keyword (bitcoin, election, UFC...)

traders.discover

Find top traders by PnL and volume

markets.discover

Find markets by end date and category

markets.trending

Top markets by 24h/7d/30d volume

markets.featured

Most liquid markets by category (politics, sports, crypto...)

wta.discover

WTA tennis markets with stink bid prices

flow.discover

Smart money signals — multiple top traders buying same market

markets.related

Find markets related to a topic or market

markets.events

Browse all markets under an event

Analysis

Tool

Description

markets.analyze

AI-powered BUY/SELL/HOLD recommendation

traders.analyze

Detailed trader profile, win rate, P&L

traders.score

Conviction score (0-100) across 5 dimensions

markets.check

Market quality — spread, depth, price range

markets.price

Live bid/ask/spread prices

markets.price_history

Historical prices with sparkline (1h to 1m)

markets.holders

Biggest position holders in a market

markets.compare

Side-by-side comparison of 2-5 markets

Trading

Tool

Description

orders.buy

Buy shares on any market

orders.sell

Sell an open position

orders.batch

Execute up to 10 orders at once

wta.bid

Place limit orders at discount

orders.cancel

Cancel all open orders

orders.list

View pending limit orders

orders.status

Check status of a specific order

config.go_live

Switch from preview to live mode

Copy Trading

Tool

Description

watchlist.add

Add/remove traders from watchlist

monitor.start

Start automatic copy trading loop

monitor.stop

Stop monitoring

watchlist.rebalance

Remove underperforming traders

traders.backtest

Simulate copying a trader's past trades

Portfolio & Risk

Tool

Description

portfolio.balance

Account balance, budget, and P&L

portfolio.get

Multi-wallet overview with P&L per trader

positions.list

Open/closed positions

positions.close

Manually close a position

positions.set_exit_rules

Set stop-loss and take-profit levels

positions.check_exits

Check positions for resolution

portfolio.risk

Portfolio risk scoring and warnings

portfolio.optimize

AI-powered optimization (conservative/balanced/aggressive)

markets.watch

Market watchlist with price alerts

markets.watch_price

Live WebSocket price subscriptions

markets.arbitrage

Find YES+NO price discrepancies

Configuration

Tool

Description

config.set

Update bot settings

config.safety_limits

Max order size, exposure cap, spread tolerance

dashboard.get

Terminal-formatted dashboard

trades.history

Trade history with filters

watchlist.list

Show watched wallets

agent.log_cycle

Log agent cycle for dashboard

traders.positions

View a trader's open positions


Architecture

Claude Code / Cursor / AI Client
        |
        | MCP Protocol (stdio)
        v
+------------------+
|  MCP Server      |  48 tools registered
|  (index.ts)      |
+--------+---------+
         |
    +----+----+
    |         |
 Tools    Services
    |         |
    v         v
+-------+ +------------+
| Zod   | | Backtester |
| Input | | Scorer     |
| Valid. | | SmartFlow  |
+-------+ | Filter     |
          | Tracker    |
          | Executor   |
          +-----+------+
                |
        +-------+-------+
        |       |       |
     Data    Gamma    CLOB
     API      API     API

HTTP Transport & Deployment

The server supports two transport modes:

Mode

Activation

Use case

stdio (default)

npx polymarket-agent-mcp

Claude Code, Cursor, local MCP clients

HTTP

--http flag or PORT env var

Self-hosted Docker, private VPS, single-user remote

Deployment model — read this first

This server is designed for single-tenant use. Each client runs its own instance with its own SQLite database (copytrader.db), watchlist, daily budget, trade history, and monitor loop. The stdio mode is the recommended path for most users — npx polymarket-agent-mcp or the Claude Code config above gives you a fully isolated, local-only instance.

⚠️ Do not expose an HTTP instance publicly. The server has no per-user isolation: watchlist, positions, budget, and the background monitor loop are shared across every client that connects. A public HTTP deployment is effectively a shared workspace, not a multi-tenant SaaS. If you enable live trading, a public endpoint can drain your Polymarket wallet from any caller. Always configure the HTTP bearer-token env var (see PERMISSIONS.md) and keep the endpoint behind a firewall, VPN, or auth proxy.

Starting in HTTP mode

# Flag
node dist/index.js --http

# Or set PORT (defaults to 3000)
PORT=8080 node dist/index.js

Endpoints

Path

Method

Description

/mcp

POST

MCP protocol endpoint (Streamable HTTP transport)

/health

GET

Health check — returns { status, version, db }

/.well-known/mcp/server-card.json

GET

MCP discovery card (tools, permissions, data handling)

/

GET

Server info with version and endpoint list

Authentication

The HTTP transport accepts an optional bearer token gated by an environment variable — the exact name is documented in PERMISSIONS.md. When set, clients must send Authorization: Bearer <token> on requests to /mcp; when unset the endpoint is open (suitable only for local or private networks).

Docker deployment

A prebuilt multi-arch image is published to GHCR on every release:

docker pull ghcr.io/demwick/polymarket-agent-mcp:1.7.0

Or build it yourself from the included Dockerfile:

docker build -t polymarket-mcp .
docker run -p 3000:3000 -v mcp-data:/app/data \
  -e DAILY_BUDGET=50 \
  polymarket-mcp
# To require bearer-token auth on /mcp, also pass the HTTP bearer env var
# listed in PERMISSIONS.md (e.g. `-e <VAR>=my-secret-key`).

DB_PATH (default /app/data/copytrader.db) controls where SQLite data is persisted — mount a volume to keep it across restarts.


Configuration

All secrets stay in memory for the lifetime of the process — they are never written to the database, logs, or disk, and are only transmitted to their designated Polymarket API endpoint over HTTPS. The complete authoritative env var list, with per-variable sensitivity and scope, lives in PERMISSIONS.md and SECURITY.md.

Variable

Required

Default

Description

COPY_MODE

No

preview

preview (simulated) or live (real orders)

DAILY_BUDGET

No

20

Max daily spend in USDC

MIN_CONVICTION

No

3

Min trade size to copy ($)

Wallet signing key

Live only

-

Locally signs CLOB order payloads, never persisted (see PERMISSIONS.md for exact env var name)

CLOB API credentials

Live only

-

API key / secret / passphrase — sent only to clob.polymarket.com (see PERMISSIONS.md for exact names)


Safety Features

  • Configurable order size limits

  • Total exposure caps

  • Per-market position limits

  • Minimum liquidity requirements

  • Maximum spread tolerance

  • Stop-loss / take-profit automation

  • Preview mode (default) — no real money


Permissions & Capabilities

This package has a transparent, minimal footprint. Full disclosure: PERMISSIONS.md — machine-readable version in .well-known/mcp/server-card.json.

Category

Scope

Network (outbound)

3 Polymarket HTTPS APIs + 1 inbound-only WSS public price stream (ws-subscriptions-clob.polymarket.com)

Filesystem

Single SQLite database file + .env read at startup — nothing else

Environment

API credentials (live mode only, in memory only), budget config, mode selection

Processes

None — no child processes, no shell commands, no eval/Function

Telemetry

None — no analytics, no crash reports, no update checks, no third-party data flow

WebSocket scope: The WSS connection to Polymarket is inbound-only for public price updates. No wallet, credential, or user identity is transmitted — it carries the same public feed available to any browser client.

Secrets scope: Every secret environment variable is held in memory only, never logged, never persisted, and sent to exactly one host (see SECURITY.md).


Development

git clone https://github.com/demwick/polymarket-agent-mcp.git
cd polymarket-agent-mcp
npm install
npm run build
npm test         # 200+ tests

License

MIT - see LICENSE

Available Tools

48 tools
analysis.arbitrageA

Scan active Polymarket markets for arbitrage opportunities where YES + NO prices don't sum to $1.00. Returns markets with the price gap and potential profit percentage.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoNumber of top markets to scan
min_spreadNoMinimum price spread to report (default: 2%)

TDQS

A4.1/5.0
Behavior4/5

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

With no annotations, the description carries full burden. It states the tool scans markets and returns price gap and profit percentage, implying a read-only operation. No contradictory or missing behavioral traits are apparent, though it could mention that no modifications occur.

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

Conciseness5/5

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

The description is a single, well-structured sentence that front-loads the core action and condition, followed by a brief output note. No extraneous information is included.

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?

The description explains the tool's function and return fields but lacks detail on the output structure (e.g., list of objects, sorting order). Without an output schema, more specificity would improve completeness for agent usage.

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

Parameters4/5

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

Schema coverage is 100% with both parameters described in the schema. The tool description adds context that the min_spread refers to the price gap from $1 and that profit percentage is returned, slightly enhancing understanding beyond the schema alone.

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 uses a specific verb 'scan' and clearly identifies the resource as 'active Polymarket markets' and the condition 'YES + NO prices don't sum to $1.00'. It distinguishes itself from sibling analysis tools like analysis.opportunity by focusing specifically on arbitrage based on price sum discrepancies.

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 arbitrage detection but does not explicitly state when to use or avoid this tool, nor does it mention alternatives among the numerous sibling analysis tools. The context is clear only by the tool's name and description, lacking explicit guidance.

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

analysis.compareA

Compare 2-5 Polymarket markets side by side. Shows price, spread, order book depth, volume, and quality score for each market. Useful for choosing the best market to trade among similar options.

ParametersJSON Schema
NameRequiredDescriptionDefault
condition_idsYes2-5 condition IDs to compare

TDQS

A4/5.0
Behavior3/5

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

No annotations provided; description carries full burden. It lists outputs (price, spread, depth, volume, quality score) but does not mention whether data is real-time, whether it is read-only (implied), or any side effects. Adequate but not thorough.

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 sentences: first states function, second lists outputs and use case. No waste, perfectly front-loaded.

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

Completeness4/5

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

With one parameter and no output schema, description adequately covers purpose and outputs. Could mention format of condition_ids or return structure, but overall sufficient for tool selection.

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 100% with a well-described parameter. Description adds minimal value beyond schema ('Compare 2-5 Polymarket markets' and output fields). Baseline 3 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?

Description clearly states verb (compare), resource (Polymarket markets), and scope (2-5). It distinguishes from siblings like analysis.opportunity or analysis.quality which focus on single markets or different aspects.

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?

Description says 'Useful for choosing the best market to trade among similar options,' which implies when to use it. It does not explicitly mention when not to use or alternatives, but the context of sibling tools provides clear differentiation.

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

analysis.flowA

Scan top leaderboard traders for smart money convergence signals. Identifies markets where multiple top traders are buying the same outcome simultaneously, indicating strong conviction. Pro feature.

ParametersJSON Schema
NameRequiredDescriptionDefault
top_tradersNoNumber of top traders to scan
max_age_minutesNoMax trade age in minutes
min_tradersNoMin unique traders for a signal

TDQS

A3.5/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 tool scans traders for convergence signals but does not mention side effects, authorization needs, rate limits, or output format. As a read-only analysis tool, it is minimally adequate but lacks detail on behavior beyond the basic function.

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 sentences with zero wasted words. The first sentence states the action, the second clarifies the outcome. Front-loaded and 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?

While the description covers the tool's purpose, it does not explain the output format or structure, which is important for an analysis tool without an output schema. Given the optional parameters and no output schema, the description is somewhat complete but could be more informative.

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 100%, so the input schema already documents all three parameters with defaults and explanations. The description adds no extra meaning beyond what the schema provides, earning a baseline score of 3.

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

Purpose5/5

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

The description clearly states the tool scans top leaderboard traders for smart money convergence signals, identifying markets with multiple top traders buying the same outcome. This is a specific verb-resource pair and distinguishes from siblings like analysis.arbitrage or analysis.compare.

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 mentions 'Pro feature' but does not indicate when to use this tool versus alternatives, nor does it provide exclusions or context for optimal use. No guidance on 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.

analysis.holdersA

View the largest position holders in a Polymarket market by condition_id. Shows wallet address, position size, and side (YES/NO). Useful for gauging smart money sentiment on a market.

ParametersJSON Schema
NameRequiredDescriptionDefault
condition_idYesPolymarket market condition ID to find top holders for
limitNoMaximum number of top holders to return

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 full burden. It states it's a read operation and mentions output fields, but lacks detail on error handling, data freshness, or behavior on invalid condition_id.

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 sentences with no filler: first states purpose and key parameter, second describes output and use case. Efficient and well-structured.

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

Completeness4/5

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

For a simple read tool with two parameters and no output schema, the description covers purpose, input, output fields, and a use case. Could mention sorting or return format but is largely complete.

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

Parameters3/5

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

Schema coverage is 100%, baseline 3. Description adds minor context about output (wallet address, position size, side) but largely restates schema descriptions.

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

Purpose5/5

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

The description clearly states the tool's purpose: 'View the largest position holders...' with a specific resource and action. It distinguishes from siblings like analysis.flow or analysis.compare by focusing on holders and sentiment.

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

Usage Guidelines4/5

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

The description provides clear context for when to use the tool ('gauging smart money sentiment'), but does not explicitly exclude alternatives or discuss 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.

analysis.opportunityA

Generate a BUY/SELL/HOLD recommendation for a Polymarket market by analyzing price, spread, price trend, and liquidity depth. Returns a score with detailed reasoning. Read-only analysis, does not place trades.

ParametersJSON Schema
NameRequiredDescriptionDefault
condition_idYesPolymarket market condition ID to analyze for trading opportunity

TDQS

A4/5.0
Behavior4/5

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

Annotations are absent, so the description fully bears the transparency burden. It clearly states read-only, no trades, and returns a score with reasoning. However, it doesn't disclose potential rate limits, auth needs, or side effects beyond being non-destructive. The behavioral traits are mostly clear.

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 sentences with zero waste. First sentence defines purpose and inputs; second sentence clarifies safety. Front-loaded with key information. Every word 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?

Given the simplicity (one param, no output schema, no annotations), the description covers purpose, inputs, output type, and safety. It is almost complete, but lacks detail on the score format/range. Minor gap, so 4.

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 100% for condition_id, already explaining it as a 'Polymarket market condition ID to analyze for trading opportunity'. The tool description adds no further semantics beyond restating that it analyzes the market. Baseline of 3 is appropriate given high schema coverage.

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?

Explicitly states it generates a BUY/SELL/HOLD recommendation for Polymarket markets, lists analyzed factors (price, spread, trend, liquidity), and clearly distinguishes from siblings like analysis.arbitrage or analysis.compare. The verb 'generate' and resource 'recommendation' are specific.

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 trading recommendations but does not explicitly state when to use this tool versus alternatives such as analysis.arbitrage or analysis.quality. No exclusions or context for when not to use it. The phrase 'Read-only analysis' provides safety context but lacks comparative guidance.

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

analysis.price_historyA

Fetch historical OHLC price data for a market token over a configurable time window (1h to 1m). Returns price points with a sparkline visualization showing the price trend. Pro feature.

ParametersJSON Schema
NameRequiredDescriptionDefault
token_idYesMarket token ID to fetch price history for
intervalNoTime window: 1h, 6h, 1d, 1w, or 1m1d

TDQS

A3.8/5.0
Behavior3/5

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

With no annotations, the description must cover behavioral traits. It states that the tool returns price points and a sparkline visualization, and it notes it's a Pro feature. However, it does not disclose data freshness, rate limits, or whether the operation is read-only (though implied). There is no contradiction with any annotation as none exist.

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

Conciseness5/5

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

The description is two sentences: the first clearly defines the action and parameters, and the second adds output details and access note. Every sentence serves a purpose with no redundancy or fluff.

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?

There is no output schema, so the description compensates by mentioning 'price points with a sparkline visualization'. This is sufficient for a simple data retrieval tool. Given the tool's low complexity and the richness of sibling tools, it is adequately complete.

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

Parameters3/5

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

Schema coverage is 100% as both parameters have descriptions. The description adds context that the data is OHLC and includes a sparkline, but it largely paraphrases the schema's enum values and token_id description. With full schema coverage, the description adds marginal value beyond the schema.

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

Purpose5/5

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

The description uses a specific verb ('Fetch') and clearly identifies the resource ('historical OHLC price data for a market token'). It also specifies the configurable time window and mentions output details, distinguishing it from related tools like markets.price (current price) or analysis.compare.

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 mentions the configurable time window and valid intervals, giving context on when to use it. However, it does not explicitly state when not to use it nor provides alternatives among the many sibling tools. The 'Pro feature' note implies access limitations but lacks usage guidance.

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

analysis.qualityA

Evaluate market quality by checking bid/ask spread, order book depth, and price range. Returns a pass/fail with specific reasons. Use before placing trades to avoid illiquid or wide-spread markets. Pro feature.

ParametersJSON Schema
NameRequiredDescriptionDefault
token_idYesMarket token ID from the CLOB order book
max_spreadNoMax acceptable spread (default: 0.10)
min_depthNoMin $ depth per side (default: $50)

TDQS

A4.2/5.0
Behavior3/5

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

With no annotations, the description carries full burden. It describes a read-only evaluation (no mutation) and mentions return format, but does not explicitly state non-destructiveness, auth requirements, or rate limits. Adequate but not comprehensive.

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 sentences with no redundancy. The first covers function and output, the second offers usage guidance and flags 'Pro feature'. Every sentence adds value.

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 3 well-documented parameters and no output schema, the description sufficiently explains the return type (pass/fail with reasons) and usage context. It omits edge cases but covers the primary workflow.

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 schema has 100% coverage, providing descriptions for all parameters. The description adds context by linking parameters to the checks (spread, depth, price range), reinforcing their purpose beyond the schema.

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

Purpose5/5

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

The description clearly states the tool evaluates market quality by checking bid/ask spread, order book depth, and price range, returning pass/fail with reasons. This specific verb-resource pairing distinguishes it from siblings like 'analysis.arbitrage' or 'analysis.compare'.

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?

It explicitly advises using the tool before placing trades to avoid illiquid or wide-spread markets, providing clear context. While it doesn't list exclusions or alternatives, the sibling names implicitly guide when to use other tools.

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

config.dashboardA

Get a comprehensive dashboard showing daily budget usage, total P&L, recent trades, watchlist status, and monitor state. No parameters needed. Use this for a quick overview of your trading activity.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.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 must fully disclose behavioral traits. It lists what data is returned, implying a read-only operation. However, it does not mention any potential limitations (e.g., data freshness, caching, or authentication requirements), leaving some gaps.

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

Conciseness5/5

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

The description consists of two sentences that are efficient and front-loaded with purpose. Every sentence adds value: the first explains functionality, the second clarifies usage and means of invocation.

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 simple parameterless tool that returns an overview, the description fully covers what it does and when to use it. No output schema exists, but the listed data items (budget usage, P&L, trades, watchlist, monitor state) sufficiently set expectations.

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 input schema has zero parameters, and the description states 'No parameters needed,' which is sufficient. The baseline for 0 parameters is 4, and the description adds no further parameter semantics, so this score 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 clearly states the tool provides a comprehensive dashboard with specific data: budget usage, P&L, trades, watchlist, and monitor state. It uses a specific verb 'Get' and identifies the resource as a dashboard, differentiating it from sibling tools like config.history or portfolio.get.

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

Usage Guidelines4/5

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

The description explicitly notes 'No parameters needed' and advises to use this for a 'quick overview of your trading activity.' It provides clear context on when to use the tool, though it does not explicitly mention when not to use it or name specific alternatives.

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

config.go_liveA

Switch from preview (simulated) to live trading mode where real orders are placed on Polymarket. Requires API credentials configured in environment. This action uses real money. Pro feature.

ParametersJSON Schema
NameRequiredDescriptionDefault
confirmYesMust be true to confirm switching to live trading mode. This will place real orders with real money

TDQS

A4.2/5.0
Behavior4/5

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

Disclosure of real money usage is critical behavioral info. Yet no annotations, and missing details like irreversibility or rollback options.

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?

Three short sentences cover purpose, prerequisites, and risk. No redundancy or wasted words.

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

Completeness4/5

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

Adequate for a simple one-param tool without output schema. Could mention that switching is one-way or requires re-authentication later.

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?

Only one parameter with full schema description. The tool description adds no new info beyond the schema's own description of confirm.

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?

Clearly states 'Switch from preview (simulated) to live trading mode' with specific verb and resource. Distinct from sibling config tools like config.dashboard or config.set.

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?

Mentions prerequisites (API credentials, pro feature) and the real-money risk, but does not explicitly state when not to use (e.g., test in preview first).

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

config.historyB

Retrieve past copy trades from the database with optional filters by trader address or status. Returns trade details including entry price, P&L, and market info. Pro feature.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of trades to return
traderNoFilter by trader wallet address (0x...)
statusNoFilter by trade status: open, closed, or won

TDQS

B3.4/5.0
Behavior2/5

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

With no annotations, the description carries full burden. It implies a read operation but does not disclose authentication needs, rate limits, or any special behaviors like data staleness. The mention 'Pro feature' hints at access control but no details.

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

Conciseness5/5

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

The description is two concise sentences: first defines purpose and filters, second lists return details and feature note. No redundant or irrelevant information.

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

Completeness4/5

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

Given no output schema, the description adequately informs about return content. It also notes the Pro feature. However, it lacks details on pagination or ordering, which could be expected for a history list.

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 100%, so baseline is 3. The description adds value by listing return fields (entry price, P&L, market info) beyond the schema's parameter descriptions, but does not compensate for missing output schema.

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

Purpose5/5

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

The description clearly states the verb 'retrieve', the resource 'past copy trades', and specifies optional filters and return details (entry price, P&L, market info). It is distinct from sibling tools like 'markets.price_history'.

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 provided on when to use this tool versus alternatives, nor any conditions for not using it. The description only mentions optional filters without context on selection criteria.

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

config.log_cycleA

Record an AI agent's trading cycle metrics to the database for dashboard tracking and performance analysis. Stores PnL, win rate, positions, budget usage, and notes. Call this after each automated trading cycle.

ParametersJSON Schema
NameRequiredDescriptionDefault
agent_nameYesName of the AI agent logging this cycle
strategyYesTrading strategy used in this cycle (e.g. 'copy_top_traders', 'stink_bids')
statusNoCycle outcome: ok=normal, warning=minor issue, risk_alert=needs attention, error=failedok
positions_openNoNumber of currently open positions
positions_closedNoNumber of positions closed this cycle
realized_pnlNoRealized profit/loss in USDC from closed positions
unrealized_pnlNoUnrealized profit/loss in USDC from open positions
win_rateNoWin rate as a decimal (0.0-1.0)
budget_usedNoAmount of daily budget spent in USDC
budget_limitNoTotal daily budget limit in USDC
actions_takenNoComma-separated list of actions taken (e.g. 'bought YES on Bitcoin market')
notesNoFree-text notes about this cycle

TDQS

A4/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. Mentions recording to database (write operation) but lacks details on side effects, auth needs, or idempotency. Acceptable but not thorough.

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 sentences, front-loaded with purpose and key fields. No fluff, every sentence is informative.

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?

Description covers purpose, timing, and stored fields. No output schema needed. Sufficient for an agent to understand usage. Could mention return value or effect, but not critical.

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 100%, so baseline is 3. Description adds a brief summary (PnL, win rate, etc.) but does not add meaningful semantics beyond the schema.

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

Purpose5/5

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

Description states specific verb 'Record' and resource 'AI agent's trading cycle metrics to the database'. It clearly distinguishes from sibling tools, none of which are for logging cycle metrics.

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 states when to call ('after each automated trading cycle'). No explicit when-not or alternatives, but the specificity suffices for this logging tool.

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

config.safety_limitsA

Configure trading safety guardrails: maximum order size in USDC, total exposure cap, and maximum spread tolerance. These limits are enforced on all subsequent buy/sell operations. Changes persist in the database.

ParametersJSON Schema
NameRequiredDescriptionDefault
max_order_sizeNoMax single order size in USDC
max_exposureNoMax total open position exposure in USDC
max_per_marketNoMax investment in a single market in USDC
min_liquidityNoMin required market liquidity in USDC
max_spreadNoMax acceptable spread (e.g. 0.10 = 10%)
showNoShow current limits without changing

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 burden. It discloses persistence and enforcement scope, but lacks details on authorization needs, error behavior if limits are exceeded, or whether changes are incremental or full replacements.

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 concise sentences with no redundant information. The description is front-loaded with the action and resource, followed by behavioral notes, making it easy to scan.

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 6 optional parameters and no output schema, the description covers core purpose and behavior. However, it omits what the tool returns (e.g., success message or updated limits) and does not clarify that all parameters are optional.

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 100%, so baseline is 3. The description mentions three parameters (max order size, exposure cap, spread) but adds no extra meaning beyond the schema. Other params like max_per_market and min_liquidity are not elaborated.

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

Purpose5/5

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

The description clearly states the verb 'Configure' and the resource 'trading safety guardrails', specifying three concrete limit types. This distinguishes the tool from siblings like config.dashboard or config.set, which focus on different aspects.

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

Usage Guidelines4/5

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

The description provides clear context: limits are enforced on all subsequent buy/sell operations and persist in the database. However, it does not explicitly state when not to use this tool or mention alternative tools like config.set or config.go_live.

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

config.setA

Update bot configuration at runtime. Supports daily_budget (max USDC per day) and min_conviction (minimum trade size to copy). Changes take effect immediately and persist across restarts. Pro feature.

ParametersJSON Schema
NameRequiredDescriptionDefault
keyYesConfig key: daily_budget=max USDC spend per day, min_conviction=minimum trade size in USDC to copy
valueYesNew value as a string (e.g. '50' for $50 daily budget)

TDQS

A3.7/5.0
Behavior3/5

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

Adds behavioral context: changes take effect immediately, persist across restarts, and it is a Pro feature. No annotations exist, so description carries burden. However, it does not mention required permissions or potential side effects, which would improve transparency.

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?

Extremely concise: only two short sentences that cover purpose, supported keys, and key behavioral traits. No unnecessary words or repetition. Front-loaded with core action.

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 simple two-parameter tool with no output schema, the description is fully adequate. It explains the keys, the effect of changes, and persistence. No gaps 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 100% and includes descriptions for both parameters. The tool description repeats some of that info (daily_budget meaning, min_conviction meaning), adding minimal extra value. Baseline of 3 is appropriate since schema already does the work.

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?

Clearly states the tool updates bot configuration at runtime, specifying the two supported keys (daily_budget and min_conviction) with their meanings. This distinguishes it from sibling tools like config.dashboard or config.go_live.

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 explicit guidance on when to use this tool versus alternatives like config.dashboard or config.go_live. The description implies it is for changing settings, but does not provide when-not-to-use or mention other config tools.

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

markets.discoverA

Find active Polymarket prediction markets filtered by resolution deadline and category. Returns market question, price, volume, and end date. Use ending='today' for fast-resolving markets, or 'all' to browse everything.

ParametersJSON Schema
NameRequiredDescriptionDefault
endingNoFilter by resolution deadline: today, this_week, or all active marketstoday
categoryNoFilter by category (e.g. politics, sports, crypto, pop-culture)
min_volumeNoMinimum trading volume in USDC to include a market
limitNoMaximum number of markets to return

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 must fully convey behavioral traits. It implies a read-only operation but does not explicitly state it, nor does it mention authentication, rate limits, or side effects. This lack of explicit disclosure reduces transparency.

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

Conciseness5/5

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

The description is extremely concise at two sentences, front-loading the core purpose and return fields, then providing a practical usage example. Every sentence earns its place with zero waste.

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 moderate complexity and full schema coverage, the description covers the essential aspects: tool purpose, filtering criteria, and return fields. It is complete enough for a discovery tool, though it omits details like default ordering or pagination behavior.

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

Parameters3/5

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

With 100% schema coverage, the baseline is 3. The description adds marginal value by providing a usage hint for the 'ending' parameter ('Use ending="today" for fast-resolving markets'), but offers no additional context for category, min_volume, or limit beyond what the schema already describes.

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

Purpose5/5

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

The description clearly states the tool's action: 'Find active Polymarket prediction markets filtered by resolution deadline and category.' It also specifies the return fields (market question, price, volume, end date), making the purpose unambiguous.

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

Usage Guidelines3/5

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

The description provides guidance on parameter usage ('Use ending="today" for fast-resolving markets, or "all" to browse everything'), but it does not differentiate this tool from siblings like markets.featured or markets.search, leaving the agent to infer when to use this specific tool.

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

markets.eventsA

Browse Polymarket event groups to find all markets under a single event (e.g. 'US Election', 'UFC 300', 'NBA Finals'). Returns the event with all its sub-markets and their current prices.

ParametersJSON Schema
NameRequiredDescriptionDefault
slugNoEvent slug to look up (e.g. 'us-presidential-election-2026')
queryNoSearch events by keyword
limitNoMaximum number of events to return

TDQS

A4.3/5.0
Behavior4/5

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

The description discloses the return value: 'Returns the event with all its sub-markets and their current prices.' No annotations are provided, so the description carries the burden. It implies a read operation but does not explicitly state read-only or discuss side effects.

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

Conciseness5/5

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

Two sentences with no fluff: first states the action, second states the output. Perfectly front-loaded and concise.

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 simple data retrieval tool with 3 optional params and no output schema, the description is sufficient. It explains the action and return value clearly. No gaps.

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 100%, so the input schema already documents the three parameters with clear descriptions. The description adds overall context but no additional meaning beyond the schema. Hence baseline score of 3.

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

Purpose5/5

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

The description clearly states the tool's purpose: 'Browse Polymarket event groups to find all markets under a single event' with concrete examples like 'US Election'. It uses specific verbs and distinguishes from sibling tools like markets.search and markets.featured.

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

Usage Guidelines4/5

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

The description implies when to use this tool (to find all markets under a single event) but does not explicitly state when not to use it or provide alternatives. However, the context is clear enough for an agent.

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

markets.featuredA

List top Polymarket markets ranked by liquidity with optional category filter (politics, sports, crypto, pop-culture, business, science). Returns the most liquid and actively traded markets.

ParametersJSON Schema
NameRequiredDescriptionDefault
categoryNoFilter by market category: politics, sports, crypto, pop-culture, business, or science
limitNoMaximum number of markets to return

TDQS

A3.5/5.0
Behavior3/5

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

With no annotations, the description must disclose behavior. It reveals the ranking criteria (liquidity) and category filtering, but does not mention pagination, rate limits, data freshness, or whether it is a read-only operation. The description is straightforward but lacks depth on invariants.

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

Conciseness5/5

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

The description is two sentences, front-loading the main action and key details (ranking by liquidity, optional category filter). Every sentence is essential and concise.

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

Completeness4/5

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

For a simple listing tool with no output schema, the description adequately specifies what is returned (top markets by liquidity) and the optional category filter. It does not detail output fields or metadata, but for this context it is sufficient. Slightly more detail on the return format would improve 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?

The schema has 100% description coverage, meaning the parameters are well-documented. The description adds value by explaining the ranking by liquidity and the active trading aspect, which clarifies the meaning of the returned data beyond the schema's parameter definitions.

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

Purpose4/5

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

The description clearly states the tool lists top Polymarket markets ranked by liquidity, with an optional category filter. It includes specific categories and implies a ranking by liquidity, which distinguishes it from sibling tools like markets.trending or markets.discover, though it does not explicitly name 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?

No guidance is provided on when to use this tool versus alternatives. It does not mention when to avoid it or suggest other tools for different needs (e.g., trending markets or search).

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

markets.priceA

Get live bid/ask/spread prices from the CLOB order book for a specific market by condition_id. If no condition_id is given and show_positions is true, returns current prices for all open positions.

ParametersJSON Schema
NameRequiredDescriptionDefault
condition_idNoPolymarket market condition ID. Omit to show prices for all open positions
show_positionsNoInclude current position value alongside price data

TDQS

A3.6/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 burden. It discloses it is a read operation and describes source (CLOB order book) and conditional behavior. However, it does not mention side effects, rate limits, data freshness, or permissions. Adequate but not rich.

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 sentences that are concise and front-loaded with the main purpose. Every sentence adds value with no wasted words.

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 no output schema, the description does not mention the return format or what fields (e.g., bid, ask, spread, position value) the response contains. This is a gap for completeness. Otherwise, it covers the main use cases adequately.

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 100%, baseline 3. The description adds meaning: explains the condition_id as Polymarket market condition ID and the show_positions parameter's effect. It also describes the interactive behavior when both parameters are used, which adds value beyond 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?

The description clearly states it gets live bid/ask/spread prices from the CLOB order book for a specific market by condition_id, which is a specific verb and resource. However, it does not explicitly distinguish from siblings like markets.watch_price, which also involve prices.

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: use condition_id for specific market, or omit with show_positions=true for all open positions. But it does not give explicit guidance on when to use this vs. other price-related tools (e.g., watch_price, trends) or 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.

markets.relatedA

Find Polymarket markets related to a given condition_id or topic keyword. Useful for discovering correlated markets or building a diversified position across related events.

ParametersJSON Schema
NameRequiredDescriptionDefault
condition_idNoFind markets related to this market
queryNoKeyword to find related markets (e.g. 'bitcoin', 'trump')
limitNoMaximum number of related markets to return

TDQS

A3.5/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 full burden. It fails to disclose behavioral traits like rate limits, authentication needs, or side effects. Only the purpose is stated, omitting any operational constraints or return structure.

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

Conciseness5/5

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

The description is two sentences long, front-loads the core purpose in the first sentence, and adds a use-case in the second. Every word is efficient with no redundancy.

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?

Given no output schema and no annotations, the description is moderately complete: it explains inputs and purpose but lacks information about the output format or pagination. With three parameters and no required fields, it could hint at what the response looks like.

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 100%, with each parameter having a basic description. The tool description adds context about 'related' markets and use cases, but does not significantly enhance understanding beyond the schema since the schema already conveys parameter meanings clearly.

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

Purpose5/5

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

The description clearly states the verb 'Find' and the resource 'Polymarket markets', and distinguishes the tool by specifying the two modes of relating (by condition_id or topic keyword). It also notes utility in discovering correlated markets, differentiating it from sibling tools like markets.search or markets.featured.

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 use when wanting related markets ('useful for discovering correlated markets...') but does not explicitly state when not to use or compare to alternatives such as markets.search or markets.trending. The guidance is present but lacks exclusion criteria.

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

markets.searchA

Search Polymarket markets by keyword query. Returns matching markets with question, price, volume, and condition_id. Use the condition_id from results with buy, get_price, or analyze_opportunity.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesSearch query (e.g. 'bitcoin', 'election', 'UFC')
limitNoMaximum number of markets to return
active_onlyNoOnly return active (non-resolved) markets

TDQS

A4/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 discloses basic behavior (returns matching markets with fields) but does not mention side effects (likely read-only), rate limits, or auth requirements.

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 sentences: first sentence states purpose and result fields; second sentence provides actionable guidance. No wasted words, front-loaded.

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

Completeness4/5

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

For a simple search tool with 3 parameters and no output schema, the description adequately explains what is returned and how to use results. Could mention pagination or ordering but not critical.

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?

Input schema has 100% parameter description coverage. Description adds no additional meaning beyond schema, so baseline 3 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?

Description clearly states 'Search Polymarket markets by keyword query' with specific verb and resource. It distinguishes from siblings like markets.discover or markets.featured by mentioning return fields and linking condition_id to subsequent tools.

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 tells how to use results with condition_id in other tools (buy, get_price, analyze_opportunity). Implies when to use (keyword search) but does not state when not to use.

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

markets.trendingA

List trending Polymarket markets ranked by trading volume over a configurable period (24h, 7d, or 30d). Filter by category to focus on specific topics. Returns market question, price, and volume.

ParametersJSON Schema
NameRequiredDescriptionDefault
periodNoVolume period to rank by24h
categoryNoFilter by category slug (e.g. politics, sports, crypto, bitcoin, ethereum)
limitNoMaximum number of trending markets to return

TDQS

A4.4/5.0
Behavior4/5

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

No annotations provided, but the description clearly states the tool returns market question, price, and volume, and implies a read-only list operation. No contradictions.

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

Conciseness5/5

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

Three focused sentences: first states purpose and period, second adds filtering, third lists output. No redundant or irrelevant information.

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

Completeness4/5

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

No output schema, but description covers return values. Lacks explicit mention of ordering direction (likely descending) and pagination, but sufficient for a list tool.

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?

Parameter schema coverage is 100% with descriptions. The tool description adds value by explaining return fields (question, price, volume) not in schema, and reiterates parameters concisely.

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

Purpose5/5

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

The description clearly states the tool lists trending markets ranked by trading volume over configurable periods, which distinguishes it from siblings like markets.featured or markets.discover.

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

Usage Guidelines4/5

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

The description specifies when to use it (to get trending markets by volume, filterable by category and period), but does not explicitly mention when not to use or alternative tools.

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

markets.watchA

Manage your market watchlist: add, remove, or list watched markets with optional price alert thresholds. When a market crosses your alert price, it shows up in check_exits.

ParametersJSON Schema
NameRequiredDescriptionDefault
actionNoAction to perform: add, remove, or list watched marketslist
condition_idNoMarket condition ID to add or remove from watchlist
titleNoFriendly name for the market (shown in watchlist)
alert_belowNoAlert when price drops below this level
alert_aboveNoAlert when price rises above this level

TDQS

A4.2/5.0
Behavior3/5

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

No annotations provided, so description carries burden. Discloses that crossing alert price triggers check_exits. Does not detail idempotency, error handling, or authorization needs. Adequate but not rich.

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 sentences with no fluff. Front-loaded with purpose and key actions. Highly concise.

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

Completeness4/5

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

No output schema, but description provides context for return values indirectly (checkbox in check_exits). Covers basic functionality. Slightly lacking in clarifying defaults (e.g., action defaults to 'list') but schema handles that.

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 covers all parameters with descriptions. Tool description adds context about alert thresholds and ties to check_exits, enhancing meaning beyond schema.

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

Purpose5/5

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

Clearly states the verb 'manage' and resource 'market watchlist', specifies actions (add/remove/list) and the key feature of price alerts linked to check_exits. Distinguishes from siblings like watchlist.add/list.

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?

Tells when to use: for watchlist management with optional alerts. Implicitly suggests check_exits for alert outcomes. Does not explicitly exclude alternatives but context is clear.

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

markets.watch_priceA

Manage live WebSocket price subscriptions for real-time market updates. Subscribe to a token_id to start streaming price changes, unsubscribe to stop, or check connection status.

ParametersJSON Schema
NameRequiredDescriptionDefault
actionNosubscribe=start streaming, unsubscribe=stop streaming, status=show connection infostatus
token_idNoMarket token ID to subscribe/unsubscribe. Required for subscribe/unsubscribe, omit for status

TDQS

A4/5.0
Behavior3/5

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

With no annotations, the description must convey behavior. It discloses the three actions and their effects (start streaming, stop, check status). However, it lacks details on connection management, error handling, or how updates are delivered after subscribing, leaving some behavioral aspects implicit.

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

Conciseness5/5

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

The description is extremely concise: two sentences that front-load the purpose and enumerate actions. Every sentence adds value 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?

For a simple two-parameter tool with no output schema, the description covers the core actions and parameter conditions. It could mention the WebSocket update channel after subscribing, but given the low complexity, it is nearly complete.

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

Parameters3/5

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

Schema coverage is 100%, and the schema descriptions already clarify the enum values and token_id requirement. The tool description adds no new parameter information beyond what is in the schema, so it does not increase semantic value.

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

Purpose5/5

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

The description clearly identifies the tool's purpose: managing live WebSocket price subscriptions. It specifies the resource (price updates) and the actions (subscribe, unsubscribe, status), making it easily distinguishable from siblings like 'markets.price' (single fetch) and 'markets.watch' (watchlist).

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

Usage Guidelines4/5

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

The description states the context for using the tool ('real-time market updates') and the three actions. While it does not explicitly mention when not to use or compare with alternatives, the context is clear enough for an agent to decide.

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

monitor.startA

Start a background loop that polls watched wallets for new trades and automatically copies them. Runs continuously at the specified interval until stop_monitor is called. Requires at least one wallet on the watchlist. Pro feature.

ParametersJSON Schema
NameRequiredDescriptionDefault
interval_secondsNoPolling interval in seconds between wallet checks (10-300)

TDQS

A4.6/5.0
Behavior4/5

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

No annotations provided, so description carries full burden. It discloses background loop, continuous polling, automatic copying, and polling interval. However, it doesn't mention risks of automatic trade copying or cost implications, which is a minor gap.

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?

Three short, front-loaded sentences with no redundancy. Each sentence provides distinct value: action, lifecycle, and prerequisites.

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 description covers core behavior, lifecycle, prerequisites, and feature level. Lacks details on what 'automatically copies them' entails (e.g., default settings), but is sufficient for a simple start command.

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 100% for the only parameter (interval_seconds). The description adds value by explaining the parameter's purpose ('Runs continuously at the specified interval'), linking it to the operation.

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

Purpose5/5

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

The description clearly states the tool starts a background loop to poll wallets and copy trades, with a specific verb ('Start') and resource ('background loop'). It distinguishes from sibling 'monitor.stop' by explaining the lifecycle.

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

Usage Guidelines5/5

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

Provides explicit context: runs continuously until stop_monitor is called, requires at least one wallet on watchlist, and is a Pro feature. This gives clear when-to-use and prerequisites.

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

monitor.stopA

Stop the background wallet monitoring loop started by monitor.start. Call this to end a copy-trading session, before changing bot configuration via config.set or config.safety_limits, or when switching between preview and live modes via config.go_live. Does NOT close open positions — use positions.close or positions.set_exit_rules separately to unwind trades. Idempotent: safe to call when the monitor is not running. Returns a short confirmation string. No parameters. Pro feature.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.9/5.0
Behavior5/5

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

With no annotations, the description fully discloses behavior: stops monitoring loop, does not close positions, idempotent, returns short confirmation string, no parameters, Pro feature. No 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.

Conciseness5/5

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

Five sentences, each adding distinct value: purpose, usage guidance, exclusions, idempotency, return value, feature classification. No redundant or wasted text.

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

Completeness5/5

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

Given no annotations, no output schema, and 0 parameters, the description is fully complete. It covers all necessary information for an agent to use this tool 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?

Tool has 0 parameters, so no param details needed. Description correctly states 'No parameters'. Baseline for 0 params is 4.

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

Purpose5/5

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

The description clearly states it stops the background wallet monitoring loop started by monitor.start, using a specific verb and resource. It distinguishes itself from sibling tool monitor.start by describing its opposite action.

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

Usage Guidelines5/5

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

Explicitly says when to call: to end a copy-trading session, before changing bot configuration, switching between preview and live modes. Also states what it does NOT do (close positions) and suggests alternatives (positions.close, positions.set_exit_rules). Mentions idempotency and safety when not running.

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

orders.batchA

Execute multiple buy/sell orders in a single call (max 10 orders). Each order specifies a condition_id, amount, optional price, and side. Returns per-order results with success/failure status.

ParametersJSON Schema
NameRequiredDescriptionDefault
ordersYesArray of orders to execute (max 10)

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 carries the full burden. It states the max 10 orders and that results are per-order with success/failure status. It does not disclose atomicity, partial failure behavior, or execution guarantees, which are important for a batch mutation tool.

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

Conciseness5/5

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

The description is two sentences, no fluff, front-loaded with the core purpose. Every word adds value, and it is easy to scan.

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 no output schema, the description covers return format (per-order results with status). It also specifies the max 10 orders limit. Missing details about error handling or ordering guarantees, but overall sufficient for a batch operation with good schema and sibling context.

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 100% for the single parameter 'orders'. The description adds meaning by clarifying that condition_id is a hex string, amount is in USDC, price is a limit price (or omitted for market), and side is BUY/SELL. This enriches the schema's basic descriptions.

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

Purpose5/5

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

The description clearly states the tool executes multiple buy/sell orders in a single call with a max of 10 orders. It uses specific verbs ('Execute') and resource ('buy/sell orders'), and the constraint distinguishes it from single-order siblings like orders.buy and orders.sell.

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

Usage Guidelines4/5

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

The description implies the tool is for batching multiple orders, contrasting with single-order tools (orders.buy, orders.sell). However, it does not explicitly state when not to use it or provide alternatives, leaving some ambiguity.

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

orders.buyA

Buy outcome shares on a Polymarket market. Specify condition_id, USDC amount, and optionally a limit price. Runs a market quality check before executing. In preview mode, simulates the trade. In live mode, places a real CLOB order.

ParametersJSON Schema
NameRequiredDescriptionDefault
condition_idYesPolymarket market condition ID (hex string from market URL or API)
amountYesAmount in USDC to spend
priceNoLimit price (0.01-0.99). Omit for market price from order book
outcomeNoOutcome to buy: YES for the event happening, NO for it not happeningYES

TDQS

A4.3/5.0
Behavior4/5

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

The description discloses that it runs a market quality check, has preview and live modes, and places a real CLOB order. No annotations were provided, so the description carries the full burden. It does not detail failure behavior or auth needs, but the core behaviors are clear.

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?

Four sentences, no filler. Front-loaded with purpose, then parameter details, then mode behavior. Every sentence adds value.

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?

Given no output schema and 4 parameters, the description covers key aspects but does not explain return values or error handling. It is adequate but could specify what the tool returns (e.g., order ID, status) for full 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 coverage is 100%, and the description adds context about optional limit price and mode behavior (preview vs live). This supplements the schema descriptions with operational meaning.

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

Purpose5/5

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

The description clearly states the tool buys outcome shares on Polymarket, specifying the action and resource. It includes key parameters (condition_id, amount, price, outcome) and distinguishes from sibling 'orders.sell'.

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

Usage Guidelines4/5

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

The description explains preview vs live mode and optional limit price, providing context for when to use each. However, it does not explicitly state when not to use this tool or compare to alternatives like market vs limit orders.

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

orders.cancelA

Cancel ALL open/pending limit orders on Polymarket for this account in a single call. Use as an emergency stop, before changing strategy, after a sudden price move, or when unwinding positions. Not reversible — cancelled orders must be re-placed via orders.buy, wta.bid, or orders.batch. Returns the count of cancelled orders. Call orders.list first if you want to preview what will be cancelled. Only works in live mode (no-op in preview). No parameters. Pro feature.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.9/5.0
Behavior5/5

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

With no annotations, the description fully covers behavior: irreversible, live-mode-only, returns count of cancelled orders, no parameters, pro feature. No contradictions.

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

Conciseness5/5

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

Five well-structured sentences; action verb front-loaded. Every sentence adds value: purpose, use cases, constraints, return info, and procedural suggestion. No redundancy.

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

Completeness5/5

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

Given the tool's simplicity (no params, no output schema), the description is complete—covers purpose, usage, side effects, return value, and mode restrictions. No 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?

No parameters exist (schema is empty, coverage 100%). Baseline is 4 for zero parameters. Description explicitly states 'No parameters', which adds clarity.

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

Purpose5/5

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

The description clearly states the verb ('Cancel') and resource ('ALL open/pending limit orders on Polymarket for this account in a single call'). It distinguishes from siblings by naming alternative re-placement tools (orders.buy, wta.bid, orders.batch) and preview suggestion (orders.list). No ambiguity.

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

Usage Guidelines5/5

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

Explicitly lists when to use: emergency stop, before strategy change, after price move, unwinding positions. Also states it is not reversible and only works in live mode (no-op in preview). Provides clear guidance and alternatives.

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

orders.listA

List all open (pending/unfilled) limit orders currently resting on Polymarket's order book for this account. Use after placing limit orders via orders.buy or wta.bid to confirm acceptance, or before orders.cancel to preview what will be removed. Returns each order's ID, market question, side (BUY/SELL), size, limit price, and age. For deeper detail on a single order, call orders.status with its order_id. Only works in live mode (returns an empty list in preview). No parameters. Pro feature.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.9/5.0
Behavior5/5

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

No annotations are provided, so the description fully covers behavioral traits: indicates it is a read-only list operation, specifies it returns empty in preview mode, mentions it is a Pro feature, and lists the returned fields (ID, market question, side, size, limit price, age). No contradictions.

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

Conciseness5/5

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

Three sentences, each carrying essential information: action and scope, usage context, and behavioral notes. No filler words, front-loaded with the core purpose.

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

Completeness5/5

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

Given zero parameters and no output schema, the description provides complete context: what the tool lists, when to use it, what it returns, limitations (live mode only), and a pointer to the alternative tool for deeper details. No 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?

Input schema has zero parameters, so schema coverage is 100%. Description adds value by explaining the output fields and the nature of the returned data, which compensates for the absence of parameters.

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

Purpose5/5

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

Description explicitly states 'List all open (pending/unfilled) limit orders currently resting on Polymarket's order book for this account.' The verb 'list' and resource 'orders' are clear. It distinguishes from siblings like orders.status (single order detail) and orders.cancel (preview cancellation targets).

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

Usage Guidelines5/5

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

Provides explicit usage context: 'Use after placing limit orders via orders.buy or wta.bid to confirm acceptance, or before orders.cancel to preview what will be removed.' Also covers when not to use: 'For deeper detail on a single order, call orders.status' and notes the 'Only works in live mode' limitation.

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

orders.sellA

Sell an open position by trade_id (from get_positions) or condition_id. In live mode, places a sell order on Polymarket. In preview mode, marks the position as sold in the database and calculates realized P&L.

ParametersJSON Schema
NameRequiredDescriptionDefault
trade_idNoTrade ID to sell (from get_positions)
condition_idNoCondition ID to sell (finds matching open position)
priceNoLimit price (omit for current market price)

TDQS

A3.7/5.0
Behavior3/5

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

The description explains behavior in live vs preview modes (placing real order vs marking sold) and implies mutability, but omits details like required permissions, rate limits, or potential side effects. No annotations are present to compensate.

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

Conciseness5/5

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

The description is two sentences, front-loads the primary action, and contains no extraneous information. Every clause is meaningful.

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?

The description does not specify return values, error scenarios, or confirmation messages, which is significant given the lack of an output schema. While the core action is clear, the agent lacks information to handle responses.

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

Parameters3/5

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

With 100% schema description coverage, the description adds little beyond restating the parameter origins (e.g., 'from get_positions'). It does not provide additional enrichment like valid value ranges or formatting tips.

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 uses the specific verb 'sell' and clearly identifies the resource as 'open position' with two identification methods (trade_id or condition_id), distinguishing it from sibling tools like orders.buy or orders.cancel.

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 states when to use (to sell an open position) but does not explicitly contrast with alternatives like positions.close or orders.cancel, nor does it specify prerequisites or conditions for using one parameter over the other.

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

orders.statusA

Check the live state of a specific Polymarket limit order by its order_id. Use after orders.buy, orders.batch, or wta.bid to track fill progress, or to verify that an orders.cancel call succeeded. Returns the order status (OPEN, FILLED, CANCELLED, or EXPIRED), filled amount, remaining size, current limit price, and the market it was placed on. Obtain the order_id from the response of the placing tool or from orders.list. Only works in live mode.

ParametersJSON Schema
NameRequiredDescriptionDefault
order_idYesThe order ID to check status for

TDQS

A4.7/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. It discloses that it returns status, filled amount, remaining size, price, and market, implying it is a read-only check. However, it does not explicitly state that it is non-destructive or that it does not modify state, which would further improve transparency.

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

Conciseness5/5

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

The description is four sentences, with the first sentence clearly stating the purpose. Every sentence adds value (usage guidance, return values, input source, constraint) without unnecessary words. It is well-structured and front-loaded.

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

Completeness5/5

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

Given the tool has one simple parameter, no output schema, and no annotations, the description is complete. It covers purpose, usage guidelines, parameter context, return values, and a constraint. An agent can use this tool correctly without additional information.

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 input schema already describes the order_id parameter with 100% coverage. The description adds context by explaining how to obtain the order_id ('from the response of the placing tool or from orders.list'), which goes beyond the schema's basic description.

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

Purpose5/5

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

The description explicitly states the verb 'check' and the resource 'live state of a specific Polymarket limit order by its order_id', and distinguishes itself from siblings like orders.buy or orders.cancel by explaining its use case for tracking fill progress or verifying cancellation.

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

Usage Guidelines5/5

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

The description provides explicit guidance on when to use this tool: after orders.buy, orders.batch, or wta.bid to track fill progress, or to verify an orders.cancel call. It also mentions obtaining the order_id from the placing tool's response or from orders.list, and notes the constraint 'Only works in live mode'.

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

portfolio.balanceA

View account balance summary: daily budget remaining, total invested, realized and unrealized P&L. No parameters needed. Use this to check how much budget is left before placing new trades.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior4/5

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

The description indicates the tool is read-only ('View') and has no parameters. In the absence of annotations, this is adequate. No mention of auth requirements or side effects, but for a simple balance view, the description is sufficiently transparent.

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

Conciseness5/5

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

The description is very concise, consisting of two short sentences that cover purpose, content, and usage guidance. No unnecessary words.

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

Completeness4/5

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

Given the tool's simplicity and the absence of output schema, the description provides enough context for an agent to use it effectively. It could mention that it returns a summary, but current content is mostly complete.

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

Parameters3/5

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

The input schema has no parameters, so the description cannot add parameter semantics. Schema description coverage is 100% (trivially). Baseline 3 applies because parameters are absent, and the description does not need to elaborate.

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

Purpose5/5

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

The description clearly states the tool's purpose: viewing account balance summary including specific metrics (daily budget remaining, total invested, realized/unrealized P&L). It distinguishes from sibling tools by noting that no parameters are needed and provides a specific use case.

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

Usage Guidelines4/5

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

The description gives explicit guidance on when to use the tool: 'Use this to check how much budget is left before placing new trades.' While it does not mention when not to use or alternatives, the guidance is clear and sufficient for a simple read-only tool.

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

portfolio.getA

Get a comprehensive portfolio overview of all open copy-trading positions, grouped by the source trader they were copied from, with per-wallet subtotals, individual market names/entry prices/sizes, active stop-loss/take-profit rules, and an aggregate total P&L. Use as a daily status check, before sizing decisions via config.set, or to identify which source wallet is carrying the portfolio. Returns a grouped markdown table. Call portfolio.balance for budget-focused numbers or portfolio.risk for concentration metrics. No parameters.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.6/5.0
Behavior4/5

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

No annotations provided, so description carries full burden. It discloses that the tool returns a grouped markdown table with detailed portfolio information, implying a read-only operation. However, it does not explicitly state that it is non-destructive or safe to call repeatedly, which would be a minor enhancement.

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 moderately concise with three sentences covering purpose, usage, and return format. Each sentence adds value, though it could be slightly trimmed without losing clarity.

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

Completeness5/5

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

Given the tool has no parameters and no output schema, the description fully covers what the tool returns (grouped markdown table with detailed fields) and when to use it. No gaps remain.

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 has zero parameters, so no additional parameter documentation is needed. The description explains the output comprehensively, which suffices for parameterless tools. Baseline 4 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 clearly states that the tool gets a comprehensive portfolio overview of open copy-trading positions, grouped by source trader, with per-wallet subtotals, entry prices, stop-loss/take-profit rules, and aggregate P&L. It distinguishes itself from siblings by naming portfolio.balance and portfolio.risk as alternatives.

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

Usage Guidelines5/5

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

Explicitly recommends use as a daily status check, before sizing decisions via config.set, or to identify which source wallet is carrying the portfolio. Also provides specific alternatives: 'Call portfolio.balance for budget-focused numbers or portfolio.risk for concentration metrics.'

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

portfolio.optimizeA

Analyze your open positions and generate optimization recommendations based on your chosen strategy (conservative, balanced, or aggressive). Returns SL/TP suggestions, concentration warnings, and cut/hold/take-profit actions for each position.

ParametersJSON Schema
NameRequiredDescriptionDefault
strategyNoRisk strategy: conservative=tight SL/TP, balanced=moderate risk, aggressive=wider thresholds for max growthbalanced

TDQS

A3.8/5.0
Behavior3/5

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

No annotations provided, so description must carry behavioral disclosure. States it 'analyzes and generates recommendations' with no side effects mentioned. Does not detail the output structure or prerequisites. Some transparency via listed returns, but overall limited.

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?

Single sentence with clear structure: action, method, outcome. No wasted words. Front-loaded with key 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?

One-parameter tool with no output schema. Description covers input and output enough for basic usage. Could mention requirement for open positions or how multiple positions are handled, but overall sufficient.

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 100% with parameter descriptions. The tool description adds context by tying strategy to recommendation generation, but adds minimal extra meaning beyond the schema. Baseline 3 maintained.

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?

Clearly states the tool analyzes open positions and generates optimization recommendations. Specifies what it returns (SL/TP suggestions, concentration warnings, cut/hold/take-profit actions), distinguishing it from siblings like portfolio.risk or positions.list.

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

Usage Guidelines3/5

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

Implies use when positions exist and optimization is needed, but lacks explicit guidance on when to use this tool vs alternatives (e.g., portfolio.risk or positions.set_exit_rules). No mention of prerequisites or when not to use.

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

portfolio.riskA

Assess portfolio risk across 4 dimensions: position concentration, market diversification, stop-loss/take-profit coverage, and daily budget utilization. Returns a risk score with specific warnings. No parameters needed.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

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. It clearly states the tool assesses risk and returns a score with warnings, implying a read-only operation. However, it does not explicitly confirm no side effects, though 'assess' and 'returns' strongly suggest non-destructive 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?

The description is two sentences, front-loads the key dimensions, and contains no redundant information. Every word adds value, achieving maximum conciseness for the intended functionality.

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 no parameters and no output schema, the description adequately covers purpose and output. It mentions four dimensions and that a risk score with warnings is returned. Minor missing details like score range or warning types would be nice but are not critical for a no-param tool.

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?

There are zero parameters, and the schema coverage is 100% trivially. The description adds 'No parameters needed', confirming the schema. Per guidelines, baseline for 0 params is 4, and the description matches this expectation.

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

Purpose5/5

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

The description explicitly states the tool assesses portfolio risk across four specific dimensions (concentration, diversification, coverage, budget utilization) and returns a risk score with warnings. This clearly distinguishes it from sibling tools like portfolio.get or portfolio.optimize.

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 guidance is provided on when to use this tool versus alternatives. While the description implies it's for risk assessment, it doesn't contrast with siblings such as portfolio.optimize or portfolio.balance, 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.

positions.check_exitsA

Scan all open positions for exit conditions: market resolution, stop-loss/take-profit triggers, or the original trader exiting. Updates P&L and closes positions that meet exit criteria. No parameters needed.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.4/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 full burden. It details the behavioral effects: scanning, checking conditions (market resolution, stop-loss/take-profit, trader exit), updating P&L, and closing positions. No contradictions.

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

Conciseness5/5

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

Two sentences with no wasted words. Front-loaded with action and outcome, followed by parameter note. Highly concise.

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

Completeness4/5

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

Given no output schema or annotations, the description explains the tool's functionality adequately for a simple no-param tool. Could mention return value, but not essential for understanding.

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 zero parameters and 100% schema coverage, the description only needs to confirm no parameters are required, which it does. Baseline for 0 params is 4.

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

Purpose5/5

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

The description clearly specifies the action (scan/check), resource (open positions), and outcome (updates P&L, closes positions). It distinguishes itself from sibling tools like positions.close and positions.list by implying automatic exit evaluation.

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

Usage Guidelines4/5

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

The description states 'No parameters needed', indicating simplicity. It implicitly suggests periodic use for checking exits, but lacks explicit comparison to alternatives like positions.set_exit_rules. Still clear enough for typical use.

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

positions.closeA

Manually close a copy trading position by trade ID. In live mode, places a sell order on Polymarket. In preview mode, marks the position as closed in the database. Use get_positions to find the trade_id. Pro feature.

ParametersJSON Schema
NameRequiredDescriptionDefault
trade_idYesID of the trade/position to close (from get_positions)
reasonNoReason for closing (e.g. 'manual', 'stop_loss', 'take_profit')manual

TDQS

A4/5.0
Behavior3/5

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

No annotations provided, so description carries disclosure burden. It explains live mode places a sell order on Polymarket and preview mode marks closed in database. However, it omits other traits like destructiveness (position closure is irreversible), authorization requirements, or error conditions.

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?

Three concise sentences: purpose, mode behavior, source for trade_id, plus 'Pro feature'. No redundancy, each sentence adds unique value.

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?

Covers core behavior and parameter acquisition for a simple tool. Lacks details on errors, reversibility, or prerequisites (e.g., must be in a copy trading session), but sufficient for typical use given sibling tool context.

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 100% with descriptions for both parameters. The description reinforces trade_id source ('from get_positions') and reason examples, adding minimal new semantic depth beyond the schema.

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

Purpose5/5

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

The description states 'Manually close a copy trading position by trade ID' with specific verb and resource. It distinguishes from sibling tools like 'positions.list' and 'positions.set_exit_rules' by focusing on manual closing and referencing '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 Guidelines4/5

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

Clear usage context: use to close a position, with modes (live vs preview). Advises to first call 'get_positions' to obtain trade_id. Does not explicitly state when not to use or compare to alternatives like exit rules, but the context of sibling tools implies differentiation.

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

positions.listA

View your own copy trading positions filtered by status (open, closed, or all). Returns market name, entry price, current price, P&L, and exit rules for each position.

ParametersJSON Schema
NameRequiredDescriptionDefault
statusNoFilter positions: open=active, closed=resolved/exited, all=bothopen

TDQS

A4.2/5.0
Behavior4/5

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

No annotations provided; description states it's a view operation, non-destructive, with fields returned. Could mention rate limiting or data freshness, but sufficient for a read-only tool.

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?

Single sentence, no waste, front-loaded with purpose and filtering. Optimal conciseness.

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?

Simple tool with 1 optional param, no output schema. Description covers return fields and filtering. Minor lack: no mention of pagination or defaults beyond schema.

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 100% with full description and enum for 'status'. Description adds no extra parameter details beyond schema, so baseline 3 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?

The description clearly states the tool views copy trading positions, filtered by status, and lists returned data (market name, entry price, etc.). It distinguishes from sibling tools like positions.close and positions.set_exit_rules.

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

Usage Guidelines4/5

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

The description explains filtering by status (open, closed, all) and implies use case for viewing positions. It lacks explicit alternatives or when-not-to-use guidance, but the context is clear given sibling tools.

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

positions.set_exit_rulesA

Set stop-loss and/or take-profit price levels on an open position. When the market price crosses these levels, check_exits will automatically close the position. Use get_positions to find trade IDs. Pro feature.

ParametersJSON Schema
NameRequiredDescriptionDefault
trade_idYesID of the open position to set exit rules on (from get_positions)
stop_lossNoPrice at which to sell (stop-loss). E.g. 0.30 means sell if price drops to $0.30
take_profitNoPrice at which to sell (take-profit). E.g. 0.85 means sell if price rises to $0.85

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 burden. It discloses that setting levels triggers automatic closure via check_exits and mentions 'Pro feature'. However, it does not detail auth requirements, rate limits, or behavior when both stop_loss and take_profit are set.

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?

Three sentences, front-loaded with the main action, every sentence adds value. No 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 the simple tool (3 params, no output schema), the description covers purpose, prerequisite (get_positions), and interaction with check_exits. It could mention that setting new rules overwrites previous ones, but overall it is 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 coverage is 100% with examples provided in the schema itself. The description mentions 'stop-loss and/or take-profit' indicating optionality but adds no new semantic information beyond what is already in the schema.

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

Purpose5/5

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

The description clearly states the verb 'Set' and resource 'stop-loss and/or take-profit price levels on an open position', and distinguishes from sibling tools by explaining the automatic closure via check_exits.

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

Usage Guidelines4/5

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

The description provides clear context by instructing to use get_positions to find trade IDs, and implies the tool is used before check_exits. However, it does not explicitly state when not to use this tool versus alternatives like positions.close.

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

traders.analyzeA

Analyze a Polymarket trader by wallet address. Returns profile stats, active positions, win rate, volume, PnL, and recent trade activity. Use before adding a trader to your watchlist to assess their quality.

ParametersJSON Schema
NameRequiredDescriptionDefault
addressYesTrader's Ethereum wallet address (0x...) to analyze

TDQS

A4/5.0
Behavior3/5

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

With no annotations, the description must fully convey behavioral traits. It describes what it returns but does not mention read-only nature, rate limits, authentication, or data freshness. However, for a simple analysis tool, it is reasonably transparent.

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 sentences with no wasteful language. The first sentence states purpose and outputs, the second provides usage guidance. Well-structured and concise.

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

Completeness4/5

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

For a single-parameter tool without output schema, the description lists key return values. It lacks error handling details but is sufficient for typical use. Adequate for the complexity.

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 100%, and the description adds no additional meaning beyond what the schema provides (wallet address). The description's mention of 'by wallet address' is redundant.

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

Purpose5/5

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

The description clearly specifies the tool's action (Analyze a Polymarket trader), the resource (wallet address), and the outputs (profile stats, active positions, win rate, volume, PnL, recent trade activity). This distinguishes it from sibling tools like traders.backtest, traders.discover, and traders.score.

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 states when to use the tool: 'Use before adding a trader to your watchlist to assess their quality.' This provides clear context, though it does not mention when not to use or list alternatives.

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

traders.backtestA

Simulate copying a trader's historical trades to calculate hypothetical P&L. Shows what you would have earned if you had copy-traded this wallet. Use before adding a trader to your watchlist to validate their performance. Pro feature.

ParametersJSON Schema
NameRequiredDescriptionDefault
addressYesEthereum wallet address of the trader to backtest
copy_budgetNoSimulated $ amount per trade (default: $5)

TDQS

A3.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 must disclose behavioral traits. It states the tool simulates historical trades and calculates hypothetical P&L, but fails to mention whether it's read-only, if it has rate limits, data freshness, or limitations (e.g., past performance not indicative). This is minimal disclosure for a simulation tool.

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?

Three sentences are concise and front-loaded with the primary action. Every sentence adds value: the first states the function, the second explains the result, and the third gives usage guidance. No redundancy or unnecessary words.

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?

The description covers the core purpose and usage but lacks details on expected output format (e.g., total profit, percentage, trade breakdown) and assumptions (e.g., slippage, fees). Without an output schema, the description should fill these gaps. It is adequate but not comprehensive for a backtesting tool.

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 schema covers 100% of parameters with descriptions. The description adds value by specifying that 'address' is an Ethereum wallet and referencing the default $5 for copy_budget, which reinforces schema info. It does not introduce new parameters but provides contextual clarity beyond schema.

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

Purpose5/5

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

The description clearly states the tool simulates copying historical trades to calculate hypothetical P&L, with a specific verb (simulate) and resource (trader's history). It distinguishes from siblings like 'traders.analyze' or 'traders.score' which likely focus on current analysis or scoring, not backtesting.

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

Usage Guidelines4/5

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

The description provides a clear use case: 'Use before adding a trader to your watchlist to validate their performance.' It also notes it's a 'Pro feature,' setting expectations. However, it does not explicitly state when not to use or list alternative tools.

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

traders.discoverA

Fetch top traders from the Polymarket leaderboard ranked by PnL, volume, and ROI. Use this to find profitable traders worth copying. Returns trader address, PnL, volume, and win rate. Use auto_watch to add them to your watchlist directly.

ParametersJSON Schema
NameRequiredDescriptionDefault
pagesNoNumber of leaderboard pages to fetch (1 page = 25 traders)
periodNoLeaderboard time range: ALL for all-time, WEEK for last 7 daysALL
min_volumeNoMinimum total trading volume in USDC to include a trader
min_pnlNoMinimum profit/loss in USDC to include a trader
auto_watchNoAutomatically add discovered traders to your watchlist

TDQS

A4/5.0
Behavior3/5

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

No annotations provided, so description must convey all behavior. Mentions pagination via pages parameter and side effect of auto_watch, but does not state it is read-only, lacks rate limit info, or how ranking is sorted. Adequate but could be more explicit.

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 focused sentences. First sentence states purpose and ranking. Second explains output and suggests a follow-up action. No unnecessary words.

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

Completeness4/5

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

Given multiple sibling trader tools, description adequately covers purpose, output fields, and auto_watch usage. Lacks detail on output structure (no output schema) but mentions key fields. Sufficient for a discovery 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?

Input schema has 100% parameter descriptions. Description adds reinforcement for auto_watch but minimal extra value beyond schema. Baseline 3 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?

Description clearly states verb 'Fetch', resource 'top traders from Polymarket leaderboard', and ranking criteria (PnL, volume, ROI). Differentiates from sibling tools like traders.analyze and traders.backtest by focusing on discovery for copying.

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 states use case: 'find profitable traders worth copying' and suggests using auto_watch to add to watchlist. However, doesn't mention when not to use or compare to alternatives like traders.score.

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

traders.positionsA

View another trader's current open positions on Polymarket by their wallet address. Shows market name, outcome, size, and current price. Useful for due diligence before copy trading. Pro feature.

ParametersJSON Schema
NameRequiredDescriptionDefault
addressYesTrader's Ethereum wallet address (0x...)
limitNoMaximum number of positions to return

TDQS

A4/5.0
Behavior3/5

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

With no annotations, the description must cover behavioral traits. It indicates a read-only operation ('View') and lists returned data, but does not disclose authentication requirements, rate limits, or pagination behavior. The 'Pro feature' hint suggests access restrictions, but not explicit.

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?

Three concise sentences with no wasted words. The key verb and resource are front-loaded. Every sentence adds value.

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 no output schema, the description explains what the user gets (market name, outcome, size, current price). It misses ordering or error handling, but is fairly complete for a simple view 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 coverage is 100% with descriptions for both parameters. The description confirms the address parameter's purpose and adds context about output fields, but does not enhance parameter understanding beyond the schema. Baseline 3 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?

The description clearly states the action (view) and resource (another trader's open positions), and distinguishes from sibling tools like 'positions.list' by specifying 'another trader'. It also lists the displayed fields, making the purpose unambiguous.

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

Usage Guidelines4/5

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

The description provides context ('useful for due diligence before copy trading') and implies the tool is for viewing others' positions, but does not explicitly state when not to use it or mention alternative tools like 'traders.analyze'. Still, usage context is clear.

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

traders.scoreA

Calculate a conviction score (0-100) for a trader across 5 dimensions: win rate, volume, consistency, experience, and diversity. Higher scores indicate more reliable traders for copy trading. Pro feature.

ParametersJSON Schema
NameRequiredDescriptionDefault
addressYesTrader's Ethereum wallet address (0x...) to score

TDQS

A3.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 full burden for behavioral traits. It only mentions it's a 'Pro feature' (likely requiring subscription) but doesn't disclose rate limits, data freshness, whether scores are cached, or any other behavioral aspects. For a score calculation tool, more transparency would be expected.

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 sentences efficiently convey the tool's function, output range, dimensions, and use case. No unnecessary words; every sentence 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?

Given the simplicity (one parameter, no output schema), the description covers purpose, output interpretation, and feature restriction. It doesn't mention prerequisites (e.g., trader must exist) or return format, but these are inferable. Slightly more context on requirements would earn a 5.

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 100% with a description for the 'address' parameter. The description adds no new meaning beyond the schema's 'Trader's Ethereum wallet address (0x...).' Baseline of 3 is appropriate since the schema already explains the parameter adequately.

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

Purpose5/5

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

Description clearly states the tool calculates a conviction score (0-100) for a trader, specifying five dimensions and the interpretation for copy trading. This distinguishes it from sibling tools like 'traders.analyze' or 'traders.backtest' which have different purposes.

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

Usage Guidelines4/5

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

Description tells it's a 'Pro feature' and explains higher scores indicate more reliable traders for copy trading, giving a clear use case. However, it does not explicitly state when not to use it or mention alternative tools, so it doesn't fully guide selection among siblings.

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

watchlist.addA

Add or remove an Ethereum wallet address from the copy trading watchlist. Watched wallets are monitored for new trades when the monitor is running. Use discover_traders first to find good wallets to watch.

ParametersJSON Schema
NameRequiredDescriptionDefault
addressYesEthereum wallet address to watch (0x followed by 40 hex characters)
aliasNoFriendly name for this wallet (e.g. 'whale_trader_1')
actionNoadd=start watching this wallet, remove=stop watchingadd

TDQS

A4.2/5.0
Behavior4/5

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

No annotations provided, so description carries full burden. Explains that watched wallets are monitored when the monitor is running, giving behavioral context. Could mention that removal stops monitoring.

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 concise sentences. First states purpose, second adds context and prerequisite. No redundancy or fluff.

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 no output schema and full schema coverage, the description provides sufficient context: purpose, prerequisite, and monitoring effect. Could include but is adequate for this complexity.

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?

Input schema has 100% description coverage, so the description adds minimal value beyond what's already in schema. It mentions add/remove but schema already documents the action enum.

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?

Clearly states the tool adds or removes an Ethereum wallet address from the copy trading watchlist. Differentiates from siblings like watchlist.list and watchlist.rebalance.

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 advises using discover_traders first to find good wallets, providing a clear prerequisite. Could be improved by stating when not to use, but the context is clear.

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

watchlist.listA

Show every wallet address currently on the copy-trading watchlist, with its alias, date added, and active/paused status. Use to review who is being copied before calling monitor.start, after watchlist.rebalance to confirm removals, or to pick a target for traders.analyze, traders.positions, or traders.score. Returns a markdown table of watched wallets. Call watchlist.add to manage entries, or traders.discover to find new wallets to watch. No parameters.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.6/5.0
Behavior4/5

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

No annotations provided; description covers return format (markdown table) and fields. However, it omits any mention of side effects, authentication needs, or rate limits. For a read-only list, this is adequate but not exhaustive.

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?

Single sentence packs all key info: purpose, content, use cases, alternative tools. No wasted words but could be split for readability. Front-loaded with main action.

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

Completeness5/5

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

Given no output schema, description fully explains return value (markdown table with alias, date, status). Also integrates into workflow with cross-references to related tools. Complete for a simple listing.

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?

Input schema has no parameters and description confirms 'No parameters.' Schema coverage is 100% (empty). The description adds no new parameter info but correctly indicates zero parameters, meeting baseline for no-param case.

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

Purpose5/5

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

Description explicitly states 'Show every wallet address currently on the copy-trading watchlist' with details on output fields. Clearly distinguishes from sibling tools like watchlist.add and watchlist.rebalance by stating its unique purpose as a list/review tool.

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

Usage Guidelines5/5

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

Provides explicit contexts for use: before monitor.start, after watchlist.rebalance, to pick targets for analysis tools. Also advises alternatives: watchlist.add for management, traders.discover for finding new wallets. Full guidance.

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

watchlist.rebalanceA

Analyze all traders on your watchlist and remove underperformers whose conviction score or win rate falls below your threshold. Use to keep your watchlist focused on high-quality traders. Pro feature.

ParametersJSON Schema
NameRequiredDescriptionDefault
min_scoreNoRemove traders below this conviction score
min_win_rateNoRemove traders below this win rate %
dry_runNoIf true, only report — don't remove. Set false to actually remove.

TDQS

A3.8/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 describes the removal action but does not explicitly state that changes are permanent or if confirmation is required. The dry_run parameter is mentioned in the schema, but the description could add more context about consequences.

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

Conciseness5/5

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

The description is two sentences with no wasted words. It is front-loaded with the action and immediately followed by the usage context. Every sentence serves a purpose.

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

Completeness4/5

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

Given the tool's simplicity (3 required parameters, no output schema), the description covers the purpose, parameters, and use case. It could mention the return value or impact on the watchlist, but the schema descriptions already clarify the parameters.

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 100%, so the baseline is 3. The description does not add meaning beyond the schema's parameter descriptions, which already define min_score, min_win_rate, and dry_run accurately.

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

Purpose5/5

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

The description clearly states the action (analyze and remove underperformers), the resource (traders on watchlist), and the criteria (conviction score or win rate below threshold). It is specific and distinguishable from sibling tools like watchlist.add or watchlist.list.

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 says 'Use to keep your watchlist focused on high-quality traders,' providing clear context. However, it lacks explicit when-not-to-use instructions or alternatives, e.g., if only viewing is needed.

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

wta.bidA

Place limit orders (stink bids) at a discount on WTA tennis match favorites. Orders sit in the order book until filled at your target price. In preview mode, simulates the orders. In live mode, places real CLOB orders. Pro feature.

ParametersJSON Schema
NameRequiredDescriptionDefault
discount_pctNoDiscount percentage below fair price to place the bid (5-50%)
bet_sizeNoUSDC amount per stink bid order (1-50)

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 bears full responsibility. It discloses the order type, simulation vs real placement, and Pro requirement, but lacks details on potential side effects, permissions, or 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.

Conciseness5/5

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

The description is three focused sentences, front-loaded with the purpose, and contains no superfluous information. Every sentence adds value.

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 2 simple parameters, no output schema, and no annotations, the description covers the essential aspects: what it does, how it behaves in different modes, and its Pro requirement. A minor gap is lack of information about expected return or order life cycle.

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 100%, so the baseline is 3. The description adds the context 'below fair price' for discount_pct, which is already implied in the schema description, offering marginal additional value.

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

Purpose5/5

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

The description clearly states the verb 'Place' and resource 'limit orders (stink bids)' with a specific context 'at a discount on WTA tennis match favorites'. It uniquely identifies this tool among siblings like orders.buy and orders.sell.

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

Usage Guidelines4/5

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

The description explains the preview vs live mode distinction and that it's a 'Pro feature', giving clear usage context. It does not explicitly mention when not to use or alternatives, but the mode explanation is helpful.

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

wta.discoverA

Find today's WTA tennis match markets on Polymarket where the favorite is available at a discount. Returns matches with current price vs fair price and the discount percentage. Use place_stink_bid to act on these opportunities. Pro feature.

ParametersJSON Schema
NameRequiredDescriptionDefault
discount_pctNoMinimum discount percentage below fair price to qualify as a stink bid opportunity (5-50%)

TDQS

A4.3/5.0
Behavior4/5

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

With no annotations, the description fully bears the burden. It explains the tool is a read-only discovery (finding matches and returning data), and mentions no destructive actions or side effects. It does not detail authentication or rate limits, but such details are less critical for a non-mutating tool.

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

Conciseness5/5

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

The description is composed of three front-loaded sentences: purpose, output, and action link. Every sentence adds value without redundancy or 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 simple discovery tool with one optional parameter and no output schema, the description provides sufficient context: it specifies the time frame ('today's'), the input parameter meaning, and the return format. No critical information appears missing.

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?

The input schema has 100% coverage for the single parameter, so the baseline is 3. The description barely adds beyond the schema: it mentions 'stink bid opportunity' but does not significantly enhance the semantic meaning already provided by the schema's description.

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

Purpose5/5

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

The description clearly states it finds today's WTA tennis match markets on Polymarket where the favorite is at a discount, specifying the output (current vs fair price, discount percentage). It distinguishes itself from sibling tools like markets.discover and traders.discover by being specialized for WTA tennis.

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

Usage Guidelines4/5

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

The description advises using place_stink_bid to act on opportunities and labels itself as a 'Pro feature,' implying advanced use. It lacks explicit exclusions or alternatives, but the context of sibling tools provides implicit differentiation.

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. 1 tool update
    • Addedportfolio.get
  2. 1 tool update
    • Removedportfolio.get
  3. 48 tool updates
    • Addedanalysis.arbitrage
    • Addedanalysis.compare
    • Addedanalysis.flow
    • Addedanalysis.holders
    • Addedanalysis.opportunity
    • Addedanalysis.price_history
    • Addedanalysis.quality
    • Addedconfig.dashboard
    • Addedconfig.go_live
    • Addedconfig.history
    • Addedconfig.log_cycle
    • Addedconfig.safety_limits
    • Addedconfig.set
    • Addedmarkets.discover
    • Addedmarkets.events
    • Addedmarkets.featured
    • Addedmarkets.price
    • Addedmarkets.related
    • Addedmarkets.search
    • Addedmarkets.trending
    • Addedmarkets.watch
    • Addedmarkets.watch_price
    • Addedmonitor.start
    • Addedmonitor.stop
    • Addedorders.batch
    • Addedorders.buy
    • Addedorders.cancel
    • Addedorders.list
    • Addedorders.sell
    • Addedorders.status
    • Addedportfolio.balance
    • Addedportfolio.get
    • Addedportfolio.optimize
    • Addedportfolio.risk
    • Addedpositions.check_exits
    • Addedpositions.close
    • Addedpositions.list
    • Addedpositions.set_exit_rules
    • Addedtraders.analyze
    • Addedtraders.backtest
    • Addedtraders.discover
    • Addedtraders.positions
    • Addedtraders.score
    • Addedwatchlist.add
    • Addedwatchlist.list
    • Addedwatchlist.rebalance
    • Addedwta.bid
    • Addedwta.discover
  4. 44 tool updates
    • Removedanalyze_opportunity
    • Removedanalyze_trader
    • Removedassess_risk
    • Removedbacktest_trader
    • Removedbatch_order
    • Removedbuy
    • Removedcancel_orders
    • Removedcheck_exits
    • Removedcheck_market
    • Removedclose_position
    • Removedcompare_markets
    • Removeddiscover_flow
    • Removeddiscover_markets
    • Removeddiscover_traders
    • Removeddiscover_wta
    • Removedfeatured_markets
    • Removedfind_related
    • Removedget_balance
    • Removedget_dashboard
    • Removedget_market_events
    • Removedget_open_orders
    • Removedget_order_status
    • Removedget_portfolio
    • Removedget_positions
    • Removedget_price
    • Removedget_top_holders
    • Removedget_trade_history
    • Removedget_trader_positions
    • Removedgo_live
    • Removedlist_watchlist
    • Removedlog_cycle
    • Removedoptimize_portfolio
    • Removedplace_stink_bid
    • Removedrebalance
    • Removedscore_trader
    • Removedsearch_markets
    • Removedsell
    • Removedset_config
    • Removedset_exit_rules
    • Removedset_safety_limits
    • Removedstart_monitor
    • Removedstop_monitor
    • Removedtrending_markets
    • Removedwatch_price
  5. 21 tool updatesv1.4.5
    • Addedanalyze_trader
    • Addedbacktest_trader
    • Addedcancel_orders
    • Addedcheck_exits
    • Addedcheck_market
    • Addedclose_position
    • Removeddetect_arbitrage
    • Addeddiscover_markets
    • Addeddiscover_wta
    • Addedget_open_orders
    • Addedget_portfolio
    • Addedget_positions
    • Addedget_price
    • Removedget_price_history
    • Addedget_trader_positions
    • Addedlog_cycle
    • Addedoptimize_portfolio
    • Addedplace_stink_bid
    • Addedset_exit_rules
    • Removedwatch_market
    • Removedwatch_wallet
  6. 24 tool updatesv1.4.4
    • Addedanalyze_opportunity
    • Addedassess_risk
    • Removedbacktest_trader
    • Addedbuy
    • Removedcheck_market
    • Addeddetect_arbitrage
    • Addeddiscover_traders
    • Addedfind_related
    • Addedget_balance
    • Addedget_dashboard
    • Removedget_open_orders
    • Addedget_top_holders
    • Addedget_trade_history
    • Addedgo_live
    • Addedlist_watchlist
    • Removedoptimize_portfolio
    • Addedrebalance
    • Addedsearch_markets
    • Addedsell
    • Addedset_config
    • Addedstart_monitor
    • Addedstop_monitor
    • Addedtrending_markets
    • Addedwatch_wallet
  7. 23 tool updatesv1.4.1
    • Removedanalyze_opportunity
    • Removedassess_risk
    • Addedbacktest_trader
    • Removedbuy
    • Removedcancel_orders
    • Removedcheck_exits
    • Addedcheck_market
    • Removeddetect_arbitrage
    • Addeddiscover_flow
    • Removeddiscover_wta
    • Addedfeatured_markets
    • Removedfind_related
    • Removedget_balance
    • Removedget_price
    • Addedget_price_history
    • Removedget_top_holders
    • Removedplace_stink_bid
    • Addedscore_trader
    • Removedsearch_markets
    • Removedsell
    • Addedset_safety_limits
    • Removedtrending_markets
    • Addedwatch_market
  8. 35 tool updatesv1.4.2
    • Changedanalyze_opportunity1 field changed
      • addedInput schema / properties / condition_id / description
        Added value: +"Polymarket market condition ID to analyze for trading opportunity"
    • Removedanalyze_trader
    • Removedbacktest_trader
    • Changedbatch_order4 fields changed
      • addedInput schema / properties / orders / items / properties / amount / description
        Added value: +"Amount in USDC to trade"
      • addedInput schema / properties / orders / items / properties / condition_id / description
        Added value: +"Polymarket market condition ID (hex string)"
      • addedInput schema / properties / orders / items / properties / price / description
        Added value: +"Limit price (0.01-0.99). Omit for market price"
      • addedInput schema / properties / orders / items / properties / side / description
        Added value: +"Order side: BUY to open a position, SELL to close"
    • Changedbuy3 fields changed
      • addedInput schema / properties / condition_id / description
        Added value: +"Polymarket market condition ID (hex string from market URL or API)"
      • addedInput schema / properties / outcome / description
        Added value: +"Outcome to buy: YES for the event happening, NO for it not happening"
      • changedInput schema / properties / price / description
        Previous value: -"Limit price (omit for market price from order book)"New value: +"Limit price (0.01-0.99). Omit for market price from order book"
    • Removedcheck_market
    • Removedclose_position
    • Removeddiscover_flow
    • Removeddiscover_markets
    • Removeddiscover_traders
    • Changeddiscover_wta1 field changed
      • addedInput schema / properties / discount_pct / description
        Added value: +"Minimum discount percentage below fair price to qualify as a stink bid opportunity (5-50%)"
    • Removedfeatured_markets
    • Removedget_dashboard
    • Removedget_portfolio
    • Removedget_positions
    • Changedget_price2 fields changed
      • addedInput schema / properties / condition_id / description
        Added value: +"Polymarket market condition ID. Omit to show prices for all open positions"
      • addedInput schema / properties / show_positions / description
        Added value: +"Include current position value alongside price data"
    • Changedget_top_holders2 fields changed
      • addedInput schema / properties / condition_id / description
        Added value: +"Polymarket market condition ID to find top holders for"
      • addedInput schema / properties / limit / description
        Added value: +"Maximum number of top holders to return"
    • Removedget_trade_history
    • Removedget_trader_positions
    • Removedgo_live
    • Removedlist_watchlist
    • Removedlog_cycle
    • Changedoptimize_portfolio1 field changed
      • addedInput schema / properties / strategy / description
        Added value: +"Risk strategy: conservative=tight SL/TP, balanced=moderate risk, aggressive=wider thresholds for max growth"
    • Removedrebalance
    • Removedscore_trader
    • Changedsearch_markets2 fields changed
      • addedInput schema / properties / active_only / description
        Added value: +"Only return active (non-resolved) markets"
      • addedInput schema / properties / limit / description
        Added value: +"Maximum number of markets to return"
    • Removedset_config
    • Removedset_exit_rules
    • Removedset_safety_limits
    • Removedstart_monitor
    • Removedstop_monitor
    • Changedtrending_markets1 field changed
      • addedInput schema / properties / limit / description
        Added value: +"Maximum number of trending markets to return"
    • Removedwatch_market
    • Changedwatch_price2 fields changed
      • addedInput schema / properties / action / description
        Added value: +"subscribe=start streaming, unsubscribe=stop streaming, status=show connection info"
      • addedInput schema / properties / token_id / description
        Added value: +"Market token ID to subscribe/unsubscribe. Required for subscribe/unsubscribe, omit for status"
    • Removedwatch_wallet
  9. 4 tool updatesv1.4.0
    • Addedcancel_orders
    • Removedget_price_history
    • Addedsearch_markets
    • Addedstart_monitor
  10. 3 tool updates
    • Removedcancel_orders
    • Removedsearch_markets
    • Removedstart_monitor
  11. 1 tool updatev1.3.4
    • Addedgo_live

TDQS

A3.9/5.0

Scored across 48 tools

Disambiguation4/5

Tools are grouped by domain (analysis, markets, orders, etc.) and each has a clearly described purpose. However, some market discovery tools (search, discover, featured, trending) have overlapping functionality that could confuse an agent, though parameters help differentiate.

Naming Consistency5/5

All tools follow a consistent 'category.tool_name' pattern with lowercase and underscores. The naming is uniform and predictable, making it easy for an agent to infer usage.

Tool Count3/5

48 tools is high, but the server aims to cover a comprehensive trading platform including analysis, market data, order execution, portfolio management, and copy trading. While each tool earns its place, the sheer number could be overwhelming for agents.

Completeness5/5

The tool set covers the full lifecycle of trading on Polymarket: market discovery, price analysis, trading (buy/sell/batch), portfolio management, risk analysis, copy trading setup, and monitoring. No obvious gaps are present for the intended domain.

Maintenance

ActivitySlowing
ResponsivenessUnresponsive

Related MCP Connectors

Related MCP Servers

  • A
    license
    B
    quality
    D
    maintenance
    Enables interaction with the PolyMarket API to fetch prediction market data such as market information, prices, and historical data, with robust error handling and rate limit management.
    4
    142
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables Claude to autonomously trade, analyze, and manage positions on Polymarket prediction markets with 45 comprehensive tools including market discovery, real-time monitoring, portfolio management, and AI-powered trading recommendations with enterprise-grade safety features.
    668
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables Claude to autonomously trade, analyze, and manage positions on Polymarket prediction markets with 45 comprehensive tools covering market discovery, analysis, trading execution, portfolio management, and real-time monitoring with enterprise-grade safety features.
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    Prediction market probability oracle for AI agents. 26 tools across 500+ live markets from Kalshi and Polymarket. Cross-source arbitrage detection, structured TPF signals, Kelly Criterion sizing, agent performance tracking, and webhook alerts.
    9
    67
    1
    MIT