PredictionScan
Server Details
Derived prediction-market flow, price changes, trader research and news. 11 read-only tools.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- Repository
- JordanKarst/predictionscan-mcp
- GitHub Stars
- 0
TDQS
Scored across 11 tools
Most tools map to a distinct resource+action: markets (search/odds/history/news/flow/movers/trending), traders (leaderboard/profile/positions), and whale trades. A few boundaries are soft — get_trending_markets vs get_market_movers both return ranked market lists, and get_market_flow vs get_whale_trades (with a market filter) can overlap — but the descriptions explicitly cross-reference each other and steer selection.
Ten tools follow a strict get_<noun> pattern while search_markets is the single discover-style verb, which is semantically apt. All snake_case, all lowercase, no mixed conventions.
Eleven tools is well within the ideal 3-15 range and each maps to a real analytical question (odds, history, flow, news, movers, trending, whales, traders). No tool feels redundant or padding.
The surface covers the domain's core read workflows: discovery, odds, price history, flow, news, trader stats/positions, and large trades, all read-only by design. Minor gaps remain, e.g. no way to page through a trader's full trade history or to compare multiple markets side by side, though agents can approximate these with existing tools.
Available Tools
11 toolsget_leaderboardGet trader leaderboardARead-onlyIdempotentInspect
Use this when the user asks who the top Polymarket traders are by profit or by trading volume, or for a Polymarket leaderboard — for example "top Polymarket traders this month", "highest-profit traders this week", "highest-volume traders this week", or "top politics traders by realized profit". Returns up to 25 traders (default 10) from Polymarket.com's public leaderboard: rank, full wallet address, public display name, profit in USD for the period, and dollar trading volume, with a PredictionScan profile link for each trader. Periods: day (since 00:00 UTC), week (7 days), month (30 days) or all-time. Day/week/month profit counts open positions at current prices; all-time profit is realized only. Category boards (sports, politics, crypto, economics, finance, tech, culture, esports, weather, mentions) rank within that category; Polymarket does not publish per-category dollar volume, so it is null there. Read-only; past results do not predict future results. Do not use this to choose a market or trader for the user to put money in; it reports data only. Do not call this when the user asks which market to buy or how to make a profit.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | How many traders to return (default 10) | |
| metric | No | Rank by 'profit' (USD gained in the period) or 'volume' (amount traded). Default 'profit' | |
| period | No | Time window: 'day' (since 00:00 UTC), 'week' (7 days), 'month' (30 days) or 'all' (all-time). Default 'month' | |
| category | No | Limit the board to one market category. Omit for all markets |
Output Schema
| Name | Required | Description |
|---|---|---|
| kind | Yes | |
| items | Yes | |
| metric | Yes | |
| period | Yes | |
| category | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnly/idempotent semantics, yet the description adds substantial non-obvious behavior: the day/week/month profit figures include open positions at current prices whereas all-time is realized only, and per-category volume is null because Polymarket doesn't publish it. Those are exactly the caveats an agent would otherwise misinterpret when reporting numbers.
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?
Front-loaded with the triggering use cases before the return details and caveats, so an agent can decide early. It runs long, and the two closing prohibition sentences overlap with each other and partly restate readOnlyHint, which is the only wasted space.
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 4-parameter, all-optional, enum-driven read tool with an output schema, everything needed to call and interpret it is present: defaults, return fields, period definitions, and the category/volume caveat. Nothing material is missing.
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 the baseline is 3, but the description adds real meaning well beyond the schema: it explains the accounting difference between period values (open positions at current prices vs realized-only all-time) and the null-volume consequence of category boards. Limit and metric are only restated from the schema, so it stops short of a 5.
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 a specific verb and resource: ranks Polymarket traders by profit or volume. It distinguishes itself from siblings like get_trader_profile and get_trader_positions by scoping to the aggregate leaderboard, and the concrete example queries remove any ambiguity about the resource.
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?
Explicit when-to-use triggers are given with example phrasings ("top Polymarket traders this month", "highest-volume traders this week"), and there are explicit when-not clauses: don't use it to pick a market/trader to invest in, and don't call it for buy recommendations. The alternative for choosing markets is implied by the sibling set rather than named, but the exclusions are unusually clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_market_flowGet market flowARead-onlyIdempotentInspect
Use this when the user asks who is buying or selling a Polymarket market, why its odds moved, or where the money is going, for example "who is buying Yes on the Fed October decision", "why did JD Vance's 2028 odds move today", "net buying on Bitcoin $150K this week", or "who holds the most of this market". Takes one market (a slug, a supported market or event link, a condition id, or plain words; for a multi-outcome event it uses the leading open outcome, or a ladder's most-traded open rung, and says so) and a window of 1 to 168 hours (default 24). Returns PredictionScan's flow breakdown from Polymarket.com's public trades: dollars bought and sold and the net per outcome, the trade count, up to 8 largest trades, and up to 5 top holders per outcome with their share counts. Dollar totals count each fill once (its taker side), so they run about half of the two-sided volume Polymarket.com headlines. In very busy markets small fills may be left out so the whole window fits; the text says so. Read-only: flow describes past trades, not where the price will go.
| Name | Required | Description | Default |
|---|---|---|---|
| hours | No | How far back to look, in hours (default 24, max 168 = 7 days) | |
| market | Yes | The market: a slug, a supported market or event link, a condition id, or a few words like 'fed october no change' |
Output Schema
| Name | Required | Description |
|---|---|---|
| url | Yes | |
| kind | Yes | |
| title | Yes | |
| outcomes | Yes | |
| traded_usd | Yes | |
| market_slug | Yes | |
| top_holders | Yes | |
| trades_count | Yes | |
| window_hours | Yes | |
| largest_trades | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnly/idempotent annotations, it discloses non-obvious behavior: dollar totals count each fill once so they run roughly half of headline two-sided volume, and small fills may be dropped in busy markets with the text saying so. It also confirms read-only semantics and warns that flow is descriptive rather than predictive.
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 usage triggers are front-loaded before the mechanics, and each sentence carries information (input forms, aggregation rule, truncation caveat, read-only note). It is long and dense, but it is not padded or repetitive.
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?
Covers input forms, resolution fallbacks, time window, return contents (net per outcome, trade count, up to 8 largest trades, up to 5 holders), and known data caveats. With an output schema present, nothing an agent needs in order to call it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description goes further: it enumerates the accepted 'market' forms (slug, supported market/event link, condition id, plain words) and explains the multi-outcome and ladder-rung resolution rule, plus the 1-168 hour window with a 24 default. This is genuinely additive over the schema text.
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 a specific resource (Polymarket market money flow) with four concrete user-question examples that pin down the exact intent, including 'who is buying Yes on the Fed October decision' and 'who holds the most of this market'. It is clearly separable from siblings like get_market_odds or get_price_history, which answer price rather than flow questions.
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 opening clause gives explicit triggering conditions tied to user phrasings ('who is buying or selling', 'why its odds moved', 'where the money is going'), which is strong guidance. It does not, however, say when to prefer siblings such as get_whale_trades or get_trader_positions, so a bit of overlap remains unaddressed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_market_moversGet biggest market movesARead-onlyIdempotentInspect
Use this when the user asks which Polymarket or prediction-market odds moved the most, what is rising or falling, or what changed today — for example "biggest movers on Polymarket", "which markets moved the most in the last 24 hours", "what odds are dropping in crypto", or "biggest swings in politics today". Returns up to 20 open Polymarket.com markets ranked by their 24-hour change in market-implied probability (points), with the outcome that moved, its probability and 24-hour volume; at most two per event. Optional filters: direction and category. Covers the 300 most-traded markets with at least $10K traded in 24 hours; markets at 1% or below or 99% or above are left out as effectively decided. Excludes individual sports and esports games (single matches and their side markets, live or upcoming) unless the category is sports or esports; futures such as a season or championship winner stay in. Mature topics are left out, and so are "Up or Down" and tweet-count markets without a category. Read-only crowd forecasts, not advice. Do not use this to choose a market or trader for the user to put money in. Do not call this when the user asks which market to buy or how to make a profit.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | How many moves to return (default 10) | |
| category | No | Limit to one Polymarket category, e.g. 'politics', 'crypto', 'sports', 'economy'. Omit for all categories | |
| direction | No | Which moves to include: 'up' (probability rose), 'down' (probability fell) or 'both' (default) |
Output Schema
| Name | Required | Description |
|---|---|---|
| kind | Yes | |
| items | Yes | |
| category | Yes | |
| direction | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive, but the description goes well beyond them: it discloses the ranking metric and unit (24-hour change in points), the cap of 20 results and at most two outcomes per event, the coverage universe (300 most-traded markets with ≥$10K 24-hour volume), and exclusion thresholds (markets at ≤1% or ≥99%, individual sports/esports games, mature topics, uncategorized Up-or-Down and tweet-count markets). These constraints materially change what an agent should expect to see and cannot be derived from the structured fields.
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?
Front-loaded with the activation condition and example queries, then moves to return shape, then to inclusion/exclusion rules — a sensible order. The exclusion clauses (sports games vs futures, mature topics, Up/Down and tweet-count markets) are individually informative but accumulate into a dense block, and the "not advice" and "do not use this to choose a market" sentences partly overlap.
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 an output schema exists (so return values need no explanation) and annotations cover the safety profile, the description still supplies everything an agent needs to call and interpret it correctly: what is ranked, the unit of change, the result cap, the deduplication rule, and the universe/exclusion boundaries. No material gap remains for a read-only, three-optional-parameter listing 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 limit, category and direction are already self-documenting, and the description only restates them collectively as "Optional filters: direction and category." It adds no extra syntax, interaction, or default behavior beyond what the schema and enums already convey, so the baseline 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?
States a specific verb and resource — returns Polymarket markets ranked by 24-hour change in market-implied probability — and the example user questions ("biggest movers", "what odds are dropping in crypto") pin down the intent precisely. It never names its closest sibling get_trending_markets, so the agent must infer the trending-vs-movers boundary from the ranking metric alone, which keeps it short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The opening "Use this when the user asks..." clause plus four concrete example utterances give clear activation conditions, and the closing lines explicitly exclude using it to pick a market or trader to invest in. However, the exclusions are about financial advice, not about routing to alternatives — no sibling tool (get_trending_markets, get_market_flow, get_price_history) is named for cases this tool does not cover.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_market_newsGet market newsARead-onlyIdempotentInspect
Use this when the user asks for news, headlines or recent developments behind a prediction market or topic — for example "any news on the Fed October decision?", "what's in the news about Bitcoin ETFs?", "any headlines behind the move in the Fed October odds?", or "latest news on Gavin Newsom 2028". Pass a market (a slug from search_markets, or a supported market or event link) and/or topic words. Returns up to 10 headlines (default 5) from the last 14 days with the outlet, publish time and link, ranked by how many of the market's key names and terms they mention, newest first among equals. Headlines come from PredictionScan's news feed of major outlets (politics, economy, crypto, sports, entertainment): it is not a full web search, returns no article text, and may find nothing for niche markets.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | How many headlines to return (default 5) | |
| query | No | Topic words to search the news for, e.g. 'bitcoin etf', 'fed rate decision', 'us recession'. With a market, keeps only that market's news that mentions these words. | |
| market | No | The market to find news for: a market_slug or event_slug from search_markets (e.g. 'fed-decision-in-october-20260617190323537'), a supported market or event link, or a condition id. Plain words are treated as the topic. |
Output Schema
| Name | Required | Description |
|---|---|---|
| kind | Yes | |
| items | Yes | |
| query | Yes | |
| market_title | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations cover the safety profile (readOnly, idempotent, non-destructive, openWorld), and the description adds substantive context beyond them: a 14-day freshness window, max 10 / default 5 results, ranking by key-name and term overlap with newest-first tiebreak, and the outlet/time/link payload. It also discloses the feed's coverage limits (politics, economy, crypto, sports, entertainment) and that no article text is returned.
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?
Front-loaded with the routing condition, then parameters, then return shape, then limitations — a sensible order with no filler sentences. The four quoted example queries are helpful for matching but make the opening more verbose than a shorter trigger summary would be.
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 a read-only, open-world retrieval tool with three optional parameters and an output schema, the description covers trigger conditions, input forms, result count and ranking, freshness window, and the main failure mode (no results for niche markets). Nothing an agent needs to call it correctly or set expectations is missing.
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 already 100%, so this is a bonus: the description clarifies that market accepts a slug, a supported market or event link, and that plain words are treated as a topic, and that query combined with market narrows that market's news rather than searching globally. The default of 5 for limit is repeated from the schema rather than added to.
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 a specific verb and resource ('get news/headlines for a prediction market or topic') and enumerates the trigger phrasings an agent would hear. No sibling tool does news retrieval, so intent separation from search_markets, get_market_odds etc. is 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?
Opens with an explicit 'Use this when the user asks for news, headlines or recent developments' condition plus four realistic example utterances, and names search_markets as the source of slugs. It also states the when-not: it is not a full web search and may return nothing for niche markets.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_market_oddsGet market oddsARead-onlyIdempotentInspect
Use this when the user wants the current odds or the details of one specific prediction market or event — for example "what are the odds for the Fed decision in October", "who leads the race for the 2028 Democratic nomination", "show me this market: polymarket.com/event/…", "what are the rules for this market", or "did the 2024 election market resolve, and to what". Accepts a market or event slug, a supported market or event link, a condition id, or the market's question in words. Returns each outcome's market-implied probability from Polymarket.com with its 24-hour change (up to 40 outcomes, mutually exclusive ones ranked, plus the total count), volume, liquidity, end date, status, the resolution rules and source, and the final result for resolved markets. Works for open, closed and resolved markets; when nothing matches it returns up to 3 of the closest open markets instead. Read-only: it cannot place trades, and probabilities are crowd forecasts, not advice. Do not call this when the user asks which market to buy or how to make a profit.
| Name | Required | Description | Default |
|---|---|---|---|
| market | Yes | The market or event: a slug such as 'fed-decision-in-october-20260617190323537', a supported market or event link, a condition id (0x + 64 hex), or the question in words |
Output Schema
| Name | Required | Description |
|---|---|---|
| kind | Yes | |
| event | Yes | |
| focus | Yes | The specific market asked about (null when an event was asked about as a whole) |
| found | Yes | |
| suggestions | Yes | Closest open markets when the request matched nothing |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds substantial behavior beyond the annotations: works for open/closed/resolved markets, caps at up to 40 outcomes with mutually exclusive ones ranked, and falls back to up to 3 nearest open markets on no match. Also discloses framing caveats (crowd forecasts, not advice) that the readOnlyHint alone would not convey.
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?
Front-loaded with the trigger condition, then inputs, then returns, then exclusion — a logical order with no filler sentences. It is dense and long for one parameter, and the return-field enumeration partially duplicates the output schema.
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?
Covers resolution rules, status, fallback behavior, and limits (40 outcomes), so an agent knows what it will get and what to do when a query misses. Slightly over-complete on return fields given an output schema exists, but nothing an agent needs is missing.
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 the schema already enumerates slug, link, condition id, and question-in-words for the single `market` parameter, so the description largely restates it. Baseline 3 applies; no new syntax or normalization detail 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?
States a specific verb+resource (get current odds / details of one market or event) and scopes it to a single market, which clearly separates it from sibling list/aggregate tools like search_markets, get_trending_markets, and get_market_flow.
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?
Gives concrete trigger phrasings ("what are the odds for the Fed decision", "show me this market", "did the 2024 election market resolve") and an explicit exclusion ("Do not call this when the user asks which market to buy"). It stops short of naming the alternative sibling tools for the excluded cases, so routing is implied rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_price_historyGet price historyARead-onlyIdempotentInspect
Use this when the user asks how the odds of a prediction market have changed over time — for example "how have the Fed October odds moved this week", "chart the Bitcoin $150K odds over the last month", "when did Gavin Newsom's 2028 chances jump", or "show the price history of this market". Accepts a market or event slug, a supported market or event link, a condition id, or the question in words, plus an optional outcome name and time range (1d, 1w, 1m, 3m or all; default 1w). Returns the outcome's market-implied probability at the start and end of the range, the change in percentage points, the high and low, and a chart in the card. Prices come from Polymarket.com's order-book history; quiet markets can have gaps, which are left unfilled. For a closed or resolved market the range ends when trading closed. Read-only and informational, not advice.
| Name | Required | Description | Default |
|---|---|---|---|
| range | No | Time range: 1d, 1w, 1m, 3m, or all (since the first recorded price). Default 1w | |
| market | Yes | The market or event: a slug such as 'fed-decision-in-october-20260617190323537', a supported market or event link, a condition id (0x + 64 hex), or the question in words | |
| outcome | No | Which outcome to chart, e.g. 'No change', 'Gavin Newsom', 'Yes' or 'No'. Default: the leading open outcome of a multi-outcome event, or the first outcome (usually Yes) of a single market |
Output Schema
| Name | Required | Description |
|---|---|---|
| url | Yes | |
| kind | Yes | |
| range | Yes | |
| title | Yes | |
| points | Yes | |
| change_pts | Yes | |
| market_slug | Yes | |
| outcome_label | Yes | |
| end_probability | Yes | |
| low_probability | Yes | |
| high_probability | Yes | |
| start_probability | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only, idempotent, non-destructive behavior, but the description adds meaningful operational context: data comes from Polymarket's order-book history, quiet markets can have gaps that are left unfilled, and closed/resolved markets end at trading close. It also states that the output includes a chart in the card and clarifies the tool is informational, not advice.
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 front-loaded with the primary use case, followed by input forms, return values, and caveats in a logical order. Despite being one dense paragraph, every sentence contributes useful selection or invocation context and there is no 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 that an output schema exists and annotations cover safety traits, the description is complete: it explains the use case, accepted inputs, default range/outcome behavior, returned metrics, data provenance, gap behavior, and closed-market edge cases. An agent has enough information to select and call 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 description coverage is 100%, so the schema already documents market, outcome, and range thoroughly, including defaults and enum values. The description reinforces accepted market forms and time ranges, but adds little parameter-level detail 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 states a specific resource and operation: it retrieves a prediction market's price/odds history over time, and it explains exactly what the return contains (start/end probability, change, high/low, chart). The examples and scope make it clearly distinguishable from siblings such as current-odds or market-flow 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?
It gives an explicit triggering condition — 'Use this when the user asks how the odds ... have changed over time' — and illustrates it with several concrete query examples. It does not explicitly name when not to use it or point to alternative siblings for current odds versus historical odds, so it falls short of a full 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_trader_positionsGet trader positionsARead-onlyIdempotentInspect
Use this when the user wants a Polymarket trader's open positions or holdings — for example "what positions does @exampletrader hold", "list all open positions for this 0x wallet", "what is this trader's biggest position", or "which of their positions are up the most". Accepts a full 0x wallet address, a polymarket.com profile URL, an @username or a username. Returns up to 50 open positions (default 20) sorted by current value or by unrealized profit, each with the market, outcome, shares held, average entry and current price in cents, current value and unrealized profit or loss in USD, plus the total number of open positions and the portfolio value. Positions worth under $1 and resolved positions awaiting redemption are left out of the list; the text notes the latter. Read-only public on-chain data.
| Name | Required | Description | Default |
|---|---|---|---|
| sort | No | 'value' = largest current value first; 'pnl' = largest unrealized gain first. Default 'value' | |
| limit | No | How many positions to return (default 20) | |
| trader | Yes | The trader: a full 0x wallet address (42 characters), a polymarket.com profile URL, an @username, or a username, e.g. '@exampletrader' |
Output Schema
| Name | Required | Description |
|---|---|---|
| url | Yes | |
| kind | Yes | |
| name | Yes | |
| items | Yes | |
| wallet | Yes | |
| total_count | Yes | Open positions counted; a floor when total_count_is_floor is true |
| total_value_usd | Yes | |
| total_count_is_floor | Yes | True when the scan stopped at its 1,000-position cap: the wallet holds at least total_count open positions |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only declare the read-only, idempotent, non-destructive profile; the description adds substantive behavior: cap of 50 with default 20, sort semantics, exclusion of sub-$1 and resolved positions (with a note in the text), and inclusion of totals and portfolio value. That is well beyond annotation coverage.
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 usage trigger is front-loaded and the sentences are dense with concrete facts. The return-value sentence is long and enumerates fields already covered by the output schema, which is mild redundancy, but nothing is 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 three-parameter read tool, the description covers triggering, input forms, result shape, size limits, sorting, and exclusions. An agent can call it correctly without inspecting the schema or output schema.
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 the baseline is 3, but the description adds value by enumerating the accepted trader identifier forms (0x address, profile URL, @username, username) and by tying natural-language intents like 'biggest position' and 'up the most' to the sort options. It still doesn't add formatting rules or edge-case handling 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?
States a specific verb and resource ('a Polymarket trader's open positions or holdings') and backs it with concrete user-style queries. It is clearly distinct from siblings like get_trader_profile (identity/aggregate) and get_whale_trades (market-wide activity).
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?
Provides strong when-to-use signal via four representative example questions, including 'biggest position' and 'up the most'. It does not name a sibling alternative or state when not to use it (e.g., profile/summary requests should use get_trader_profile), so it falls short of the top mark.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_trader_profileGet trader profileARead-onlyIdempotentInspect
Use this when the user asks about one Polymarket trader or wallet — for example "how is this wallet doing on Polymarket" with a pasted 0x address, "show me @exampletrader's Polymarket stats", "who is this trader" with a polymarket.com profile link, or "what has this trader been trading lately". Accepts a full 0x wallet address, a polymarket.com profile URL, an @username or a username. Returns the public display name, all-time realized profit and dollar volume, current portfolio value, number of open positions, number of markets traded, up to five largest open positions and up to eight most recent trades of $1 or more. A username is matched exactly when possible; otherwise the closest public profile is used and the text says so. Read-only public on-chain data: it does not say who controls a wallet, and past results do not predict future results.
| Name | Required | Description | Default |
|---|---|---|---|
| trader | Yes | The trader: a full 0x wallet address (42 characters), a polymarket.com profile URL, an @username, or a username, e.g. '@exampletrader' |
Output Schema
| Name | Required | Description |
|---|---|---|
| url | Yes | |
| kind | Yes | |
| name | Yes | |
| stats | Yes | |
| wallet | Yes | |
| recent_trades | Yes | |
| top_positions | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the read-only annotations, it discloses important behavior: username matching prefers exact matches and falls back to the closest public profile with explanatory text. It also clarifies that the data is public on-chain data and does not identify wallet controllers, which is valuable 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 front-loaded with the primary usage condition and then lists accepted inputs and return contents. It is longer than necessary in places, but the examples and matching caveat are relevant to correct 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?
Given the single well-documented parameter, rich annotations, and an output schema, the description is complete enough for an agent to select and call the tool correctly. It covers accepted inputs, return contents, matching behavior, and key limitations.
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 the parameter is already documented. The description still adds useful semantics by restating accepted identifier formats and explaining the exact-vs-fallback username matching behavior.
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 states a specific verb and resource: it retrieves a Polymarket trader profile from a wallet, URL, or username. It is clear about what it does, but does not explicitly differentiate itself from the sibling get_trader_positions tool, even though it returns a limited positions summary.
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 gives concrete user-intent examples for when to use the tool, such as asking about a wallet, a profile link, or a username. However, it does not explicitly say when to prefer alternatives like get_trader_positions for deeper position data.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_trending_marketsGet trending marketsARead-onlyIdempotentInspect
Use this when the user asks what is trending, popular, hot or most traded on Polymarket or in prediction markets right now, or wants an overview of the biggest open markets in a category — for example "what's trending on Polymarket", "most popular prediction markets today", "top crypto markets right now", or "what are people trading on in politics". Returns up to 20 open Polymarket.com events with the most trading volume in the last 24 hours, each with up to four outcomes' market-implied probabilities (the leaders, or a price ladder's rungs nearest 50%), 24-hour change and volume. Optional category filter. Events that look settled (an outcome at 99% or more) and games' secondary prop sheets are left out. Excludes individual sports and esports games (single matches, live or upcoming) unless the category is sports or esports; futures such as a season or championship winner stay in. Mature topics, and without a category "Up or Down" and tweet-count markets, are also left out. Read-only crowd forecasts, not certainties or advice. Do not use this to choose a market or trader for the user to put money in. Do not call this when the user asks which market to buy or how to make a profit.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | How many events to return (default 8) | |
| category | No | Limit to one Polymarket category, e.g. 'politics', 'crypto', 'sports', 'economy'. Omit for all categories |
Output Schema
| Name | Required | Description |
|---|---|---|
| kind | Yes | |
| items | Yes | |
| query | Yes | |
| category | Yes | |
| list_type | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond the readOnly/openWorld annotations by disclosing result size (up to 20), ranking basis (24h volume), outcome truncation logic (up to four outcomes, leaders or price-ladder rungs nearest 50%), and multiple exclusion rules (settled-looking events at 99%+, game prop sheets, sports/esports singles unless that category is requested, Up or Down and tweet-count markets). It also frames the output as crowd forecasts, not advice.
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?
Front-loaded with the trigger conditions before the mechanics, which is the right order. It is dense and slightly repetitive at the end (the 'not advice' and 'do not use to choose a market' sentences overlap), but nearly every sentence carries filtering or scope 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?
Despite an output schema existing, the description still tells the agent what each returned event contains (probabilities, 24h change, volume) and what is deliberately absent, which is exactly the context needed to interpret a filtered feed. Nothing an agent needs to call or trust the result is missing.
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 the baseline is 3, but the description adds real semantics: the category filter is optional and materially changes what is included (sports/esports singles appear only when that category is selected), and the limit is bounded at 20. It doesn't restate the enum values or the default of 8, but it does explain the behavioral effect of category.
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 a specific verb+resource (returns trending Polymarket events ranked by 24h volume) and immediately scopes it against siblings like search_markets and get_market_movers by emphasizing 'trending/popular/hot' and a 24-hour volume window. An agent can distinguish it from get_market_movers and search_markets without opening any schema.
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?
Gives concrete trigger phrases ('what's trending on Polymarket', 'top crypto markets right now') plus explicit exclusions: do not use it to pick a market or trader to invest in, or when the user asks which market to buy. This is a full when/when-not contract.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_whale_tradesGet large tradesARead-onlyIdempotentInspect
Use this when the user asks about large or notable recent trades on Polymarket, for example "show me the biggest Polymarket trades today", "any large trades on the Fed decision?", "who made big trades on the 2028 election", or "trades over $50K this week". Scans Polymarket.com's public trade feed and returns up to 50 of the largest fills in the window (default 15), biggest first: time, buy or sell, outcome, dollar size, shares, price in cents, the market and its slug, and the trader's full wallet address and public display name. Optional filters: a minimum dollar size ($1K to $1M, default $10K), one market or event (a slug, a supported market or event link, a condition id, or plain words), and a window of 1 to 168 hours (default 24). Across all markets, fills at 99¢ or more or 1¢ or less (markets that are effectively decided) are left out, and so are individual sports and esports games and mature topics; name a market to see its trades. Each fill is counted once; dollars are shares times price. Read-only and informational: a large trade is not a forecast, and these tools cannot place trades.
| Name | Required | Description | Default |
|---|---|---|---|
| hours | No | How far back to look, in hours (default 24, max 168 = 7 days) | |
| limit | No | How many trades to return, largest first (default 15) | |
| market | No | Limit to one market or event: a slug, a supported market or event link, a condition id, or a few words like 'fed october'. Omit for all markets. | |
| min_usd | No | Smallest trade to include, in US dollars (default 10000) |
Output Schema
| Name | Required | Description |
|---|---|---|
| kind | Yes | |
| items | Yes | |
| scope | Yes | |
| min_usd | Yes | |
| market_title | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive, yet the description adds substantial context beyond them: fills at >=99¢ or <=1¢ are excluded, individual sports and esports games are excluded, each fill is counted once, and dollars equal shares times price. It also preempts misuse with 'a large trade is not a forecast, and these tools cannot place trades.'
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?
Front-loaded with the use case and examples, which is the right ordering. It is a single dense paragraph that repeats defaults already present in the schema (limit 15, hours 24), which costs some tightness but nothing is genuinely off-topic.
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 filtered read tool with an output schema, all decision-relevant information is present: trigger conditions, exclusions, dedup and dollar accounting, filter formats, and the read-only guarantee. The return fields are described as well, so the agent can predict the response shape even without opening the output schema.
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 each parameter is documented, so the baseline is 3. The description goes slightly beyond by restating defaults and ranges in context (min size $1K–$1M default $10K, window 1–168 hours default 24) and by explaining that the market filter accepts slugs, supported links, condition ids, or plain words.
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 a specific verb and resource ('Scans Polymarket.com's public trade feed and returns... largest fills') and scopes it with a minimum-size threshold. The four quoted example queries make the target intent unmistakable and separate it from siblings like get_leaderboard and get_market_flow.
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?
Opens with an explicit 'Use this when the user asks about large or notable recent trades' trigger and gives concrete phrasings that should route here. It also names the inverse condition ('name a market to see its trades') that overrides the default exclusion of sports/esports and mature topics, so the agent knows how to escape the filter.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_marketsSearch prediction marketsARead-onlyIdempotentInspect
Use this when the user asks about the odds, chances or likelihood of a real-world event, or what Polymarket or prediction markets say about something — for example "what are the odds the Fed cuts rates in October", "Polymarket odds for the 2028 election", "how likely is a US recession in 2026", "chances of Bitcoin hitting $150K this year", "what does the market say about a Ukraine ceasefire", "is there a prediction market on the 2028 Democratic nominee", "will the Fed cut rates in December", or "who will win the 2028 presidential election". Searches open Polymarket.com prediction markets and returns up to 10 closest matches (default 5), each with up to six outcomes' market-implied probabilities (outcomes the query names first, then the leaders, or a price ladder's rungs nearest 50%), 24-hour change and trading volume. For one market's full outcome list, rules and resolution status, use get_market_odds. Read-only: it cannot place trades, and the probabilities are crowd forecasts, not certainties or advice. Do not use this to choose a market or trader for the user to put money in; it reports data only. Do not call this when the user asks which market to buy or how to make a profit.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | How many markets to return (default 5) | |
| query | Yes | The event, person, team, asset or question in plain words, e.g. 'fed rate decision october', 'bitcoin 150k', '2028 presidential election' |
Output Schema
| Name | Required | Description |
|---|---|---|
| kind | Yes | |
| items | Yes | |
| query | Yes | |
| category | Yes | |
| list_type | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and non-destructive, and the description reinforces this while adding substantive context beyond the annotations: result cardinality (up to 10, default 5), outcome-selection ordering logic, inclusion of 24h change and volume, and the caveat that probabilities are crowd forecasts, not advice.
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?
Front-loaded with the core trigger and the tool's output shape, with exclusions at the end. The eight worked examples are genuinely useful for routing but take considerable space; the definition could be trimmed without losing clarity.
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 two-parameter, read-only search with an output schema and full annotation coverage, the description covers triggers, output shape, sibling routing, and safety caveats. Nothing an agent needs in order to call it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3: the schema already documents both parameters, including the default of 5 for limit. The description adds modest value by clarifying the query should be an event/person/team/asset in plain words and by implicitly linking named outcomes to result ordering.
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 a specific verb (search) and resource (Polymarket prediction markets), and explicitly distinguishes itself from the sibling that handles deep single-market lookups (get_market_odds). An agent can route between the two without opening a schema.
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?
Gives concrete trigger phrases ('odds', 'chances', 'what does the market say'), names the alternative for a different need (get_market_odds for full outcome lists, rules, resolution status), and states two explicit exclusions: don't use it to pick a market to buy or to advise on profit.
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.
11 tool updates
- First observed
get_leaderboard - First observed
get_market_flow - First observed
get_market_movers - First observed
get_market_news - First observed
get_market_odds - First observed
get_price_history - First observed
get_trader_positions - First observed
get_trader_profile - First observed
get_trending_markets - First observed
get_whale_trades - First observed
search_markets
Related MCP Connectors
Prediction-market research: market reads, news, guided analyses and an analyst.
Polymarket in your AI: market rules, real fill costs, who is trading, top traders. Read-only.
Read-only market research: index funds, event cards, CLOB data, fund analytics. No orders.
Prediction market data and crowd-sourced probability forecasts
Related MCP Servers
- AlicenseNot gradedqualityAmaintenanceRead-only Polymarket data tools for AI agents: wallet profiles, fee-inclusive PnL cross-checks, Brier-score calibration, leaderboards, market scans and more (10 tools). No API keys, no order placement — data only. English + Chinese docs.4 npm201MIT

PredMCPofficial
AlicenseNot gradedqualityDmaintenanceSafe, read-only market data for AI trading agents, offering 44 tools to query prediction markets, perpetuals, and cross-venue signals without the ability to execute trades.1MIT- AlicenseAqualityDmaintenanceTrade, analyze, and automate Polymarket prediction markets via AI. 34 tools for direct trading, smart money flow, copy trading, backtest, and portfolio management.4850 npm16MIT
- AlicenseAqualityBmaintenance24/7 autonomous monitoring and edge detection for prediction markets (Kalshi & Polymarket). Features causal tree analysis, orderbook depth tracking, cross-venue comparison, and real-time alerts.16196 npm12MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.
Directories
Last observed