graph-polymarket-mcp
This MCP server provides access to Polymarket prediction market data through specialized tools that query The Graph subgraphs, enabling AI agents to analyze markets, trader performance, positions, activity, and platform statistics.
List available subgraphs – Discover all Polymarket subgraphs with their descriptions and key entities
Fetch subgraph schema – Retrieve the full GraphQL schema for a specific subgraph (main, beefy_pnl, slimmed_pnl, activity, or orderbook)
Execute custom GraphQL queries – Run arbitrary GraphQL queries against any supported subgraph with optional variables
Get market data – Retrieve market/condition data including outcomes, volumes, and resolution status from the Main subgraph (supports pagination and ordering)
Get trader P&L – Look up a trader's profit & loss and performance metrics (win rate, profit factor, max drawdown) by Ethereum address
Get user positions – Fetch a user's current token positions from the Slimmed P&L subgraph by wallet address
Get recent activity – View recent splits, merges, and redemptions from the Activity subgraph, optionally filtered by address
Get orderbook trades – Retrieve recent order fills from the Orderbook subgraph, with optional filtering by maker or taker address
Get global platform stats – Access aggregate platform statistics including market counts, volume, fees, trader activity, and open interest
Track open interest & resolution – View per-market and platform-wide open interest, UMA oracle resolution lifecycle, disputed markets, and moderator interventions
Enables querying of Polymarket prediction market data via The Graph subgraphs using GraphQL, providing tools to execute custom queries and retrieve detailed schemas for markets, traders, and activity.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@graph-polymarket-mcpShow me the P&L for trader 0x71C444E949e1A9159d282E376E6c986C887565B1"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
graph-polymarket-mcp
MCP server for querying Polymarket prediction market data via The Graph subgraphs and Polymarket REST APIs.
Exposes 31 tools that AI agents (Claude, Cursor, etc.) can use to search markets, get real-time CLOB prices and order books, query on-chain data, trader P&L, positions, activity, open interest, market resolution status, and trader profiles.
v2.0.0 — adds 10 new tools powered by Polymarket's Gamma and CLOB APIs (inspired by polymarket-cli): market search, event browsing, live prices, spreads, order books, price history, and more. No API key needed for these tools — they hit Polymarket's public REST endpoints directly.
Published to the MCP Registry as
io.github.PaulieB14/graph-polymarket-mcp
Prerequisites
You need a free Graph API key (takes ~2 minutes):
Go to The Graph Studio
Connect your wallet (MetaMask, WalletConnect, etc.)
Click "API Keys" in the sidebar and create one
Free tier includes 100,000 queries/month
Related MCP server: TheGraph MCP Server
Installation
npm install -g graph-polymarket-mcpOr use directly with npx:
npx graph-polymarket-mcpConfiguration
Claude Desktop
Add to your claude_desktop_config.json:
{
"mcpServers": {
"graph-polymarket": {
"command": "npx",
"args": ["-y", "graph-polymarket-mcp"],
"env": {
"GRAPH_API_KEY": "your-api-key-here"
}
}
}
}Claude Code
claude mcp add graph-polymarket -- npx -y graph-polymarket-mcpSet the environment variable GRAPH_API_KEY before running.
Cursor / Other MCP Clients
Use the stdio transport with npx graph-polymarket-mcp as the command, passing GRAPH_API_KEY as an environment variable.
OpenClaw / Remote Agents (SSE)
The SSE transport has no authentication. Anyone who can reach the port can call every tool, and those calls spend your
GRAPH_API_KEYquota.--httpbinds0.0.0.0inside a container, so publish it to127.0.0.1on the host and put a reverse proxy with TLS and auth in front of anything reachable off-box. For local agents, prefer the default stdio transport — it has no network surface at all.
Start the server with the HTTP transport:
# Dual transport — stdio + SSE on port 3851
GRAPH_API_KEY=your-key npx graph-polymarket-mcp --http
# SSE only (for remote/server deployments)
GRAPH_API_KEY=your-key npx graph-polymarket-mcp --http-only
# Custom port
MCP_HTTP_PORT=4000 GRAPH_API_KEY=your-key npx graph-polymarket-mcp --httpThen point your agent at the SSE endpoint:
{
"mcpServers": {
"graph-polymarket": {
"url": "http://localhost:3851/sse"
}
}
}Transport Modes
Invocation | Transports | Use case |
| stdio | Claude Desktop, Cursor, Claude Code |
| stdio + SSE :3851 | Dual — local + remote agents |
| SSE :3851 | OpenClaw, remote deployments |
A /health endpoint is available at http://localhost:3851/health when HTTP transport is active.
Available Tools
Core Tools
Tool | Description |
| List all available Polymarket subgraphs with descriptions and key entities |
| Get the full GraphQL schema for a specific subgraph |
| Execute a custom GraphQL query against any subgraph |
Domain-Specific Tools
Tool | Description | Subgraphs |
| Get market/condition data with outcomes and resolution status | Main |
| Get platform stats: market counts + real volume/fees/trades | Main + Orderbook |
| Get a trader's P&L and performance metrics (winRate, profitFactor, maxDrawdown) | Beefy P&L |
| Leaderboard ranked by PnL, winRate, volume, or profitFactor. Cross-refs Orderbook to flag rows where OB volume exceeds Beefy-tracked volume and surface OB-only traders absent from the leaderboard. | Beefy P&L + Orderbook |
| Daily volume, fees, trader counts, and market activity (1–90 days) | Beefy P&L |
| Top holders for a specific outcome token with their P&L | Beefy P&L |
| Current token positions. Cross-refs Orderbook: flags ⚠ orderbook-only entry when | Slimmed P&L + Orderbook |
| Unified chronological feed interleaving splits, merges, and redemptions with orderbook fills. Supports optional address filter. | Activity + Orderbook |
| Get recent order fills with maker/taker filtering | Orderbook |
| Top markets ranked by USDC locked in outstanding positions. Cross-refs Main subgraph to flag ⚠ dead money OI on resolved markets (losing-side tokens that will never be redeemed on-chain). | Open Interest + Main |
| Hourly OI snapshots for a specific market (for charting trends) | Open Interest |
| Total platform-wide open interest and market count | Open Interest |
| UMA oracle resolution status with filtering by status | Resolution |
| Markets disputed during oracle resolution (high-signal events) | Resolution |
| Moderator interventions and updates on market resolution | Resolution |
| Full trader profile combining CTF events and USDC flows with Orderbook fills. Classifies wallet as hybrid / orderbook-only / split-collateral-only and warns when P&L subgraphs are unreliable. | Traders + Orderbook |
| USDC deposit/withdrawal history with direction filtering | Traders |
Polymarket REST API Tools (no Graph API key needed)
Tool | Description | API |
| Search markets by text query with filters (active, closed, sort by volume/liquidity) | Gamma |
| Get detailed market metadata by slug or condition ID | Gamma |
| Browse events (groups of related markets) with tag/status filters | Gamma |
| Get a single event with all its associated markets | Gamma |
| Real-time CLOB prices for outcome tokens (buy/sell, single or batch) | CLOB |
| Bid-ask spread + midpoint for assessing market liquidity | CLOB |
| Full order book (all resting bids and asks) for a token | CLOB |
| Historical price time-series (1m to max interval, configurable fidelity) | CLOB |
| Last trade price for an outcome token | CLOB |
| CLOB market details: token IDs, live prices, min order/tick sizes | CLOB |
| Power tool: search + auto-enrich with live CLOB prices AND on-chain resolution status in one call | Gamma + CLOB + Graph |
CLOB V2 Tools
Polymarket migrated to V2 exchange contracts on 2026-04-28. These tools read the V2 subgraphs, which index from block 84902353 and hold no pre-migration history — V1 and V2 are different eras, not old and new.
Tool | Description | Subgraphs |
| Rank V2 builders by routed volume, order count or fees, with each builder's share of V2 volume. No V1 equivalent — the V1 contracts never emitted a builder code | V2 Orderbook |
| Recent fills routed by one builder code, plus that builder's aggregate totals | V2 Orderbook |
| Top real V2 traders, with the exchange contracts filtered out | V2 Orderbook |
| How far behind chainhead any subgraph is, read live from its | Any |
Builder attribution is the capability V2 adds. Every V2 fill carries the builder code of the
frontend, bot or integrator that routed it, so "who is actually routing this flow" becomes an
answerable question — 3,325 builders as of 2026-08-08.
Two traps these tools handle for you. The V2 exchange contracts appear as Account rows, because
the exchange is the taker when an order matches the book — ranking accounts naively returns
0xe111…996b (176M fills) and 0xe222…0f59 (41M fills) above every human. get_v2_top_traders
excludes them. And v2_main is still syncing, so it answers with stale data rather than erroring;
check_subgraph_freshness tells you how stale before you trust a number.
Data Sources
The Graph Subgraphs (requires GRAPH_API_KEY)
On-chain indexed data — authoritative for historical analytics, P&L, open interest, and resolution status.
Subgraphs
Name | IPFS Hash | Description |
Main |
| Complete ecosystem data |
Beefy P&L |
| Comprehensive P&L tracking |
Slimmed P&L |
| Minimal position data |
Activity |
| Position management events |
Orderbook |
| Order fill analytics |
Open Interest |
| Per-market and global OI with hourly snapshots |
Resolution |
| UMA oracle resolution lifecycle |
Traders |
| Per-trader event logs and USDC flows |
CLOB V2 (from block 84902353 — no earlier history)
Name | IPFS Hash | Status | Description |
V2 Orderbook |
| at chainhead | V2 fills with builder-code attribution |
V2 P&L |
| at chainhead | Cost basis and realized P&L from V2 fills only |
V2 Main |
| ⚠️ syncing | Conditions and counters — ~86 days behind as of 2026-08-08 |
Open Interest (above) is already a V2 deployment; it reads ConditionalTokens, which V2 left unchanged, so it has no migration discontinuity.
Which era to ask: all-time or pre-2026-04-28 → V1. Post-migration activity, or anything about
builders → V2. beefy_pnl keeps the hedge-fund metrics (winRate, profitFactor, maxDrawdown, daily
series) that V2 P&L does not have, so trader-quality scoring stays on V1.
Example Queries
Once connected, an AI agent can:
Market Discovery (Gamma API)
"Search for prediction markets about AI"
"Show me the most active Polymarket events right now"
"Find markets about the 2024 election sorted by volume"
"What markets are in the 'crypto' category?"
Live Trading Data (CLOB API)
"What's the current price for the Trump YES token?"
"Show me the full order book for this market"
"What's the bid-ask spread on this token?"
"Show me the price history for this market over the last week"
On-Chain Analytics (The Graph)
"What are the current Polymarket global stats?"
"Show me the latest 20 orderbook trades"
"What are the positions for address 0x...?" (flags if wallet entered via OB buys only)
"Get the P&L for trader 0x...?"
"Which markets have the most open interest right now?" (flags dead-money OI on resolved markets)
"Show me disputed markets on Polymarket"
"Who are the top traders?" (flags any with OB volume not captured by Beefy P&L)
"Show me the full trading history for wallet 0x..." (includes OB fills + entry type classification)
Development
git clone https://github.com/PaulieB14/graph-polymarket-mcp.git
cd graph-polymarket-mcp
npm install
npm run build
GRAPH_API_KEY=your-key node build/index.jsLicense
MIT
Available Tools
35 toolscheck_subgraph_freshnessA
Report how far behind chainhead a subgraph is, by reading its _meta block. Worth calling before trusting any 'current' or 'latest' number, because a lagging subgraph returns stale data rather than an error — it succeeds, it is just answering about the past.
| Name | Required | Description | Default |
|---|---|---|---|
| subgraph | Yes | Which subgraph to check |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral burden. It discloses the critical non-obvious behavior that a lagging subgraph returns stale data rather than an error, and that the tool succeeds but answers about the past. It doesn't detail return format or units, but the provided context is valuable.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the main purpose, followed by a concise rationale. Every word earns its place with no redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a low-complexity tool with one enum parameter and no output schema, the description covers the core purpose, when to use it, and a critical behavioral nuance. It could mention the unit of 'how far behind' (e.g., blocks vs seconds), but the phrase 'chainhead' implies block distance, so it is reasonably complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already fully describes the single parameter (subgraph enum with 'Which subgraph to check'), so the description adds no extra parameter semantics. Baseline 3 is appropriate since schema coverage is 100%.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Report') and names the exact resource (subgraph) and metric (how far behind chainhead by reading _meta block). It clearly distinguishes itself from sibling data-getter tools by focusing on freshness rather than data content.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit situational guidance: 'Worth calling before trusting any current or latest number' and explains why (stale data returns successfully). It doesn't explicitly name alternative tools, but the context of sibling data getters makes the use case clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_account_pnlB
Get a trader's P&L and performance metrics from the Beefy P&L subgraph
| Name | Required | Description | Default |
|---|---|---|---|
| account | Yes | Ethereum address of the trader (lowercase) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, and the description does not disclose behavioral traits such as read-only nature, required permissions, rate limits, or side effects. The agent has no information beyond the tool name and description.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that covers the core purpose. It is front-loaded and contains no redundant information. However, it could be slightly expanded to include more context without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With only one parameter and no output schema, the description is minimal. It does not specify what performance metrics are included or how the results are formatted. Given the complexity of P&L data, more context would be helpful for agent decision-making.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already describes the account parameter as 'Ethereum address of the trader (lowercase)' with 100% coverage. The description adds no additional meaning beyond what the schema provides, so a baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool gets a trader's P&L and performance metrics from a specific subgraph. The verb 'Get' and resource 'P&L and performance metrics' are specific, and the source 'Beefy P&L subgraph' distinguishes it from other trader-related tools like get_trader_profile or get_user_positions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives. For instance, it doesn't clarify whether this should be used over get_trader_profile or get_user_positions for P&L-related queries. No context about prerequisites or use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_builder_activityA
Recent fills routed by one Polymarket CLOB V2 builder code, with that builder's aggregate totals. Use get_builder_leaderboard first to find a builder id. V2-era only.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | How many recent fills (default 20) | |
| builderId | Yes | The builder code (bytes32 hex, as returned by get_builder_leaderboard) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses data scope (recent fills, aggregate totals) and the V2-only limitation. However, it does not mention pagination, default limit, or return format beyond the totals, leaving minor gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the core functionality and output, followed by a concise usage prerequisite. Every sentence earns its place with no redundant phrasing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter read tool, the description sufficiently explains purpose, input source, and scope. The lack of an output schema is mitigated by the explicit mention of 'recent fills' and 'aggregate totals.' Minor omission is the precise definition of 'recent' (e.g., time range).
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description reinforces that builderId comes from get_builder_leaderboard, but the schema already states this. No additional parameter semantics are provided beyond what the schema offers.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states that the tool returns recent fills and aggregate totals for a specific Polymarket CLOB V2 builder code. It distinguishes itself from sibling tools like get_recent_activity by specifying builder code and V2-era scope, and by referencing get_builder_leaderboard.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly instructs to call get_builder_leaderboard first to obtain a builderId, providing a concrete usage workflow. The 'V2-era only' constraint gives an exclusion and contextualizes when the tool is applicable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_builder_leaderboardA
Rank Polymarket CLOB V2 builders by routed volume, order count or fees. A 'builder' is the frontend/bot/integrator whose code is attached to a fill — this answers 'who is actually routing the flow', which no V1 subgraph can, because the V1 contracts never emitted it. V2-era only (from block 84902353, migration 2026-04-28).
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | How many builders to return (default 10) | |
| orderBy | No | Ranking metric (default scaledVolume) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full responsibility for behavioral disclosure. It explains the definition of builder, the V2-only block constraint, and why data is unavailable for V1. This goes well beyond the tool name, though it doesn't mention return format or potential side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, each adding essential value: the main action, the crucial definition of 'builder', and the temporal scope. No filler or redundant phrasing; information is front-loaded with the most important part first.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter read-only tool without an output schema, the description covers the core context: what it ranks, the key concept of builder, and the applicable data range. It could explicitly state the return format, but the ranking intent is clear enough.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already documents both parameters with descriptions (coverage 100%), so the description doesn't need to add much. It does restate the ranking metrics ('routed volume, order count or fees') that map directly to the orderBy enum values, but no additional meaning is provided beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a clear action: 'Rank Polymarket CLOB V2 builders by routed volume, order count or fees.' It defines the nuance of 'builder' and explicitly contrasts with V1 subgraphs, making the tool's unique scope unmistakable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It states exactly when to use this tool: to discover who is actually routing flow, a question V1 subgraphs cannot answer. It also constrains usage to V2-era data (from block 84902353, migration 2026-04-28). While it doesn't name sibling tools as alternatives, the use case is explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_clob_marketA
Get CLOB market details by condition ID. Returns token IDs (token_id) with live prices, minimum order/tick sizes, and market status. This is the bridge between on-chain condition IDs and CLOB trading data. Use the returned token_id values with get_live_prices, get_live_spread, get_live_orderbook, get_price_history, or get_market_positions.
| Name | Required | Description | Default |
|---|---|---|---|
| conditionId | Yes | Market condition ID (hex string) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry behavioral disclosure. It states the tool is read-only (returns data) and describes the output fields. It does not cover errors, permissions, or rate limits, but for a simple lookup tool this 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three concise sentences: first states purpose and output, second reinforces role, third gives usage guidance. No extraneous information, properly front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description adequately explains the return values (token IDs, prices, sizes, status) and how to use the output with other tools. It does not mention error handling or pagination, but for a simple query tool with one parameter, this is sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% for the single parameter. The description adds context by explaining the parameter's role ('by condition ID') and how the output (token_id) relates to other tools, which adds meaning beyond the schema's basic hex string description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool gets CLOB market details by condition ID, listing specific return fields (token IDs, live prices, sizes, status). It also positions itself as a bridge between on-chain IDs and CLOB data, distinguishing it from sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly advises using the returned token_id values with several sibling tools (get_live_prices, etc.), providing a clear next-step context. It implicitly indicates usage when you have a condition ID and need trading data, but does not explicitly state when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_daily_statsA
Get daily platform statistics from the Beefy P&L subgraph: volume, fees, trader counts, and market activity per day. Use this for trend analysis and historical performance.
| Name | Required | Description | Default |
|---|---|---|---|
| days | No | Number of recent days to return (1-90) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the burden. It mentions the data source ('Beefy P&L subgraph'), implying a read-only operation. However, it does not disclose any specific behavioral traits such as data freshness, pagination behavior, or any rate limits. With no annotations, a score of 3 reflects marginal value beyond the basic read context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, directly stating the purpose and the intended use case. Every sentence adds value, and the key information is front-loaded. No redundancies or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has only one parameter with schema documentation, no output schema, and no annotations, the description provides sufficient context for an agent to understand what the tool does, what data it returns (volume, fees, etc.), and when to use it. A minor gap is the lack of information about the output format, but it is still reasonably complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage for the only parameter ('days'), with clear bounds and default. The description does not add extra meaning beyond what the schema provides. According to the rubric, baseline is 3 when schema coverage is high, so this score is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get', the resource 'daily platform statistics', and lists specific metrics (volume, fees, trader counts, market activity). It distinguishes itself from sibling tools like get_global_stats by specifying 'from the Beefy P&L subgraph' and focus on daily data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says 'Use this for trend analysis and historical performance', indicating the appropriate context. It does not provide exclusions or alternatives, but the usage intent is clear and sufficient given the tool's simplicity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_disputed_marketsA
Get Polymarket markets that were disputed during the UMA oracle resolution process. Disputes happen when someone challenges a proposed outcome — these are high-signal events.
| Name | Required | Description | Default |
|---|---|---|---|
| first | No | Number of disputed markets to return |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries the full burden. It fails to disclose behavioral traits such as data freshness, pagination, or any side effects. The description merely defines the resource without adding operational context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with two sentences that convey purpose and context without any unnecessary words or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the low complexity of the tool (one optional parameter, no output schema), the description is mostly adequate but lacks details on the output format or any example usage. It is sufficient for a simple retrieval but not fully comprehensive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage for the sole parameter 'first' is 100% (it includes a numeric description). The tool description does not add any further meaning beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Get') and the specific resource ('Polymarket markets that were disputed during the UMA oracle resolution process'). This uniquely identifies the tool among siblings that also retrieve market data but target different aspects.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains what disputes are ('high-signal events') implying a use case for monitoring contentious outcomes, but does not provide explicit guidance on when to use this tool versus alternatives like get_market_resolution or search_markets.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_global_open_interestA
Get the total open interest across all Polymarket markets — the aggregate USDC locked in outstanding positions platform-wide.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description bears full burden. It correctly indicates the tool is a read operation returning aggregate data, but does not disclose potential rate limits, data freshness, or caching behavior. For a simple stat, the description is adequate but minimal.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that efficiently conveys purpose and result. No wasted words; every element adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no parameters and no output schema, the description fully covers what the tool does and returns. It provides complete context for an agent to select and invoke this tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so baseline is 4. The description adds meaning by defining what 'global open interest' represents (aggregate USDC locked in outstanding positions). This is sufficient for an agent to understand the output.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns the total global open interest across all Polymarket markets. The verb 'Get' and resource 'global open interest' are specific and unambiguous. It implicitly distinguishes from sibling tools like 'get_market_open_interest' which operate per market.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage context is implied by the name and description (global vs per-market), but no explicit guidance is given on when to use this tool versus alternatives like 'get_market_open_interest'. No exclusions or prerequisites are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_global_statsA
Get aggregate Polymarket platform statistics. Combines market counts from the Main subgraph with accurate volume/fee/trade data from the Orderbook subgraph.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided. The description discloses the data source combination (Main and Orderbook subgraphs), which is behavioral context. However, it does not mention any side effects, auth needs, rate limits, or expected return structure. More transparency would be beneficial.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with purpose. No wasted words. Every sentence adds value: the first defines the action and scope, the second details the data source integration.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description should hint at return fields. It only says 'aggregate statistics' which is vague. Siblings like get_daily_stats are likely more specific. Missing key output details makes it incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are no parameters, so schema description coverage is 100%. Baseline for 0 params is 4. The description adds no param info, but none is needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Get aggregate Polymarket platform statistics' and distinguishes by specifying it combines data from Main and Orderbook subgraphs. Among siblings like get_market_info or get_account_pnl, this is the only global aggregate tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies use when overall platform stats are needed, but provides no explicit when-to-use or when-not-to-use guidance. No alternatives are mentioned, leaving the agent to infer context from sibling tool names.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_last_tradeB
Get the last trade price for a Polymarket outcome token from the CLOB.
| Name | Required | Description | Default |
|---|---|---|---|
| tokenId | Yes | CLOB token ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose any behavioral traits such as data freshness, rate limits, error conditions, or whether the price is retrieved from cache or real-time. The description carries the full burden for transparency but only states the action.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that immediately conveys the tool's purpose without any extraneous information. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the single parameter, lack of output schema, and no annotations, the description is minimally adequate. However, it lacks details on return format, possible errors, and usage context, which would make it more complete for an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with one parameter described as 'CLOB token ID'. The description does not add any additional meaning or context beyond what the schema provides, so a baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves the last trade price for a Polymarket outcome token, using a specific verb 'Get' and resource 'last trade price'. It distinguishes itself from sibling tools like get_live_prices or get_orderbook_trades by focusing on the last traded price from the CLOB.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like get_live_prices or get_orderbook_trades. It does not mention prerequisites, context, or exclusions, leaving the agent to infer usage from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_live_orderbookA
Get the full real-time order book (bids and asks) for a Polymarket outcome token from the CLOB. Shows all resting limit orders with prices and sizes.
| Name | Required | Description | Default |
|---|---|---|---|
| tokenId | Yes | CLOB token ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose behavioral traits such as rate limits, order book depth, or whether 'full' means all levels; minimal behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence efficiently conveys purpose and output, with no redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Adequate for a simple retrieval tool with one parameter; could mention depth limits or pagination but is largely complete as-is.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% for the single 'tokenId' parameter, so the description need not add much; it provides no additional context beyond the schema's 'CLOB token ID'.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states it retrieves the full real-time order book (bids and asks) for a Polymarket outcome token from the CLOB, distinguishing it from sibling tools like get_live_prices or get_orderbook_trades.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool vs alternatives like get_orderbook_trades or get_live_spread; usage is implied by 'real-time' but lacks explicit context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_live_pricesA
Get real-time CLOB prices for Polymarket outcome tokens. Returns the current best price for buying or selling. Token IDs come from: clobTokenIds in search_markets/get_market_info, or token_id in get_clob_market.
| Name | Required | Description | Default |
|---|---|---|---|
| side | No | Price side: buy or sell | buy |
| tokenIds | Yes | Array of CLOB token IDs (get these from search_markets or get_market_info clobTokenIds field) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Since no annotations are provided, the description carries the full burden. It discloses the tool returns the current best price for a given side, which is a read operation. It does not detail response format or error handling, but the core behavior is clear.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two efficient sentences with no wasted words. The first sentence states the purpose, the second explains input sourcing. Perfectly front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with 2 params and no output schema, the description is adequate but incomplete. It does not specify the return format or any edge cases. Siblings with more complex output might set a higher bar, but for this tool it is minimally viable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3. The description adds extra context on where to obtain token IDs (search_markets/get_market_info, get_clob_market), which aids usage beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool gets real-time CLOB prices for Polymarket outcome tokens and returns the best price for buying or selling. It specifies the source of token IDs, distinguishing it from siblings like get_live_orderbook and get_price_history.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context on when to use the tool (real-time best price) and references related tools for obtaining token IDs. However, it does not explicitly mention when not to use it or alternatives for full order book data.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_live_spreadA
Get the real-time bid-ask spread for a Polymarket outcome token. Returns best bid, best ask, and spread. Useful for assessing market liquidity and trading costs.
| Name | Required | Description | Default |
|---|---|---|---|
| tokenId | Yes | CLOB token ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full responsibility for behavioral disclosure. It accurately states the tool returns real-time data, but does not mention potential latency, refresh rates, or whether it is a snapshot vs. streaming. For a simple read operation, this is adequate but could be improved.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description consists of two concise sentences: the first states the function, the second lists returned data and use case. Every word is informative with no redundancy or unnecessary detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's low complexity (one parameter, no output schema, no annotations), the description sufficiently covers what the tool does, what it returns, and its purpose. No obvious gaps exist for an agent to effectively use this tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single parameter tokenId is described in the input schema as 'CLOB token ID', and the description adds no further explanation. With 100% schema description coverage, the baseline is 3, and the description does not provide additional semantics beyond what the schema already conveys.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves the real-time bid-ask spread for a Polymarket outcome token, specifying returned fields (best bid, best ask, spread). It is distinct from sibling tools like get_live_orderbook or get_last_trade, as it focuses on the spread rather than full order book depths or individual trades.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description notes the tool is useful for assessing market liquidity and trading costs, implying when to use it. However, it does not contrast with alternatives such as get_live_orderbook or get_last_trade, nor does it specify when not to use this tool (e.g., if full order book detail is needed).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_market_dataB
Get Polymarket market/condition data including outcomes and volumes from the Main subgraph
| Name | Required | Description | Default |
|---|---|---|---|
| first | No | Number of markets to return (1-100) | |
| orderBy | No | Field to order by | id |
| orderDirection | No | Sort direction | desc |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose any behavioral traits like permissions, rate limits, or data scope beyond the minimal 'outcomes and volumes'.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence efficiently conveys the tool's purpose with no unnecessary words, well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Description is adequate but does not elaborate on how this tool differs from the many sibling get_* tools; lacks completeness in guiding selection choice.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers all parameters with descriptions, so the description adds no extra meaning beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool gets market/condition data including outcomes and volumes, specifying the source subgraph, which distinguishes it from siblings like get_market_info.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives such as get_market_info or search_markets; the description lacks any contextual usage advice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_market_infoA
Get detailed Polymarket market info by slug or condition ID. Returns full market metadata from the Gamma API including description, prices, outcomes, and CLOB token IDs. Use the returned conditionId to query get_clob_market for live CLOB data, get_market_open_interest for OI, or get_market_resolution for oracle status.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | No | Market slug (e.g. 'will-trump-win-2024') | |
| conditionId | No | Market condition ID (hex string) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations, but description clearly indicates a read operation (get, returns). It mentions returning full metadata from Gamma API, no side effects hinted. Could mention idempotency or rate limits, but acceptable.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, each packed with useful information. No fluff. Front-loaded with purpose and immediate action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Without output schema, description sufficiently explains what is returned (full metadata, specific fields). Mentions key uses, making it complete for an API tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 100% coverage with clear descriptions for each parameter. Description adds value by explaining the relationship (conditionId used for other calls) and that either slug or conditionId is sufficient.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States clearly it gets Polymarket market info by slug or condition ID, returns full metadata including description, prices, outcomes, CLOB token IDs. Distinguishes from sibling tools by mentioning conditionId usage for other queries.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly tells when to use (get market metadata) and what not to use for (CLOB data, OI, resolution), providing alternatives like get_clob_market, get_market_open_interest, get_market_resolution.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_market_open_interestB
Get the top Polymarket markets ranked by open interest (USDC locked in outstanding positions). This data is unique to the Open Interest subgraph — no other Polymarket subgraph tracks OI.
| Name | Required | Description | Default |
|---|---|---|---|
| first | No | Number of markets to return (1-100) | |
| orderBy | No | Field to rank markets by | amount |
| orderDirection | No | Sort direction | desc |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full burden of behavioral disclosure. It only states that the data is from the Open Interest subgraph, but does not mention data freshness, rate limits, pagination, or any other behavioral traits. For a read operation, more details are expected.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is highly concise with two sentences. It immediately states the primary function and then adds a distinguishing remark. Every sentence adds value without unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has no output schema, so the description should cover what the response contains. It does not explain the return format, pagination, or structure of the market data. For a tool returning a list of markets, this lack of completeness is a significant gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage for all three parameters, so the schema already explains each parameter. The tool description adds no additional semantic value beyond what is in the schema, earning the baseline score of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Get the top Polymarket markets') and the specific metric ('ranked by open interest'). It also distinguishes this tool from siblings by noting that no other Polymarket subgraph tracks open interest, 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use this tool (when open interest data is needed) but does not explicitly state when not to use it or provide alternatives. Given the sibling list includes 'get_global_open_interest', more guidance on the distinction would improve score.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_market_positionsA
Get the top positions for a specific market token from the Beefy P&L subgraph. Shows who holds the largest positions and their P&L.
| Name | Required | Description | Default |
|---|---|---|---|
| first | No | Number of positions to return | |
| orderBy | No | Field to sort by | valueBought |
| tokenId | Yes | The outcome token ID — same value as clobTokenIds from search_markets/get_market_info, token_id from get_clob_market, or makerAssetId/takerAssetId from get_orderbook_trades |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must convey behavioral traits. It honestly describes a read operation, but lacks details on data freshness, pagination, or potential side effects. It is 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short, clear sentences with no unnecessary words. The key information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description does not detail the return format (e.g., fields of positions). It implies P&L but is vague. Adequate given the parameter richness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema has 100% description coverage, so the schema already explains each parameter. The description adds no additional meaning for the parameters beyond the schema. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves top positions for a specific market token, using a specific verb ('Get') and resource. It distinguishes from sibling tools like get_user_positions or get_account_pnl which focus on individual accounts.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions 'from the Beefy P&L subgraph' but does not provide explicit guidance on when to use this tool vs alternatives, nor any prerequisites or exclusions. The context signals show many sibling tools, but no comparison is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_market_resolutionA
Get the UMA oracle resolution status for Polymarket markets. Shows whether a market is initialized, proposed, disputed, or resolved, plus proposed/final prices and dispute history.
| Name | Required | Description | Default |
|---|---|---|---|
| first | No | Number of markets to return (1-100) | |
| status | No | Optional: filter by resolution status | |
| orderBy | No | Field to sort by | lastUpdateTimestamp |
| orderDirection | No | Sort direction | desc |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses the output fields and statuses, but does not mention that the operation is read-only, side effects, potential errors, or authentication requirements. Additional behavioral context 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence that efficiently communicates the tool's purpose and output without redundancy. Every word contributes value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description adequately describes the returned information (statuses, prices, dispute history). Omits pagination details but these are captured in the schema. Sufficient for an agent to understand what to expect.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema covers 100% of parameters with descriptions and enums. The description adds no new meaning beyond confirming the tool's purpose. Baseline of 3 is appropriate as schema already provides sufficient semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly specifies the tool retrieves UMA oracle resolution status for Polymarket markets, enumerating the possible statuses (initialized, proposed, disputed, resolved) and data fields (prices, dispute history). This distinguishes it from sibling tools like get_market_data or get_disputed_markets.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when resolution information is needed, but does not explicitly state when to use this tool over alternatives like get_market_info or get_disputed_markets. No 'when not to use' or clear usage context is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_market_revisionsA
Get moderator revisions/updates for Polymarket markets. Shows when and how moderators intervened in market resolution.
| Name | Required | Description | Default |
|---|---|---|---|
| first | No | Number of revisions to return | |
| questionId | No | Optional: filter revisions for a specific market questionId |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It implies a safe read operation but does not explicitly state if it requires authentication, rate limits, or any side effects. The transparency is adequate but could be improved by confirming read-only nature.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is extremely concise with two sentences. The first sentence immediately states the purpose, and the second adds useful context. No wasted words or redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Without an output schema, the description could elaborate on what the response contains (e.g., fields like timestamp, moderator, action). It only says 'when and how' but is vague. For a tool with simple parameters, it is minimally adequate but not fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema coverage is 100% with both parameters having descriptions. The description adds no extra meaning beyond the schema; it does not explain parameter formats or provide examples. Baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: retrieving moderator revisions/updates for Polymarket markets. It specifies the action ('get') and the resource ('moderator revisions'), and adds context about showing when and how moderators intervened, differentiating it from siblings like get_market_resolution which likely returns current resolution.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not provide any guidance on when to use this tool versus alternatives. It lacks explicit when-to-use, when-not-to-use, or references to sibling tools. Users are left to infer usage from the purpose alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_oi_historyA
Get hourly open interest snapshots for a specific Polymarket market. Use this to chart OI trends over time. The conditionId can be obtained from get_market_open_interest or the main subgraph.
| Name | Required | Description | Default |
|---|---|---|---|
| first | No | Number of hourly snapshots to return (default 168 = 1 week) | |
| conditionId | Yes | The conditionId (hex string) of the market | |
| orderDirection | No | Sort direction by timestamp | desc |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so description must cover behavior. It notes hourly snapshots, default count of 168 (1 week), but does not describe return fields or pagination. Adequate but not fully transparent for a tool without output schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with action and purpose, no extraneous words. Highly concise and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 3 parameters, no output schema, and no annotations, the description covers core purpose and data source. Could mention response format but overall is contextually sufficient for a read-only historical tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. Description adds no parameter details beyond the schema, only referencing conditionId source. No additional semantic value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Get hourly open interest snapshots'), specifies the resource ('specific Polymarket market'), and implies distinction from siblings like get_market_open_interest (which likely gives current OI).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly tells when to use (chart OI trends) and where to get the conditionId (get_market_open_interest or subgraph). Lacks explicit when-not-to-use or alternative comparison, but context is sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_orderbook_tradesC
Get recent order fills from the Orderbook subgraph
| Name | Required | Description | Default |
|---|---|---|---|
| first | No | Number of trades to return | |
| maker | No | Optional: filter by maker address | |
| taker | No | Optional: filter by taker address |
TDQS
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 details such as rate limits, pagination, or what 'recent' means in terms of time window.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, which is concise but not particularly informative. It could include more context without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the low complexity and no output schema, the description is insufficient. It does not specify timeframes, result format, or how to interpret 'recent'. More context would be helpful, especially with many sibling tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Although schema description coverage is 100%, the description does not add any additional meaning beyond what the schema already provides. The baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states that the tool retrieves recent order fills from the Orderbook subgraph, using a specific verb and resource. While it distinguishes itself from siblings like get_last_trade or get_live_orderbook, it could be more explicit about the scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like get_last_trade or get_live_orderbook. The agent lacks context to make an informed selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_polymarket_eventA
Get a single Polymarket event with all its associated markets. An event groups related prediction markets under one topic.
| Name | Required | Description | Default |
|---|---|---|---|
| eventId | Yes | Event ID or slug |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full burden. It states the tool 'gets' data, but does not disclose behavioral traits such as whether the eventId can be a slug, the structure of the returned markets, data freshness, or any side effects. The description adds minimal value beyond the tool name.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise: two sentences, front-loaded with the core purpose, and the second sentence provides essential context about what an event is. No extraneous words or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of output schema and annotations, the description is adequate but not comprehensive. It explains that the event comes 'with all its associated markets,' but does not specify the format or structure of those markets. For a tool with many siblings, more detail on what 'associated markets' entails would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema describes the only parameter 'eventId' as 'Event ID or slug' with 100% coverage. The description offers no additional meaning beyond the schema, so the baseline score of 3 is appropriate. No extra value is added.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Get a single Polymarket event with all its associated markets.' It specifies the resource (event) and the action (get), and differentiates from sibling tools like list_polymarket_events (which lists multiple events) and get_market_* (which targets individual markets).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is for retrieving a single event, but it does not provide explicit guidance on when to use it versus alternatives such as list_polymarket_events or get_market_info. No when-not-to-use or exclusion criteria are given, leaving the agent to infer usage from the name and brief description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_price_historyB
Get historical price data for a Polymarket outcome token. Returns time-series price points for charting and trend analysis.
| Name | Required | Description | Default |
|---|---|---|---|
| tokenId | Yes | CLOB token ID | |
| fidelity | No | Number of data points to return (1-500) | |
| interval | No | Time interval: 1m, 5m, 1h, 6h, 1d, 1w, or max | 1d |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It only says 'returns time-series price points' but omits behavioral traits like read-only nature, time range limits, or response format details.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with purpose, no extraneous information. Highly concise and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity of the tool (3 params, no output schema), the description is adequate but lacks details on return fields or any time range constraints that would fully inform an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for all parameters. The tool description adds no extra meaning beyond what the schema provides, so baseline score of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states 'Get historical price data for a Polymarket outcome token' with the specific resource and purpose ('charting and trend analysis'). Distinguishes from sibling tools like get_live_prices or get_market_data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No usage guidance provided. Does not explain when to use this tool vs alternatives like get_live_prices for current prices or get_oi_history for open interest.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_recent_activityB
Get recent splits, merges, and redemptions from the Activity subgraph
| Name | Required | Description | Default |
|---|---|---|---|
| first | No | Number of events to return | |
| account | No | Optional: filter by Ethereum address |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations and minimal behavioral detail. 'Recent' is undefined; no mention of ordering, pagination, rate limits, or possible empty results.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, clear and focused. Slightly penalized for lack of structure (e.g., no headings or bullet points), but still efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema and no annotations; description fails to explain what is returned or how results are ordered. Lacks essential context for a tool with optional parameters.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for both parameters. The tool description adds no additional meaning beyond the schema, so baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it retrieves recent splits, merges, and redemptions from the Activity subgraph, using specific verbs and resources. It distinguishes from sibling tools that focus on markets, stats, or trader profiles.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like get_market_data or get_trader_profile. Lacks explicit context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_subgraph_schemaA
Get the full GraphQL schema (introspection) for a Polymarket subgraph
| Name | Required | Description | Default |
|---|---|---|---|
| subgraph | Yes | Subgraph identifier: main, beefy_pnl, slimmed_pnl, activity, or orderbook |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full burden. It discloses that the schema is 'full' and uses the word 'introspection', which hints at the return type and scope. However, it does not mention any potential large response, error behavior, or security context, leaving room for improvement.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with no redundant words. It is front-loaded with the action and resource, making it easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple input (one enum parameter) and no output schema, the description covers the basic purpose but lacks guidance on return format and usage context relative to sibling tools. It is adequate but could be more helpful by stating that the result can be large or used to plan queries.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The tool description itself adds no parameter information. Notably, the schema parameter description lists only a subset of the enum values ('main, beefy_pnl, slimmed_pnl, activity, or orderbook') while the enum actually contains 11 values, which could confuse the agent. The description does not compensate for this inconsistency.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Get'), the resource ('full GraphQL schema'), and the target ('Polymarket subgraph'). It distinguishes the tool from siblings like 'query_subgraph' by specifying introspection rather than data querying.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is for schema discovery, but does not explicitly state when to use it versus alternatives like 'query_subgraph' or 'list_subgraphs'. No exclusions or alternative references are provided, so guidance is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_top_tradersA
Get the top Polymarket traders ranked by realized P&L, win rate, or volume from the Beefy P&L subgraph.
| Name | Required | Description | Default |
|---|---|---|---|
| first | No | Number of traders to return (1-100) | |
| orderBy | No | Metric to rank traders by | totalRealizedPnl |
| minTrades | No | Minimum number of trades to filter out inactive accounts |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, and description only states the core functionality without disclosing behavioral traits like pagination limits, data freshness, or rate limits. For a read-only aggregation tool, minimal transparency beyond schema is offered.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, front-loaded with verb and resource, no extraneous information. Efficiently conveys the tool's purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list tool with only three optional parameters and no output schema, the description covers the main functionality. It could mention return format or query source, but overall is complete for the scope.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema covers all three parameters with descriptions, and the description mentions ranking metrics aligning with the orderBy enum. However, description adds no new meaning beyond schema; baseline 3 appropriate due to high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool retrieves top Polymarket traders ranked by specific metrics like realized P&L, win rate, or volume. It specifies the source (Beefy P&L subgraph) and differentiates from sibling tools focused on individual account data or market details.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Description does not provide explicit guidance on when to use this tool versus alternatives such as get_trader_profile or get_account_pnl. Usage is implied but not explicitly contrasted with siblings, leaving the agent to infer context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_trader_profileA
Get a trader's on-chain profile from the Traders subgraph: when they first appeared, their recent CTF events (splits, merges, transfers), and USDC flows.
| Name | Required | Description | Default |
|---|---|---|---|
| address | Yes | Ethereum address of the trader | |
| eventLimit | No | Number of recent events to return |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden. It indicates the tool retrieves data (assumed read-only) but does not disclose behavioral traits such as data freshness, pagination limits beyond the eventLimit parameter, or any side effects. This is minimal context for a data retrieval tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence that front-loads the purpose and enumerates key data points without extraneous words. Every element is valuable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description lists three categories of data (first appearance, CTF events, USDC flows) but does not specify the structure or types of events. Given no output schema and no annotations, more detail on the returned profile shape would improve completeness. It is adequate but not thorough.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema covers both parameters (address, eventLimit) fully (100% coverage). The description adds no additional meaning beyond what the schema provides. At baseline, the schema does the work, so a score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly specifies the verb 'Get' and the resource 'trader's on-chain profile', listing concrete data points (first appearance, CTF events, USDC flows). It distinguishes itself from sibling tools by focusing specifically on trader profile data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is for fetching trader profile information but does not provide explicit guidance on when to use it versus sibling tools (e.g., get_top_traders, get_trader_usdc_flows). No exclusions or contexts are described.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_trader_usdc_flowsA
Get USDC deposit/withdrawal history for a trader. Shows inbound and outbound USDC transfers, useful for tracking when traders fund or withdraw from Polymarket.
| Name | Required | Description | Default |
|---|---|---|---|
| first | No | Number of transfers to return | |
| address | Yes | Ethereum address of the trader | |
| direction | No | Filter by transfer direction | both |
TDQS
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 mentions the tool shows transfers but does not specify whether it is real-time, cached, or any safety/authentication requirements. The description is adequate for a simple read tool but lacks depth.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences long, front-loaded with the core purpose, and contains no unnecessary information. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (3 parameters, no nested objects, no output schema), the description is fairly complete. It explains the tool's purpose and primary use case. However, it lacks details about the return format or pagination, which would benefit from mention since no output schema exists.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, so the schema already explains all parameters. The description adds no additional semantic meaning beyond what is in the schema, meeting the baseline for high coverage but not exceeding it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves USDC deposit/withdrawal history for a trader, specifying inbound and outbound transfers. This distinguishes it from sibling tools like get_account_pnl or get_trader_profile, which focus on other data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a use case: tracking when traders fund or withdraw from Polymarket. While it implies when to use it, it does not explicitly exclude alternatives or state when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_user_positionsA
Get a user's current positions from the Slimmed P&L subgraph. Falls back gracefully if indexers are behind.
| Name | Required | Description | Default |
|---|---|---|---|
| account | Yes | Ethereum address of the user (lowercase) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It adds the fallback behavior but lacks details on rate limits, authentication, side effects, or response caching.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with purpose, no wasted words. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, and the description does not explain the return format or fields. For a tool returning positions, more detail on the response structure would be helpful.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and already clearly describes the single parameter. The description adds no additional meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (Get), object (user's current positions), and source (Slimmed P&L subgraph), distinguishing it from sibling tools like get_market_positions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Only minimal guidance is provided: mentions graceful fallback when indexers are behind, but no explicit when-to-use vs alternatives 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.
get_v2_top_tradersA
Top real traders on Polymarket CLOB V2 by volume or trade count, with the exchange contracts excluded. Use this rather than querying accounts directly: the V2 exchange is itself the taker when an order matches the book, so it accumulates an Account row and outranks every human by an order of magnitude. V2-era only (from block 84902353).
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | How many traders (default 10) | |
| orderBy | No | Ranking metric (default scaledCollateralVolume) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It reveals critical behavior: the exclusion of exchange contracts and the fact that the V2 exchange's account row would otherwise skew data. It also specifies the V2-era block threshold. This adds meaningful context beyond the schema, though it omits details like pagination or return format.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences, front-loaded with the primary purpose. The second sentence explains why to use it and the third sets a precise scope. No filler; each sentence contributes essential information for tool selection and invocation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list tool with two optional parameters and no output schema, the description covers purpose, usage guidance, and behavioral nuance. It lacks mention of pagination or return shape, but the tool's simplicity and the presence of a limit parameter make this acceptable. The description is complete enough for an agent to select and invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptive parameter names and descriptions (limit and orderBy with enum). The description's 'by volume or trade count' aligns with the orderBy enum but adds no new syntax or format details beyond schema. Baseline 3 is appropriate since the schema already explains parameters effectively.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns 'Top real traders on Polymarket CLOB V2 by volume or trade count', specifying both the resource and the sorting metrics. It also distinguishes itself from the sibling 'get_top_traders' by explicitly limiting to V2-era and excluding exchange contracts, making its scope unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly instructs when to use this tool: 'Use this rather than querying accounts directly', and explains why (the V2 exchange itself acts as taker and would outrank humans). This provides a clear alternative and a rationale, satisfying the when/why-not guidance requirement.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_polymarket_eventsB
List Polymarket events (groups of related markets). Events bundle multiple Yes/No markets under one topic (e.g. 'US Presidential Election 2024' contains many candidate markets). Uses the Gamma API.
| Name | Required | Description | Default |
|---|---|---|---|
| tag | No | Filter by tag (e.g. 'politics', 'crypto', 'sports') | |
| limit | No | Number of events (1-100) | |
| active | No | Filter: only active events | |
| closed | No | Filter: only closed events | |
| orderBy | No | Sort field | |
| ascending | No | Sort ascending |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full burden of behavioral disclosure. It only states that the tool uses the Gamma API, but fails to mention pagination, rate limits, data freshness, or behavior when no events match. This is insufficient for safe and effective invocation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise at two sentences, front-loading the key action and clarification of events. It avoids unnecessary detail. However, it sacrifices some informative context for brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 6 optional parameters, no output schema, and no annotations, the description is incomplete. It lacks information on return format, example usage, or any constraints like minimum/maximum limit. The conceptual explanation partially compensates but overall leaves significant gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema covers all 6 parameters with descriptions, achieving 100% coverage. The description adds no parameter-specific meaning beyond the schema; the conceptual explanation of events is helpful but not tied to parameters. Baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the action as listing events, explains that events bundle multiple markets, and gives a concrete example (US Presidential Election 2024). This effectively distinguishes it from sibling tools like get_polymarket_event (single event) or search_markets.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not provide explicit guidance on when to use this tool versus alternatives. While the purpose is clear, it lacks instructions on filtering scenarios or when to prefer this over search_markets or get_polymarket_event. The context of optional parameters implies usage but does not directly guide the agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_subgraphsA
List all available Polymarket subgraphs with descriptions and key entities
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description indicates a read-only operation ('List'), consistent with the name, but does not disclose any additional behavioral traits such as authentication requirements, rate limits, or pagination behavior. Since annotations are absent, the description carries the full burden but adds only minimal context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence with no redundant or extraneous information. Every word adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity (no parameters, no output schema), the description is largely complete. However, it could be enhanced by clarifying the relationship to sibling tools like get_subgraph_schema or query_subgraph, but current level is sufficient for basic understanding.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has no parameters, and schema coverage is 100%. The description does not need to explain parameters, and it appropriately mentions 'all available' implying no filtering. No compensation required, so baseline 4 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (List), the resource (all available Polymarket subgraphs), and includes additional details (descriptions and key entities). It effectively distinguishes from siblings like get_subgraph_schema, which likely deals with schema details, and query_subgraph for executing queries.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for listing all subgraphs but provides no explicit guidance on when to use this vs. alternatives like get_subgraph_schema. It does not mention when not to use it or any prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
query_subgraphB
Execute a custom GraphQL query against a Polymarket subgraph
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | GraphQL query string | |
| subgraph | Yes | Subgraph identifier: main, beefy_pnl, slimmed_pnl, activity, or orderbook | |
| variables | No | Optional GraphQL variables as key-value pairs |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of disclosing behavior. It only states what the tool does ('Execute a custom GraphQL query'), but does not mention whether queries are read-only, what happens on malformed queries, rate limits, or the shape of the response. This is comparable to the 'Update shared drive settings' example, which lacked permission and side-effect context and scored 2.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no wasted words. It is appropriately concise for a tool whose name and schema already convey much of the structure. However, it is slightly under-specified for the behavioral side, which prevents a perfect score.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
While the schema covers parameters, the description does not explain the intended use case relative to siblings, the nature of a 'subgraph' query, or the response format (especially since no output schema exists). For a generic tool with many specialized alternatives, this is insufficient context for an agent to select and invoke it correctly without additional inference.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for all three parameters, so the schema fully documents parameter meanings. The description adds no additional parameter semantics beyond the schema. Per the rubric, a baseline of 3 is appropriate when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Execute a custom GraphQL query') and the target resource ('Polymarket subgraph'), which is specific and distinguishes it from the list of specialized sibling tools that return fixed data types. The word 'custom' signals that this is the generic, low-level option rather than a pre-built endpoint.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance is given about when to use this tool versus the many specialized sibling tools (e.g., get_live_orderbook, get_user_positions). The word 'custom' implies it is for queries not covered by dedicated endpoints, but this is only implied, not stated. There is no exclusion or alternative mention.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_marketsA
Search Polymarket prediction markets by text query. Returns market metadata including question, prices, volume, liquidity, and CLOB token IDs. Uses the Gamma API for real-time market discovery. Chain with: get_clob_market(conditionId) for live order books, get_live_prices(clobTokenIds) for token-level pricing, get_market_open_interest for capital locked, or get_market_resolution for oracle status.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Number of results (1-100) | |
| query | Yes | Search text (e.g. 'Trump', 'Bitcoin', 'World Cup') | |
| active | No | Filter: only active markets | |
| closed | No | Filter: only closed/resolved markets | |
| orderBy | No | Sort field | |
| ascending | No | Sort ascending (default: descending) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full responsibility. It mentions 'real-time market discovery' and uses Gamma API, which is informative. However, it fails to disclose safety (e.g., read-only), limitations, error behavior, or response format beyond listed fields, leaving some transparency gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise: two sentences and a list of chaining suggestions. It is front-loaded with the main purpose and every sentence adds value. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description adequately explains return values (market metadata). It also provides workflow context via chaining. However, it omits default sort order (descending) and pagination details, though the schema covers these. Overall sufficient for a search tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the description adds minimal value beyond the schema. It only references the 'query' parameter. The schema already provides clear descriptions for all 6 parameters, including enums and defaults, making the description's marginal contribution limited.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool searches Polymarket prediction markets by text query and returns specific metadata (question, prices, volume, liquidity, CLOB token IDs). It distinguishes from siblings by mentioning chaining with other tools like get_clob_market and get_live_prices, and the presence of search_markets_enriched implies this is a basic search.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says when to use this tool (searching by text query) and provides concrete chaining suggestions for further actions (order books, pricing, etc.). However, it does not explicitly exclude alternatives or state when not to use it, such as preferring search_markets_enriched for more details.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_markets_enrichedA
Power tool: search Polymarket markets then auto-enrich each result with live CLOB prices and on-chain resolution status. Combines Gamma API + CLOB API + The Graph in one call — no need to chain tools manually.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Number of results (1-20, kept small for enrichment speed) | |
| query | Yes | Search text (e.g. 'Trump', 'Bitcoin', 'World Cup') | |
| active | No | Filter: only active markets | |
| closed | No | Filter: only closed/resolved markets |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It discloses combining three APIs but does not mention failure modes, rate limits, or partial failures during enrichment.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with purpose, no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given complexity of multi-API enrichment and no output schema, the description explains what enrichment includes but lacks details on output structure or potential errors.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and schema descriptions are adequate. The description adds minimal extra meaning beyond what schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool searches Polymarket markets and enriches them with CLOB prices and resolution status. It explicitly distinguishes from manual chaining and sibling tools like search_markets (basic).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description says 'no need to chain tools manually,' implying use when enrichment is needed. However, it does not provide explicit when-not-to-use guidance or alternative tools for simpler cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
6 tool updates
v2.1.2- Added
check_subgraph_freshness - Added
get_builder_activity - Added
get_builder_leaderboard - Changed
get_subgraph_schema1 field changed- changed
Input schema / properties / subgraph / enumPrevious value: -[ - "main", - "beefy_pnl", - "slimmed_pnl", - "activity", - "orderbook", - "open_interest", - "resolution", - "traders" -]New value: +[ + "main", + "beefy_pnl", + "slimmed_pnl", + "activity", + "orderbook", + "open_interest", + "resolution", + "traders", + "v2_orderbook", + "v2_pnl", + "v2_main" +]
- Added
get_v2_top_traders - Changed
query_subgraph1 field changed- changed
Input schema / properties / subgraph / enumPrevious value: -[ - "main", - "beefy_pnl", - "slimmed_pnl", - "activity", - "orderbook", - "open_interest", - "resolution", - "traders" -]New value: +[ + "main", + "beefy_pnl", + "slimmed_pnl", + "activity", + "orderbook", + "open_interest", + "resolution", + "traders", + "v2_orderbook", + "v2_pnl", + "v2_main" +]
31 tool updates
v2.0.0- Added
get_account_pnl - Added
get_clob_market - Added
get_daily_stats - Added
get_disputed_markets - Added
get_global_open_interest - Added
get_global_stats - Added
get_last_trade - Added
get_live_orderbook - Added
get_live_prices - Added
get_live_spread - Added
get_market_data - Added
get_market_info - Added
get_market_open_interest - Added
get_market_positions - Added
get_market_resolution - Added
get_market_revisions - Added
get_oi_history - Added
get_orderbook_trades - Added
get_polymarket_event - Added
get_price_history - Added
get_recent_activity - Added
get_subgraph_schema - Added
get_top_traders - Added
get_trader_profile - Added
get_trader_usdc_flows - Added
get_user_positions - Added
list_polymarket_events - Added
list_subgraphs - Added
query_subgraph - Added
search_markets - Added
search_markets_enriched
TDQS
Several tools have overlapping purposes, such as get_market_data, get_market_info, and search_markets, or get_live_prices, get_live_spread, get_last_trade, and get_clob_market. While descriptions do provide some differentiation, the boundaries remain unclear, especially between search_markets and search_markets_enriched, or get_global_stats and get_global_open_interest.
All tools follow a consistent verb_noun pattern with snake_case (e.g., get_market_info, search_markets, check_subgraph_freshness). There are no deviations in style, making the naming predictable and coherent.
With 35 tools, the server is overstuffed. While the scope (multiple subgraphs, CLOB, Gamma API) might justify a larger surface, it exceeds the typical 3-15 range and feels heavy. Many tools could be consolidated or removed without loss.
The tool set is extremely comprehensive, covering market data, CLOB order books, user positions, P&L, open interest, resolution status, and even custom subgraph queries. Minor gaps exist, such as no direct way to fetch a specific market's full trade history, but overall the domain is well covered.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
MCP server giving AI agents one-connection access to crypto & DeFi data: DeFi protocol TVL, stableco
Polymarket MCP — prediction-market data via Gamma + CLOB public APIs.
- UnifAPIOAuthcom.unifapi
Hosted MCP server for live public-data APIs and Skills for AI agents.
Read-only MCP server for live Polymarket, Kalshi, Limitless odds; Manifold sentiment.
Related MCP Servers
- AlicenseBqualityDmaintenanceEnables 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.4142MIT
- AlicenseAqualityFmaintenancePowers AI agents with indexed blockchain data from The Graph, enabling them to fetch subgraph schemas and execute GraphQL queries against blockchain data.29MIT
- AlicenseAqualityDmaintenanceA Model Context Protocol server that enables interaction with Polymarket prediction markets through Claude Desktop.31MIT
- AlicenseNot gradedqualityCmaintenanceA Model Context Protocol (MCP) server for Polymarket prediction markets, providing real-time market data, prices, and AI-powered analysis tools for Claude Desktop integration.48MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/PaulieB14/graph-polymarket-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server