Skip to main content
Glama

Prediction Markets Quant

Server Details

32 quant tools. Kalshi 15-minute markets and perps, NFL props, Fed odds — free, no key.

If you are the author of this connector, you can claim ownership with GitHub, an HTTP challenge, or a DNS record. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Uptime
100.0% over 22 days
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL
Repository
predictionmarketspicks/mcp
GitHub Stars
0
Server Listing
PredictionMarketsPicks Quant

TDQS

A4.1/5.0

Scored across 32 tools

Disambiguation4/5

Most tools have clearly distinct purposes, but with 32 tools there are a few clusters (e.g., best_available vs who_do_i_draft, scan_mispricings vs edge_alerts) that could cause misselection if an agent doesn't read descriptions carefully. However, descriptions are detailed and each tool targets a specific scenario.

Naming Consistency5/5

All tool names follow a consistent snake_case pattern, mostly verb_noun (e.g., calculate_ev, find_arbitrage, explain_player) or noun phrases (e.g., senate_map, market_pulse). No mixed conventions, no camelCase, and the style is uniform across all 32 tools.

Tool Count3/5

32 tools is above the typical 15-tool threshold and feels heavy, but the server covers multiple domains (prediction markets, fantasy football, NFL, macro) which justifies a larger surface. Still, the count is borderline and could overwhelm an agent.

Completeness4/5

The tool surface covers a wide range of prediction market and fantasy football operations: EV calculation, Kelly sizing, arbitrage, ladder analysis, perps, NFL edges, draft boards, player comparisons, and macro indicators. Minor gaps exist (e.g., no portfolio tracking, no order placement), but for a quant/analysis server it is quite complete.

Available Tools

32 tools
adp_market_gapsADP Market GapsA
Read-only
Inspect

Find the 2026 fantasy players whose Average Draft Position swings most between platforms — consensus vs ESPN, Sleeper, Yahoo, Underdog, etc. A wide gap (e.g. "consensus RB18 but ESPN drafts him RB30") is a platform-specific value: grab him where he goes latest. All 154 gaps are FREE — no key, no email. Pro adds the judgment layer on each row. Use for "ADP differences by platform", "where is a player cheapest", "ADP arbitrage", "who falls on ESPN vs Sleeper". Filter by position (QB/RB/WR/TE/FLEX).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, and the description adds useful behavioral context: the tool returns 154 fixed gaps, requires no key or email, has a Pro layer, and focuses on platform-specific ADP discrepancies. It does not describe the output shape in detail, but for a zero-parameter read-only tool this is a reasonable level of disclosure.

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

Conciseness4/5

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

The core purpose is front-loaded in the first sentence, and the example and use-case list earn their place. It is slightly wordy with the 'Pro adds the judgment layer' and 'FREE' access details, but overall every section contributes actionable context and the description remains compact.

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

Completeness3/5

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

The description conveys the data source, use cases, access requirements, and row count, which is strong for a zero-parameter read-only tool. However, there is no output schema and the description never specifies the exact fields returned beyond an illustrative rank example, and the unsupported filter claim leaves a gap in invocation correctness.

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

Parameters2/5

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

The input schema has zero properties, so the baseline would normally be 4. However, the description advertises 'Filter by position (QB/RB/WR/TE/FLEX)' even though no filter parameter exists in the schema. This is misleading: an agent may attempt to pass an unsupported position argument and fail schema validation.

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

Purpose5/5

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

The description opens with a specific verb and resource: 'Find the 2026 fantasy players whose Average Draft Position swings most between platforms.' It names the exact platforms and gives a concrete example, making the tool's unique ADP-arbitrage purpose unmistakable and clearly distinct from sibling tools like compare_players or scan_mispricings.

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

Usage Guidelines4/5

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

The description gives explicit use cases ('Use for ADP differences by platform', 'ADP arbitrage', 'who falls on ESPN vs Sleeper') and context about access ('All 154 gaps are FREE — no key, no email'). It does not state when not to use it or name alternatives, but the context is clear enough for an agent to select it in the intended scenarios.

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

base_rate_gapBase Rate GapA
Read-only
Inspect

Compare a market price against the historical base rate for a class of events and get the gap in percentage points plus a signal and sample-size quality. Pass either a known base-rate id (one of: incumbent_reelected, fed_hold_unemp_below_4, fed_cut_cpi_above_3, recession_called_12mo, sp500_positive_year, bitcoin_above_100k_eoy, gdp_growth_above_2, cpi_above_3, senate_incumbent_wins_primary, vix_below_20_eoy, interest_rate_cut_next_meeting, major_sports_upset) or your own baseRateValue. Use for "how does this price compare to history", "is the market ignoring the base rate", "historical frequency vs market".

ParametersJSON Schema
NameRequiredDescriptionDefault
baseRateIdNoKnown base-rate id to look up (includes sample size + source).
marketPriceYesCurrent market price in cents / implied probability % (0–100). Accepts 55, "55%", "55¢", "$0.55", 0.55 or American odds (+120 / -150) — all read as 55%.
baseRateValueNoYour own base rate in % (0–100), used when no baseRateId is given.

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and openWorldHint=false, so the safety profile is covered. The description adds meaningful behavioral context by specifying the return components: gap, signal, and sample-size quality. It does not detail edge cases like what happens if both baseRateId and baseRateValue are supplied, but that is a minor gap.

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

Conciseness4/5

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

The first sentence is front-loaded with the core action and output. The enum list is somewhat redundant with the schema but still useful for discoverability, and the use-case sentence earns its place. Overall it is organized and not padded.

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

Completeness4/5

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

Given no output schema, the description compensates by naming the result fields (gap, signal, sample-size quality). Inputs are well covered by the schema, and the description clarifies the either/or relationship between baseRateId and baseRateValue. Minor ambiguity remains about conflict or omission behavior, but the tool is simple enough that the description is essentially complete.

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

Parameters3/5

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

Schema description coverage is 100%, so the baseline is 3. The description repeats the enum list and the baseRateValue alternative but does not add new semantic meaning beyond the schema. No extra parameter guidance is provided, so it does not rise above baseline.

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

Purpose5/5

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

The description states a specific verb-resource pair ('Compare a market price against the historical base rate') and enumerates the outputs (gap in percentage points, signal, sample-size quality). It clearly differentiates this tool from siblings like calculate_ev or convert_probability by focusing on historical base-rate comparison.

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

Usage Guidelines4/5

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

The description gives explicit use-case phrasing ('how does this price compare to history', 'is the market ignoring the base rate', 'historical frequency vs market') and explains the two input paths (baseRateId or baseRateValue). It does not name alternatives or exclusion conditions, but the context is clear enough for an agent to select it appropriately.

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

bayes_updateBayesian Probability UpdateA
Read-only
Inspect

Update a prior probability with one or more pieces of evidence using Bayes theorem. Given a prior and a list of evidence items (each with P(evidence | true) and P(evidence | false)), returns the posterior probability and the per-step chain. Use for "update my estimate with new information", "posterior probability", "how does this news change the odds".

ParametersJSON Schema
NameRequiredDescriptionDefault
priorYesPrior probability the hypothesis is true, in % (0–100). Accepts 55, "55%", "55¢", "$0.55", 0.55 or American odds (+120 / -150) — all read as 55%.
evidenceNoOne or more evidence items, applied in order. Each item needs likelihoodIfTrue and likelihoodIfFalse on the 0–100 scale, e.g. [{ "likelihoodIfTrue": 80, "likelihoodIfFalse": 20 }]. A single item may be sent as one object.

TDQS

A4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true MATERIAL, so the safety profile is covered. The description adds the expected output ('posterior probability and the per-step chain') and the Bayes theorem basis, but it does not go into edge behavior such as rounding, numerical precision, or what happens if evidence is omitted. Given that annotations carry the safety burden, this 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.

Conciseness5/5

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

The description is tight: one action sentence, one input/output sentence, and one usage-intent sentence. There is no tangental detail, and the key operation is front-loaded. Every sentence earns its place.

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

Completeness4/5

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

With only two parameters holistically documented by the schema and read-only annotations, the description covers the core call context well. It names the return value and the chain, though there is no output schema and the exact shape of the 'per-step chain' is not specified. This is a minor gap rather than a missing critical signal.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents prior, likelihoodIfTrue, likelihoodIfFalse, and label thoroughly. The description only lightly re-states the evidence structure without adding new semantic detail beyond the schema. This matches the baseline for full-coverage schemas.

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

Purpose5/5

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

The description names a specific action—'Update a prior probability with one or more pieces of evidence using Bayes theorem'—and immediately distinguishes the operation from sibling calculators by focusing on posterior updating and per-step chains. It also provides concrete user-intent phrases like 'posterior probability' and 'how does this news change the odds,' which makes the tool unambiguous to an agent.

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

Usage Guidelines4/5

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

The 'Use for...' line gives clear natural-language triggers that signal when this tool is appropriate, which is strong usage guidance. It does not explicitly state when not to use it or name alternatives like convert_probability, but the context and examples are sufficient to steer an agent toward correct selection.

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

best_availableBest Available (Draft)A
Read-only
Inspect

Given the current pick number and the players already drafted, return the best players still on the board (2026, any scoring format), each with projection, ADP, and a value flag, plus the biggest model value available. The full remaining pool is FREE — no key, no email. Pro adds boom/bust week odds and the positional tier breaks across everyone still on the board. Prefer this mid-draft when the user asks "who is the best available", "who should I take next", "best player left". Input: pick_number, drafted (names already gone).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, and the description adds that no key/email is needed and that Pro unlocks boom/bust odds and positional tier breaks, which is useful context about access and feature gating. It does not contradict the annotations.

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

Conciseness4/5

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

The core behavior is front-loaded, followed by pricing/access notes and usage triggers. It is reasonably concise, though the 'FREE — no key, no email' and 'Pro adds...' sentences are somewhat promotional and not strictly required for invocation.

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

Completeness5/5

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

With no output schema, the description supplies the return content (projection, ADP, value flag, biggest model value), the intended input, the draft/season context, and when to use it. This is complete enough for an agent to call and interpret the tool.

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

Parameters5/5

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

The input schema declares no parameters, so the description carries the full burden. It clearly specifies the two inputs, pick_number and drafted, and explains what they mean ('current pick number', 'names already gone'), giving an agent enough to invoke the tool correctly despite the empty schema.

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

Purpose4/5

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

The description uses a specific action ('return the best players still on the board') and resource, and it defines the domain (2026, any scoring format) and output fields. It is clear, but it does not explicitly differentiate itself from sibling tools such as who_do_i_draft or draft_board, so the purpose is clear but not distinguished.

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

Usage Guidelines4/5

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

It gives explicit trigger phrases ('who is the best available', 'who should I take next', 'best player left') and a time context ('mid-draft'), which tells an agent when to prefer it. It does not list exclusions or alternate tools, so it falls just short of full alternative-routing guidance.

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

calculate_evCalculate EV EdgeA
Read-only
Inspect

Calculate the expected-value edge on a Kalshi or Polymarket prediction-market contract. Given the current market price (in cents, i.e. the implied probability) and your own probability estimate, returns the % edge and a BUY / SELL / SKIP signal with a plain-English read. Use for "is this contract mispriced", "what is my edge", "should I take this position". From the PredictionMarketsPicks desk, which publishes a settled per-engine record — every signal graded against the market that priced it, wins and losses both: predictionmarketspicks.com/track-record.

ParametersJSON Schema
NameRequiredDescriptionDefault
marketPriceYesCurrent contract price in cents (1–99), equal to the implied probability in %. Accepts 55, "55%", "55¢", "$0.55", 0.55 or American odds (+120 / -150) — all read as 55%.
yourProbabilityYesYour own estimate of the true probability the contract resolves YES, in % (0–100). Accepts 55, "55%", "55¢", "$0.55", 0.55 or American odds (+120 / -150) — all read as 55%.

TDQS

A3.9/5.0
Behavior3/5

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

The readOnlyHint annotation already establishes that this is a safe, non-mutating calculation. The description adds useful output behavior—'% edge and a BUY / SELL / SKIP signal with a plain-English read'—but does not disclose internal assumptions or edge thresholds. This 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.

Conciseness4/5

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

The description is three sentences: function and outputs, use cases, and provenance/track-record context. It is front-loaded and every sentence earns its place, though the final track-record sentence is slightly promotional.

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

Completeness4/5

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

For a simple two-parameter read-only calculator, the definition is complete enough: it names the domain, inputs, outputs, and intended use cases. There is no output schema, but the description gives a reasonable picture of the return value. A bit more detail about how the BUY/SELL/SKIP thresholds are derived would be helpful but not necessary for correct invocation.

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

Parameters3/5

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

Schema description coverage is 100%, and both marketPrice and yourProbability already have detailed descriptions including accepted formats (percentages, decimals, American odds). The description adds no parameter semantics beyond what the schema already provides, so the baseline of 3 applies.

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

Purpose5/5

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

The description opens with a specific verb and resource: 'Calculate the expected-value edge on a Kalshi or Polymarket prediction-market contract.' It names the inputs and the exact outputs (% edge and BUY/SELL/SKIP signal), making the function unambiguous and clearly distinct from siblings like convert_probability or kelly_size.

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

Usage Guidelines4/5

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

The description explicitly states when to use the tool: 'Use for "is this contract mispriced", "what is my edge", "should I take this position".' This gives clear context, though it does not name sibling tools or specify 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.

combo_edgeCombo Edge VerdictA
Read-only
Inspect

Grade a same-game combo (parlay-style multi-leg position) on a prediction market against its fair value. Given each leg price in cents and your correlation-aware estimate of the true joint win probability, returns the fair-value ODDS BAND to grade a quote against. Pass offeredOdds — the price your platform actually quotes for the combo (Kalshi combo RFQ or an SGP product) — to get the expected-value %, a negative-correlation-trap flag, and a 7-tier verdict (SMASH / PLAY / LEAN / RISK / NO_VALUE / PASS / RUN). Without offeredOdds it returns fair value + band only (no verdict) — never grade EV off the product of the leg prices, which no venue pays. Use for "is this combo worth it", "grade my parlay quote", "same-game combo value". OR pass nflGame (AWAY-HOME — abbrevs, nicknames or full names all work: "NYG-LAR", "Giants vs Rams"; a reversed pair is read correctly) and we do the hard part for you: that game's real Kalshi legs, moneyline, spreads, the game-total ladder and PLAYER PROPS, both sides of every contract. Call it with nflGame alone to list the legs and their ids, then again with legIds to have us compute the correlation-aware joint ourselves — no estimate needed from you. Game legs are priced against a market-anchored fair line (edge = fair − market; the raw model is shown beside it). A prop is priced conditional on the game script — pace (the total) and flow (the margin) — inside the same model as the game legs, so four unders that all need a low-scoring game are priced as the correlated slip they are instead of being multiplied. From the PredictionMarketsPicks desk, which publishes a settled per-engine record — every signal graded against the market that priced it, wins and losses both: predictionmarketspicks.com/track-record.

ParametersJSON Schema
NameRequiredDescriptionDefault
legIdsNo2–6 leg ids from a previous nflGame call. We compute the correlation-aware joint for exactly these legs.
nflGameNoAn NFL game on the live board, as "AWAY-HOME" (e.g. "NYG-LAR"). Alone: lists that game's selectable legs with their ids. With legIds: prices that exact combo.
legPricesNoEach leg's YES price in cents (1–99). Used only for the theoretical assemble ceiling. Omit when using nflGame + legIds — we read the real prices.
offeredOddsNoThe combo price your platform actually quotes — American odds (e.g. -150, 988) or a decimal payout multiplier (e.g. 10.7). Grades EV + verdict against fair value. Omit to get fair value + band only.
offeredAmericanNoAlias for offeredOdds (the response reports the quote as offered_american, so this name is accepted on input too). American odds or a decimal multiplier, same parsing. If both are given, offeredOdds wins.
trueWinProbabilityNoYour correlation-aware estimate of the true joint probability all legs hit, in % (0–100). Omit when using nflGame + legIds — we compute it from the scoreline model.

TDQS

A4.6/5.0
Behavior5/5

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

Annotations already indicate readOnlyHint=true, and the description adds rich behavioral context beyond that: output conditionality on offeredOdds, the edge formula (fair − market), how props are priced conditional on game script, the correlation-aware joint handling, and the legIds round-trip workflow. There is no contradiction with the read-only annotation.

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

Conciseness4/5

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

The description is long but justifiably so for a two-mode tool with six parameters. It front-loads the core function and output vocabulary before diving into the nflGame path. The only nonessential element is the marketing-style track-record sentence at the end, which slightly keeps it from a perfect conciseness score.

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

Completeness5/5

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

Given no output schema and only minimal annotations, the description carries the full burden of explaining call patterns, return behavior, and model assumptions. It covers both invocation paths, exact tier names, the fair-value band, what is returned when offeredOdds is omitted, and how legIds are obtained from nflGame. An agent has enough context to invoke the tool correctly in either mode.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3, but the description adds meaningful inter-parameter guidance: legPrices are 'used only for the theoretical assemble ceiling,' trueWinProbability and legPrices should be omitted when using nflGame + legIds, and offeredOdds takes precedence over offeredAmerican. These details help an agent choose the correct parameter combination, going beyond the schema.

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

Purpose5/5

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

The description opens with a specific verb+resource: 'Grade a same-game combo ... against its fair value,' and immediately names concrete outputs (fair-value odds band, EV%, negative-correlation-trap flag, 7-tier verdict). It also distinguishes itself from naive pricing by explicitly warning 'never grade EV off the product of the leg prices, which no venue pays,' which separates it from general EV/parlay calculators.

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

Usage Guidelines4/5

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

The description gives clear context for both invocation modes: with offeredOdds for EV+verdict, without it for fair value only, and with nflGame for automatic leg retrieval and joint probability computation. It also provides explicit use-case phrases like 'is this combo worth it' and 'grade my parlay quote.' It stops short of explicitly naming sibling alternatives or stating when not to use this tool, so it misses the top bar.

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

commodity_edgeCommodity Edge (Gold / Silver / Oil / Bitcoin)A
Read-only
Inspect

Get today's highest-conviction gold, silver, WTI oil or bitcoin trade signal from the PMP edge model — the Kalshi daily gold (KXGOLDD), daily silver (KXSILVERD), daily WTI (KXWTI) or hourly bitcoin (KXBTCD) strike with the largest model edge, as a trade ticket: entry side and price, resolve criterion, model probability, edge in percentage points, confidence tier, and quarter-Kelly sizing. Pro key required. Use for "gold edge today", "silver edge today", "oil trade signal", "bitcoin trade signal", "is there a commodity edge". Pass tickers[] to check specific Kalshi markets — e.g. paste your Kalshi Pro screener watchlist (returns the signal only if it matches the strike PMP is modeling).

ParametersJSON Schema
NameRequiredDescriptionDefault
tickersNoOptional Kalshi ticker watchlist (up to 25) — e.g. paste the tickers from your Kalshi Pro screener or Canvas to get PMP's edge on exactly those markets. Full market or 3-segment event tickers both work. Tickers PMP doesn't model are returned as not_covered (never a fabricated edge).
commodityYesWhich commodity edge to read. One of: silver · bitcoin · gold · oil.

TDQS

A4.5/5.0
Behavior5/5

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

Annotations only declare readOnlyHint=true and openWorldHint=true. The description adds substantial behavioral context: the exact trade-ticket fields returned, the Pro key requirement, and the honesty guarantee that unmodeled tickers return not_covered rather than a fabricated edge. No contradiction with annotations.

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

Conciseness4/5

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

Dense and front-loaded with the core action and ticket contents, followed by natural-language examples and tickers usage. Almost every sentence earns its place, though 'highest-conviction' and 'largest model edge' are slightly redundant and the paragraph could be tightened.

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

Completeness4/5

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

Given full schema coverage and no output schema, the description covers the returned ticket fields, authentication, example queries, and edge-case honesty for tickers. The only notable gap is an explicit statement of the fallback when no edge exists for a bare commodity request without tickers.

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

Parameters4/5

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

Schema coverage is 100% and both parameters already have meaningful in-schema descriptions. The description still adds value beyond the schema by explaining how to use tickers[] (paste watchlist, full vs 3-segment tickers, not_covered behavior), which justifies a score above the baseline 3.

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

Purpose5/5

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

States a specific verb ('Get') and resource (highest-conviction PMP edge-model trade signal for gold, silver, WTI oil, or bitcoin), and enumerates exact Kalshi contracts (KXGOLDD, KXSILVERD, KXWTI, KXBTCD). The commodity focus clearly separates it from siblings like combo_edge, nfl_edge, and calculate_ev.

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

Usage Guidelines4/5

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

Provides explicit 'Use for' query mappings and a precise condition for passing tickers[] (to check specific Kalshi markets, e.g. a Pro screener watchlist). It does not name alternative tools or say when not to use this tool, which would raise it to a 5.

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

compare_playersCompare Players (Draft)A
Read-only
Inspect

Compare 2–4 players side by side for a 2026 fantasy draft (standard, half-PPR or full-PPR) — projection, floor/ceiling, ADP, draft round, and value flag — and get a pick recommendation plus which one is the best market value. Free, no key. Use for " or in fantasy", "who should I draft, or ", "compare and ", "start/draft vs ".

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.5/5.0
Behavior4/5

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

Beyond the readOnlyHint annotation, the description discloses that the tool is 'Free, no key' and describes the output components it will produce: projection, floor/ceiling, ADP, draft round, value flag, pick recommendation, and market value. This gives an agent a good behavioral picture without revealing hidden side effects.

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

Conciseness5/5

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

The description is tight and information-dense: the first sentence covers scope and outputs, and the second sentence gives memorable invocation examples. No filler or redundant restatement exists.

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

Completeness5/5

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

For a zero-parameter tool with no output schema, the description is complete: it explains what the tool does, what output to expect, the supported scoring formats, and how to phrase the request. An agent has enough context to decide and invoke correctly.

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

Parameters4/5

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

The tool has no structured input parameters, so the schema cannot document them. The description compensates by showing the expected input style through example phrases, making clear that player names and comparison intent are supplied in natural language.

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

Purpose5/5

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

The description clearly states the tool compares 2–4 players, specifies the context (2026 fantasy draft with PPR variants), and lists the comparison dimensions. The example query patterns make the intended use immediately recognizable and distinguish it from siblings like who_do_i_draft.

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

Usage Guidelines4/5

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

The description explicitly says 'Use for' and gives concrete natural-language examples such as 'who should I draft, <A> or <B>'. It provides clear context for when to invoke the tool, though it does not explicitly state when not to use it or name alternative sibling tools.

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

convert_probabilityConvert Probability / OddsA
Read-only
Inspect

Convert between implied probability, American odds, and decimal odds. Give one value and its format and get all three back (American odds carry no commas, e.g. +441 or -200). Use for "what is +150 as a probability", "convert 62% to American odds", "decimal to implied odds".

ParametersJSON Schema
NameRequiredDescriptionDefault
valueYesThe numeric value to convert. Accepts a number or a numeric string ("+150", "62%", "2.5").
formatYesFormat of `value`: probability (0–100 %), american (e.g. -200 / +150), or decimal (e.g. 2.5). One of: probability · american · decimal.

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already communicate readOnlyHint=true, so no side-effect warning is needed. The description adds useful behavioral context beyond annotations: it returns all three representations at once and specifies that American odds carry no commas (e.g., +441 or -200). This helps the agent set expectations about output formatting.

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

Conciseness5/5

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

The description is compact: one purpose sentence, one outcome sentence, and a short list of use-case examples. Every sentence earns its place, the main behavior is front-loaded, and there is no redundant restating of the tool name or schema.

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

Completeness4/5

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

For a simple two-parameter conversion tool with full schema coverage and a read-only annotation, the description is largely complete. It states inputs, output behavior, and formatting conventions. The only minor gap is that it does not specify the exact response structure or key names, but 'get all three back' is sufficient for most agent workflows.

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

Parameters4/5

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

Schema description coverage is 100%, so the baseline is 3. The description adds value beyond the schema with concrete examples like '+150', '62%', and '2.5', and clarifies the American odds formatting constraint. This helps an agent understand accepted value forms without relying on enum hints alone.

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

Purpose5/5

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

The description opens with a specific verb and resource: 'Convert between implied probability, American odds, and decimal odds.' It also states the exact outcome—'get all three back'—and gives concrete user-phrase examples that remove ambiguity. No sibling tool overlaps with this conversion purpose, so it is clearly distinguishable.

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

Usage Guidelines4/5

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

The description gives explicit usage contexts: 'Use for "what is +150 as a probability"', 'convert 62% to American odds', and 'decimal to implied odds.' These examples tell an agent when to invoke the tool. It does not explicitly state when not to use it or name alternatives, but the sibling list contains no competing conversion tool.

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

draft_boardFantasy Draft BoardA
Read-only
Inspect

The PredictionMarketsPicks 2026 fantasy football draft board (standard, half-PPR or full-PPR) — every player ranked, blending our projection model with consensus ADP, showing projected points, ADP, draft round, and a SLEEPER / BUST value flag. Filter by position (QB/RB/WR/TE/FLEX). THE COMPLETE BOARD IS FREE — all ~330 players, no key, no email, no signup. Pro adds the judgment on top: boom/bust week odds per player and positional tier breaks. Use for "fantasy football rankings 2026", "who are the top RBs", "draft board", "best available by position".

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4/5.0
Behavior4/5

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

The annotations already declare readOnlyHint=true and openWorldHint=false, and the description does not contradict them. It adds useful behavioral context: the board is free, requires no key/email/signup, covers all ~330 players, and is filterable. It does not describe the response format, but annotations already cover the safety profile.

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

Conciseness4/5

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

The description is longer than minimal but information-dense; each sentence contributes something: board contents, access requirements, pro-only features, and sample queries. It is front-loaded with the core definition, though the pro-upsell sentence could be trimmed without losing essential invocation guidance.

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

Completeness4/5

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

With zero parameters, read-only annotations, and no output schema, the description covers what an agent needs: board contents, filtering options, access constraints, and example user intents. It does not specify the exact output structure, but the listed fields largely substitute for that in this simple case.

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

Parameters4/5

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

The tool has zero parameters and the schema reflects that, so there is no parameter ambiguity (baseline 4). The description still adds conceptual filtering context (position, PPR format) that is useful even though no formal parameters exist.

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

Purpose4/5

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

The description clearly identifies a concrete resource (the fantasy football draft board) and spells out its contents: rankings, projected points, ADP, draft round, and sleeper/bust flags, plus position filtering. It does not use an explicit action verb like 'get' or 'show,' and it does not directly name sibling tools, so it narrowly misses a 5.

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

Usage Guidelines4/5

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

The 'Use for' section provides concrete query examples and contexts (rankings, top RBs, draft board, best available by position), giving an agent strong cues for when to invoke it. It does not explicitly contrast it with nearby siblings like best_available or sleepers_and_busts, which prevents a 5.

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

edge_alertsEdge Alerts (weather / commodity / mispricing)A
Read-only
Inspect

Read the edge alerts our models generate on Kalshi — weather, bitcoin/silver/gold/oil, and mispricings — as a live feed. Each alert carries feed, tier (SPECULATIVE/MODERATE/STRONG), side, price in cents, model probability, edge in percentage points, and a Kalshi market link. A Pro key returns the feed in real time; without a key you get the same feed delayed 24 hours with the thesis stripped. Every subscriber receives the identical, impersonal feed at the same time — the signals are not tailored to any individual. Filters (feed, min_tier, since) SELECT which alerts you see; they never change the signal content. Use for "any edge on Kalshi", "weather trade signals", "latest mispricings". Impersonal market analysis for informational purposes only, not investment advice. Trade responsibly.

ParametersJSON Schema
NameRequiredDescriptionDefault
feedNoComma-separated feeds to include: weather, bitcoin, silver, gold, oil, mispricing, sports_arb, nfl. Omit for all.
limitNoMax alerts to return (default 25).
sinceNoISO-8601 timestamp — only alerts created after it.
min_tierNoMinimum confidence tier (returns that tier and above).

TDQS

A4.5/5.0
Behavior5/5

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

Beyond the readOnlyHint/openWorldHint annotations, the description discloses significant behavioral traits: the Pro vs. delayed 24-hour feed, thesis stripping without a key, the identical impersonal nature of the feed, and that filters only affect selection, never signal content. It even adds a disclaimer that it is not investment advice.

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

Conciseness4/5

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

The description is information-dense and front-loaded with the main purpose, followed by return fields, access behavior, filter semantics, and use cases. It is slightly long and includes boilerplate like 'Trade responsibly,' but each substantive sentence earns its place.

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

Completeness4/5

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

With no output schema, the description compensates by listing the fields each alert carries: feed, tier, side, price in cents, model probability, edge in percentage points, and a Kalshi market link. It also covers access tiers, delay, and filter semantics. Minor gaps remain around exact probability units and the sports_arb/nfl feeds mentioned only in the schema.

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

Parameters4/5

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

Schema description coverage is 100%, so the schema already documents all four parameters. The description adds value by explaining that filters (feed, min_tier, since) only select which alerts are shown and never alter the underlying signal content, and it names several feed categories in the first sentence.

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

Purpose5/5

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

The description opens with a specific verb and resource: 'Read the edge alerts our models generate on Kalshi' and enumerates the covered feeds (weather, commodities, mispricings). It also clarifies that this is a live feed of pre-generated signals, which distinguishes it from calculation-oriented sibling tools like calculate_ev or scan_mispricings.

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

Usage Guidelines4/5

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

The description gives explicit use-case phrases: 'Use for "any edge on Kalshi", "weather trade signals", "latest mispricings".' It also explains the filter behavior and access-key implications. However, it does not explicitly state when to prefer a sibling tool or when not to use this feed, so it falls short of full alternative routing.

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

explain_playerExplain a Player RankingA
Read-only
Inspect

Explain WHY the 2026 draft board ranks a player where it does, factor by factor: projection, floor/ceiling band, boom/bust week shape, and the three separate ranks a board row carries — our model's own positional rank, the market's ADP, and the published blend between them — plus the edge between model and market. Also states what the projection does NOT model (injuries, camp news, schedule). Free, no key. Use for "why do you have there", "explain ranking", "what's driving 's projection", "why is a sleeper/bust". For a plain outlook or a verdict rather than the reasoning, use player_outlook.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.7/5.0
Behavior5/5

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

Beyond the readOnlyHint annotation, the description discloses that the tool is 'Free, no key' and explicitly states what the projection does NOT model (injuries, camp news, schedule). These behavioral limitations add meaningful context an agent could not infer from the annotations or schema.

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

Conciseness4/5

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

The description is dense but each part earns its place: purpose, factors, limitations, key/access info, example phrases, and alternative tool. It is somewhat long, but front-loads the primary purpose and keeps the alternative guidance near the end, making it useful without excessive digression.

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

Completeness4/5

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

For a zero-parameter, no-output-schema tool, the description covers its purpose, output contents, limitations, and alternative tools thoroughly. The only minor gap is that it doesn't explicitly state how the target player is identified when calling the tool, but the examples imply the player is present in the user query or conversation context.

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

Parameters4/5

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

The tool has zero parameters and an empty schema, so the baseline for this dimension is 4. The description doesn't need to explain schema parameters and instead clarifies that the caller refers to a player in natural-language terms, which is sufficient for the no-parameter situation.

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

Purpose5/5

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

The description states a specific verb ('Explain WHY...') and a specific resource (the 2026 draft board ranking), enumerating the exact factors that are produced. It also differentiates from the sibling player_outlook by saying this is about reasoning, not a plain outlook or verdict.

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

Usage Guidelines5/5

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

It gives explicit when-to-use patterns ('why do you have <player> there', 'explain <player> ranking', 'why is <player> a sleeper/bust') and an explicit when-not-to-use pointer ('For a plain outlook or a verdict rather than reasoning, use player_outlook'). This leaves no ambiguity about how the agent should route requests.

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

fed_rate_oddsFed Rate Odds (FOMC)A
Read-only
Inspect

Live market-implied odds of a Federal Reserve rate cut, hold or hike at each remaining 2026 FOMC meeting, from Kalshi. Returns the next meeting with days-until and its full strike breakdown, plus the whole remaining rate path and the current fed funds rate. Free, no key. Also returns a cross-venue block comparing Kalshi against Polymarket and CME fed funds futures-implied odds for the next meeting, with the disagreement in percentage points. Free, no key. Use for "will the Fed cut rates", "fed rate hike odds", "next FOMC meeting odds", "what is the market pricing for September", "do Kalshi and Polymarket agree on the Fed".

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, so the safety profile is covered. The description adds useful context about live Kalshi data, free/no-key access, and the cross-venue comparison, but does not disclose refresh frequency or data lag.

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

Conciseness4/5

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

The description is densely informative: core functionality, return contents, and example use cases are all present. The phrase 'Free, no key' is repeated twice, which is minor redundancy but does not undermine clarity.

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

Completeness5/5

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

With no output schema, the description carries the burden of explaining return values. It enumerates all key outputs: next meeting with days-until, strike breakdown, remaining rate path, current fed funds rate, and the Kalshi/Polymarket/CME comparison. This is complete for a no-parameter read-only tool.

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

Parameters4/5

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

The tool has zero parameters and an empty schema, so the baseline is 4. The description appropriately notes that no key is required, making it clear that invocation requires no setup or input.

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

Purpose5/5

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

States clearly that the tool returns live market-implied Fed rate odds for remaining 2026 FOMC meetings, including next-meeting details and a cross-venue comparison. The Fed/FOMC scope is explicit and distinguishes it from the sports-focused sibling tools.

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

Usage Guidelines4/5

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

Provides concrete natural-language use cases such as 'will the Fed cut rates' and 'next FOMC meeting odds'. It does not name exclusions, but the sibling list contains no close alternative, so the guidance is sufficient.

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

fifteen_min_boardKalshi 15-Minute Markets — every series, liveA
Read-only
Inspect

Kalshi's 15-minute up-or-down markets, live: every trading series (bitcoin, ETH, XRP, SOL, gold, silver, WTI oil, natural gas, copper, platinum, palladium, EUR/USD, GBP/USD, USD/JPY, Coin Race and more) with whether a window is open, the YES price (two-sided mid), the window's close time, Kalshi's target price, what the series settles on, and the share of the last 96 windows that settled up. Pass series for one market ("eth", "KXETH15M", "natural gas") or asset_class to filter. Also lists the pre-launch S&P 500, Nasdaq 100 and Treasury-yield series. Free, no key. Use for "what is the ETH 15 minute market doing", "which Kalshi 15-minute markets are open", "KXBTC15M price now", "how does the Kalshi gold 15-minute market settle".

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax rows (default 30).
seriesNoOne series: ticker (KXETH15M) or asset ("eth", "gold", "euro").
open_onlyNoOnly series with a window open right now (default false).
asset_classNocrypto · commodity · currency · all (default all).

TDQS

A4.4/5.0
Behavior4/5

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

Building on annotations readOnlyHint=true and openWorldHint=true, the description adds useful behavioral context: 'Free, no key', 'live', and the fact that pre-launch S&P 500, Nasdaq 100, and Treasury-yield series are also included. It does not contradict the annotations and adds value beyond what the structured fields alone convey.

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

Conciseness4/5

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

The description is front-loaded with the core purpose and follows with output details, parameter hints, and example queries. It is longer than strictly necessary, mostly due to an extensive parenthetical list of series, but each section earns its place and the structure is logical.

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

Completeness5/5

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

With no output schema, the description carries the burden of explaining return content, and it does so thoroughly: open-window status, two-sided mid YES price, close time, target price, settlement condition, and settled-up share over the last 96 windows. Combined with full parameter schema coverage and read-only annotations, an agent has enough context to invoke the tool correctly.

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

Parameters4/5

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

Schema description coverage is 100%, so the baseline is 3. The description goes slightly beyond the schema by providing concrete alias examples ('eth', 'KXETH15M', 'natural gas') and by clarifying that 'series' selects one market while 'asset_class' filters. This helps an agent map user intent to parameters more reliably.

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

Purpose5/5

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

The description names a concrete resource (Kalshi 15-minute up-or-down markets) and a clear action: list or filter them live. It enumerates the data returned (open window, YES price, close time, target price, settlement basis, settled-up share), and mentions pre-launch series. This is specific enough to distinguish it from any sibling tool without opening schemas.

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

Usage Guidelines4/5

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

The description gives explicit usage context with example user queries ('what is the ETH 15 minute market doing', 'which Kalshi 15-minute markets are open', 'KXBTC15M price now') and tells the agent to pass 'series' for one market or 'asset_class' to filter. It does not explicitly name alternatives or exclusions, but the intended use cases are clear and actionable.

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

find_arbitrageFind Sports Arbitrage GapsA
Read-only
Inspect

Scan for cross-platform price gaps between Kalshi and Polymarket on the same sports contract (NBA, NHL, MLB, World Cup). Returns each game where the two venues disagree on the implied probability, the gap in percentage points, the WATCH/ARB signal, and which venue is cheaper. Free without a key: the single largest gap on the board, in full detail. One email returns the top 3; Pro returns the whole board. Use for "where is the arbitrage", "cross-platform price gaps", "Kalshi vs Polymarket mispricing". Every signal our engines publish is settled against the market that priced it and scored wins and losses in public: predictionmarketspicks.com/track-record.

ParametersJSON Schema
NameRequiredDescriptionDefault
minGapNoMinimum gap in percentage points to include (default 3 = WATCH threshold). Accepts a number or a numeric string ("3", "3pp", "3%").

TDQS

A4/5.0
Behavior4/5

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

The readOnlyHint and openWorldHint annotations already establish that this is a safe, free-access operation. The description adds valuable behavioral context by qualifying the free tier: without a key, only the single largest gap is returned, while email/Pro unlocks more. This prevents an agent from assuming open access means full board access.

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

Conciseness3/5

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

The first several sentences are dense and front-loaded with functional information. However, the final sentence about the public track record is promotional rather than operational and does not help an agent select or invoke the tool, so not every sentence earns its place.

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

Completeness4/5

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

For a tool with one optional parameter, read-only annotations, and no output schema, the description is largely complete: it states what is returned, the access-tier limits, and the intended query phrasing. It does not define WATCH versus ARB signals in detail, but the essentials needed to call the tool are present.

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

Parameters3/5

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

The only parameter, minGap, is already fully documented in the input schema, including accepted formats and the default WATCH threshold. The description does not add additional parameter-level meaning, so the baseline score of 3 applies.

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

Purpose5/5

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

The description uses a specific verb ('Scan for') and a specific resource ('cross-platform price gaps between Kalshi and Polymarket on the same sports contract'). It lists the exact sports covered and the exact returned fields, making the tool's scope unmistakable and implicitly distinguishing it from generic siblings like scan_mispricings.

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

Usage Guidelines4/5

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

The description explicitly lists query phrases that should trigger this tool: 'where is the arbitrage', 'cross-platform price gaps', and 'Kalshi vs Polymarket mispricing'. It does not explicitly state when not to use it or name an alternative tool, but the intended use cases are clear enough for an agent to route correctly.

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

kelly_sizeKelly Position SizeA
Read-only
Inspect

Compute the optimal Kelly position size for a prediction-market contract. Given your win probability, the market price (which sets the payout), your bankroll, and a Kelly fraction (full / half / quarter / eighth), returns the dollar stake and a risk rating. Use for "how much should I stake", "what is my position size", "Kelly sizing for this trade".

ParametersJSON Schema
NameRequiredDescriptionDefault
bankrollNoTotal bankroll in dollars (e.g. 1000). Optional — omit it and the result is the % of bankroll to stake, without a dollar figure. Accepts a number or a numeric string ("1000", "$1,000").
fractionNoKelly fraction to apply. Half-Kelly is the common sharp-money default.half
marketPriceYesContract price in cents (1–99). Sets the payout ratio. Accepts 55, "55%", "55¢", "$0.55", 0.55 or American odds (+120 / -150) — all read as 55%.
winProbabilityYesYour probability the contract resolves YES, in % (0–100). Accepts 55, "55%", "55¢", "$0.55", 0.55 or American odds (+120 / -150) — all read as 55%.

TDQS

A3.9/5.0
Behavior3/5

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

The annotations declare readOnlyHint=true, so the safe, non-mutating nature is already covered. The description adds that the result is a dollar stake and a risk rating, but it does not disclose edge cases such as what happens when winProbability is below or equal to the market price, nor what the risk rating values actually mean. This leaves some behavioral ambiguity.

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

Conciseness5/5

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

The description is two sentences with no filler. It front-loads the core computation, then lists inputs and outputs, and ends with concrete query examples. Every sentence earns its place and the structure makes the tool easy to scan.

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

Completeness3/5

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

For a calculation tool with no output schema, the description does state the outputs ('dollar stake and a risk rating') and all inputs. However, it leaves the 'risk rating' undefined and does not explain behavior when no Kelly bet is warranted, which an agent would benefit from knowing before invoking the tool.

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

Parameters3/5

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

Schema description coverage is 100%, and the schema already documents each parameter, including accepted formats, defaults, and optionality. The description restates the key parameters but does not add significant new semantic meaning beyond what the schema already provides, so the baseline score of 3 is appropriate.

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

Purpose5/5

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

The description opens with a specific verb and resource: 'Compute the optimal Kelly position size for a prediction-market contract.' It clearly lists the inputs (win probability, market price, bankroll, Kelly fraction) and outputs (dollar stake and risk rating), making the tool's function unmistakable even among many sibling tools.

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

Usage Guidelines4/5

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

The description explicitly provides user-intent triggers: 'Use for "how much should I stake", "what is my position size", "Kelly sizing for this trade".' This gives clear context on when to invoke the tool. However, it does not mention when not to use it or name any alternative tool, so it falls just short of full exclusion guidance.

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

ladder_arbLadder Arb Scanner — Kalshi CFB + NFL spread/total ladders priced out of orderA
Read-only
Inspect

Scan Kalshi college football and NFL spread/total ladders for internal price inconsistencies — strikes priced out of order against each other on the same side of the same game. Returns locked arbitrage (buy the low strike, sell the high one), crossed-mid inversions with the resting orders that capture them, and wide two-sided books worth making a market in, each with both tickers, both books, gross edge in cents, volume, kickoff and tier. The full board is free, no key. Measured Sept 2026: CFB spread ladders are internally inconsistent 5.8% of the time versus 0.3% for NFL. Pro adds the exact resting orders, net-of-fee edge and quarter-Kelly size on every row. Use for "is any CFB ladder mispriced", "where can I make a market on Kalshi today", "ladder arbitrage", "Kalshi spread ladder crossed".

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax rows (default 20, max 100).
sportNocfb · nfl · both (default both).
signalNolocked · inverted · wide · all (default all).
min_edgeNoMinimum NET edge in cents (default 1). Accepts 2, "2c", "2". Accepts a number or a numeric string ("+150", "62%", "2.5").
min_volumeNoMinimum per-leg volume in dollars (default 20000). Accepts 20000, "$20,000". Accepts a number or a numeric string ("+150", "62%", "2.5").

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already cover the safety profile (readOnlyHint, openWorldHint), yet the description adds real context: free board, no key required, what the three signal classes mean, what each row contains, and that fleet/size detail is gated behind Pro. It omits rate limits, pagination behavior and data freshness beyond a single dated measurement.

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

Conciseness4/5

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

Front-loaded purpose followed by return contents, pricing/measurement context, and trigger phrases, all in a compact block. The Sept 2026 stat and the Pro upsell are slightly promotional but still informative; the trailing keyword list earns its place for retrieval.

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

Completeness4/5

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

No output schema exists, so the description carries the burden and does describe the return shape (both tickers, both books, gross edge in cents, volume, kickoff, tier). What it leaves unstated is freshness/latency of the scan and result ordering/truncation behavior for the limit parameter.

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

Parameters3/5

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

Schema description coverage is 100%, so limit/sport/signal/min_edge/min_volume are already documented in the schema. The description hints at 'net-of-fee edge' and row substance but adds no syntax or default guidance beyond what the schema supplies — baseline 3.

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

Purpose5/5

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

Specific verb + resource + mechanism: 'Scan Kalshi college football and NFL spread/total ladders for internal price inconsistencies.' It even defines the signal condition (strikes priced out of order on the same side of the same game), which separates it from generic siblings like find_arbitrage or nfl_ladder.

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

Usage Guidelines4/5

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

Provides concrete trigger phrasings ('is any CFB ladder mispriced', 'where can I make a market on Kalshi today') and states when it applies, but never names an alternative sibling (find_arbitrage, nfl_ladder, scan_mispricings) or states when NOT to use it, so routing between the several arb/edge tools is left partly to inference.

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

market_pulseMarket Pulse — MacroA
Read-only
Inspect

The US macro-health composite (0–100) and regime plus the six category scores (growth, labor, inflation, rates, liquidity, sentiment). The composite and the regime call are free without a key, always, along with 2 category scores; one email returns 4 and Pro returns all six. Use for "how is the US economy", "macro regime", "risk-on or risk-off". (NFL edges moved to the dedicated nfl_edge tool.)

ParametersJSON Schema
NameRequiredDescriptionDefault
topicNomacro = US macro-health composite (the only topic — NFL is now the nfl_edge tool).macro

TDQS

A4.5/5.0
Behavior4/5

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

Beyond the readOnly and openWorld annotations, the description discloses meaningful access-tier behavior: composite and regime are always free, but category score availability depends on the caller's key level. It does not describe the exact response structure or regime labels, but the access behavior is unusually transparent.

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

Conciseness5/5

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

The description is compact, front-loaded with the core output, and each sentence earns its place: what the tool returns, access behavior, and when to use it. There is no fluff or redundancy beyond the intentional sibling clarification.

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

Completeness5/5

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

For a tool with one optional enum parameter, no output schema, and read-only/open-world annotations, the description covers the output content, access limitations, and intended use cases. Nothing essential is missing for an agent to decide whether and how to invoke it.

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

Parameters3/5

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

Schema description coverage is 100% and the single topic parameter already carries a clear description and enum. The tool description reinforces that NFL is handled elsewhere, but adds little semantic value beyond the schema.

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

Purpose5/5

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

The description clearly identifies the tool's output: a US macro-health composite (0–100), a regime call, and six category scores. It also distinguishes itself from the nfl_edge sibling by explicitly stating that NFL edges were moved there.

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

Usage Guidelines5/5

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

It provides concrete example queries ('how is the US economy', 'macro regime', 'risk-on or risk-off') and explicitly routes NFL-related requests to the dedicated nfl_edge tool, making when-to-use and when-not-to-use clear.

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

nfl_edgeNFL Edge (model vs Kalshi)A
Read-only
Inspect

Where the PredictionMarketsPicks NFL model disagrees with live Kalshi prices — the actionable edge across every NFL market: game moneylines this week, season win-total futures, MVP, and championship (playoff / conference / Super Bowl) odds. Returns model probability, Kalshi price, edge in percentage points, and the side, biggest edges first. Pro key required. Use for "which NFL games are mispriced on Kalshi", "NFL win total edges", "NFL MVP value", "Super Bowl odds edge", "NFL prediction market picks". Pass tickers[] to check specific Kalshi markets — e.g. paste your Kalshi Pro screener watchlist (applies to the futures / mvp / championship markets, which are ticker-addressable).

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax rows (default 10).
marketNogame = this week moneyline edges; futures = season win totals; mvp = KXNFLMVP; championship = playoff/conference/Super Bowl.game
minEdgeNoMinimum absolute edge in pp to include (default 4). Ignored when tickers[] is passed. Accepts a number or a numeric string ("3", "3pp", "3%").
tickersNoOptional Kalshi ticker watchlist (up to 25) — e.g. paste the tickers from your Kalshi Pro screener or Canvas to get PMP's edge on exactly those markets. Full market or 3-segment event tickers both work. Tickers PMP doesn't model are returned as not_covered (never a fabricated edge).

TDQS

A4.7/5.0
Behavior5/5

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

Beyond the readOnlyHint/openWorldHint annotations, the description discloses the exact return fields (model probability, Kalshi price, edge in percentage points, side), sort order (biggest edges first), the Pro key requirement, and the not_covered behavior for unmodeled tickers with an explicit promise never to fabricate an edge. This is strong behavioral disclosure.

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

Conciseness5/5

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

The description is front-loaded with the core value proposition, then each sentence adds a distinct fact: return format, auth requirement, usage triggers, and ticker behavior. The natural-language query list is slightly redundant with the market enum but still earns its place by making the tool's invocation more discoverable.

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

Completeness5/5

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

For a read-only tool with four optional parameters and no output schema, the description covers outputs, sorting, authentication, market types, ticker-specific behavior, and failure semantics. No critical operational detail appears missing.

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

Parameters4/5

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

Schema description coverage is 100%, so the baseline is 3. The description adds value by explaining the tickers[] use case — pasting a Kalshi Pro screener watchlist — and noting that it applies to futures/mvp/championship markets. It also preempts a failure mode by stating that unmodeled tickers return not_covered, which is more than the schema provides.

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

Purpose5/5

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

The description clearly defines the tool as surfacing disagreements between the PMP NFL model and live Kalshi prices, listing concrete market categories: game moneylines, season win-total futures, MVP, and championship odds. This scope distinguishes it from broader siblings like scan_mispricings and prop-specific tools like nfl_prop_edge, even without naming them explicitly.

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

Usage Guidelines4/5

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

It gives explicit natural-language usage triggers ('which NFL games are mispriced on Kalshi', 'NFL win total edges', 'NFL MVP value') and a clear tickers[] workflow for checking specific Kalshi markets. It does not name sibling alternatives or state when not to use this tool in favor of another, so it stops short of a 5.

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

nfl_ladderThe Ladder — NFL strike ladders: every Kalshi strike vs the PMP distributionA
Read-only
Inspect

For every NFL contract that trades as a LADDER of strikes — game spreads (KXNFLSPREAD), season win totals (KXNFLWINS) and player props — the Kalshi price at every listed strike beside our full probability distribution, and the derived verdict: SHAPE (we disagree about the tail, not the middle), LOCATION (we think the median sits elsewhere), PRICED (under 5pp everywhere), or PARTIAL (fewer than 3 model rungs). Ranked by the widest published gap. Our number is published only between 30% and 70% where it is measured calibrated; other rungs return the market only. Free, no key. Use for "where does the model disagree with Kalshi on the Rams spread", "which win-total rung is mispriced", "is the Kyren Williams rushing disagreement about the tail or the median", "biggest ladder gaps this week".

ParametersJSON Schema
NameRequiredDescriptionDefault
kindNoVerdict filter.
teamNoTeam abbrev (SEA, LAR, JAX) — ladders involving that club.
limitNoMax ladders (default 8).
familyNoLadder family. Omit for all three.
playerNoPlayer name (partial, case-insensitive) — prop ladders only.

TDQS

A4.6/5.0
Behavior5/5

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

Even though annotations already mark this as read-only, the description adds meaningful behavioral detail: the model number is only published between 30% and 70% where calibrated, other rungs return the market only, and verdicts like PRICED and PARTIAL are defined. It also states 'Free, no key', giving the agent clear expectations about access and output semantics.

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

Conciseness4/5

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

The description is a dense single paragraph but every sentence adds useful context, from the core resource to calibration caveats to example queries. It is longer than strictly necessary and could be broken into bullets, but it remains focused and front-loaded with the most important scope information.

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

Completeness4/5

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

With no output schema, the description communicates what the agent will receive (Kalshi prices, distribution, verdict, ranking) but doesn't spell out the exact response shape. It also covers all important operational details for a read-only query tool, so it is reasonably complete for an agent ready to invoke it.

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

Parameters5/5

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

Schema coverage is 100%, so the baseline is 3, but the description adds real semantic value beyond the schema. It defines the meaning of the 'kind' values (SHAPE, LOCATION, PRICED, PARTIAL) in natural language and maps user intents to parameter combinations via the example queries. This goes beyond the simple enum descriptions in the schema.

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

Purpose5/5

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

The description names a specific resource (NFL strike ladders on Kalshi) and a specific action (compare Kalshi prices to a probability distribution, producing a verdict). It explicitly lists the covered families (spreads, season wins, player props) and distinguishes itself via the ladder/verdict concept, which sets it apart from sibling tools like nfl_edge or nfl_prop_board.

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

Usage Guidelines4/5

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

The description provides concrete example queries ('where does the model disagree with Kalshi on the Rams spread', 'which win-total rung is mispriced') that clearly signal the intended use case. It stops short of explicitly contrasting itself with sibling tools or stating when not to use it, so it doesn't earn a 5.

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

nfl_power_ratingsNFL Power Ratings (PWR)A
Read-only
Inspect

The PredictionMarketsPicks NFL power ratings — PWR for all 32 teams: points per game above an average team on a neutral field, where PWR = Off PR + Def PR + ST PR. Includes each team's rank and tier. Free, no key. Use for "best NFL teams by power rating", "NFL power rankings 2026", "is Baltimore overrated", "how good is Kansas City", "NFL team ratings".

ParametersJSON Schema
NameRequiredDescriptionDefault
teamNoOptional team abbreviation (e.g. "KC", "SF", "LAR") — returns just that team's rating + rank.
tierNoOptional: only teams in this tier — one of "Elite" (PWR ≥+7), "Contender" (≥+4), "Playoff" (≥+1), "Average" (≥−2), "Below Avg" (≥−5), "Rebuild" (<−5). A tier with no teams at current ratings returns an empty board, not an error.
limitNoMax teams to return, best rating first (default 32 = full board).

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already establish readOnlyHint=true, and the description adds useful behavioral context: it explains the PWR formula, says the result includes rank and tier, and explicitly says 'Free, no key', which informs auth expectations. It does not detail every output field, but for a simple read-only rating lookup the key behavioral facts are present.

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

Conciseness4/5

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

The description is compact and front-loads the core concept, then gives the formula and example queries. The use-case examples earn their place by helping intent matching. It is slightly dense but every sentence contributes useful information.

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

Completeness4/5

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

For a read-only, zero-required-parameter lookup tool, the description sufficiently explains what the data means, what is included, and which natural-language intents map to it. It does not have an output schema, but describing rank and tier plus the optional team/tier/limit parameters from the schema gives the agent enough to invoke and interpret results correctly.

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

Parameters3/5

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

Schema description coverage is 100%, so the parameters are already well documented with types, defaults, and constraints. The description reinforces usage patterns like team-based queries but does not add meaning beyond the schema. A baseline of 3 is appropriate because the schema does the heavy lifting.

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

Purpose4/5

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

The description clearly identifies the tool as providing NFL power ratings (PWR) for all 32 teams and defines the metric with a formula. It goes well beyond the tool name by explaining that PWR measures points per game above an average team on a neutral field, and notes that rank and tier are included. It does not explicitly compare itself to sibling tools, but the power-ratings focus is distinct enough among the listed siblings.

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

Usage Guidelines4/5

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

The description gives concrete query phrasings that should route to this tool, such as 'best NFL teams by power rating', 'is Baltimore overrated', and 'how good is Kansas City'. This gives an agent clear contextual triggers. It does not state when not to use it or name alternative tools, so it stops short of full routing guidance.

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

nfl_prop_boardNFL Prop Market Board (Kalshi vs the books vs exchanges)A
Read-only
Inspect

This week's NFL player-prop prices, venue by venue: every Kalshi prop strike with a real two-sided book, the book consensus read at that exact strike, DraftKings/FanDuel/BetRivers lines, Novig and ProphetX exchange quotes, the Kalshi-vs-consensus gap in cents, and WHERE THE BEST PRICE for each side actually is (cents per $1 of payout, Kalshi net of fee). Free, no key. Filter by team, game, player or stat. Use for "where is the best price on Puka Nacua receiving yards", "Kalshi vs DraftKings NFL props", "NFL prop prices this week", "is Kalshi cheaper than the books".

ParametersJSON Schema
NameRequiredDescriptionDefault
gameNoGame anchor away-home, e.g. "ne-sea" — rows for that game only.
teamNoTeam abbrev (SEA, NE, LAR, JAX) — rows for that club only.
limitNoMax rows (default 15).
playerNoPlayer name (partial, case-insensitive), e.g. "Nacua".
gapsOnlyNoOnly strikes where Kalshi and the consensus are 5¢+ apart (default false).
statTypeNoOptional prop type filter.

TDQS

A3.9/5.0
Behavior4/5

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

Annotations declare readOnlyHint=true and openWorldHint=true, so the safety profile is already covered. The description adds meaningful behavioral context beyond those: it specifies the temporal scope ('this week'), the requirement of a 'real two-sided book', that the consensus is read 'at that exact strike', that best-price is expressed 'cents per $1 of payout', and that Kalshi prices are 'net of fee'. It also discloses that it is 'Free, no key'. No contradiction with annotations is present.

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

Conciseness4/5

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

The description is long but information-dense: it front-loads the core value proposition, enumerates the exact output fields, then gives filter options and concrete use cases. Every sentence contributes something meaningful, and the example queries earn their place by showing an agent how to phrase intents. It could be slightly tighter by separating the field list from usage examples, but it remains effective.

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

Completeness4/5

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

Because there is no output schema, the description responsibly enumerates what the tool returns: strikes, book consensus, sportsbook lines, exchange quotes, gap in cents, and best price. It also covers filters, free access, and the key comparison intent. Minor gaps remain: it does not explain how rows are ordered, how filters combine, or what happens when no venues match a strike, but the absence of an output schema is substantially compensated by the detailed field description.

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

Parameters3/5

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

Schema description coverage is 100%, and every parameter has its own descriptive text, so the schema already carries the full burden for parameter meaning. The description merely paraphrases the filters ('Filter by team, game, player or stat') and adds no parameter-level semantics beyond what the schema provides. This matches the baseline of 3 for high schema coverage.

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

Purpose4/5

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

The description clearly identifies the tool as a weekly NFL player-prop price board comparing Kalshi, book consensus, DraftKings/FanDuel/BetRivers, Novig, and ProphetX. It states the specific information returned (strikes, gaps, best price per side), which distinguishes it from most sibling tools by focusing on cross-venue price comparison rather than modeling or player-level analysis. However, it lacks an explicit action verb like 'list' or 'compare', and does not directly contrast with the sibling nfl_prop_edge.

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

Usage Guidelines4/5

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

The description includes explicit 'Use for' guidance with concrete query examples like 'where is the best price on Puka Nacua receiving yards' and 'is Kalshi cheaper than the books'. This tells an agent when the tool is appropriate. It does not, however, state when not to use it or name alternative sibling tools for edge calculations or player outlooks, leaving some routing to inference.

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

nfl_prop_edgeNFL Player Prop Edge (model vs Kalshi)A
Read-only
Inspect

NFL player-prop edges — the PredictionMarketsPicks projection vs the Kalshi prop line for passing yards, rushing yards, receiving yards, receptions, and anytime touchdown. Every Kalshi prop is an "X or more" contract; each row returns the contract (e.g. "3+ receptions"), the call (YES / NO), our odds and the Kalshi price for the called side, the model projection, the edge, and the raw over/under inputs. Live in-season (opens NFL Week 1). Pro key required. Use for "NFL player prop edges", "best NFL props today", "passing yards over under", "receiving yards prop value".

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax rows (default 10).
minEdgeNoMin absolute edge in pp (default 5). Accepts a number or a numeric string ("3", "3pp", "3%").
propTypeNoOptional filter by prop type: pass_yds, pass_tds, rush_yds, rec_yds, receptions, anytime_td.

TDQS

A4.5/5.0
Behavior5/5

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

Beyond the read-only annotation, the description discloses important behavioral context: the tool is live in-season and opens NFL Week 1, a pro key is required, and every Kalshi prop is an 'X or more' contract. It also explains the call semantics (YES/NO) and what each returned row contains, which is especially valuable without an 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.

Conciseness5/5

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

The description is information-dense with no filler: each sentence adds a distinct fact, the core purpose is front-loaded, and the return payload, lifecycle, auth requirement, and example queries all earn their place.

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

Completeness5/5

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

With no output schema, the description compensates by explicitly listing the fields returned per row: contract, call, odds, Kalshi price, model projection, edge, and raw over/under inputs. It also covers availability timing, auth requirements, and example queries, making the tool fully usable from the description alone.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents all three parameters well. The description adds market context and enumerates prop categories, but it does not add meaning to the limit, minEdge, or propType parameters beyond what is already in the schema. Baseline 3 is appropriate.

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

Purpose5/5

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

The description clearly identifies the resource as NFL player-prop edges comparing the PredictionMarketsPicks projection against Kalshi lines, and enumerates the exact prop types covered. It distinguishes itself from sibling tools by specifying the Kalshi comparison and the row-level output fields, so an agent can select it confidently.

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

Usage Guidelines4/5

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

The description gives explicit use-case queries such as 'NFL player prop edges', 'best NFL props today', and 'passing yards over under', which tells the agent when this tool is appropriate. It does not name alternative siblings or state when not to use it, so it misses the explicit exclusion part of a 5.

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

nfl_win_probabilityNFL Win Probability CalculatorA
Read-only
Inspect

Turn an NFL point spread and game total into win probability, projected score, cover probability, and over/under probability — using the PredictionMarketsPicks scoring-margin model. Provide the spread (home-favored = negative, e.g. -6.5) and optional total, OR two team abbreviations to auto-derive the spread from the power ratings. Given two teams it also returns OUR OWN game total (model_total) and the probability the game goes over the total you passed (model_over_pct), and it credits NO home-field advantage on the nine international neutral-site games — basis names the venue when it applies. Free, no key. Use for "NFL win probability from the spread", "what does a -7 spread mean", "who wins Chiefs vs 49ers", "NFL score prediction", "what total does your model project", "is this game at a neutral site".

ParametersJSON Schema
NameRequiredDescriptionDefault
totalNoGame total (over/under points) — this is the LINE you want tested, not our projection. Defaults to the fitted league baseline (NFL_MODEL_CONSTANTS.TOTAL_BASELINE) if omitted. Our own projected total comes back as `model_total` regardless of what you pass here (teams mode only).
spreadNoPoint spread from the home team's perspective — home favored is NEGATIVE (e.g. -6.5). Provide this OR homeTeam+awayTeam.
awayTeamNoAway team — same formats as homeTeam (SF, 49ers, San Francisco 49ers). Used with homeTeam.
homeTeamNoHome team — abbrev (KC), nickname (Chiefs), full name (Kansas City Chiefs) or city (Kansas City) all work. Auto-derives the spread from PMP power ratings.

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already mark it read-only, and the description adds meaningful behavioral details: the spread sign convention, that total is the tested line rather than the projection, that model_total is returned in teams mode, no home-field advantage on nine international neutral-site games, and that no API key is required. This exceeds the annotation baseline.

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

Conciseness4/5

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

The description is dense but front-loaded: core purpose first, then input modes, then special behaviors and use cases. It is longer than strictly necessary, but every sentence adds either parameter semantics, output context, or invocation guidance.

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

Completeness5/5

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

For a read-only calculator with no output schema, the description covers all needed inputs, the outputs an agent can expect (win probability, cover probability, over/under, model_total, model_over_pct, basis), edge cases like neutral-site games, and example queries. Nothing essential is missing.

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

Parameters5/5

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

Schema coverage is 100%, and the description goes beyond it: it clarifies spread sign from home perspective, explains the total parameter is the line to test rather than the model projection, notes the league-baseline default, and lists accepted team name formats. This materially improves correct parameter usage.

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

Purpose5/5

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

The description opens with a specific verb and resource: turning an NFL point spread and game total into win probability, projected score, cover probability, and over/under probability. It names the underlying model and clearly distinguishes the tool from siblings like nfl_power_ratings by focusing on game-level probability outputs.

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

Usage Guidelines4/5

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

It gives concrete input modes (spread+total OR two team abbreviations) and a 'Use for' list with natural-language queries, so an agent knows when to invoke it. It does not explicitly contrast it with sibling tools or state when not to use it, but the use cases provide clear context.

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

perp_liquidationKalshi Perp Liquidation — where a leveraged position gets closed outA
Read-only
Inspect

Estimate where a Kalshi perp position liquidates, from Kalshi’s published risk parameters calibrated against Kalshi’s app: liquidation price and the % move to it (vs the 100÷leverage rule, which Kalshi’s maintenance margin makes far too generous — a 5x bitcoin long is about 8% from liquidation, not 20%), plus round-trip fees and expected funding over the hold. Kalshi caps leverage by size and side; the estimate says when it applied the cap. An ESTIMATE — Kalshi's app shows the exact figure once a position is open. Assets: btc, eth, sol, xrp, doge, hype, link, gold, silver, platinum, palladium. Free, no key. Use for "where does a 5x bitcoin long liquidate on Kalshi", "Kalshi gold perp 10x liquidation price", "how far can silver move before my Kalshi short is liquidated".

ParametersJSON Schema
NameRequiredDescriptionDefault
sideYesDirection. One of: long · short.
assetYesThe perp. One of: btc · eth · sol · xrp · doge · hype · link · gold · silver · platinum · palladium.
entryNoEntry price (default: the live price). Accepts a number or a numeric string ("+150", "62%", "2.5").
marginNoMargin in dollars (default 1000). Accepts a number or a numeric string ("+150", "62%", "2.5").
leverageYesLeverage, e.g. 5 or "5x". Capped at Kalshi’s maximum for the size and side.
hold_daysNoDays held, for the funding estimate (default 7).

TDQS

A4.3/5.0
Behavior5/5

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

Annotations already include readOnlyHint=true, and the description adds substantial behavioral context: it is an estimate based on Kalshi’s published risk parameters, not the app’s exact figure; it mentions leverage caps and that the estimate reports when the cap was applied; it discloses 'Free, no key' (no auth). These details go beyond the structured hints and materially set expectations for the tool's output and constraints.

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

Conciseness4/5

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

The description is front-loaded with the core purpose and then layers supporting context (estimate nature, asset list, usage examples). It is longer than the minimal two-sentence ideal but every sentence contributes: the maintenance-margin nuance prevents misinterpretation, the asset list avoids schema lookups, and the examples act as routing cues. It could be trimmed slightly, but it is not bloated.

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

Completeness4/5

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

The tool has 6 parameters and no output schema, so the description must convey what to expect. It states the outputs (liquidation price, % move, fees, funding), notes the estimate caveat, and explains the leverage cap behavior — all essential for correct invocation and interpretation. It does not specify exact output structure or error handling, but given the absence of an output schema, this is a reasonable level of completeness.

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

Parameters3/5

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

Schema coverage is 100% — every parameter (asset, side, leverage, entry, margin, hold_days) has a description in the input schema. The description does not add parameter-level detail beyond the schema; it only provides domain background (maintenance margin vs 100/leverage) that is not tied to a specific parameter. Baseline 3 is appropriate since the schema does the heavy lifting.

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

Purpose5/5

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

The description opens with 'Estimate where a Kalshi perp position liquidates', specifying a clear verb and resource. It enumerates the exact outputs (liquidation price, % move, round-trip fees, expected funding) and explicitly contrasts itself with Kalshi's app (exact figure), which distinguishes it from any sibling tool. The asset list and example queries further anchor its scope.

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

Usage Guidelines4/5

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

The description provides three concrete usage examples ('where does a 5x bitcoin long liquidate on Kalshi', etc.), which tell an agent exactly when to invoke the tool. It does not explicitly name alternative tools or state exclusion criteria, but the examples cover the typical user intent and the estimate caveat implies caution about treating results as exact. This is clear enough for routing, though not exhaustive.

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

perps_boardKalshi Perps Board — price, leverage and funding for every perpA
Read-only
Inspect

Every Kalshi perpetual future, live: price, 24h volume, open interest, Kalshi's max leverage (long and short at a $1,000 position), funding cadence, and what funding has cost a long since launch (annualized, plus the share of windows that paid nothing). Pass asset for one perp ("btc", "gold", "silver", "ETH"). Free, no key. Use for "Kalshi perps funding rate", "how much leverage on Kalshi gold perps", "list Kalshi perps", "what does holding a Kalshi BTC perp cost".

ParametersJSON Schema
NameRequiredDescriptionDefault
assetNoOne perp: symbol or name ("btc", "gold", "XAG").
limitNoMax rows (default 25).

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and openWorldHint=true, so the safety profile is covered. The description adds that it is 'Free, no key' and 'live', which are useful operational details. It does not mention rate limits or pagination, but given the read-only nature, the added context is sufficient. No contradiction with annotations.

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

Conciseness4/5

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

The description is a single sentence that front-loads the core purpose and lists the data fields, followed by a sentence about the optional parameter and a final sentence with example queries. It is longer than some, but every clause adds information (fields, usage, cost). The structure is logical: what → optionality → when to use. Slightly verbose but not wasteful.

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

Completeness4/5

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

There is no output schema, so the description must convey what the tool returns. It lists the exact data fields (price, 24h volume, open interest, max leverage, funding cadence, funding cost since launch) and explains the annualized metric. It also covers the asset filter and the free/no-key access. For a list-style tool with two optional parameters, this is complete. It doesn't describe pagination or default limit behavior beyond the schema, but that's minor.

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

Parameters4/5

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

Schema coverage is 100% for both parameters, so the baseline is 3. The description adds value by giving concrete examples for asset ('btc', 'gold', 'silver', 'ETH') and clarifying that it accepts 'symbol or name'. It also implies the optionality of asset by saying 'Pass asset for one perp', which clarifies the default behavior (all perps). This goes beyond the schema's minimal description.

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

Purpose5/5

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

The description clearly states the tool returns every Kalshi perpetual future with specific data fields (price, volume, open interest, leverage, funding). It distinguishes itself by explicitly naming the scope and the optional asset parameter, making it clear this is a board for perps, not a single-item tool. The verb is implicit but the resource and function are unambiguous.

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

Usage Guidelines5/5

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

The description provides explicit example queries ('Kalshi perps funding rate', 'how much leverage on Kalshi gold perps', etc.) that directly tell an agent when to invoke this tool. It also notes it's free and requires no key, which clarifies access conditions. While it doesn't name alternatives, the examples and scope make the intended use cases very clear.

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

player_outlookPlayer Draft OutlookA
Read-only
Inspect

A single player's 2026 fantasy outlook (standard, half-PPR or full-PPR): projected points and per-game, floor/ceiling range, boom/bust odds, consensus ADP and draft round, our positional rank, and whether the model tags him a SLEEPER or a BUST vs the market, with a one-line thesis. Free, no key. Use for "is a sleeper", " fantasy outlook 2026", "should I draft ", " projection".

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already mark the tool as read-only, and the description adds useful behavioral context: it is free, requires no API key, returns projections in multiple PPR formats, and includes a one-line thesis. It does not explain how the target player is identified given zero parameters, which is a notable omission, but the disclosed content and access model go beyond the annotations.

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

Conciseness4/5

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

The description is a dense but purposeful list of distinct output elements followed by concrete example queries. Every clause earns its place, though the colon-delimited enumeration is heavier than strictly necessary. It is front-loaded with the core result and ends with usage examples.

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

Completeness3/5

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

With no output schema, the description does a good job enumerating return fields and use cases. However, it never clarifies how the agent supplies the player in a zero-parameter call, and it does not address edge cases like invalid or ambiguous player names. For a tool with no structured inputs, this is a meaningful gap.

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

Parameters4/5

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

There are no parameters, so the schema provides no selection mechanism; the description compensates by making clear the tool is about a single player and by giving query templates with <player> placeholders. Baseline for 0 parameters is 4, and this description adds enough meaning about the implied subject.

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

Purpose4/5

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

The description states the tool produces a single player's 2026 fantasy outlook with a clear list of outputs such as projected points, floor/ceiling, ADP, and sleeper/bust status. It is distinguishable from siblings like compare_players and draft_board by its 'single player' framing, though it never explicitly names those alternatives.

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

Usage Guidelines4/5

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

The description gives explicit use cases like 'is <player> a sleeper' and '<player> fantasy outlook 2026', which tells an agent when to invoke it. It does not state exclusions or explicitly contrast with sibling tools, but the example queries are specific enough to route most relevant requests.

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

race_odds2026 Race Odds — one Senate, governor or House race with every Kalshi legA
Read-only
Inspect

Live Kalshi odds for one 2026 midterm race — Senate, governor or a competitive House district — by state name ("Kansas"), state code ("KS"), slug ("kansas-senate", "michigan-governor", "tx-34-house") or district ("TX-34"). Returns every contract leg with its price in cents, 24h volume, open interest and Kalshi link; the seat holder, their role and the structure rating; the implied probability the Democrat wins where provable; the named forecasters’ bands where we track them; and the race page URL. A state with both a Senate and a governor race returns the Senate race and lists the alternatives. Prices are never estimated. Free, no key. Use for "who wins the Kansas Senate race", "Michigan governor odds", "what is Kalshi pricing for Texas Senate", "Ossoff vs Collins market price".

ParametersJSON Schema
NameRequiredDescriptionDefault
raceYesState name or code, a race slug (kansas-senate, michigan-governor, tx-34-house), or a House district (TX-34).

TDQS

A4.6/5.0
Behavior5/5

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

With only readOnlyHint and openWorldHint annotations, the description carries the burden of behavioral disclosure and meets it fully. It explains tie-breaking between Senate and governor races, that prices are never estimated, that all Kalshi contract legs are returned, and notes limitations with 'where provable' and 'where we track them'. This goes well beyond what annotations provide.

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

Conciseness4/5

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

The description is dense but front-loaded, opening with the core purpose and accepted input formats before enumerating return contents and usage examples. Very little is wasted, though the single long list-style sentence is slightly less scannable than a more structured presentation would be.

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

Completeness5/5

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

For a one-parameter read-only tool with no output schema, the description is operationally complete: accepted inputs, returned data fields, tie-breaking behavior, pricing policy, authentication requirements, and example queries are all covered. An agent has everything needed 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.

Parameters4/5

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

The schema already provides 100% coverage for the single 'race' parameter, so the baseline is 3. The description adds concrete examples of accepted formats — state name ('Kansas'), code ('KS'), slug ('michigan-governor'), and district ('TX-34') — plus the disambiguation rule for states with multiple races, making parameter semantics clearer than the schema alone.

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

Purpose5/5

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

The description states a specific verb and resource: 'Live Kalshi odds for one 2026 midterm race' and enumerates Senate, governor, and House races. It also emphasizes 'one race,' distinguishing it from sibling tools like senate_map that cover many races at once.

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

Usage Guidelines4/5

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

The description gives concrete 'Use for' examples such as 'who wins the Kansas Senate race' and 'Michigan governor odds', making invocation triggers explicit. It does not name alternatives or state when not to use it, but the examples are sufficient for a single-race lookup tool.

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

scan_mispricingsScan MispricingsA
Read-only
Inspect

Scan Polymarket contracts for mispricings against the PMP model (a probability swarm). Returns each market where the model disagrees with the price, the direction to take, the edge in percentage points, and quarter-Kelly sizing, sorted by absolute edge. Pro key required. Use for "where is the edge today", "mispriced markets", "what should I trade".

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax rows to return (default 10).
minEdgeNoMinimum absolute edge in pp to include (default 5). Accepts a number or a numeric string ("3", "3pp", "3%").

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare readOnlyHint and openWorldHint, so the description's additional disclosure of the Pro key requirement, sorting by absolute edge, and quarter-Kelly sizing adds useful behavioral context. There is no contradiction with the annotations.

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

Conciseness5/5

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

Three short sentences front-load the purpose and output, then cover auth and use cases. There is no filler; every clause contributes useful information.

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

Completeness5/5

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

For a simple list-style read tool with two optional, fully documented parameters, the description sufficiently covers return values, ordering, auth requirements, and target use cases. No output schema exists, but the return shape is described clearly enough.

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

Parameters3/5

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

Schema description coverage is 100%, so the baseline is 3. The description reinforces that edges are in percentage points and that results are sorted by absolute edge, but it does not add substantial meaning beyond what the schema already documents for limit and minEdge.

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

Purpose4/5

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

The description opens with a specific verb ('Scan') and resource ('Polymarket contracts'), names the model ('PMP'), and enumerates the output (direction, edge, quarter-Kelly sizing, sorted by absolute edge). It doesn't explicitly contrast with siblings like edge_alerts or base_rate_gap, so it stops short of a 5.

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

Usage Guidelines4/5

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

The description gives concrete query phrasings ('where is the edge today', 'mispriced markets', 'what should I trade') and a hard prerequisite ('Pro key required'). It does not state when-not-to-use or mention alternative tools, so it earns a 4 rather than a 5.

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

senate_map2026 Senate Map — every seat, market price vs structure rating vs forecastersA
Read-only
Inspect

The whole 2026 U.S. Senate map in one call: every seat on the ballot with the seat holder and their role (incumbent, appointed, open seat), the structure rating (Toss-up / Lean / Likely / Safe), the named forecasters’ published bands where we track them, and the live Kalshi price — the implied probability the Democrat wins where the legs make that provable, otherwise the favorite contract and its price in cents. Closest race first, with a page URL per seat and the hub. Prices are never estimated: a seat Kalshi has not priced returns null. Free, no key. Use for "2026 Senate map", "which Senate seats are toss-ups", "what does the market say about Senate control race by race", "where do prediction markets disagree with Cook / Sabato".

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.6/5.0
Behavior5/5

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

Beyond readOnlyHint and openWorldHint, the description discloses key behaviors: results are sorted closest race first, prices are never estimated, unpriced seats return null, and the call requires no key. It also clarifies the price semantics (Democrat-win implied probability where provable, otherwise favorite contract in cents), which is exactly the kind of ambiguity that could otherwise cause mis-inference.

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

Conciseness4/5

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

The description is dense but information-carrying, leading with the map scope and moving through fields, ordering, and edge-case behavior before closing with query examples. It is slightly long, but nearly every clause adds distinct data an agent needs; there is no filler or tautology.

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

Completeness5/5

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

With no input schema and no output schema, the description carries the full burden, and it covers return fields (holder, role, rating, forecaster bands, price, URL, hub), ordering (closest race first), and null behavior. The examples and no-key note make the tool callable without further documentation.

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

Parameters4/5

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

The tool takes zero parameters, so there is nothing for the description to map to schema fields; the baseline for no-parameter tools is appropriate. The phrases 'in one call' and 'Free, no key' usefully signal that no arguments or authentication are needed.

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

Purpose5/5

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

The description names a specific deliverable ('2026 U.S. Senate map in one call') and enumerates its contents: each seat holder, role, structure rating, forecaster bands, Kalshi price, and per-seat URL. It is distinguishable from siblings like race_odds by being explicitly the whole-map aggregate rather than a single race or generic odds scan.

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

Usage Guidelines4/5

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

The 'Use for' section lists concrete triggers such as '2026 Senate map', 'which Senate seats are toss-ups', and 'what does the market say about Senate control race by race', giving an agent clear guidance on when to call this tool. It does not name sibling tools as alternatives or state when not to use this tool, so it stops short of a full when/when-not guide.

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

sleepers_and_bustsSleepers & BustsA
Read-only
Inspect

The biggest gaps between the PredictionMarketsPicks model and consensus ADP for 2026 (standard, half-PPR or full-PPR): SLEEPERS the model ranks well above their draft cost, and BUSTS it ranks below. Filter by position or draft round. Every sleeper and every bust is FREE — the complete list, no key, no email. Use for "fantasy sleepers 2026", "draft busts to avoid", "undervalued players", "overrated fantasy players", "late-round sleepers".

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4/5.0
Behavior4/5

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

Beyond the readOnlyHint annotation, the description adds that the complete list is free, requires no key or email, and covers standard, half-PPR, and full-PPR formats. This gives useful access and scope context, although it does not mention rate limits or output formatting.

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

Conciseness4/5

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

The main function and key differentiators are front-loaded, with the free-access note and example searches following logically. The list of five example queries is slightly repetitive but each example adds value for intent matching, so the overall structure is efficient.

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

Completeness4/5

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

For a zero-parameter, read-only list tool with no output schema, the description covers the model context, scoring formats, filter concept, access requirements, and example user intents. It is missing explicit details about the returned fields, but this is a minor gap given the tool's simplicity.

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

Parameters2/5

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

The input schema has zero properties, so the baseline is 4, but the description claims 'Filter by position or draft round' without any corresponding parameters. This is misleading: an agent following the schema cannot pass these filters, creating a contradiction between the described capability and the schema.

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

Purpose5/5

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

The description clearly states the tool identifies the biggest gaps between the PredictionMarketsPicks model and consensus ADP for 2026, differentiating sleepers and busts. It is specific about the resource and output, and the context of fantasy football and draft cost distinguishes it from sibling tools like adp_market_gaps or compare_players.

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

Usage Guidelines4/5

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

The description provides explicit example search intents—'fantasy sleepers 2026', 'draft busts to avoid', 'undervalued players'—which tells an agent when to use this tool. It does not list exclusions or name alternatives, but the use cases are clear enough for routing.

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

who_do_i_draftWho Do I Draft?A
Read-only
Inspect

Recommend the single best player to draft right now given the roster already on the user's team and their pick number, weighing positional need against the best value available (2026, any scoring format). The pick AND every alternative are free — no key, no email. Pro adds the reasoning behind each one. Prefer this mid-draft when the user asks "who should I take", "who do I draft", "what do I need". Input: roster (names on their team), pick_number, and optionally drafted (names already gone). Without drafted, the board is estimated from pick_number using consensus ADP. Returns one pick + a one-line reason.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already provide readOnlyHint=true and openWorldHint=false, and the description adds meaningful behavior beyond them: the pick/alternatives are free with no key or email, the Pro tier adds reasoning, and the board is estimated from pick_number when drafted is omitted. This sets expectations about cost, tiering, and fallback logic, which the annotations do not cover.

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

Conciseness4/5

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

The description front-loads the purpose and usage, then gives input and output details in a compact, readable format. The line about the pick/alternatives being free is useful pricing/access context, though slightly promotional. One or two sentences could be tightened, but there is no material waste.

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

Completeness4/5

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

The description covers what the tool does, the for the expected use case, the input parameters, the output shape, and the fallback when drafted is omitted. It lacks precise output schema details such as reason wording or team names, but for a simple read-only recommender it is complete enough for an agent to call correctly.

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

Parameters5/5

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

The input schema has no documented properties, so the description becomes the only semantic source for parameters. It names three inputs (roster, pick_number, drafted), explains the type of each, and describes the default behavior when drafted is omitted. This fully compensates for the schema gap and exceeds the baseline for zero-parameter schemas.

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

Purpose4/5

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

The description clearly states the tool's main action: it recommends the single best player to draft given roster and pick number, reasoning value versus positional need. It is specific and actionable, but does not explicitly differentiate from sibling tools such as best_available or draft_board, so it earns a 4 rather than a 5.

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

Usage Guidelines4/5

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

The description provides explicit trigger phrases and situational guidance, saying this should be preferred mid-draft when the user asks questions like 'who should I take' or 'who do I draft.' It lacks a clear when-not-to-use or explicit alternative mapping, but the context is sufficiently clear for selecting this tool over ambiguity.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 4 tool updates
    • Changedcommodity_edge2 fields changed
      • changedInput schema / properties / commodity / anyOf
        Previous value: -[
        -  {
        -    "type": "string"
        -  },
        -  {
        -    "enum": [
        -      "silver",
        -      "bitcoin"
        -    ],
        -    "type": "string"
        -  }
        -]New value: +[
        +  {
        +    "type": "string"
        +  },
        +  {
        +    "enum": [
        +      "silver",
        +      "bitcoin",
        +      "gold",
        +      "oil"
        +    ],
        +    "type": "string"
        +  }
        +]
      • changedInput schema / properties / commodity / description
        Previous value: -"Which commodity edge to read. One of: silver · bitcoin."New value: +"Which commodity edge to read. One of: silver · bitcoin · gold · oil."
    • Addedfifteen_min_board
    • Addedperp_liquidation
    • Addedperps_board
  2. 1 tool update
    • Changedcombo_edge1 field changed
      • changedInput schema / properties / nflGame / description
        Previous value: -"An NFL game on the live board, as \"AWAY-HOME\" (e.g. \"NE-SEA\"). Alone: lists that game's selectable legs with their ids. With legIds: prices that exact combo."New value: +"An NFL game on the live board, as \"AWAY-HOME\" (e.g. \"NYG-LAR\"). Alone: lists that game's selectable legs with their ids. With legIds: prices that exact combo."
  3. 1 tool update
    • Changednfl_win_probability1 field changed
      • changedInput schema / properties / total / description
        Previous value: -"Game total (over/under points) — this is the LINE you want tested, not our projection. Defaults to the league baseline (44) if omitted. Our own projected total comes back as `model_total` regardless of what you pass here (teams mode only)."New value: +"Game total (over/under points) — this is the LINE you want tested, not our projection. Defaults to the fitted league baseline (NFL_MODEL_CONSTANTS.TOTAL_BASELINE) if omitted. Our own projected total comes back as `model_total` regardless of what you pass here (teams mode only)."
  4. 2 tool updates
    • Addedrace_odds
    • Addedsenate_map
  5. 1 tool update
    • Changedcombo_edge1 field changed
      • addedInput schema / properties / offeredAmerican
        Added value: +{
        +  "description": "Alias for offeredOdds (the response reports the quote as offered_american, so this name is accepted on input too). American odds or a decimal multiplier, same parsing. If both are given, offeredOdds wins.",
        +  "type": "number"
        +}
  6. 1 tool update
    • Addedladder_arb
  7. 1 tool update
    • Changedbayes_update2 fields changed
      • changedInput schema / properties / evidence / description
        Previous value: -"One or more evidence items, applied in order."New value: +"One or more evidence items, applied in order. Each item needs likelihoodIfTrue and likelihoodIfFalse on the 0–100 scale, e.g. [{ \"likelihoodIfTrue\": 80, \"likelihoodIfFalse\": 20 }]. A single item may be sent as one object."
      • changedInput schema / required
        Previous value: -[
        -  "prior",
        -  "evidence"
        -]New value: +[
        +  "prior"
        +]
  8. 8 tool updates
    • Changedadp_market_gaps3 fields changed
      • removedInput schema / properties / limit
        Removed value: -{
        -  "default": 25,
        -  "description": "Max players to return, widest gap first (default 25). All 154 gaps are free.",
        -  "maximum": 400,
        -  "minimum": 1,
        -  "type": "integer"
        -}
      • removedInput schema / properties / position
        Removed value: -{
        -  "anyOf": [
        -    {
        -      "type": "string"
        -    },
        -    {
        -      "enum": [
        -        "QB",
        -        "RB",
        -        "WR",
        -        "TE",
        -        "FLEX"
        -      ],
        -      "type": "string"
        -    }
        -  ],
        -  "description": "Optional position filter (FLEX = RB/WR/TE). One of: QB · RB · WR · TE · FLEX."
        -}
      • removedInput schema / properties / scoring
        Removed value: -{
        -  "anyOf": [
        -    {
        -      "type": "string"
        -    },
        -    {
        -      "enum": [
        -        "standard",
        -        "half_ppr",
        -        "ppr"
        -      ],
        -      "type": "string"
        -    }
        -  ],
        -  "description": "Scoring format: standard, half_ppr (default), or ppr (full PPR). Overrides a platform preset. Works for Yahoo/ESPN/Sleeper defaults. One of: standard · half_ppr · ppr."
        -}
    • Changedbest_available7 fields changed
      • removedInput schema / properties / drafted
        Removed value: -{
        -  "description": "Player names already drafted (any team). Removed from the pool.",
        -  "items": {
        -    "type": "string"
        -  },
        -  "type": "array"
        -}
      • removedInput schema / properties / pick_number
        Removed value: -{
        -  "description": "The overall pick number that is on the clock.",
        -  "maximum": 400,
        -  "minimum": 1,
        -  "type": "integer"
        -}
      • removedInput schema / properties / platform
        Removed value: -{
        -  "anyOf": [
        -    {
        -      "type": "string"
        -    },
        -    {
        -      "enum": [
        -        "yahoo",
        -        "espn",
        -        "sleeper",
        -        "nfl",
        -        "cbs",
        -        "fantrax",
        -        "draftkings",
        -        "underdog"
        -      ],
        -      "type": "string"
        -    }
        -  ],
        -  "description": "League platform — applies its default scoring, size, roster + best-ball settings (overridable by explicit scoring/teams). Underdog/DraftKings are best ball. One of: yahoo · espn · sleeper · nfl · cbs · fantrax · draftkings · underdog."
        -}
      • removedInput schema / properties / roster
        Removed value: -{
        -  "description": "Player names on the USER's team — enables a bye-stack warning on the top pick (byes are shown per-player regardless).",
        -  "items": {
        -    "type": "string"
        -  },
        -  "type": "array"
        -}
      • removedInput schema / properties / scoring
        Removed value: -{
        -  "anyOf": [
        -    {
        -      "type": "string"
        -    },
        -    {
        -      "enum": [
        -        "standard",
        -        "half_ppr",
        -        "ppr"
        -      ],
        -      "type": "string"
        -    }
        -  ],
        -  "description": "Scoring format: standard, half_ppr (default), or ppr (full PPR). Overrides a platform preset. Works for Yahoo/ESPN/Sleeper defaults. One of: standard · half_ppr · ppr."
        -}
      • removedInput schema / properties / teams
        Removed value: -{
        -  "description": "League size (number of teams) for draft-round math. Overrides the platform default; falls back to 12.",
        -  "maximum": 20,
        -  "minimum": 4,
        -  "type": "integer"
        -}
      • removedInput schema / required
        Removed value: -[
        -  "pick_number"
        -]
    • Changedcompare_players4 fields changed
      • removedInput schema / properties / platform
        Removed value: -{
        -  "anyOf": [
        -    {
        -      "type": "string"
        -    },
        -    {
        -      "enum": [
        -        "yahoo",
        -        "espn",
        -        "sleeper",
        -        "nfl",
        -        "cbs",
        -        "fantrax",
        -        "draftkings",
        -        "underdog"
        -      ],
        -      "type": "string"
        -    }
        -  ],
        -  "description": "League platform — applies its default scoring, size, roster + best-ball settings (overridable by explicit scoring/teams). Underdog/DraftKings are best ball. One of: yahoo · espn · sleeper · nfl · cbs · fantrax · draftkings · underdog."
        -}
      • removedInput schema / properties / players
        Removed value: -{
        -  "anyOf": [
        -    {
        -      "items": {
        -        "type": "string"
        -      },
        -      "type": "array"
        -    },
        -    {
        -      "type": "string"
        -    },
        -    {
        -      "additionalProperties": {},
        -      "propertyNames": {
        -        "type": "string"
        -      },
        -      "type": "object"
        -    }
        -  ],
        -  "description": "2–4 player full names to compare."
        -}
      • removedInput schema / properties / scoring
        Removed value: -{
        -  "anyOf": [
        -    {
        -      "type": "string"
        -    },
        -    {
        -      "enum": [
        -        "standard",
        -        "half_ppr",
        -        "ppr"
        -      ],
        -      "type": "string"
        -    }
        -  ],
        -  "description": "Scoring format: standard, half_ppr (default), or ppr (full PPR). Overrides a platform preset. Works for Yahoo/ESPN/Sleeper defaults. One of: standard · half_ppr · ppr."
        -}
      • removedInput schema / required
        Removed value: -[
        -  "players"
        -]
    • Changeddraft_board5 fields changed
      • removedInput schema / properties / limit
        Removed value: -{
        -  "default": 50,
        -  "description": "Max players to return, best first (default 50). The full board is ~330 and all of it is free.",
        -  "maximum": 400,
        -  "minimum": 1,
        -  "type": "integer"
        -}
      • removedInput schema / properties / platform
        Removed value: -{
        -  "anyOf": [
        -    {
        -      "type": "string"
        -    },
        -    {
        -      "enum": [
        -        "yahoo",
        -        "espn",
        -        "sleeper",
        -        "nfl",
        -        "cbs",
        -        "fantrax",
        -        "draftkings",
        -        "underdog"
        -      ],
        -      "type": "string"
        -    }
        -  ],
        -  "description": "League platform — applies its default scoring, size, roster + best-ball settings (overridable by explicit scoring/teams). Underdog/DraftKings are best ball. One of: yahoo · espn · sleeper · nfl · cbs · fantrax · draftkings · underdog."
        -}
      • removedInput schema / properties / position
        Removed value: -{
        -  "anyOf": [
        -    {
        -      "type": "string"
        -    },
        -    {
        -      "enum": [
        -        "QB",
        -        "RB",
        -        "WR",
        -        "TE",
        -        "FLEX"
        -      ],
        -      "type": "string"
        -    }
        -  ],
        -  "description": "Optional position filter (FLEX = RB/WR/TE). One of: QB · RB · WR · TE · FLEX."
        -}
      • removedInput schema / properties / scoring
        Removed value: -{
        -  "anyOf": [
        -    {
        -      "type": "string"
        -    },
        -    {
        -      "enum": [
        -        "standard",
        -        "half_ppr",
        -        "ppr"
        -      ],
        -      "type": "string"
        -    }
        -  ],
        -  "description": "Scoring format: standard, half_ppr (default), or ppr (full PPR). Overrides a platform preset. Works for Yahoo/ESPN/Sleeper defaults. One of: standard · half_ppr · ppr."
        -}
      • removedInput schema / properties / teams
        Removed value: -{
        -  "description": "League size (number of teams) for draft-round math. Overrides the platform default; falls back to 12.",
        -  "maximum": 20,
        -  "minimum": 4,
        -  "type": "integer"
        -}
    • Changedexplain_player4 fields changed
      • removedInput schema / properties / platform
        Removed value: -{
        -  "anyOf": [
        -    {
        -      "type": "string"
        -    },
        -    {
        -      "enum": [
        -        "yahoo",
        -        "espn",
        -        "sleeper",
        -        "nfl",
        -        "cbs",
        -        "fantrax",
        -        "draftkings",
        -        "underdog"
        -      ],
        -      "type": "string"
        -    }
        -  ],
        -  "description": "League platform — applies its default scoring, size, roster + best-ball settings (overridable by explicit scoring/teams). Underdog/DraftKings are best ball. One of: yahoo · espn · sleeper · nfl · cbs · fantrax · draftkings · underdog."
        -}
      • removedInput schema / properties / player
        Removed value: -{
        -  "description": "Player full name (e.g. \"Bijan Robinson\", \"Jaxon Smith-Njigba\").",
        -  "type": "string"
        -}
      • removedInput schema / properties / scoring
        Removed value: -{
        -  "anyOf": [
        -    {
        -      "type": "string"
        -    },
        -    {
        -      "enum": [
        -        "standard",
        -        "half_ppr",
        -        "ppr"
        -      ],
        -      "type": "string"
        -    }
        -  ],
        -  "description": "Scoring format: standard, half_ppr (default), or ppr (full PPR). Overrides a platform preset. Works for Yahoo/ESPN/Sleeper defaults. One of: standard · half_ppr · ppr."
        -}
      • removedInput schema / required
        Removed value: -[
        -  "player"
        -]
    • Changedplayer_outlook4 fields changed
      • removedInput schema / properties / platform
        Removed value: -{
        -  "anyOf": [
        -    {
        -      "type": "string"
        -    },
        -    {
        -      "enum": [
        -        "yahoo",
        -        "espn",
        -        "sleeper",
        -        "nfl",
        -        "cbs",
        -        "fantrax",
        -        "draftkings",
        -        "underdog"
        -      ],
        -      "type": "string"
        -    }
        -  ],
        -  "description": "League platform — applies its default scoring, size, roster + best-ball settings (overridable by explicit scoring/teams). Underdog/DraftKings are best ball. One of: yahoo · espn · sleeper · nfl · cbs · fantrax · draftkings · underdog."
        -}
      • removedInput schema / properties / player
        Removed value: -{
        -  "description": "Player full name (e.g. \"Bijan Robinson\", \"Jaxon Smith-Njigba\").",
        -  "type": "string"
        -}
      • removedInput schema / properties / scoring
        Removed value: -{
        -  "anyOf": [
        -    {
        -      "type": "string"
        -    },
        -    {
        -      "enum": [
        -        "standard",
        -        "half_ppr",
        -        "ppr"
        -      ],
        -      "type": "string"
        -    }
        -  ],
        -  "description": "Scoring format: standard, half_ppr (default), or ppr (full PPR). Overrides a platform preset. Works for Yahoo/ESPN/Sleeper defaults. One of: standard · half_ppr · ppr."
        -}
      • removedInput schema / required
        Removed value: -[
        -  "player"
        -]
    • Changedsleepers_and_busts5 fields changed
      • removedInput schema / properties / platform
        Removed value: -{
        -  "anyOf": [
        -    {
        -      "type": "string"
        -    },
        -    {
        -      "enum": [
        -        "yahoo",
        -        "espn",
        -        "sleeper",
        -        "nfl",
        -        "cbs",
        -        "fantrax",
        -        "draftkings",
        -        "underdog"
        -      ],
        -      "type": "string"
        -    }
        -  ],
        -  "description": "League platform — applies its default scoring, size, roster + best-ball settings (overridable by explicit scoring/teams). Underdog/DraftKings are best ball. One of: yahoo · espn · sleeper · nfl · cbs · fantrax · draftkings · underdog."
        -}
      • removedInput schema / properties / position
        Removed value: -{
        -  "anyOf": [
        -    {
        -      "type": "string"
        -    },
        -    {
        -      "enum": [
        -        "QB",
        -        "RB",
        -        "WR",
        -        "TE"
        -      ],
        -      "type": "string"
        -    }
        -  ],
        -  "description": "Optional position filter. One of: QB · RB · WR · TE."
        -}
      • removedInput schema / properties / round
        Removed value: -{
        -  "description": "Optional draft round filter (by league size, default 12-team).",
        -  "maximum": 30,
        -  "minimum": 1,
        -  "type": "integer"
        -}
      • removedInput schema / properties / scoring
        Removed value: -{
        -  "anyOf": [
        -    {
        -      "type": "string"
        -    },
        -    {
        -      "enum": [
        -        "standard",
        -        "half_ppr",
        -        "ppr"
        -      ],
        -      "type": "string"
        -    }
        -  ],
        -  "description": "Scoring format: standard, half_ppr (default), or ppr (full PPR). Overrides a platform preset. Works for Yahoo/ESPN/Sleeper defaults. One of: standard · half_ppr · ppr."
        -}
      • removedInput schema / properties / teams
        Removed value: -{
        -  "description": "League size (number of teams) for draft-round math. Overrides the platform default; falls back to 12.",
        -  "maximum": 20,
        -  "minimum": 4,
        -  "type": "integer"
        -}
    • Changedwho_do_i_draft7 fields changed
      • removedInput schema / properties / drafted
        Removed value: -{
        -  "description": "Player names already drafted by ANY team. Optional — without it the board is estimated from pick_number using consensus ADP. Supplying it is always more accurate.",
        -  "items": {
        -    "type": "string"
        -  },
        -  "type": "array"
        -}
      • removedInput schema / properties / pick_number
        Removed value: -{
        -  "description": "The overall pick number on the clock.",
        -  "maximum": 400,
        -  "minimum": 1,
        -  "type": "integer"
        -}
      • removedInput schema / properties / platform
        Removed value: -{
        -  "anyOf": [
        -    {
        -      "type": "string"
        -    },
        -    {
        -      "enum": [
        -        "yahoo",
        -        "espn",
        -        "sleeper",
        -        "nfl",
        -        "cbs",
        -        "fantrax",
        -        "draftkings",
        -        "underdog"
        -      ],
        -      "type": "string"
        -    }
        -  ],
        -  "description": "League platform — applies its default scoring, size, roster + best-ball settings (overridable by explicit scoring/teams). Underdog/DraftKings are best ball. One of: yahoo · espn · sleeper · nfl · cbs · fantrax · draftkings · underdog."
        -}
      • removedInput schema / properties / roster
        Removed value: -{
        -  "description": "Player names already on the user's team.",
        -  "items": {
        -    "type": "string"
        -  },
        -  "type": "array"
        -}
      • removedInput schema / properties / scoring
        Removed value: -{
        -  "anyOf": [
        -    {
        -      "type": "string"
        -    },
        -    {
        -      "enum": [
        -        "standard",
        -        "half_ppr",
        -        "ppr"
        -      ],
        -      "type": "string"
        -    }
        -  ],
        -  "description": "Scoring format: standard, half_ppr (default), or ppr (full PPR). Overrides a platform preset. Works for Yahoo/ESPN/Sleeper defaults. One of: standard · half_ppr · ppr."
        -}
      • removedInput schema / properties / teams
        Removed value: -{
        -  "description": "League size (number of teams) for draft-round math. Overrides the platform default; falls back to 12.",
        -  "maximum": 20,
        -  "minimum": 4,
        -  "type": "integer"
        -}
      • removedInput schema / required
        Removed value: -[
        -  "roster",
        -  "pick_number"
        -]
  9. 1 tool update
    • Changednfl_win_probability1 field changed
      • changedInput schema / properties / total / description
        Previous value: -"Game total (over/under points). Defaults to the league baseline (44) if omitted."New value: +"Game total (over/under points) — this is the LINE you want tested, not our projection. Defaults to the league baseline (44) if omitted. Our own projected total comes back as `model_total` regardless of what you pass here (teams mode only)."
  10. 1 tool update
    • Addednfl_ladder
  11. 1 tool update
    • Changedcombo_edge5 fields changed
      • addedInput schema / properties / legIds
        Added value: +{
        +  "description": "2–6 leg ids from a previous nflGame call. We compute the correlation-aware joint for exactly these legs.",
        +  "items": {
        +    "type": "string"
        +  },
        +  "maxItems": 6,
        +  "minItems": 2,
        +  "type": "array"
        +}
      • changedInput schema / properties / legPrices / description
        Previous value: -"Each leg's YES price in cents (1–99). Used only for the theoretical assemble ceiling."New value: +"Each leg's YES price in cents (1–99). Used only for the theoretical assemble ceiling. Omit when using nflGame + legIds — we read the real prices."
      • addedInput schema / properties / nflGame
        Added value: +{
        +  "description": "An NFL game on the live board, as \"AWAY-HOME\" (e.g. \"NE-SEA\"). Alone: lists that game's selectable legs with their ids. With legIds: prices that exact combo.",
        +  "type": "string"
        +}
      • changedInput schema / properties / trueWinProbability / description
        Previous value: -"Your correlation-aware estimate of the true joint probability all legs hit, in % (0–100)."New value: +"Your correlation-aware estimate of the true joint probability all legs hit, in % (0–100). Omit when using nflGame + legIds — we compute it from the scoreline model."
      • removedInput schema / required
        Removed value: -[
        -  "legPrices",
        -  "trueWinProbability"
        -]
  12. 25 tool updates
    • First observedadp_market_gaps
    • First observedbase_rate_gap
    • First observedbayes_update
    • First observedbest_available
    • First observedcalculate_ev
    • First observedcombo_edge
    • First observedcommodity_edge
    • First observedcompare_players
    • First observedconvert_probability
    • First observeddraft_board
    • First observededge_alerts
    • First observedexplain_player
    • First observedfed_rate_odds
    • First observedfind_arbitrage
    • First observedkelly_size
    • First observedmarket_pulse
    • First observednfl_edge
    • First observednfl_power_ratings
    • First observednfl_prop_board
    • First observednfl_prop_edge
    • First observednfl_win_probability
    • First observedplayer_outlook
    • First observedscan_mispricings
    • First observedsleepers_and_busts
    • First observedwho_do_i_draft

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    A
    maintenance
    63 deterministic quant computation tools for autonomous financial agents. Options pricing, derivatives, risk metrics, portfolio optimization, statistics, crypto/DeFi, macro/FX, time value of money. 1,000 free calls/day, no signup required.
    74
    11
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    Prediction market probability oracle for AI agents. 26 tools across 500+ live markets from Kalshi and Polymarket. Cross-source arbitrage detection, structured TPF signals, Kelly Criterion sizing, agent performance tracking, and webhook alerts.
    9
    60 npm
    1
    MIT
  • A
    license
    A
    quality
    B
    maintenance
    24/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.
    16
    196 npm
    12
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    Financial intelligence for AI agents. 31 tools across 8 data sources — regime, derivatives, stablecoin flows, momentum, volatility, macro, DeFi, weather patterns, political cycles, seasonality. The context layer between your agent and a bad trade.
    31
    6 npm
    9
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.