Skip to main content
Glama

TheRundown Data MCP

Server Details

Six Product API tools require authentication; protocol metadata discovery is keyless.

If you are the author of this connector, you can claim ownership by verifying the domain or GitHub account it belongs to. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Uptime
91.4% over 44 days
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL
Repository
TheRundown/data-mcp
GitHub Stars
0
Server Listing
therundown-data

TDQS

C2.8/5.0

Scored across 85 tools

Disambiguation2/5

Many tools have overlapping purposes, including direct duplicates (v2GetBestOdds vs v2GetBestOddsByEvent), aliases (v2GetSportsbooks vs v2GetAffiliates), and parallel v1/v2 versions of the same endpoint. An agent would struggle to reliably select the right tool without memorizing the API versioning scheme.

Naming Consistency2/5

Naming mixes two distinct conventions: v1GetCamelCase/v2GetCamelCase for versioned endpoints and snake_case (capture_*, list_*, get_main_lines) for facade and streaming tools. The inconsistency makes tool discovery harder.

Tool Count1/5

85 tools is far beyond the typical 3-15 range and even exceeds the 50+ threshold for extreme mismatch. The sheer volume includes many redundant or legacy endpoints that could be consolidated.

Completeness4/5

The surface covers a wide range of read-only sports data operations: events, markets, odds, lines, stats, players, teams, futures, hedge, history, and streaming. Minor gaps exist (e.g., no explicit account/usage tool), but core data retrieval is well-covered.

Available Tools

85 tools
capture_hedge_streamCapture hedge data updatesA
Read-onlyIdempotent
Inspect

Read actual frames from the dedicated V2 hedge WebSocket for selected events and books. Requires HedgeAccess or an eligible pass; this dedicated route has its own gate. Returns server-provided calculations only; places no wagers. Capture closes after at most five seconds of observation, 50 messages or 256 KiB. No guaranteed opportunities or continuous coverage.

ParametersJSON Schema
NameRequiredDescriptionDefault
filtersYes
max_framesNo
duration_msNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
gapsNo
planNo
errorNo
usageNo
framesNo
statusNo
messageNo
event_idNo
incompleteNo
resync_ackNo
source_urlNo
started_atNo
duration_msNo
finished_atNo
retry_afterNo
stop_reasonNo
limit_reasonNo
retrieved_atNo
commands_sentNo
required_planNo
received_bytesNo
filtered_framesNo
received_framesNo
resume_completeNo
remaining_pointsNo
persistent_streamNo
snapshot_completeNo
missing_entitlementNo
monthly_remaining_pointsNo

TDQS

A3.6/5.0
Behavior5/5

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

Annotations already cover the read-only/idempotent/non-destructive safety profile, and the description adds substantial context beyond them: an auth gate requirement, a no-wager guarantee, hard capture bounds (5 seconds, 50 messages, 256 KiB), and an explicit caveat of no guaranteed opportunities or continuous coverage. This is exactly the kind of behavioral disclosure the annotations don't carry.

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?

It is front-loaded with the core action and stays dense – each sentence contributes a distinct fact (access, no-wager, limits, caveats). Slightly thick for the payload but nothing is redundant filler.

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

Completeness3/5

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

An output schema exists, so return values need not be explained, and the behavioral limits are well covered. The real gap is a fully undocumented nested parameter set that the description does nothing to clarify, leaving an agent under-informed on how to actually construct the capture request.

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

Parameters2/5

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

Schema description coverage is 0% and the schema contains a nested filters object with six sub-fields (sources, event_ids, min_percent, include_live, affiliate_ids, include_links) plus max_frames and duration_ms. The description only loosely gestures at 'selected events and books' and never explains any parameter's meaning, so it fails to compensate for the coverage gap.

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

Purpose4/5

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

States a specific verb and resource: 'Read actual frames from the dedicated V2 hedge WebSocket for selected events and books.' The word 'V2 hedge' distinguishes it from the nearby capture_v1_stream/capture_live_stream/capture_market_stream siblings, but the description never names those alternatives explicitly, so the differentiation is implicit rather than stated.

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

Usage Guidelines3/5

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

It notes the access precondition ('Requires HedgeAccess or an eligible pass; this dedicated route has its own gate') and clarifies that it places no wagers, which frames usage somewhat. However, it gives no explicit when-to-use-vs-alternatives guidance against the three sibling capture_* tools, so the agent must infer which stream to pick.

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

capture_live_streamCapture multiplexed live sports dataA
Read-onlyIdempotent
Inspect

Read actual multiplexed WebSocket markets, scores, plays, stats, live game state, futures or hedge frames. Supports scoped subscriptions and supported snapshot, resync, usage and unsubscribe controls; only plays supports durable resume. Stats needs a REST baseline. Requires each channel entitlement; priced channels also need all periods, live/player-prop access and no delay. Restricted custom plans can use REST. At most three subscriptions, five seconds of observation, 50 messages and 256 KiB; the socket then closes. No continuous feed or automatic reconnect; report incomplete snapshot/replay and gaps.

ParametersJSON Schema
NameRequiredDescriptionDefault
actionsNo
max_framesNo
duration_msNo
subscriptionsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
gapsNo
planNo
errorNo
usageNo
framesNo
statusNo
messageNo
event_idNo
incompleteNo
resync_ackNo
source_urlNo
started_atNo
duration_msNo
finished_atNo
retry_afterNo
stop_reasonNo
limit_reasonNo
retrieved_atNo
commands_sentNo
required_planNo
received_bytesNo
filtered_framesNo
received_framesNo
resume_completeNo
remaining_pointsNo
persistent_streamNo
snapshot_completeNo
missing_entitlementNo
monthly_remaining_pointsNo

TDQS

A4.1/5.0
Behavior5/5

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

Goes well beyond the annotations: hard limits (three subscriptions, five seconds, 50 messages, 256 KiB), socket closure, no continuous feed or auto-reconnect, durable resume only for plays, and the instruction to report incomplete snapshot/replay and gaps. These are exactly the operational traits an agent needs and that readOnlyHint/idempotentHint cannot 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?

Front-loaded with what is read, then constraints. Information-dense with no filler, though the middle sentences are long and run-on, which slightly hurts scannability. Every sentence carries load-bearing content.

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 complex streaming capture tool with an output schema available, the description covers the capability, entitlements, hard limits, termination behavior, and failure reporting. Return-value explanation is rightly omitted because an output schema exists. Only deep per-field subscription semantics remain thin, which is a minor gap.

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

Parameters3/5

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

Schema description coverage is 0%, so the description must carry parameter meaning. It partially does: it maps subscriptions, the action verbs (snapshot, resync, usage, unsubscribe), resume-for-plays, and the limits that correspond to max_frames (50) and duration_ms (5000). However, the many nested subscription filter fields (event_ids, market_ids, participant_ids, sequences, etc.) get no explanation, leaving a substantial gap.

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

Purpose4/5

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

States a clear verb (Read) and resource (multiplexed WebSocket markets, scores, plays, stats, live game state, futures, hedge frames), enumerating the channel surface. This distinguishes it from siblings like capture_market_stream and capture_hedge_stream, though it never explicitly names those alternatives to sharpen the boundary.

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

Usage Guidelines4/5

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

Gives concrete preconditions for use: per-channel entitlement, and for priced channels all periods, live/player-prop access and no delay. It also points to an alternative path ('Restricted custom plans can use REST') and notes stats needs a REST baseline. It stops short of naming a specific sibling tool to use instead.

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

capture_market_streamCapture live market pricesA
Read-onlyIdempotent
Inspect

Read actual V2 market-price WebSocket frames for explicit event/sport, market and affiliate filters. Requires eligible WebSocket access with all periods, live/player-prop access and no delay; restricted custom plans must use REST. Opens one socket for at most five seconds of observation, 50 messages or 256 KiB, then closes. Empty capture is not proof of no changes or no coverage.

ParametersJSON Schema
NameRequiredDescriptionDefault
filtersYes
max_framesNo
duration_msNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
gapsNo
planNo
errorNo
usageNo
framesNo
statusNo
messageNo
event_idNo
incompleteNo
resync_ackNo
source_urlNo
started_atNo
duration_msNo
finished_atNo
retry_afterNo
stop_reasonNo
limit_reasonNo
retrieved_atNo
commands_sentNo
required_planNo
received_bytesNo
filtered_framesNo
received_framesNo
resume_completeNo
remaining_pointsNo
persistent_streamNo
snapshot_completeNo
missing_entitlementNo
monthly_remaining_pointsNo

TDQS

A4.4/5.0
Behavior5/5

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

Annotations cover the safety profile (readOnly, idempotent, openWorld, non-destructive), and the description goes well beyond them: it discloses the socket lifecycle budget (5 seconds / 50 messages / 256 KiB then close) and warns that an empty capture is not proof of no changes or no coverage. That is exactly the operational context annotations cannot 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?

Four dense sentences ordered purpose → prerequisites → runtime budget → caveat, with no filler. Slightly information-dense but every sentence earns its 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?

For a read-only streaming capture tool with an existing output schema, the description supplies prerequisites, lifetime limits and interpretation caveats; return-value explanation is correctly delegated to the output schema. Nothing an agent needs to invoke it correctly is missing.

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

Parameters3/5

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

Schema description coverage is 0% with 3 params and a nested filter object holding 5 sub-keys. The description names the event/sport/market/affiliate filter dimensions and echoes the frame/duration ceilings, but leaves main_line and the exact syntax of each filter array unaddressed, so it only partially compensates for the coverage gap.

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

Purpose5/5

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

States a specific verb+resource+protocol: 'Read actual V2 market-price WebSocket frames', scoped by explicit filters. This clearly separates it from sibling capture_hedge_stream, capture_live_stream and capture_v1_stream, which cover other streams.

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

Usage Guidelines4/5

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

Gives a clear eligibility gate ('Requires eligible WebSocket access with all periods, live/player-prop access and no delay') and a when-not condition ('restricted custom plans must use REST'). It stops short of naming the specific sibling capture_* tool or REST endpoint an ineligible agent should switch to.

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

capture_v1_streamCapture legacy live linesA
Read-onlyIdempotent
Inspect

Read actual frames from the V1 WebSocket for selected events and books. Use only for legacy line contracts; prefer V2 market tools. Requires eligible WebSocket access with all periods, live/player-prop access and no delay; restricted custom plans must use REST. One bounded socket closes after at most five seconds of observation, 50 messages or 256 KiB; no ongoing background delivery.

ParametersJSON Schema
NameRequiredDescriptionDefault
filtersYes
max_framesNo
duration_msNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
gapsNo
planNo
errorNo
usageNo
framesNo
statusNo
messageNo
event_idNo
incompleteNo
resync_ackNo
source_urlNo
started_atNo
duration_msNo
finished_atNo
retry_afterNo
stop_reasonNo
limit_reasonNo
retrieved_atNo
commands_sentNo
required_planNo
received_bytesNo
filtered_framesNo
received_framesNo
resume_completeNo
remaining_pointsNo
persistent_streamNo
snapshot_completeNo
missing_entitlementNo
monthly_remaining_pointsNo

TDQS

A4.3/5.0
Behavior4/5

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

Adds substantial behavior beyond the annotations: bounded execution (one socket, closes after at most 5 seconds, 50 messages or 256 KiB) and no ongoing background delivery, which tells the agent this is a one-shot sample rather than a subscription. Auth/entitlement requirements are also disclosed. The annotations already carry the read-only/idempotent safety profile, so this is strong but not exhaustive (no error/failure-mode detail).

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 dense sentences, zero filler, with the routing constraint and access prerequisites front-loaded ahead of the execution-bound details. Every clause carries information an agent needs.

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

Completeness4/5

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

An output schema exists and the annotations cover safety, so the description's job is mostly routing, auth, and lifetime semantics — all of which are present and precise. The remaining gap is the unexplained filters object, which for a capture tool is the main selection surface.

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

Parameters2/5

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

Schema description coverage is 0% and the tool has a nested filters object with date, event_ids, sport_ids and affiliate_ids, none of which the description explains (formats, cardinality caps, mutual constraints). The '50 messages' and 'five seconds' language loosely maps to max_frames and duration_ms, but the primary required parameter is left entirely opaque.

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 (read) and resource (actual frames from the V1 WebSocket), scoped to selected events and books. It explicitly distinguishes itself from the V2 market tools and the other capture_* siblings by naming the legacy line contract it serves.

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?

Gives an explicit when-not ('use only for legacy line contracts; prefer V2 market tools') and a hard prerequisite (eligible WebSocket access with all periods, live/player-prop access, no delay), plus the fallback for restricted plans (REST). An agent can route correctly without opening any schema.

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

get_main_linesGet main linesA
Read-onlyIdempotent
Inspect

Fetch open per-affiliate main lines for one event_id. Do not call until list_events returned that exact ID, and do not treat retrieved_at as price freshness. Preserves participant identity, line value and price updated_at. Request live markets 41/42/43 explicitly; each local page is metered.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNo
limitNo
event_idYesExact event_id from list_events; never a URL.
market_idsNoCanonical market IDs. Prematch 1/2/3; live 41/42/43. Discover with list_markets.
affiliate_idsNoCanonical affiliate IDs; defaults to 19 and 23. Discover current IDs with list_affiliates.

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNo
planNo
emptyNo
errorNo
usageNo
statusNo
messageNo
event_idNo
source_urlNo
retry_afterNo
limit_reasonNo
retrieved_atNo
required_planNo
remaining_pointsNo
missing_entitlementNo
monthly_remaining_pointsNo

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already cover the safety profile (readOnly, idempotent, non-destructive), and the description adds genuinely new context: retrieved_at is not price freshness, and each local page is metered (a cost/rate constraint not visible in annotations). The 'preserves participant identity, line value and price updated_at' sentence overlaps the output schema, so it is slightly redundant rather than additive.

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

Conciseness4/5

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

Front-loaded with the core action, then the gating precondition, then caveats and cost note. Every sentence carries operational weight except the 'preserves ...' line, which restates output-schema content and could be dropped.

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

Completeness4/5

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

An output schema exists, so return values need not be explained, yet the description does so anyway (mild redundancy). For a metered, ID-gated read tool with five parameters, the description covers invocation preconditions, cost, and market selection well; only page/limit behavior is left entirely to 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 coverage is 60%, and the description reinforces the key semantic gap: market_ids defaults to prematch 1/2/3, so live data requires explicitly requesting 41/42/43, and event_id must come from list_events rather than a URL. It adds operational meaning over the schema, though it says nothing about page/limit tuning.

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 (Fetch) and resource (open per-affiliate main lines) plus the exact scope (one event_id). An agent can immediately tell this apart from the list_* discovery siblings, which enumerate rather than retrieve lines for a known event.

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?

Explicit precondition: 'Do not call until list_events returned that exact ID' names the alternative tool and the condition that gates this one. It also gives an override instruction for live markets (41/42/43), so the agent knows how to change behavior rather than relying on the prematch default.

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

list_affiliatesList affiliatesA
Read-onlyIdempotent
Inspect

List currently published affiliate IDs and names, excluding retired affiliates. Do not use a catalog row as proof of plan access or an open offer for a sport or market.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNo
planNo
emptyNo
errorNo
usageNo
statusNo
messageNo
event_idNo
source_urlNo
retry_afterNo
limit_reasonNo
retrieved_atNo
required_planNo
remaining_pointsNo
missing_entitlementNo
monthly_remaining_pointsNo

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already cover the safety profile (readOnlyHint, idempotentHint, destructiveHint=false, openWorldHint), so the description only needs to add what they don't say. It does: the result set is limited to currently published affiliates with retired entries filtered out, and it warns that a catalog row does not imply plan access or an open offer — meaningful semantic context beyond the annotations. It stops short of noting ordering, freshness, or result size.

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

Conciseness5/5

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

Two sentences, no filler. The concrete behavior (what is listed, what is excluded) is front-loaded, and the cautionary note follows only after the core purpose is established.

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, an output schema present, and annotations covering safety and idempotency, the description carries little remaining burden — and it meets it by defining scope and the correct interpretation of results. Minor omissions (ordering, pagination, or volume of affiliates) are the only reason this isn't a 5.

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 the baseline is 4 by rule; there are no parameter semantics for the description to clarify. Nothing in the description misrepresents the (empty) input contract, and it helpfully clarifies the implicit output scope instead.

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 ('List') and resource ('affiliate IDs and names') with an explicit scope qualifier: currently published, retired ones excluded. An agent can separate this from sibling catalog tools like list_sports or list_markets without opening any schema, and it even discloses which fields are returned.

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

Usage Guidelines3/5

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

The description gives an interpretation caveat ('Do not use a catalog row as proof of plan access or an open offer'), which is useful guidance about the meaning of results. However, it never says when to prefer this tool over the sibling list_* tools, nor does it name any alternative or exclusion condition for tool selection. Usage is therefore implied rather than directed.

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

list_eventsList eventsA
Read-onlyIdempotent
Inspect

Find event IDs and summaries for one sport and date. Do not use this tool for futures or as a price quote; use the returned exact event ID with get_main_lines. Defaults to open main lines for prematch markets 1/2/3 and affiliates 19/23. Each local page refetches a metered snapshot.

ParametersJSON Schema
NameRequiredDescriptionDefault
dateYesCalendar date. Without offset, the day starts at midnight UTC.
pageNo
limitNo
offsetNoDate-boundary offset in minutes; default UTC.
sport_idYes
market_idsNoCanonical market IDs. Prematch 1/2/3; live 41/42/43. Discover with list_markets.
affiliate_idsNoCanonical affiliate IDs; defaults to 19 and 23. Discover current IDs with list_affiliates.

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNo
planNo
emptyNo
errorNo
usageNo
statusNo
messageNo
event_idNo
source_urlNo
retry_afterNo
limit_reasonNo
retrieved_atNo
required_planNo
remaining_pointsNo
missing_entitlementNo
monthly_remaining_pointsNo

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent and openWorld, so the safety profile is covered. The description adds real behavioral context beyond them: default market/affiliate selections and the important note that each page refetch hits a metered snapshot, which implies request cost. It stops short of stating rate limits or pagination semantics.

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 tightly packed sentences with no filler, ordered from purpose to exclusions to defaults/behavior. The critical routing constraint is front-loaded ahead of the defaults.

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

Completeness4/5

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

With an output schema present, return format need not be explained, and annotations cover safety. The description supplies the routing and cost context an agent needs for a 7-parameter tool, though a few unmentioned parameters (page/limit/offset) are left solely to the schema.

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

Parameters3/5

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

Schema coverage is 57%, above the baseline threshold, and the schema documents date, offset, market_ids and affiliate_ids in detail. The description restates default values (1/2/3 and 19/23) already present in the schema and says nothing about page, limit, offset or sport_id, so it adds little beyond the structured fields.

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 and resource ('Find event IDs and summaries') plus its scope ('for one sport and date'), which is exactly the identity an agent needs. It also distinguishes itself from siblings by naming get_main_lines as the downstream consumer of the returned IDs.

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?

Gives explicit exclusions ('Do not use this tool for futures or as a price quote') and names the correct alternative pattern ('use the returned exact event ID with get_main_lines'). This is a clear when-to-use / when-not-to-use / what-else routing statement.

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

list_futuresList futuresA
Read-onlyIdempotent
Inspect

Read one sport's scoped futures competition page. Do not use this for dated event discovery or treat a partial page as a complete listing. Futures require an eligible Ultra plan or higher and use opaque cursor pagination.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
cursorNo
sport_idYes
market_idsNoCanonical futures market IDs; defaults to 1141. Discover with list_markets.
affiliate_idsNoCanonical affiliate IDs; defaults to 19 and 23. Discover current IDs with list_affiliates.
include_settledNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNo
planNo
emptyNo
errorNo
usageNo
statusNo
messageNo
event_idNo
source_urlNo
retry_afterNo
limit_reasonNo
retrieved_atNo
required_planNo
remaining_pointsNo
missing_entitlementNo
monthly_remaining_pointsNo

TDQS

A4.2/5.0
Behavior5/5

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

Annotations already cover readOnly/idempotent/non-destructive/openWorld, but the description adds real behavioral context beyond them: a plan-tier eligibility gate (Ultra or higher), opaque cursor pagination, and a warning that a partial page must not be treated as a full listing. These are non-obvious operational traits.

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 tight sentences, all front-loaded: scope first, then exclusions, then plan/pagination constraints. No filler, every sentence carries a distinct constraint.

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

Completeness4/5

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

With an output schema present, return values need not be explained, and the description covers scope, exclusions, plan gating, and pagination. The remaining gap is per-parameter semantics for the four undocumented parameters, which is minor but not fully closed.

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

Parameters2/5

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

Schema description coverage is only 33%; only market_ids and affiliate_ids carry inline descriptions. The description mentions cursor pagination but adds no meaning for sport_id, limit, include_settled, or the semantics of cursor values, so it fails to compensate for the coverage gap.

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 names a specific verb+resource ('read one sport's scoped futures competition page'), which is concrete and distinguishes the tool's domain from generic listing. It implicitly separates itself from dated-event tools by calling out 'dated event discovery', though it doesn't name the sibling (list_events) directly.

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

Usage Guidelines5/5

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

Explicitly states when NOT to use it ('Do not use this for dated event discovery') and adds two further caveats: partial pages are not complete listings, and futures require an eligible Ultra plan. This is concrete when/when-not guidance not derivable from the schema.

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

list_marketsList marketsA
Read-onlyIdempotent
Inspect

Discover market definitions, or available markets for one sport and date. Do not use definitions as price quotes or combine live with date-based discovery. Catalog sport/live filters use catalog metadata.

ParametersJSON Schema
NameRequiredDescriptionDefault
dateNo
liveNo
pageNo
limitNo
offsetNoDate-boundary offset in minutes; used only with date-based discovery.
sport_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNo
planNo
emptyNo
errorNo
usageNo
statusNo
messageNo
event_idNo
source_urlNo
retry_afterNo
limit_reasonNo
retrieved_atNo
required_planNo
remaining_pointsNo
missing_entitlementNo
monthly_remaining_pointsNo

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare readOnly/idempotent/openWorld safety, so the bar is lower, and the description adds two genuine behavioral constraints: definitions are not price quotes, and live cannot be combined with date-based discovery. It omits pagination behavior and response shape, and the closing 'catalog metadata' sentence is jargon that resists interpretation.

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

Conciseness4/5

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

Three compact sentences with the core capability front-loaded and constraints following. No wasted filler, but the final sentence is dense jargon-heavy shorthand that would benefit from one clarifying clause.

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

Completeness3/5

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

An output schema exists so return values need not be explained. However, with 0 required params, 17% schema coverage, and no enum for sport_id or explanation of the pagination-vs-time-offset distinction, the description leaves an agent guessing about valid inputs and mutual exclusivity of live/date.

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 only 17% across 6 params, so the description must compensate. It implies date, sport_id, and live are mutually constrained (one sport, one date, live vs. date-based), but it says nothing about page/limit/offset semantics — and 'offset' here is a minutes-based date boundary, not pagination, an ambiguity the description does not resolve.

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

Purpose4/5

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

States a specific verb ('Discover') and resource (market definitions / available markets) and distinguishes two modes: definitions vs. sport/date-scoped availability. It does not name or contrast itself against any sibling tool such as list_sports or list_events, 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?

Provides real when-not guidance: do not use definitions as price quotes, and do not combine live with date-based discovery. It also points to catalog metadata for sport/live filters. It never names an alternative tool to use instead, so it falls 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.

list_sportsList sportsA
Read-onlyIdempotent
Inspect

List current canonical sport IDs and names. Do not use a catalog row as evidence of current events, prices, or plan access.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNo
planNo
emptyNo
errorNo
usageNo
statusNo
messageNo
event_idNo
source_urlNo
retry_afterNo
limit_reasonNo
retrieved_atNo
required_planNo
remaining_pointsNo
missing_entitlementNo
monthly_remaining_pointsNo

TDQS

A4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered by structured data. The description adds that the returned IDs/names are static catalog metadata not tied to live events/prices, which is genuinely useful context beyond annotations but limited in depth.

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

Conciseness5/5

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

Two short sentences with zero waste; the primary purpose is front-loaded and the caveat follows efficiently.

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

Completeness4/5

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

With an output schema available, the description needn't explain return values. Combined with annotations and full schema coverage, it is complete enough for an agent to call this zero-arg list tool, though it could more explicitly position itself against sibling listing tools.

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

Parameters4/5

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

The tool takes zero parameters, so the baseline is 4. The description correctly implies no filtering arguments 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?

States a specific verb ('List') and resource ('current canonical sport IDs and names'), making the scope and output explicit. It is clearly distinguishable from siblings like list_events or list_markets, which cover different resources.

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

Usage Guidelines3/5

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

Provides a caution ('Do not use a catalog row as evidence of current events, prices, or plan access') that governs downstream usage, but gives no when-to-use guidance relative to alternatives such as list_events or get_main_lines.

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

v1GetAffiliatesList all sportsbooks/affiliatesB
Read-onlyIdempotent
Inspect

List all sportsbooks/affiliates Read-only Product data or price calculation. Use returned canonical IDs. Access, delay and metered usage follow your connected account; never infer coverage from an empty result. One bounded request, no background polling or automatic retry. Affiliate 27 is excluded. No wagers, account changes or guarantee of returns.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNo
planNo
emptyNo
errorNo
usageNo
statusNo
messageNo
event_idNo
source_urlNo
retry_afterNo
limit_reasonNo
retrieved_atNo
required_planNo
remaining_pointsNo
missing_entitlementNo
monthly_remaining_pointsNo

TDQS

B3.4/5.0
Behavior4/5

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

Annotations already cover the safety profile (readOnly, idempotent, openWorld, non-destructive), yet the description adds genuinely non-obvious behavior: Affiliate 27 is excluded, empty results don't imply missing coverage, and there is no polling/retry or account/wager mutation. These are real operational caveats an agent could not derive from the schema or annotations.

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?

It is compact with no obvious filler, but it is a run-on cluster of clipped fragments with a missing sentence boundary after the opening clause ("...sportsbooks/affiliates Read-only Product data..."). Content is efficient; structure is poor and hurts front-loading.

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

Completeness4/5

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

The tool is simple (one optional nested param, output schema present), so return values need no explanation, and the description covers the key caveats about exclusions and result interpretation. The remaining hole is that the `query` parameter is entirely unexplained.

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

Parameters2/5

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

Schema description coverage is 0% for a single nested `query.include` parameter whose only meaningful value is the `regions` enum. The description says nothing about how to use `query`, what `include` accepts, or whether it omits/expands fields, so it fails to compensate for the coverage gap.

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

Purpose4/5

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

The description states a specific verb and resource ("List all sportsbooks/affiliates"), so an agent knows exactly what it returns. However, it never distinguishes itself from the near-identical siblings v2GetAffiliates, list_affiliates, or v1GetSportsbooks, which is exactly the disambiguation an agent needs. Clear purpose, missing sibling differentiation.

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

Usage Guidelines3/5

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

It offers implied guidance: use the returned canonical IDs downstream, treat one request as bounded, and don't infer coverage from an empty result. But it gives no explicit when-to-use vs the v2/list_affiliates alternatives, which is the main selection question for this tool.

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

v1GetBestLineMultiGet best lines for multiple eventsA
Read-onlyIdempotent
Inspect

Get best lines for multiple events Read-only Product data or price calculation. Use returned canonical IDs. Access, delay and metered usage follow your connected account; never infer coverage from an empty result. One bounded request, no background polling or automatic retry. Affiliate 27 is excluded. No wagers, account changes or guarantee of returns.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNo
planNo
emptyNo
errorNo
usageNo
statusNo
messageNo
event_idNo
source_urlNo
retry_afterNo
limit_reasonNo
retrieved_atNo
required_planNo
remaining_pointsNo
missing_entitlementNo
monthly_remaining_pointsNo

TDQS

A3.6/5.0
Behavior4/5

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

Annotations already declare readOnly/idempotent/non-destructive/openWorld, so the bar is lower, yet the description adds real value beyond them: a bounded single request with no polling or auto-retry, metered usage tied to the connected account, affiliate 27 exclusion, and the warning that an empty result does not imply coverage.

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 purpose is front-loaded, but the body is a run-on chain of clauses with no sentence break after 'multiple events' and no grouping of access, coverage, and exclusion caveats. Every clause is relevant, but the structure makes it hard to scan.

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

Completeness4/5

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

An output schema exists so return values need not be explained, and annotations cover the safety profile; the description fills the remaining gaps (rate/usage model, retry behavior, coverage caveat, affiliate exclusion). Only the nested request shape and period parameter remain unaddressed.

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 reported at 0%, though event_ids and affiliate_ids do carry inline descriptions in the schema. The description only reinforces 'canonical IDs' and the affiliate 27 exclusion, and says nothing about the nested 'query' wrapper or the 'period' enum/default, so it only partially compensates.

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

Purpose4/5

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

States a specific verb+resource ('Get best lines') and the scope 'multiple events', which distinguishes it from the singular sibling v2GetBestLineByEvent. However the opening sentence runs directly into unrelated clauses, and it never contrasts itself with closer siblings like v2GetBestOdds or get_main_lines.

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

Usage Guidelines3/5

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

Gives scattered operational guidance ('Use returned canonical IDs', 'never infer coverage from an empty result', 'no background polling or automatic retry') but never states when to choose this over the many sibling best-line/odds tools. Usage is implied rather than routed.

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

v1GetByLineIDGet event by line IDC
Read-onlyIdempotent
Inspect

Get event by line ID Read-only Product data or price calculation. Use returned canonical IDs. Access, delay and metered usage follow your connected account; never infer coverage from an empty result. One bounded request, no background polling or automatic retry. Affiliate 27 is excluded. No wagers, account changes or guarantee of returns.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
queryNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNo
planNo
emptyNo
errorNo
usageNo
statusNo
messageNo
event_idNo
source_urlNo
retry_afterNo
limit_reasonNo
retrieved_atNo
required_planNo
remaining_pointsNo
missing_entitlementNo
monthly_remaining_pointsNo

TDQS

C2.9/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, openWorld, non-destructive, but the description adds real behavioral context beyond them: metered usage and account-dependent access/delay, a single bounded request with no polling or auto-retry, affiliate 27 exclusion, and the caveat that an empty result does not prove lack of coverage.

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 purpose is front-loaded, but the body is a run-on sequence of policy fragments ('Read-only Product data or price calculation', 'Access, delay and metered usage...') that mixes purpose, safety, and caveats without clear structure. It is compact but not cleanly organized.

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

Completeness3/5

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

An output schema exists, so return values need not be explained. However, for a nested 2-parameter tool with 0% schema description coverage and many near-identical siblings, the description omits parameter meaning and sibling differentiation, so an agent still lacks enough to invoke it confidently.

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

Parameters2/5

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

Schema description coverage is 0%, so the schema documents only types and patterns for eventId, lineId, and the 'include' enum. The description never explains what lineId is, how it differs from eventId, or what the include=all_periods option returns; 'Use returned canonical IDs' is the only faint hint and is not tied to a named parameter.

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

Purpose3/5

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

The opening phrase 'Get event by line ID' states a verb and resource, but it is essentially a restatement of the title and name rather than a richer explanation. It does not distinguish this tool from close siblings like v1GetEventByID or v2GetEventByID, leaving the agent to guess which lookup key (line ID vs event ID) selects it.

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

Usage Guidelines2/5

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

There is no explicit when-to-use or when-not-to-use guidance, and no alternative tool is named despite a dense sibling set (v1GetEventByID, get_main_lines, v1GetMoneylines). 'Use returned canonical IDs' hints at a workflow but does not tell the agent when this tool is the right call versus a sibling.

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

v1GetClosingBySportAndDateGet closing lines for a sport and dateA
Read-onlyIdempotent
Inspect

Get closing lines for a sport and date Read-only Product data or price calculation. Use returned canonical IDs. Access, delay and metered usage follow your connected account; never infer coverage from an empty result. One bounded request, no background polling or automatic retry. Affiliate 27 is excluded. No wagers, account changes or guarantee of returns.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
queryNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNo
planNo
emptyNo
errorNo
usageNo
statusNo
messageNo
event_idNo
source_urlNo
retry_afterNo
limit_reasonNo
retrieved_atNo
required_planNo
remaining_pointsNo
missing_entitlementNo
monthly_remaining_pointsNo

TDQS

A3.6/5.0
Behavior4/5

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

Annotations already declare readOnly/idempotent/openWorld/non-destructive, so the safety profile is covered. The description adds real context beyond that: metered/account-bound access, no background polling or automatic retry, one bounded request, and that empty results do not imply zero coverage. The 'no wagers, account changes' line largely restates readOnlyHint.

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?

Purpose is front-loaded, but the sentence is missing punctuation between 'date' and 'Read-only', and the remainder is a dense run-on of clauses of mixed relevance. It is not padded so much as poorly structured.

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

Completeness4/5

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

For a read-only query tool with full annotations and an output schema (so return values need no explanation), the description covers the important operational caveats: metering, no retry, exclusion, and empty-result semantics. The remaining gap is sibling differentiation (v1 vs v2 closing) and parameter-level guidance.

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 description itself contributes nothing about parameters. The reported 0% schema coverage is misleading here: the schema actually documents sportID (with enumerated common values), offset (UTC minutes), affiliate_ids (sportsbook IDs plus the sentinel behavior), and event_status inline. With that in-schema richness, baseline 3 is appropriate, but the description earns no credit.

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 first sentence states a specific verb and resource ('Get closing lines for a sport and date'), so the agent knows what the tool returns. However, it is verbatim identical to the title and does not distinguish it from near-identical siblings such as v2GetClosingBySportAndDate or v1GetOpenersBySportAndDate, so the agent cannot tell which closing-lines variant to pick.

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

Usage Guidelines3/5

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

It implies usage ('Use returned canonical IDs', 'never infer coverage from an empty result') and states an exclusion (Affiliate 27), which is genuinely useful. But it never says when to choose this v1 closing tool over the v2 sibling, an opener tool, or a moneyline tool, so the selection guidance is only implied.

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

v1GetConferencesBySportGet conferences for a sportB
Read-onlyIdempotent
Inspect

Get conferences for a sport Read-only Product data or price calculation. Use returned canonical IDs. Access, delay and metered usage follow your connected account; never infer coverage from an empty result. One bounded request, no background polling or automatic retry. Affiliate 27 is excluded. No wagers, account changes or guarantee of returns.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNo
planNo
emptyNo
errorNo
usageNo
statusNo
messageNo
event_idNo
source_urlNo
retry_afterNo
limit_reasonNo
retrieved_atNo
required_planNo
remaining_pointsNo
missing_entitlementNo
monthly_remaining_pointsNo

TDQS

B3.2/5.0
Behavior4/5

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

Annotations already cover readOnly/idempotent/openWorld/non-destructive, and the description adds real value beyond them: metered usage tied to the connected account, one bounded request with no polling or retry, affiliate 27 exclusion, and the warning not to infer coverage from an empty result.

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 key purpose is front-loaded, but the body is a dense run-on mixing operational boilerplate ('Read-only Product data or price calculation') with policy notes. It is functional but not tight.

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

Completeness4/5

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

An output schema exists so return values need no explanation, and the description covers access model, exclusions, and empty-result interpretation. The main gap is the missing v1/v2 differentiation for a single-parameter lookup tool.

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

Parameters2/5

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

Schema description coverage is reported at 0% at the top level and the description never mentions sportID or its accepted values. The nested schema does carry a common-value mapping, but the description contributes no parameter meaning of its own.

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

Purpose4/5

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

States a specific verb and resource ('Get conferences for a sport'), which is clear on its own. However, it does not distinguish itself from the sibling v2GetConferencesBySport, so an agent cannot tell which version to pick from the description alone.

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

Usage Guidelines2/5

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

There is no when-to-use guidance and no mention of the v1 vs v2 alternative despite v2GetConferencesBySport being a sibling. 'Use returned canonical IDs' is downstream consumption advice, not a selection condition.

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

v1GetDatesBySportGet available dates for a sportB
Read-onlyIdempotent
Inspect

Get available dates for a sport Read-only Product data or price calculation. Use returned canonical IDs. Access, delay and metered usage follow your connected account; never infer coverage from an empty result. One bounded request, no background polling or automatic retry. Affiliate 27 is excluded. No wagers, account changes or guarantee of returns.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
queryNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNo
planNo
emptyNo
errorNo
usageNo
statusNo
messageNo
event_idNo
source_urlNo
retry_afterNo
limit_reasonNo
retrieved_atNo
required_planNo
remaining_pointsNo
missing_entitlementNo
monthly_remaining_pointsNo

TDQS

B3/5.0
Behavior4/5

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

Annotations already establish readOnly, idempotent, openWorld and non-destructive behavior, and the description usefully layers on non-obvious traits: an empty result does not imply missing coverage, affiliate 27 is excluded, and no background polling or automatic retry should be attempted. These are genuine additions beyond the structured hints, though the opening 'Product data or price calculation' phrasing is vague.

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

Conciseness2/5

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

The content is a run-on, comma-spliced block that mixes purpose, data provenance, ID guidance, transport policy, an affiliate exclusion, and legal disclaimers without structure. Only the first clause is front-loaded; the rest is boilerplate that is hard 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?

An output schema exists, so return values need not be explained, and the safety profile is covered by annotations. What is missing is the disambiguation an agent needs in a family of ~80 tools with four near-duplicate date-lookup endpoints, plus any hint of what 'canonical IDs' feed into.

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 description adds no meaning for any parameter: the sportID, the iso8601/epoch format choice, and the UTC offset in minutes are all documented only in the schema. With reported schema description coverage at 0% (nested path/query objects), the description should have compensated for that gap and does not.

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

Purpose4/5

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

The opening clause 'Get available dates for a sport' states a specific verb and resource, so the core purpose is clear. However, it does nothing to distinguish this tool from near-identical siblings such as v2GetDatesBySportID, v2GetDatesBySportIDs, v1GetScheduleBySport, and v1GetEventsBySportAndDate, leaving the agent to guess which variant to call.

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

Usage Guidelines2/5

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

There is no explicit statement of when to use this tool versus the many sibling date/schedule endpoints. 'Use returned canonical IDs' and 'never infer coverage from an empty result' are useful operational hints but not selection guidance, and the one-bounded-request/no-retry note is about transport behavior rather than tool choice.

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

v1GetDeltaGet event deltas (V1 format)C
Read-onlyIdempotent
Inspect

Get event deltas (V1 format) Read-only Product data or price calculation. Use returned canonical IDs. Access, delay and metered usage follow your connected account; never infer coverage from an empty result. One bounded request, no background polling or automatic retry. Affiliate 27 is excluded. No wagers, account changes or guarantee of returns.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNo
planNo
emptyNo
errorNo
usageNo
statusNo
messageNo
event_idNo
source_urlNo
retry_afterNo
limit_reasonNo
retrieved_atNo
required_planNo
remaining_pointsNo
missing_entitlementNo
monthly_remaining_pointsNo

TDQS

C2.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false and idempotentHint=true, so the safety profile is covered. The description adds useful non-obvious context: 'never infer coverage from an empty result', 'One bounded request, no background polling or automatic retry', and that affiliate 27 is excluded. These go beyond the annotations but are scattered and partly redundant with the schema's affiliate_ids note.

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

Conciseness2/5

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

The text is a run-on stream of unrelated clauses with the redundant title restated up front. It is neither front-loaded with purpose nor organized; sentences like 'No wagers, account changes or guarantee of returns' are boilerplate that don't help an agent invoke the tool.

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

Completeness2/5

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

For a nested-object, 0%-coverage parameterized tool with output schema present, the description leaves the delta cursor semantics and include/sport_id filtering unexplained. It mentions bounded requests and metered usage but omits the operational facts (response shape is covered by output schema) an agent needs to call it correctly versus V2 siblings.

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

Parameters2/5

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

Schema description coverage is 0%, so the description carries the full burden for the nested query object (last_id, include, sport_id, affiliate_ids), yet it explains none of them. The one concrete constraint it does add, affiliate 27 exclusion, is already present in the schema's affiliate_ids description, so it adds no net value.

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

Purpose2/5

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

The description opens by repeating the title verbatim ('Get event deltas (V1 format)') rather than stating a specific purpose. It never explains what a 'delta' returns or how this tool differs from the many sibling delta tools (v1GetDeltaV2, v2GetDelta, v2GetMarketsDelta). An agent cannot distinguish it from its siblings from the text alone.

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

Usage Guidelines2/5

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

There is no explicit when-to-use or when-not-to-use guidance, and no alternatives are named. The phrase 'Access, delay and metered usage follow your connected account' gestures at metering but gives no routing condition between this V1 tool and V2 variants.

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

v1GetDeltaV2Get event deltas (V2 format via V1 path)C
Read-onlyIdempotent
Inspect

Get event deltas (V2 format via V1 path) Read-only Product data or price calculation. Use returned canonical IDs. Access, delay and metered usage follow your connected account; never infer coverage from an empty result. One bounded request, no background polling or automatic retry. Affiliate 27 is excluded. No wagers, account changes or guarantee of returns.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNo
planNo
emptyNo
errorNo
usageNo
statusNo
messageNo
event_idNo
source_urlNo
retry_afterNo
limit_reasonNo
retrieved_atNo
required_planNo
remaining_pointsNo
missing_entitlementNo
monthly_remaining_pointsNo

TDQS

C2.9/5.0
Behavior4/5

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

Annotations already establish read-only, idempotent, open-world, non-destructive. The description adds genuinely useful operational traits beyond them: access/delay/metered usage tied to the connected account, a single bounded request with no polling or retry, and no wagers/account changes. It doesn't state rate limits or pagination, so a 4 rather than 5.

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?

It is front-loaded with purpose and dense rather than bloated, but the sentences are fragmented and run-on ('Read-only Product data or price calculation'), mixing unrelated caveats. Some clauses (no wagers/guarantee of returns) feel like boilerplate that dilute the core delta semantics.

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

Completeness3/5

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

An output schema exists, so return values needn't be explained, and the description does cover several constraints. But for a delta/cursor tool the semantic core (what last_id means, what a delta represents) is missing, leaving the definition adequate but with a real gap an agent would need.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must carry the parameter burden, and it largely doesn't. The required query.last_id — the core cursor parameter for a delta endpoint — is never explained, and sport_id is untouched. Only the affiliate exclusion note tangentially relates to affiliate_ids, which already has its own inline documentation.

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

Purpose3/5

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

The opening phrase 'Get event deltas (V2 format via V1 path)' essentially restates the name and title, though the 'V2 format via V1 path' clause does hint at a compatibility shim. It names the resource (event deltas) but never says what a 'delta' actually is here (changed events since last_id?), and with v1GetDelta, v2GetDelta, and v2GetMarketsDelta as siblings, the agent cannot confidently distinguish them.

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

Usage Guidelines2/5

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

There is partial guidance ('Use returned canonical IDs', 'never infer coverage from an empty result'), but no when-to-use or when-not-to-use versus the sibling delta tools. 'Affiliate 27 is excluded' is a scope note, not usage direction. The agent is left to infer the alternative.

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

v1GetDivisionsBySportGet divisions for a sportB
Read-onlyIdempotent
Inspect

Get divisions for a sport Read-only Product data or price calculation. Use returned canonical IDs. Access, delay and metered usage follow your connected account; never infer coverage from an empty result. One bounded request, no background polling or automatic retry. Affiliate 27 is excluded. No wagers, account changes or guarantee of returns.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNo
planNo
emptyNo
errorNo
usageNo
statusNo
messageNo
event_idNo
source_urlNo
retry_afterNo
limit_reasonNo
retrieved_atNo
required_planNo
remaining_pointsNo
missing_entitlementNo
monthly_remaining_pointsNo

TDQS

B3.1/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, non-destructive and open-world, but the description adds real behavioral context beyond them: access/delay/metered usage follow the connected account, a single bounded request with no background polling or automatic retry, and an explicit empty-result caveat. These are genuinely useful traits an agent could not infer from 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.

Conciseness3/5

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

Purpose is front-loaded, but the remainder reads as concatenated boilerplate clauses ('No wagers, account changes or guarantee of returns') that carry little selection value for this specific tool. It is not bloated, but several clauses do not earn their place.

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

Completeness3/5

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

An output schema exists, so return values need not be explained, and the coverage/metering caveats are helpful. Still, for a single required parameter with no schema description at the top level, the description leaves parameter usage entirely to the schema.

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

Parameters2/5

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

Schema description coverage is reported at 0% for the top-level structure, and the description adds nothing about the sportID parameter or its path nesting. Only 'Use returned canonical IDs' touches the data model, and that concerns outputs rather than the input parameter.

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

Purpose4/5

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

States a specific verb and resource (get divisions for a sport), which is clear enough to act on. However, it does not distinguish itself from the sibling v2GetDivisionsBySport, so an agent cannot tell which version to pick from the description alone.

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

Usage Guidelines2/5

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

Contains scattered operational guidance ('Use returned canonical IDs', 'never infer coverage from an empty result') but no explicit when-to-use statement and no routing against the many sibling list/get tools, notably v2GetDivisionsBySport. The affiliate-27 exclusion is a constraint, not usage guidance.

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

v1GetEventByIDGet a single event with linesA
Read-onlyIdempotent
Inspect

Get a single event with lines Read-only Product data or price calculation. Use returned canonical IDs. Access, delay and metered usage follow your connected account; never infer coverage from an empty result. One bounded request, no background polling or automatic retry. Affiliate 27 is excluded. No wagers, account changes or guarantee of returns.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
queryNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNo
planNo
emptyNo
errorNo
usageNo
statusNo
messageNo
event_idNo
source_urlNo
retry_afterNo
limit_reasonNo
retrieved_atNo
required_planNo
remaining_pointsNo
missing_entitlementNo
monthly_remaining_pointsNo

TDQS

A3.5/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, openWorldHint=true, and destructiveHint=false, covering the safety profile. The description adds useful behavioral context: 'One bounded request, no background polling or automatic retry', 'Access, delay and metered usage follow your connected account', and 'Affiliate 27 is excluded'. It also warns against inferring coverage from an empty result. This goes beyond annotations, but some claims like 'Product data or price calculation' are vague. Score 4 because it adds real value but could be clearer.

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 description is a single sentence with multiple clauses, which is somewhat dense but front-loaded with the core purpose. It includes several disjointed facts (product data/price calc, canonical IDs, access/delay/metered usage, bounded request, affiliate exclusion, no wagers/account changes/guarantee). While not bloated, it lacks clear structure and reads like a list of caveats rather than a coherent guide.

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

Completeness3/5

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

Given the tool has an output schema, the description needn't explain return values. Annotations cover safety, and the description adds behavioral constraints and exclusion notes. However, it omits important context for a read operation: what 'lines' are, the format of the response, and how to interpret the data. It leaves gaps for an agent trying to understand the tool's full scope, especially with 2 parameters and nested objects.

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

Parameters3/5

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

Schema description coverage is 0%, so the description must compensate. It does not describe the 'path' or 'query' parameters beyond implying the use of event IDs. The schema itself defines 'eventId' with pattern and length constraints, and 'include' and 'affiliate_ids' are described in the schema (though coverage metric says 0%, the schema does include descriptions). The description adds no parameter-specific meaning, so baseline 3 is appropriate when schema provides some documentation, but not enough to compensate for the 0% coverage metric.

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 a specific verb and resource: 'Get a single event with lines'. This is distinct from sibling list tools like list_events and v2GetEventByID. However, it doesn't explicitly differentiate itself from v2GetEventByID, a very similar sibling; the 'v1' vs 'v2' distinction is not explained.

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

Usage Guidelines3/5

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

The description provides some context such as 'Product data or price calculation' and 'Use returned canonical IDs', but it does not explicitly state when to use this tool versus alternatives like v2GetEventByID or v1GetEventsBySportAndDate. The usage guidance is implied rather than explicit.

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

v1GetEventsBySportAndDateGet events with lines for a sport and dateB
Read-onlyIdempotent
Inspect

Get events with lines for a sport and date Read-only Product data or price calculation. Use returned canonical IDs. Access, delay and metered usage follow your connected account; never infer coverage from an empty result. One bounded request, no background polling or automatic retry. Affiliate 27 is excluded. No wagers, account changes or guarantee of returns.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
queryNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNo
planNo
emptyNo
errorNo
usageNo
statusNo
messageNo
event_idNo
source_urlNo
retry_afterNo
limit_reasonNo
retrieved_atNo
required_planNo
remaining_pointsNo
missing_entitlementNo
monthly_remaining_pointsNo

TDQS

B3.3/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint and destructiveHint=false, so the safety profile is covered. The description goes beyond that by disclosing operational traits: one bounded request, no background polling or auto-retry, metered/delayed access tied to the account, affiliate 27 exclusion, and the warning that empty results don't imply lack of coverage. These are useful beyond the structured fields.

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

Conciseness3/5

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

The core purpose is front-loaded, but the text is a run-on block that mixes purpose, product/price wording, operational limits and legal disclaimers with no separation. Several phrases ('Product data or price calculation', 'No wagers, account changes or guarantee of returns') are boilerplate that dilute the actionable content.

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

Completeness3/5

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

An output schema exists, so return values need not be explained, and annotations cover the read-only/idempotent profile. Still missing are sibling differentiation and any parameter-level guidance for a two-object nested schema, leaving gaps an agent must resolve elsewhere.

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

Parameters2/5

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

Schema description coverage is reported at 0% at the parameter level, so the description is expected to carry meaning — yet it never mentions sportID, date, offset (timezone boundary), or the include/status filters. The only parameter-adjacent statement is the exclusion of affiliate 27. It fails to compensate for the coverage gap.

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

Purpose4/5

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

The description states a specific verb and resource — get events with lines for a sport and date — which matches the title and is a clear improvement over a bare name. It does not, however, distinguish this tool from close siblings like v2GetEventsBySportAndDate, v2GetEventsByDate or v1GetScheduleBySport, leaving the agent to infer which variant to pick.

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

Usage Guidelines3/5

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

There is implied usage guidance: use the returned canonical IDs downstream, treat results as bounded, and don't infer market coverage from an empty result. But there is no explicit when-to-use-this-vs-alternative statement against the many sibling event-list tools, and the phrase 'Read-only Product data or price calculation' reads as boilerplate rather than actionable instruction.

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

v1GetMoneylinesGet moneylines for an eventA
Read-onlyIdempotent
Inspect

Get moneylines for an event Read-only Product data or price calculation. Use returned canonical IDs. Access, delay and metered usage follow your connected account; never infer coverage from an empty result. One bounded request, no background polling or automatic retry. Affiliate 27 is excluded. No wagers, account changes or guarantee of returns.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
queryNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNo
planNo
emptyNo
errorNo
usageNo
statusNo
messageNo
event_idNo
source_urlNo
retry_afterNo
limit_reasonNo
retrieved_atNo
required_planNo
remaining_pointsNo
missing_entitlementNo
monthly_remaining_pointsNo

TDQS

A3.9/5.0
Behavior5/5

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

The description adds substantial behavioral context beyond the annotations: account-dependent access/delay/metered usage, no polling or automatic retry, empty-result coverage caveat, affiliate 27 exclusion, and no wagering or account changes. These details are consistent with the read-only, idempotent, non-destructive 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 front-loaded with the core action and is reasonably dense, but it has a run-on opening without punctuation and includes some broad disclaimer language. Most sentences still earn their place by adding operational constraints.

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

Completeness3/5

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

An output schema exists and the annotations cover the safety profile, so return values and read-only behavior need not be explained. However, the nested required path.id and optional query.include remain undocumented in both schema and description, leaving a meaningful gap.

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

Parameters2/5

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

Schema description coverage is 0%, and the description does not explain the required path.id event identifier or the optional query.include parameter. It mentions 'canonical IDs' generally, but this does not compensate for the missing parameter-level semantics.

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 starts with a specific verb and resource: 'Get moneylines for an event.' This clearly distinguishes it from sibling market-type tools such as v1GetSpreads, v1GetTotals, and v1GetTeamTotals without needing to name them.

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

Usage Guidelines3/5

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

The description implies usage through 'Get moneylines for an event' and gives some operational guidance such as 'Use returned canonical IDs,' but it does not explicitly compare this tool to alternatives or state when not to use it.

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

v1GetOpenersBySportAndDateGet opening lines for a sport and dateB
Read-onlyIdempotent
Inspect

Get opening lines for a sport and date Read-only Product data or price calculation. Use returned canonical IDs. Access, delay and metered usage follow your connected account; never infer coverage from an empty result. One bounded request, no background polling or automatic retry. Affiliate 27 is excluded. No wagers, account changes or guarantee of returns.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
queryNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNo
planNo
emptyNo
errorNo
usageNo
statusNo
messageNo
event_idNo
source_urlNo
retry_afterNo
limit_reasonNo
retrieved_atNo
required_planNo
remaining_pointsNo
missing_entitlementNo
monthly_remaining_pointsNo

TDQS

B3.4/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, non-destructive, open-world behavior, so the bar is lower, yet the description adds real operational context: metered usage/delay tied to the account, a single bounded request with no polling or retry, affiliate 27 exclusion, and no wagers or account changes. These are traits an agent cannot get from 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.

Conciseness2/5

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

The text reads as concatenated fragments ('...for a sport and date Read-only Product data or price calculation.') with no front-loading or logical grouping, and the compliance boilerplate occupies more space than the tool-specific content.

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

Completeness3/5

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

An output schema exists, so return values need no explanation, and the description covers safety, coverage caveats, and the affiliate exclusion. However, it omits the primary selection question — why choose v1 openers over the v2 openers or the closing-lines sibling — leaving an agent to guess on routing.

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 schema itself documents sportID (with a full sport lookup table), offset, event_status, and affiliate_ids, so the heavy lifting is done structurally; the description contributes only the affiliate-27 exclusion. It adds nothing about date boundary handling or include/division/conference filtering, so it neither compensates for nor meaningfully extends the schema.

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

Purpose4/5

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

The first clause states a specific verb and resource ('Get opening lines for a sport and date'), which cleanly separates it from siblings like v1GetClosingBySportAndDate (closing lines) and the v2 variant. It does not explicitly call out the v1-vs-v2 distinction, so an agent must infer that from the name, but the core purpose is unambiguous.

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

Usage Guidelines3/5

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

The description implies usage context ('Use returned canonical IDs', 'never infer coverage from an empty result') but never says when to prefer this over v1GetClosingBySportAndDate or v2GetOpenersBySportAndDate. Guidance is present but implied rather than explicit routing.

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

v1GetScheduleBySportGet event schedule for a sportB
Read-onlyIdempotent
Inspect

Get event schedule for a sport Read-only Product data or price calculation. Use returned canonical IDs. Access, delay and metered usage follow your connected account; never infer coverage from an empty result. One bounded request, no background polling or automatic retry. Affiliate 27 is excluded. No wagers, account changes or guarantee of returns.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
queryNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNo
planNo
emptyNo
errorNo
usageNo
statusNo
messageNo
event_idNo
source_urlNo
retry_afterNo
limit_reasonNo
retrieved_atNo
required_planNo
remaining_pointsNo
missing_entitlementNo
monthly_remaining_pointsNo

TDQS

B3.3/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, non-destructive, open-world, so the safety profile is covered. The description goes further with genuinely useful operational context: one bounded request, no background polling or automatic retry, metered/account-scoped access, affiliate 27 excluded, and the warning that an empty result does not imply missing coverage. That is real value 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.

Conciseness3/5

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

The content is packed into an unstructured run-on string with no sentence separation, and the trailing clause 'No wagers, account changes or guarantee of returns' is generic boilerplate. The most valuable constraint (bounded request, no retry) is buried mid-string rather than front-loaded after the purpose.

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

Completeness3/5

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

An output schema exists, so return values need not be explained, and the description adequately covers the safety/operational envelope. What is missing is any guidance on the query filters that actually shape a schedule request (date window, team/division/conference narrowing, pagination behavior), leaving a nested-schema tool under-explained.

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 description never mentions sportID, date ranges, pagination cursors, or any of the nine query filters. With schema description coverage reported at 0% and a nested two-object schema (path + query), the description should have compensated for the undocumented filters (from, team_id, division_id, season_year, limit) and it does not.

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

Purpose4/5

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

The opening clause 'Get event schedule for a sport' gives a clear verb and resource, which is enough to separate it from data-point siblings like v1GetMoneylines or v1GetTeamsBySport. However it does not differentiate itself from the very close sibling v1GetEventsBySportAndDate, so an agent still has to guess which one to pick.

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

Usage Guidelines3/5

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

'Use returned canonical IDs' and 'never infer coverage from an empty result' are downstream usage hints rather than when-to-use guidance. There is no statement of when this tool is preferred over v1GetEventsBySportAndDate or the other schedule-adjacent siblings, so selection remains implied.

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

v1GetSeasonTypesList season types per sportA
Read-onlyIdempotent
Inspect

List season types per sport Read-only Product data or price calculation. Use returned canonical IDs. Access, delay and metered usage follow your connected account; never infer coverage from an empty result. One bounded request, no background polling or automatic retry. Affiliate 27 is excluded. No wagers, account changes or guarantee of returns.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNo
planNo
emptyNo
errorNo
usageNo
statusNo
messageNo
event_idNo
source_urlNo
retry_afterNo
limit_reasonNo
retrieved_atNo
required_planNo
remaining_pointsNo
missing_entitlementNo
monthly_remaining_pointsNo

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, so the safety profile is covered. The description adds genuinely new disclosure beyond that: account-dependent access, delay and metered usage, a no-retry/no-polling constraint, and an explicit affiliate exclusion (27). What it omits is any statement about result shape or scoping by sport, but the output schema covers returns.

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 purpose is front-loaded correctly, but the body is a run-on string of concatenated clauses with no sentence structure. Several clauses ("No wagers, account changes or guarantee of returns") read as generic boilerplate applicable to every tool in this server rather than earning their place here, diluting the tool-specific content.

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 tool with an output schema, the description covers the remaining agent-relevant dimensions: read-only nature, connectivity/rate-limit behavior, retry expectations, and an affiliate exclusion. The gap is sibling disambiguation (v1 vs v2 season-type endpoints) and any hint of what a "season type" denotes, which would help the agent confirm the right endpoint.

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 the baseline of 4 applies; there is no argument whose semantics could be clarified. The line "Use returned canonical IDs" is output-chaining advice rather than parameter documentation, and it is not accompanied by a parameter it applies to.

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 opening clause gives a specific verb and resource ("List season types per sport"), matching the title and telling the agent exactly what is enumerated. It does not, however, distinguish itself from close siblings such as v2GetSeasonTypes or v1GetDivisionsBySport/v1GetConferencesBySport, so an agent cannot tell from the description alone which of these to pick.

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

Usage Guidelines3/5

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

The description gives operational usage context (one bounded request, no background polling or automatic retry, do not infer coverage from an empty result) which steers invocation behavior. It never addresses when to use this tool versus a sibling like v2GetSeasonTypes, nor any prerequisite for acquiring a sport identifier, so selection guidance is only implied.

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

v1GetSportsList all sportsA
Read-onlyIdempotent
Inspect

List all sports Read-only Product data or price calculation. Use returned canonical IDs. Access, delay and metered usage follow your connected account; never infer coverage from an empty result. One bounded request, no background polling or automatic retry. Affiliate 27 is excluded. No wagers, account changes or guarantee of returns.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNo
planNo
emptyNo
errorNo
usageNo
statusNo
messageNo
event_idNo
source_urlNo
retry_afterNo
limit_reasonNo
retrieved_atNo
required_planNo
remaining_pointsNo
missing_entitlementNo
monthly_remaining_pointsNo

TDQS

A3.5/5.0
Behavior4/5

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

Annotations already declare this read-only, idempotent and non-destructive, so the safety profile is covered. The description goes well beyond that by disclosing metered/billing behavior tied to the account, access and delay variability, a no-retry/no-polling constraint, the exclusion of affiliate 27, and the important caveat that an empty result does not mean no coverage.

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?

It is compact overall, but the opening is a run-on with no punctuation ('List all sports Read-only Product data or price calculation'), jamming the purpose and a policy phrase together. Later clauses are dense and mix billing, retry policy, affiliate exclusion and result-interpretation without clear ordering.

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

Completeness4/5

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

With an output schema present and zero parameters, the description need not explain return values and doesn't. It covers the operational caveats an agent needs (metered usage, no retry, empty results not implying absence), though it omits any note on result size or how the canonical sport IDs relate to the sibling sport-scoped tools.

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

Parameters4/5

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

This is a zero-parameter tool, so the baseline is 4 and there is nothing for the description to clarify about arguments. It correctly adds no spurious parameter detail.

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

Purpose4/5

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

States a specific verb and resource ('List all sports'), so the operation itself is unambiguous. However, it offers no differentiation from the closely related siblings 'list_sports' and 'v2GetSports', leaving the agent to guess which version to call.

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

Usage Guidelines2/5

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

The description never says when to use this tool versus 'list_sports' or 'v2GetSports'. 'Use returned canonical IDs' is downstream advice for chaining calls, not selection guidance, and 'never infer coverage from an empty result' is a caveat rather than a when-to-use rule.

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

v1GetSportsbooksList all sportsbooks (alias)B
Read-onlyIdempotent
Inspect

List all sportsbooks (alias) Read-only Product data or price calculation. Use returned canonical IDs. Access, delay and metered usage follow your connected account; never infer coverage from an empty result. One bounded request, no background polling or automatic retry. Affiliate 27 is excluded. No wagers, account changes or guarantee of returns.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNo
planNo
emptyNo
errorNo
usageNo
statusNo
messageNo
event_idNo
source_urlNo
retry_afterNo
limit_reasonNo
retrieved_atNo
required_planNo
remaining_pointsNo
missing_entitlementNo
monthly_remaining_pointsNo

TDQS

B3.4/5.0
Behavior4/5

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

Annotations already declare readOnly/openWorld/idempotent/destructive, and the description adds real context beyond them: metered/access behavior tied to the connected account, a bounded single request with no polling or auto-retry, exclusion of affiliate 27, and an explicit empty-result caveat. This is substantive 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.

Conciseness3/5

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

Reasonably short but delivered as one run-on with a garbled opening clause ('Read-only Product data or price calculation') that does not earn its place. The actionable constraints are present but not cleanly front-loaded or separated.

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

Completeness4/5

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

An output schema exists so return values needn't be described, and annotations cover the safety profile; the description fills in the remaining behavioral caveats well. Its one meaningful gap is sibling routing (v1 vs v2GetSportsbooks), which the description never addresses.

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

Parameters2/5

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

Schema description coverage is 0% and the single parameter (query.include, enum 'regions') is entirely undocumented in both schema and description. The description must compensate at low coverage but says nothing about the filter, so an agent cannot learn the only usable argument from the text.

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

Purpose4/5

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

States a specific verb and resource ('List all sportsbooks'), so the agent knows what it returns. However, it never distinguishes itself from the sibling v2GetSportsbooks, and the '(alias)' tag plus the fragment 'Read-only Product data or price calculation' muddies rather than sharpens the purpose.

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

Usage Guidelines3/5

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

Gives downstream usage tips ('Use returned canonical IDs', 'never infer coverage from an empty result') that imply how to consume results, but offers no when-to-use guidance or comparison against the many alternatives, notably v1 vs v2GetSportsbooks.

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

v1GetSpreadsGet spreads for an eventB
Read-onlyIdempotent
Inspect

Get spreads for an event Read-only Product data or price calculation. Use returned canonical IDs. Access, delay and metered usage follow your connected account; never infer coverage from an empty result. One bounded request, no background polling or automatic retry. Affiliate 27 is excluded. No wagers, account changes or guarantee of returns.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
queryNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNo
planNo
emptyNo
errorNo
usageNo
statusNo
messageNo
event_idNo
source_urlNo
retry_afterNo
limit_reasonNo
retrieved_atNo
required_planNo
remaining_pointsNo
missing_entitlementNo
monthly_remaining_pointsNo

TDQS

B3.2/5.0
Behavior4/5

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

Beyond the readOnly/idempotent annotations, the description discloses substantive traits: access, delay and metered usage follow the connected account, an empty result must not be read as no coverage, requests are single bounded calls with no polling or retry, affiliate 27 is excluded, and no wagers or guarantees apply. That is real added context.

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

Conciseness4/5

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

Purpose and read-only nature are front-loaded, and the remaining caveats are terse and clause-like with little filler. Slightly run-on, but every sentence carries information.

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

Completeness3/5

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

An output schema exists, so return values need not be described, and the safety behavior is well covered. The gap is request construction: with two undocumented, nested parameters and no field guidance, an agent lacks enough to reliably form the call.

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

Parameters2/5

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

Schema description coverage is 0% and neither parameter is explained. The only clue is 'Use returned canonical IDs', which loosely justifies the required path.id string but says nothing about format/bounds or the query.include=all_periods option, leaving the schema to carry an undocumented request shape.

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 opening 'Get spreads for an event' gives a specific verb and resource, and 'spreads' implicitly distinguishes it from siblings like v1GetMoneylines and v1GetTotals. It does not, however, explicitly name those alternatives to disambiguate the market-type choice.

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

Usage Guidelines2/5

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

There is no statement of when to call this versus the many related line tools (moneylines, totals, team totals, best line). 'Use returned canonical IDs' hints at chaining but is a data-hygiene note, not usage guidance.

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

v1GetTeamsBySportGet teams for a sportB
Read-onlyIdempotent
Inspect

Get teams for a sport Read-only Product data or price calculation. Use returned canonical IDs. Access, delay and metered usage follow your connected account; never infer coverage from an empty result. One bounded request, no background polling or automatic retry. Affiliate 27 is excluded. No wagers, account changes or guarantee of returns.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNo
planNo
emptyNo
errorNo
usageNo
statusNo
messageNo
event_idNo
source_urlNo
retry_afterNo
limit_reasonNo
retrieved_atNo
required_planNo
remaining_pointsNo
missing_entitlementNo
monthly_remaining_pointsNo

TDQS

B3.4/5.0
Behavior4/5

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

Annotations already declare read-only, idempotent, open-world and non-destructive behavior, yet the description adds real operational context beyond them: metered/account-dependent access and delay, one bounded request with no background polling or automatic retry, and an exclusion for affiliate 27. These are genuinely useful traits not derivable from the structured fields.

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

Conciseness3/5

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

The leading sentence is fused into the next clause without punctuation ('Get teams for a sport Read-only Product data...'), making the front-loaded purpose hard to parse. Several trailing statements ('No wagers, account changes or guarantee of returns') read as boilerplate that dilute the core content.

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

Completeness4/5

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

With an output schema present, return values need no explanation, and the description supplies the behavioral envelope an agent needs (metering, bounded single request, affiliate exclusion, empty-result caveat). The only meaningful gap is the lack of v1-vs-v2 disambiguation.

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 (sportID) already carries a rich schema description enumerating common sport IDs, so the schema does the heavy lifting. The description adds nothing specific about the sportID format or accepted values, matching the 3 baseline for a well-documented single parameter.

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

Purpose4/5

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

States a specific verb and resource ('Get teams for a sport'), which is clearly distinct from siblings like v1GetConferencesBySport or v1GetDivisionsBySport. It does not, however, distinguish itself from the near-identical v2GetTeamsBySport, so an agent must infer the version difference.

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

Usage Guidelines2/5

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

Implies context with 'Product data or price calculation' and tells the caller to 'Use returned canonical IDs' downstream, but gives no explicit when-to-use/when-not guidance and never routes between v1 and v2 alternatives. Caveats like 'never infer coverage from an empty result' are warnings, not usage selection criteria.

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

v1GetTeamTotalsGet team totals for an eventB
Read-onlyIdempotent
Inspect

Get team totals for an event Read-only Product data or price calculation. Use returned canonical IDs. Access, delay and metered usage follow your connected account; never infer coverage from an empty result. One bounded request, no background polling or automatic retry. Affiliate 27 is excluded. No wagers, account changes or guarantee of returns.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
queryNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNo
planNo
emptyNo
errorNo
usageNo
statusNo
messageNo
event_idNo
source_urlNo
retry_afterNo
limit_reasonNo
retrieved_atNo
required_planNo
remaining_pointsNo
missing_entitlementNo
monthly_remaining_pointsNo

TDQS

B3.1/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, non-destructive, and open-world behavior, so the safety profile is covered. The description adds genuine operational context beyond that: one bounded request with no polling or auto-retry, metered/delayed access tied to the connected account, affiliate 27 excluded, and the warning that an empty result does not imply no coverage.

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 purpose is front-loaded, but the remainder reads as a run-on string of clauses joined by semicolons, mixing useful constraints with low-value disclaimers ('No wagers, account changes or guarantee of returns') and the unclear 'Product data or price calculation' fragment.

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

Completeness3/5

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

An output schema exists, so return values need not be explained, and annotations cover the safety profile. For a one-required-parameter tool this is close to adequate, but the complete absence of parameter documentation and sibling differentiation leaves the agent short of what it needs to invoke confidently.

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

Parameters2/5

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

Schema description coverage is 0% for two parameters (path.id and query.include), so the description must carry the burden. It only hints that IDs are canonical ('Use returned canonical IDs') and says nothing about the id format, the event ID requirement, or the meaning of the 'include' query option, leaving the parameters largely undocumented.

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

Purpose4/5

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

States a specific verb and resource (get team totals for an event), which is clear enough to act on. However, it offers no differentiation from close siblings such as v1GetTotals, v2GetTeamStats, or v1GetEventByID, so the agent must guess how this tool's scope differs from those.

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

Usage Guidelines2/5

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

There is no explicit when-to-use guidance and no alternatives named. The clause 'Read-only Product data or price calculation' gestures at a context but is too garbled to tell the agent which sibling to pick or when to prefer this over v1GetTotals.

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

v1GetTotalsGet totals (over/under) for an eventB
Read-onlyIdempotent
Inspect

Get totals (over/under) for an event Read-only Product data or price calculation. Use returned canonical IDs. Access, delay and metered usage follow your connected account; never infer coverage from an empty result. One bounded request, no background polling or automatic retry. Affiliate 27 is excluded. No wagers, account changes or guarantee of returns.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
queryNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNo
planNo
emptyNo
errorNo
usageNo
statusNo
messageNo
event_idNo
source_urlNo
retry_afterNo
limit_reasonNo
retrieved_atNo
required_planNo
remaining_pointsNo
missing_entitlementNo
monthly_remaining_pointsNo

TDQS

B3.4/5.0
Behavior4/5

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

Goes well beyond the annotations (which already cover readOnly/idempotent/openWorld): it discloses that affiliate 27 is excluded, that coverage follows the connected account and should not be inferred from empty results, and that it is one bounded request with no polling or automatic retry. This is meaningful operational context an agent would otherwise have to guess.

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 purpose is front-loaded, but the remainder is a run-on string of clauses with no punctuation separating them, making it harder to parse than it needs to be. Several caveats are valuable; the packaging is not.

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

Completeness4/5

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

An output schema exists, so return values need not be explained, and the annotations plus description cover safety and access semantics. The one real gap is the undocumented nested parameters, which is the only thing keeping this from being fully self-sufficient.

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

Parameters2/5

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

Schema description coverage is 0% and both parameters are nested (path.id with a pattern/length constraint, query.include with an enum). The description adds only 'use returned canonical IDs', which gestures at the ID format but does not explain the id pattern or the meaning of include=all_periods.

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

Purpose4/5

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

States a specific verb and resource ('Get totals (over/under) for an event'), which separates it from v1GetMoneylines and v1GetSpreads. It only partially distinguishes itself from the sibling v1GetTeamTotals, since neither the title nor description clarifies event-level vs team-level totals.

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

Usage Guidelines3/5

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

Usage is implied (retrieve over/under totals for a given event ID) and it notes that returned canonical IDs should be reused, but it never names an alternative tool or states when this is preferred over v1GetTeamTotals. No explicit when-not guidance beyond the affiliate-27 exclusion.

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

v2GetAffiliatesList all sportsbooks/affiliatesB
Read-onlyIdempotent
Inspect

List all sportsbooks/affiliates Returns currently published sportsbooks with IDs, names, URLs, and an integration status (healthy, unhealthy, or beta). Availability can vary by sport and market. No authentication required. Read-only Product data or price calculation. Use returned canonical IDs. Access, delay and metered usage follow your connected account; never infer coverage from an empty result. One bounded request, no background polling or automatic retry. Affiliate 27 is excluded. No wagers, account changes or guarantee of returns.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNo
planNo
emptyNo
errorNo
usageNo
statusNo
messageNo
event_idNo
source_urlNo
retry_afterNo
limit_reasonNo
retrieved_atNo
required_planNo
remaining_pointsNo
missing_entitlementNo
monthly_remaining_pointsNo

TDQS

B3.2/5.0
Behavior4/5

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

Annotations already cover readOnly/idempotent/openWorld, and the description adds real operational context beyond them: no authentication required, affiliate 27 excluded, one bounded request with no background polling or automatic retry, and metered/access behavior tied to the connected account. The 'never infer coverage from an empty result' caveat is a genuinely useful behavioral note, though the phrase 'Read-only Product data or price calculation' is confusing filler.

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?

Purpose is front-loaded, which is good, but the body is a run-on string mixing return fields, availability caveats, rate/metering notes, an exclusion, and generic disclaimers ('No wagers, account changes or guarantee of returns'). Several clauses are boilerplate that dilute the signal.

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

Completeness4/5

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

An output schema exists, so return values need no explanation, and the description still names the key returned fields plus the no-auth and exclusion facts. The one real gap is the undocumented query.include parameter, but overall an agent has enough to call it correctly.

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

Parameters2/5

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

Schema description coverage is 0% and the single nested parameter (query.include with the 'regions' enum) is never mentioned in the description, so it provides no compensating meaning. An agent must rely entirely on the schema to discover that region data can be requested.

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

Purpose4/5

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

States a specific verb+resource ('List all sportsbooks/affiliates') and enumerates what comes back (IDs, names, URLs, integration status). However, it never distinguishes itself from the very similar siblings list_affiliates, v1GetAffiliates, and v2GetSportsbooks, so an agent cannot tell which one to pick from the description alone.

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

Usage Guidelines2/5

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

Offers fragments of usage context ('Use returned canonical IDs', 'Availability can vary by sport and market') but never says when this tool should be chosen over list_affiliates, v1GetAffiliates, or v2GetSportsbooks, nor states any preconditions. No when-not guidance at all.

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

v2GetAllMarketsList all market definitionsA
Read-onlyIdempotent
Inspect

List all market definitions Returns all canonical market definitions with IDs, names, period info, and whether the line value represents a participant. Read-only Product data or price calculation. Use returned canonical IDs. Access, delay and metered usage follow your connected account; never infer coverage from an empty result. One bounded request, no background polling or automatic retry. Affiliate 27 is excluded. No wagers, account changes or guarantee of returns.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNo
planNo
emptyNo
errorNo
usageNo
statusNo
messageNo
event_idNo
source_urlNo
retry_afterNo
limit_reasonNo
retrieved_atNo
required_planNo
remaining_pointsNo
missing_entitlementNo
monthly_remaining_pointsNo

TDQS

A3.9/5.0
Behavior5/5

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

Annotations cover the safety profile (readOnly/idempotent/non-destructive/openWorld), and the description adds real context on top: metered, delayed usage tied to the connected account, a single bounded request with no polling or auto-retry, affiliate 27 excluded, and the warning not to infer coverage from an empty result. That is materially more than the structured fields provide.

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 definition crams many clauses into a near run-on with missing punctuation ('...market definitions Returns all...'), mixing purpose, caveats, and disclaimers. It is front-loaded with the purpose, which helps, but several sentences (e.g. the wager/returns disclaimer) add limited value.

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

Completeness4/5

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

Because an output schema exists the description needn't explain return values, and annotations carry the safety profile, so the remaining needs are scope and operational caveats — which the description supplies (metering, retry, affiliate exclusion, empty-result caution). It is close to complete, with sibling differentiation the only notable gap.

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

Parameters4/5

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

The tool takes zero parameters, so there is no syntax to document and the baseline is 4. The listed output fields are redundant with the existing output schema rather than adding new parameter meaning.

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

Purpose4/5

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

States a specific verb and resource ('List all market definitions') and enumerates the returned fields (IDs, names, period info, participant flag). It does not, however, differentiate itself from overlapping siblings such as list_markets, v2GetMarketsByDate or v2GetAvailableMarketsByEvent, so an agent cannot tell from the text alone when this unfiltered variant is the right pick.

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

Usage Guidelines3/5

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

'Use returned canonical IDs' and 'Read-only Product data or price calculation' imply a usage context, and the empty-result caveat is useful. But there is no explicit when-to-use/when-not guidance and no named alternative, so routing versus the many list_/v2GetMarkets* siblings is left to inference.

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

v2GetAllStatsList all stat definitionsB
Read-onlyIdempotent
Inspect

List all stat definitions Read-only Product data or price calculation. Use returned canonical IDs. Access, delay and metered usage follow your connected account; never infer coverage from an empty result. One bounded request, no background polling or automatic retry. Affiliate 27 is excluded. No wagers, account changes or guarantee of returns.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNo
planNo
emptyNo
errorNo
usageNo
statusNo
messageNo
event_idNo
source_urlNo
retry_afterNo
limit_reasonNo
retrieved_atNo
required_planNo
remaining_pointsNo
missing_entitlementNo
monthly_remaining_pointsNo

TDQS

B3.2/5.0
Behavior4/5

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

Annotations already cover read-only, idempotent, non-destructive and open-world traits, but the description adds genuinely new context: a single bounded request with no background polling or automatic retry, account-dependent access/delay/metered usage, affiliate 27 exclusion, and the warning not to infer coverage from an empty result. That empty-result caveat is especially valuable for an agent interpreting output.

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

Conciseness2/5

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

The text reads as concatenated fragments from multiple fields — 'List all stat definitions Read-only Product data or price calculation.' lacks punctuation and cohesion, and the trailing 'No wagers, account changes or guarantee of returns' is a boilerplate disclaimer. Purpose is front-loaded, but structure is poor.

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

Completeness3/5

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

An output schema exists, so return values need not be described, and annotations cover the safety profile. The operational caveats add real value, but the missing filter semantics and absent sibling routing leave gaps for a list tool sitting among ~80 related endpoints.

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 tool takes a query object with id and sport_id filters, but the description says nothing about filtering by stat ID or sport ID. With reported schema description coverage at 0% (top-level), the description was expected to compensate and does not, leaving parameter meaning entirely to the schema.

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

Purpose4/5

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

The lead sentence 'List all stat definitions' gives a specific verb and resource, and the title reinforces it. It is implicitly distinguishable from data-oriented siblings like v2GetStatsByEvent or v2GetTeamStats, since this returns definitions rather than stat values, though it never explicitly draws that contrast.

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

Usage Guidelines3/5

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

The phrase 'Use returned canonical IDs' implies this is a discovery step feeding downstream stat queries, which is useful. However, there is no explicit statement of when to call this versus the many v2GetStats* siblings, nor any exclusion guidance.

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

v2GetAvailableMarketsByEventGet available markets for an eventA
Read-onlyIdempotent
Inspect

Get available markets for an event Returns the list of market definitions available for this event (not prices — use the event endpoint with market_ids for prices). Read-only Product data or price calculation. Use returned canonical IDs. Access, delay and metered usage follow your connected account; never infer coverage from an empty result. One bounded request, no background polling or automatic retry. Affiliate 27 is excluded. No wagers, account changes or guarantee of returns.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
queryNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNo
planNo
emptyNo
errorNo
usageNo
statusNo
messageNo
event_idNo
source_urlNo
retry_afterNo
limit_reasonNo
retrieved_atNo
required_planNo
remaining_pointsNo
missing_entitlementNo
monthly_remaining_pointsNo

TDQS

A4.3/5.0
Behavior5/5

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

Annotations already declare read-only, idempotent, non-destructive, open-world, but the description adds material context they cannot carry: Affiliate 27 exclusion, account-dependent access/delay/metered usage, single bounded request with no polling or automatic retry, and the explicit 'no wagers or account changes' guarantee.

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

Conciseness4/5

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

The operative content (what it returns, what it is not, canonical IDs, empty-result caveat) is front-loaded and dense. The trailing compliance sentence ('No wagers, account changes or guarantee of returns') reads as boilerplate that dilutes rather than informs, costing a point.

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

Completeness4/5

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

An output schema exists, so return-shape explanation is rightly omitted. The description covers the key behavioral caveats (empty results, affiliate exclusion, no retry) for a nested-object, single-required-param tool; only parameter-level filtering detail is thin.

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

Parameters3/5

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

With schema description coverage reported at 0%, the description should compensate more than it does; it only touches parameters indirectly via 'Use returned canonical IDs' for eventID. It adds no guidance on participant_ids/participant_type filtering semantics, and notably does not resolve the schema's internal conflict (max 99 vs max 50).

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 and resource ('Get available markets for an event') and immediately delimits scope by ruling out prices ('not prices — use the event endpoint with market_ids for prices'). An agent can distinguish this from the many price/market-listing siblings without opening a schema.

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

Usage Guidelines4/5

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

Gives clear when-to-use context (fetch market definitions per event) and an explicit when-not (prices belong to the event endpoint with market_ids). It also warns not to infer coverage from an empty result and to use returned canonical IDs. It does not name a concrete sibling tool, but the routing condition is unambiguous.

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

v2GetBestLineByEventGet best available line for an eventA
Read-onlyIdempotent
Inspect

Get best available line for an event Returns the best moneyline, spread, and total across all sportsbooks. Read-only Product data or price calculation. Use returned canonical IDs. Access, delay and metered usage follow your connected account; never infer coverage from an empty result. One bounded request, no background polling or automatic retry. Affiliate 27 is excluded. No wagers, account changes or guarantee of returns.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
queryNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNo
planNo
emptyNo
errorNo
usageNo
statusNo
messageNo
event_idNo
source_urlNo
retry_afterNo
limit_reasonNo
retrieved_atNo
required_planNo
remaining_pointsNo
missing_entitlementNo
monthly_remaining_pointsNo

TDQS

A3.6/5.0
Behavior4/5

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

Annotations already declare read-only, idempotent, open-world, non-destructive, so the safety profile is covered. The description nonetheless adds non-obvious behavior: affiliate 27 is excluded, usage is metered against the connected account, there is no background polling/retry, and an empty result does not imply lack of coverage. Only the trailing 'no wagers, account changes' clause is largely redundant with readOnlyHint.

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 purpose is front-loaded, but the opening sentence runs the title straight into the body without punctuation and the remainder is a chain of clipped fragments. It is compact but reads as machine-assembled rather than deliberately structured.

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

Completeness4/5

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

With an output schema present, return values need no explanation. The description covers the key operational caveats (metered access, no polling, affiliate exclusion, empty-result semantics) for a read-only price lookup. It stops short of routing guidance among the many sibling best-line tools, which is the remaining gap.

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

Parameters3/5

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

Top-level schema description coverage is reported as 0%, but the nested properties are in fact documented inline: eventID as the canonical V2 event ID, period as the period enum, and affiliate_ids with common IDs and the scores-only sentinel semantics. The description only reinforces the canonical-ID rule and the affiliate 27 exclusion, so it neither compensates for nor detracts from the schema.

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

Purpose4/5

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

The description states a specific verb+resource (get best available line) and adds real scope detail beyond the title: best moneyline, spread, and total across all sportsbooks. It does not, however, distinguish itself from close siblings like v2GetBestOddsByEvent or get_main_lines, leaving an agent to guess which 'best line' tool applies.

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

Usage Guidelines3/5

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

There is implicit guidance ('Use returned canonical IDs', 'never infer coverage from an empty result', 'One bounded request'), which is useful operational context. But it never says when to pick this tool over v2GetBestOddsByEvent, v2GetBestOdds, or get_main_lines, so the selection decision is left to inference.

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

v2GetBestOddsGet best available line using event_id queryB
Read-onlyIdempotent
Inspect

Get best available line using event_id query Returns the best currently open sportsbook price for one event market, plus the ranked matching prices. This endpoint is event-scoped, so no date parameter is required. Read-only Product data or price calculation. Use returned canonical IDs. Access, delay and metered usage follow your connected account; never infer coverage from an empty result. One bounded request, no background polling or automatic retry. Affiliate 27 is excluded. No wagers, account changes or guarantee of returns.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNo
planNo
emptyNo
errorNo
usageNo
statusNo
messageNo
event_idNo
source_urlNo
retry_afterNo
limit_reasonNo
retrieved_atNo
required_planNo
remaining_pointsNo
missing_entitlementNo
monthly_remaining_pointsNo

TDQS

B3.3/5.0
Behavior4/5

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

Annotations already cover read-only, idempotent, non-destructive. The description goes beyond them with real operational context: access/delay/metered usage follow the connected account, empty results must not be read as lack of coverage, one bounded request with no polling or retry, and affiliate 27 exclusion. That is substantive disclosure beyond the structured fields.

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

Conciseness3/5

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

It is front-loaded with the core purpose, which is good, but the opening echoes the title verbatim and the back half is a dense run-on chain of constraints. The affiliate-27 exclusion is duplicated between description and schema. Several sentences earn their place; a few are padding or repetition.

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

Completeness3/5

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

An output schema exists, so return values need not be explained, and annotations cover the safety profile. The description adequately covers scope and usage constraints, but for a tool sitting among dozens of near-identical best-line/best-odds siblings, the absence of any disambiguation leaves a real gap in completeness.

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?

Reported schema description coverage is 0% at the top level, so the description is expected to compensate, yet it adds almost nothing about the nested query fields. It only notes that no date parameter is needed and repeats the affiliate-27 exclusion already present in the affiliate_ids schema description. Line, side, limit, period, and participant semantics are left entirely to the schema.

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

Purpose4/5

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

The first two sentences state a specific verb and resource: returns the best currently open sportsbook price for one event market plus ranked matching prices. That is clearly more than a restatement of the name. However, it never distinguishes itself from close siblings such as v2GetBestOddsByEvent or v2GetBestLineByEvent, which an agent must choose between.

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

Usage Guidelines3/5

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

The description gives one useful routing hint ('event-scoped, so no date parameter is required'), which implicitly contrasts with date-scoped siblings like v2GetBestOddsBySportAndDate. But it never states when to prefer this tool over v2GetBestOddsByEvent or v2GetBestLineByEvent, leaving the sibling choice to inference.

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

v2GetBestOddsByEventGet Best Available Line for an EventA
Read-onlyIdempotent
Inspect

Get Best Available Line for an Event Returns the best currently open sportsbook price for one event market, plus the ranked matching prices. This endpoint is event-scoped, so no date parameter is required. Read-only Product data or price calculation. Use returned canonical IDs. Access, delay and metered usage follow your connected account; never infer coverage from an empty result. One bounded request, no background polling or automatic retry. Affiliate 27 is excluded. No wagers, account changes or guarantee of returns.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
queryYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNo
planNo
emptyNo
errorNo
usageNo
statusNo
messageNo
event_idNo
source_urlNo
retry_afterNo
limit_reasonNo
retrieved_atNo
required_planNo
remaining_pointsNo
missing_entitlementNo
monthly_remaining_pointsNo

TDQS

A3.6/5.0
Behavior4/5

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

Annotations already cover the safety profile (readOnly, idempotent, non-destructive, openWorld), and the description adds meaningful context beyond them: access/delay/metered usage tied to the account, no background polling or automatic retry, affiliate 27 excluded, and the warning not to infer coverage from empty results. This is substantive operational detail, though it stops short of describing response shape or pagination.

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

Conciseness3/5

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

The core purpose is front-loaded, but the remainder reads as a run-on of stitched clauses ('Read-only Product data or price calculation.') that mix audience tags, usage rules, and disclaimers without clear grouping. Several items ('No wagers, account changes or guarantee of returns') are boilerplate that dilute the operational content.

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

Completeness4/5

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

An output schema exists, so return values need not be spelled out, and the description still notes that ranked matching prices accompany the best line. Combined with annotations and the coverage/access caveats, an agent has enough to invoke the tool correctly; only the sibling disambiguation gap keeps it from being fully complete.

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

Parameters3/5

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

The description adds a few parameter-relevant facts — no date parameter needed, canonical IDs to be reused, affiliate 27 excluded from affiliate_ids — but says nothing about market_id, period_id, side/line ranking semantics, or limit. The rest is left to the schema, so this sits at the baseline of marginal added value.

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

Purpose4/5

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

The first sentence gives a specific verb and resource — returning the best currently open sportsbook price for one event market, plus ranked matching prices — and explicitly frames the tool as event-scoped. It clearly separates itself from date-based siblings like v2GetBestOddsBySportAndDate, but it does not distinguish itself from the near-identical v2GetBestLineByEvent, leaving ambiguity among close siblings.

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

Usage Guidelines3/5

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

The 'event-scoped, so no date parameter is required' clause implies when to choose this over date-range variants, and the affiliate-27 exclusion is a usable constraint. However, there is no explicit statement of when-not-to-use or which sibling (v2GetBestLineByEvent, v2GetBestOdds) should be preferred, so usage remains inferential.

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

v2GetBestOddsBySportAndDateGet Bulk Best Lines by Sport and DateA
Read-onlyIdempotent
Inspect

Get Bulk Best Lines by Sport and Date Returns the best currently open sportsbook price for each matching event/market/participant selection on a sport date. This is the collection form of the event best-line endpoint and avoids making one request per event. By default it considers only main lines; set include_alternates=true to rank alternate and extended lines. Read-only Product data or price calculation. Use returned canonical IDs. Access, delay and metered usage follow your connected account; never infer coverage from an empty result. One bounded request, no background polling or automatic retry. Affiliate 27 is excluded. No wagers, account changes or guarantee of returns.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
queryYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNo
planNo
emptyNo
errorNo
usageNo
statusNo
messageNo
event_idNo
source_urlNo
retry_afterNo
limit_reasonNo
retrieved_atNo
required_planNo
remaining_pointsNo
missing_entitlementNo
monthly_remaining_pointsNo

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already cover readOnly/idempotent/destructive, but the description adds real value beyond them: 'one bounded request, no background polling or automatic retry', metered/delayed usage tied to the connected account, the warning never to infer coverage from an empty result, and the affiliate 27 exclusion. These are non-obvious operational traits.

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

Conciseness4/5

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

Front-loaded with the core purpose, then operational caveats. A few sentences are dense (exclusions, metering, retry) but each carries distinct information rather than restating the 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 high-complexity, nested-schema tool with an output schema and full annotations, the description covers purpose, the alternate-lines decision, metering/retry behavior, exclusions, and the empty-result caveat. Return values are handled by the output schema, so little is missing.

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

Parameters3/5

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

Top-level coverage is 0% and the description only calls out include_alternates and the main-lines default. That adds meaning to the alternate-lines toggle, but line/side/limit/period/affiliate_ids semantics are left to the nested schema descriptions rather than being clarified or prioritized in prose.

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

Purpose5/5

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

States a specific verb+resource: returns the best currently open sportsbook price for each matching event/market/participant selection on a sport date. It also positions itself against siblings by calling itself 'the collection form of the event best-line endpoint' and explaining it avoids one request per event.

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

Usage Guidelines4/5

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

Gives clear context: use this bulk form instead of per-event requests, and states the default main-lines-only behavior plus the include_alternates=true switch. It does not explicitly name which sibling to use when only a single event is wanted, but the routing logic is inferable.

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

v2GetBestParlayBookFind Best Same-Book Parlay PriceA
Read-onlyIdempotent
Inspect

Find Best Same-Book Parlay Price Returns sportsbooks that currently have every requested leg open, ranked by the combined same-book price. The response does not guarantee that a sportsbook will accept the exact betslip combination. Read-only Product data or price calculation. Use returned canonical IDs. Access, delay and metered usage follow your connected account; never infer coverage from an empty result. One bounded request, no background polling or automatic retry. Affiliate 27 is excluded. No wagers, account changes or guarantee of returns. POST computes same-book prices from existing public prices; it does not submit a bet.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyYesRead-only same-book price calculation; does not place a wager.

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNo
planNo
emptyNo
errorNo
usageNo
statusNo
messageNo
event_idNo
source_urlNo
retry_afterNo
limit_reasonNo
retrieved_atNo
required_planNo
remaining_pointsNo
missing_entitlementNo
monthly_remaining_pointsNo

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, openWorldHint, and destructiveHint, so the safety profile is covered. The description adds meaningful context: it clarifies that the response does not guarantee the book will accept the betslip, that affiliate 27 is excluded, that empty results don't imply lack of coverage, and that there is no background polling or automatic retry. This goes beyond annotations, though it could specify rate limits or auth requirements more clearly.

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 mostly front-loaded with the core purpose, then adds operational constraints. It is somewhat dense and could be better structured with bullet points for clarity, but it avoids unnecessary fluff and every sentence carries information.

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

Completeness4/5

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

Given the presence of an output schema and rich annotations, the description provides sufficient additional context: it explains non-guarantees, affiliate exclusions, and the absence of polling/retries. However, it does not mention pagination behavior or how to interpret the ranking beyond price, which could be useful for a complex tool with nested parameters.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents all parameters. The description adds the affiliate exclusion and the POST body's read-only nature, but does not elaborate on leg structure or limits beyond what the schema provides. Baseline 3 is appropriate.

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 returns sportsbooks with all requested legs open, ranked by combined same-book price. It distinguishes itself from the sibling v2GetParlayBook by focusing on best same-book price ranking, though it could more explicitly contrast with the wider family of 'best line' and 'parlay' tools.

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

Usage Guidelines3/5

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

The description implies the tool is for finding sportsbooks that offer all legs of a parlay, and mentions it is read-only and does not submit a bet. However, it offers no explicit guidance on when to use this versus v2GetParlayBook or v2GetBestLineMulti, and no exclusions beyond the affiliate exclusion.

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

v2GetClosingBySportAndDateGet closing lines for a sport and dateA
Read-onlyIdempotent
Inspect

Get closing lines for a sport and date Returns events with the latest recorded price for each available line and sportsbook at or before each event's scheduled start time. Before an event starts, the snapshot is provisional. Period markets use the event start time as their closing cutoff.

Historical-data access and the event-date lookback depend on your plan. Omit hide_closed or use false to include currently closed prices in completed-event snapshots. Events can be returned without prices when no recorded lines match the filters. Use market history for price changes over time; see the Historical Odds guide. Read-only Product data or price calculation. Use returned canonical IDs. Access, delay and metered usage follow your connected account; never infer coverage from an empty result. One bounded request, no background polling or automatic retry. Affiliate 27 is excluded. No wagers, account changes or guarantee of returns.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
queryNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNo
planNo
emptyNo
errorNo
usageNo
statusNo
messageNo
event_idNo
source_urlNo
retry_afterNo
limit_reasonNo
retrieved_atNo
required_planNo
remaining_pointsNo
missing_entitlementNo
monthly_remaining_pointsNo

TDQS

A4.1/5.0
Behavior5/5

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

Beyond the readOnly/idempotent/openWorld annotations, it discloses that pre-start snapshots are provisional, that period markets use event start time as their cutoff, that lookback depth is plan-dependent, that events may return with no prices, that results must not be read as coverage guarantees, and that there is no polling or auto-retry. These are exactly the behavioral traits an agent cannot get from 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.

Conciseness3/5

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

The core behavior is front-loaded, but the tail contains boilerplate that restates annotations ('Read-only...') or adds little selection value ('No wagers, account changes or guarantee of returns.', 'Affiliate 27 is excluded.'). Several sentences could be trimmed without losing decision-relevant 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 nested two-param, plan-gated historical tool with an output schema, the description covers the important unknowns: provisional snapshots, plan-dependent lookback, empty-result interpretation, and an alternative tool. It omits pagination/offset behavior, which matters given the bounded offset range 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?

The two top-level params (path, query) carry no schema descriptions, but the nested query properties are heavily documented, and the description adds its own semantics for `hide_closed` (omitting or false retrieves completed snapshots) and for how the closing cutoff interacts with period markets. It does not add anything for `offset`, `market_ids`, or `affiliate_ids` beyond what the schema already says.

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

Purpose4/5

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

The description states a specific verb and resource — 'Get closing lines for a sport and date' — and expands it with 'latest recorded price for each available line and sportsbook at or before each event's scheduled start time,' which pins down what a closing snapshot actually is. It does not, however, explicitly distinguish itself from the v1 sibling of the same name or from v2GetEventClosing / v2GetOpenersBySportAndDate, leaving that differentiation to inference.

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 routes the agent away from this tool for a related need — 'Use market history for price changes over time' — and gives a concrete include/exclude rule for closed prices. What is missing is guidance on when to prefer this sport+date closing endpoint over the v1 equivalent or over the per-event closing endpoint.

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

v2GetConferencesBySportGet conferences for a sportB
Read-onlyIdempotent
Inspect

Get conferences for a sport Read-only Product data or price calculation. Use returned canonical IDs. Access, delay and metered usage follow your connected account; never infer coverage from an empty result. One bounded request, no background polling or automatic retry. Affiliate 27 is excluded. No wagers, account changes or guarantee of returns.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNo
planNo
emptyNo
errorNo
usageNo
statusNo
messageNo
event_idNo
source_urlNo
retry_afterNo
limit_reasonNo
retrieved_atNo
required_planNo
remaining_pointsNo
missing_entitlementNo
monthly_remaining_pointsNo

TDQS

B3.4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint/idempotentHint/destructiveHint, so safety is covered. The description adds genuinely useful context beyond that: access/delay/metered usage tied to the account, the warning never to infer coverage from an empty result, a bounded single-request execution model with no polling or retry, and the affiliate-27 exclusion. These are concrete behavioral traits the annotations do not supply.

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 description is short and front-loads the action, but the opening runs together two unrelated clauses with no punctuation ('Get conferences for a sport Read-only Product data or price calculation'), and several fragments read as family-wide boilerplate. Compact, but not cleanly structured.

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

Completeness4/5

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

With an output schema present, return values need not be explained, and the annotations carry the safety profile. For a one-parameter read tool, the description supplies the relevant operational context (account-based access, bounded request, empty-result caveat), making it complete enough to invoke correctly, though the absence of any input guidance is a small gap.

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

Parameters3/5

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

There is one nested parameter (path.sportID) and the description says nothing about input syntax or valid values. The schema itself carries a sportID description with common ID mappings, so the schema does the heavy lifting, but the description adds no parameter meaning of its own, leaving this at a baseline of 3.

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 first sentence states a specific verb+resource ('Get conferences for a sport'), which is understandable in isolation. However, it is essentially a restatement of the title and does nothing to distinguish this tool from the near-identical sibling v1GetConferencesBySport, so sibling differentiation is absent.

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

Usage Guidelines2/5

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

The fragment 'Product data or price calculation' hints at context, but there is no explicit when-to-use guidance and no routing between this tool and v1GetConferencesBySport or v2GetDivisionsBySport/v2GetTeamsBySport. A single hint ('Use returned canonical IDs') is present but does not describe when to call this over an alternative.

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

v2GetDatesBySportIDGet available dates for a sportB
Read-onlyIdempotent
Inspect

Get available dates for a sport Read-only Product data or price calculation. Use returned canonical IDs. Access, delay and metered usage follow your connected account; never infer coverage from an empty result. One bounded request, no background polling or automatic retry. Affiliate 27 is excluded. No wagers, account changes or guarantee of returns.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
queryNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNo
planNo
emptyNo
errorNo
usageNo
statusNo
messageNo
event_idNo
source_urlNo
retry_afterNo
limit_reasonNo
retrieved_atNo
required_planNo
remaining_pointsNo
missing_entitlementNo
monthly_remaining_pointsNo

TDQS

B3/5.0
Behavior4/5

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

Annotations already declare read-only, idempotent, open-world, non-destructive. The description adds genuinely non-obvious context: affiliate 27 is excluded, one bounded request with no background polling or automatic retry, metered usage tied to the connected account, and that an empty result does not imply zero coverage. That is meaningful value 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.

Conciseness2/5

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

The description is a run-on stream of clauses, several of which read as boilerplate ('Read-only Product data or price calculation', 'No wagers, account changes or guarantee of returns'). The purpose is front-loaded but the body is cluttered and hard to parse.

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 an output schema present, return values need no explanation, and the annotations plus caveats cover the safety profile. What is missing is routing information relative to the many sibling date/sport tools, which matters given this tool's near-duplicate name.

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 description says nothing about sportID, format, or offset semantics. Although the schema itself carries rich field descriptions, the reported coverage metric is 0%, so the description is expected to compensate and does not. An agent gets no added meaning here.

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 first clause states a clear verb+resource (get available dates for a sport), which an agent can act on. However, it does not distinguish this tool from the near-identical sibling v2GetDatesBySportIDs (multi-sport) or v1GetDatesBySport, leaving real ambiguity about which to pick.

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

Usage Guidelines2/5

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

There is no explicit when-to-use or when-not-to-use guidance, and no sibling is named despite several close variants. The hints 'Use returned canonical IDs' and 'never infer coverage from an empty result' are useful caveats but not selection guidance.

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

v2GetDatesBySportIDsGet available dates for multiple sportsA
Read-onlyIdempotent
Inspect

Get available dates for multiple sports Returns dates with events for the specified sport IDs. Read-only Product data or price calculation. Use returned canonical IDs. Access, delay and metered usage follow your connected account; never infer coverage from an empty result. One bounded request, no background polling or automatic retry. Affiliate 27 is excluded. No wagers, account changes or guarantee of returns.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNo
planNo
emptyNo
errorNo
usageNo
statusNo
messageNo
event_idNo
source_urlNo
retry_afterNo
limit_reasonNo
retrieved_atNo
required_planNo
remaining_pointsNo
missing_entitlementNo
monthly_remaining_pointsNo

TDQS

A3.6/5.0
Behavior4/5

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

Annotations already establish readOnly/idempotent/non-destructive, and the description adds real operational context beyond them: metered/access behavior tied to the connected account, a single bounded request with no polling or auto-retry, and exclusion of affiliate 27. It stops short of describing pagination or limits on the returned date set.

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 purpose is front-loaded, but the text runs together without punctuation ('for multiple sports Returns dates...') and appends a string of constraint clauses ('No wagers, account changes or guarantee of returns') that reads as boilerplate rather than tool-specific 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?

An output schema exists, so return format needn't be explained, and the description covers the key caveats an agent needs (canonical IDs, empty-result interpretation, no retry). The one gap is routing guidance relative to the near-identical singular sibling.

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 description only alludes to 'sport IDs' and 'canonical IDs'; it says nothing about the format or UTC-offset controls. The nested schema properties do carry their own descriptions (format, offset, sport_ids constraints), so the schema does the heavy lifting — baseline 3.

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

Purpose4/5

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

The description states a specific verb and resource (get available dates) and scopes it to multiple sports / sport IDs, which distinguishes it from the singular sibling v2GetDatesBySportID. It is clear, though the second sentence largely restates the first.

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

Usage Guidelines3/5

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

It gives two useful interpretive rules — use returned canonical IDs, and never infer coverage from an empty result — but never says when to choose this plural variant over v2GetDatesBySportID or v1GetDatesBySport, nor states prerequisites for the call. Usage is implied rather than directed.

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

v2GetDeltaGet event changes since a delta IDA
Read-onlyIdempotent
Inspect

Get event changes since a delta ID Returns raw JSON delta payloads for events that changed since last_id. Each delta entry is a raw JSON string containing the full event update — the data field is a serialized JSON string, not a parsed object.

The response is wrapped in a meta object containing the delta_last_id cursor for subsequent polling. Read-only Product data or price calculation. Use returned canonical IDs. Access, delay and metered usage follow your connected account; never infer coverage from an empty result. One bounded request, no background polling or automatic retry. Affiliate 27 is excluded. No wagers, account changes or guarantee of returns.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNo
planNo
emptyNo
errorNo
usageNo
statusNo
messageNo
event_idNo
source_urlNo
retry_afterNo
limit_reasonNo
retrieved_atNo
required_planNo
remaining_pointsNo
missing_entitlementNo
monthly_remaining_pointsNo

TDQS

A3.6/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, openWorld, non-destructive, so the safety profile is covered. The description adds genuinely useful behavior beyond that: delta entries are raw JSON strings with a serialized (not parsed) `data` field, the response is wrapped in a `meta` object carrying `delta_last_id`, affiliate 27 is excluded, and there is no automatic retry. Some trailing boilerplate ('No wagers, account changes or guarantee of returns') is generic noise.

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?

Purpose is front-loaded in the first clause and the return-format detail is useful, but the third paragraph is a run-on of loosely related disclaimers ('Read-only Product data or price calculation... No wagers, account changes or guarantee of returns') that dilute the message. Roughly a third of the text does not earn 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 an output schema present the description needn't explain returns, yet it usefully characterizes the delta payload shape and the meta cursor for the polling loop, plus metering/auth caveats. It stops short of describing pagination limits or how an empty delta should be interpreted beyond the generic 'never infer coverage' warning.

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 stated schema coverage is 0%, so the description is expected to carry the load; it clarifies the `last_id` cursor semantics and the `delta_last_id` round-trip, but says nothing about `sport_id` or `affiliate_ids` filtering. In practice the nested schema fields themselves are well documented (sentinel UUID, affiliate ID list, affiliate_ids=0 sentinel), which offsets the gap but does not let the description rise above baseline.

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

Purpose4/5

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

States a specific verb and resource ('Get event changes') and scopes it to events changed since `last_id`, which distinguishes it from market-delta siblings like v2GetMarketsDelta by the word 'event'. However, it never names or contrasts with the nearest alternatives (v1GetDelta, v1GetDeltaV2, v2GetMarketsDelta), so an agent must infer the difference from names alone.

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

Usage Guidelines3/5

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

The description implies the polling workflow ('subsequent polling', 'initial fetch' via schema, 'no background polling or automatic retry') but never explicitly says when to choose this tool over v1GetDelta, v1GetDeltaV2, or v2GetMarketsDelta. Constraints about metered usage and account-dependent coverage are stated, but no when-not conditions or exclusions relative to siblings.

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

v2GetDivisionsBySportGet divisions for a sportB
Read-onlyIdempotent
Inspect

Get divisions for a sport Read-only Product data or price calculation. Use returned canonical IDs. Access, delay and metered usage follow your connected account; never infer coverage from an empty result. One bounded request, no background polling or automatic retry. Affiliate 27 is excluded. No wagers, account changes or guarantee of returns.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNo
planNo
emptyNo
errorNo
usageNo
statusNo
messageNo
event_idNo
source_urlNo
retry_afterNo
limit_reasonNo
retrieved_atNo
required_planNo
remaining_pointsNo
missing_entitlementNo
monthly_remaining_pointsNo

TDQS

B3.1/5.0
Behavior4/5

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

Annotations already cover the safety profile (readOnly, idempotent, non-destructive), but the description adds real behavioral context: metered/rate-limited access tied to the connected account, a bounded single request with no polling or automatic retry, affiliate 27 exclusion, and the warning not to infer coverage from an empty result.

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?

Information-dense and reasonably front-loaded, but the text is a run-on: the purpose clause runs directly into 'Read-only' with no punctuation, and the remaining constraints are strung together as fragments rather than structured sentences.

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

Completeness3/5

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

An output schema exists, so return values need not be explained, and access/exclusion caveats are covered. The main gap is that a versioned tool with a v1 twin gives no guidance on when this version is the right choice.

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 single required sportID parameter is not mentioned in the description at all, and top-level schema description coverage is reported as 0%. The nested schema does list common sport ID values, which prevents total failure, but the description itself contributes nothing about the parameter.

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

Purpose4/5

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

States a clear verb and resource ('Get divisions for a sport'), so the operation is identifiable. However, it never distinguishes itself from the near-identical sibling v1GetDivisionsBySport, leaving the agent to guess which version to call.

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

Usage Guidelines2/5

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

There is no when-to-use or when-not-to-use guidance, and no mention of the v1 alternative despite an almost identical sibling existing. 'Use returned canonical IDs' describes downstream consumption, not tool selection.

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

v2GetEventByIDGet a single event with marketsB
Read-onlyIdempotent
Inspect

Get a single event with markets main_line=true also excludes closed prices while selecting main lines. Read-only Product data or price calculation. Use returned canonical IDs. Access, delay and metered usage follow your connected account; never infer coverage from an empty result. One bounded request, no background polling or automatic retry. Affiliate 27 is excluded. No wagers, account changes or guarantee of returns.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
queryNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNo
planNo
emptyNo
errorNo
usageNo
statusNo
messageNo
event_idNo
source_urlNo
retry_afterNo
limit_reasonNo
retrieved_atNo
required_planNo
remaining_pointsNo
missing_entitlementNo
monthly_remaining_pointsNo

TDQS

B3.3/5.0
Behavior4/5

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

Annotations already declare readOnly/idempotent/non-destructive, and the description adds real behavioral context: one bounded request with no background polling or retry, account-dependent access/delay/metered usage, affiliate 27 exclusion, and the warning not to infer coverage from an empty result. It does not describe the empty-result edge case mechanics in depth, but it goes well 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.

Conciseness3/5

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

It is short, but the first sentence is a run-on that awkwardly splices the tool purpose into the main_line semantics, and the remainder reads as a list of disjoint policy fragments rather than a front-loaded explanation. Every clause is relevant, but the ordering and grammar cost clarity.

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

Completeness3/5

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

An output schema exists so return values need no explanation, and the safety profile is covered by annotations. However, for a tool with a nested path/query object and ten-plus filtering parameters, the description omits sibling differentiation (v1 vs v2, openers/closing), ordering or narrowing advice, and the practical consequences of the market_ids cap.

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?

Reported schema coverage is 0% at the top level, though the nested query properties carry detailed descriptions of their own. The description adds some meaning by clarifying that main_line=true also excludes closed prices when selecting main lines and that canonical IDs should be reused, but it does not explain include, hide_closed, affiliate_ids, or the market_ids limit.

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

Purpose4/5

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

States a specific verb and resource ('Get a single event with markets'), so the agent knows exactly what it returns. It does not differentiate itself from the obvious sibling v1GetEventByID or from v2GetEventOpeners/v2GetEventClosing, leaving version/scope selection to inference.

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

Usage Guidelines2/5

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

No explicit when-to-use or when-not-to-use guidance, and no sibling is named as an alternative. The line 'Use returned canonical IDs' is a data-flow hint, not routing guidance, so the agent gets no help choosing this over the many other event/market endpoints.

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

v2GetEventClosingGet closing prices for an eventA
Read-onlyIdempotent
Inspect

Get closing prices for an event Returns the latest recorded price for each available line and sportsbook at or before the event's scheduled start time. Before the event starts, the snapshot is provisional. Period markets use the event start time as their closing cutoff. The response always uses an events array, even for one event ID.

Historical-data access and the event-date lookback depend on your plan. Omit hide_closed or use false to include currently closed prices in completed-event snapshots. The event can be returned without prices when no recorded lines match the filters.

For price changes over time, use GET /api/v2/events/{eventID}/markets/history or GET /api/v2/events/{eventID}/markets/{marketID}/history. See the Historical Odds guide for examples. Read-only Product data or price calculation. Use returned canonical IDs. Access, delay and metered usage follow your connected account; never infer coverage from an empty result. One bounded request, no background polling or automatic retry. Affiliate 27 is excluded. No wagers, account changes or guarantee of returns.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
queryNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNo
planNo
emptyNo
errorNo
usageNo
statusNo
messageNo
event_idNo
source_urlNo
retry_afterNo
limit_reasonNo
retrieved_atNo
required_planNo
remaining_pointsNo
missing_entitlementNo
monthly_remaining_pointsNo

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already establish read-only, idempotent, open-world, non-destructive behavior, and the description adds genuinely useful context on top: snapshots are provisional before event start, period markets use the event start as cutoff, plan entitlement governs historical lookback, an event can come back with no prices, and there is no background polling or automatic retry. The trailing boilerplate about wagers and affiliate 27 is weaker, but the operational disclosures are substantive.

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 opening runs two sentences together without punctuation ('...for an event Returns the latest...'), and the final block ('Read-only Product data... No wagers, account changes or guarantee of returns') is generic boilerplate that does not earn its place. The core content is front-loaded and useful, but the tail dilutes it.

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

Completeness4/5

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

With an output schema present, the description correctly focuses on semantics rather than return shape, and it covers the key edge cases for a closing-price tool: provisional snapshots, empty results without prices, plan-dependent lookback, and period-market cutoffs. The main gap is the absence of guidance distinguishing it from the other closing/opener endpoints.

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 nested schema already documents every query parameter in depth (market_ids limits, affiliate sentinels, include flags), so the baseline is a 3. The description only adds a restatement of hide_closed's default behavior ('Omit hide_closed or use false...') and says nothing about include, main_line, market_ids, or affiliate_ids, so it does not meaningfully extend parameter understanding.

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

Purpose4/5

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

The description states a specific verb+resource ('Get closing prices for an event') and immediately defines what closing means: the latest recorded price per line and sportsbook at or before scheduled start. It partially differentiates from siblings by naming the market-history endpoints as the alternative for time-series data, though it never contrasts with close cousins like v2GetEventOpeners or v2GetClosingBySportAndDate.

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 routing guidance — 'For price changes over time, use GET /api/v2/events/{eventID}/markets/history' — plus a clear when-to-set rule for hide_closed. What's missing is differentiation from the other closing/opener tools in the sibling set, so an agent still has to infer which closing endpoint applies to its case.

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

v2GetEventOpenersGet opening prices for an eventA
Read-onlyIdempotent
Inspect

Get opening prices for an event Returns the earliest recorded price for each available line at each sportsbook. Opening snapshots are available whenever a price has been recorded, including before, during, or after an event. The response always uses an events array, even for one event ID. Read-only Product data or price calculation. Use returned canonical IDs. Access, delay and metered usage follow your connected account; never infer coverage from an empty result. One bounded request, no background polling or automatic retry. Affiliate 27 is excluded. No wagers, account changes or guarantee of returns.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
queryNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNo
planNo
emptyNo
errorNo
usageNo
statusNo
messageNo
event_idNo
source_urlNo
retry_afterNo
limit_reasonNo
retrieved_atNo
required_planNo
remaining_pointsNo
missing_entitlementNo
monthly_remaining_pointsNo

TDQS

A3.6/5.0
Behavior4/5

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

Annotations already declare read-only, idempotent, non-destructive, open-world, so the bar is lower; the description still adds real value: response is always an `events` array even for one ID, one bounded request with no background polling or automatic retry, access/delay/metered usage follow the account, empty results are not coverage signals, and affiliate 27 is excluded. This is well beyond what annotations convey.

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?

Purpose is front-loaded, but the body is a dense run-on of loosely related clauses, including boilerplate-ish fragments ('Read-only Product data or price calculation', 'No wagers, account changes or guarantee of returns') that dilute the high-value statements about request bounds and coverage.

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

Completeness4/5

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

An output schema exists, so return-value explanation is not required; the description covers the important operational caveats (bounded request, no retry, account-dependent access, affiliate 27 exclusion, empty-result interpretation). The main missing piece is differentiation from the sibling opener tools.

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 schema itself carries extremely detailed descriptions for eventID, include, main_line, market_ids, hide_closed, and affiliate_ids (defaults, limits, ID meanings, sentinel behavior). The description adds almost nothing parameter-specific beyond 'Use returned canonical IDs', so the schema does the heavy lifting and baseline 3 applies.

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

Purpose4/5

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

States a specific verb+resource ('Get opening prices for an event') and adds scope detail — earliest recorded price per line per sportsbook. However, it never distinguishes itself from the near-identical sibling v2GetOpeningPricesByEvent or from v2GetOpenersBySportAndDate, so an agent cannot confidently choose between them from the description alone.

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

Usage Guidelines3/5

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

Provides implied context ('Opening snapshots are available whenever a price has been recorded, including before, during, or after an event') and a directive to use returned canonical IDs, plus a note that empty results don't imply missing coverage. But there is no explicit when-to-use/when-not versus the sibling opener endpoints.

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

v2GetEventsByDateGet events across sports for a dateB
Read-onlyIdempotent
Inspect

Get events across sports for a date Returns schedule listing dates grouped by sport (sport_id → date strings) for the given date. Read-only Product data or price calculation. Use returned canonical IDs. Access, delay and metered usage follow your connected account; never infer coverage from an empty result. One bounded request, no background polling or automatic retry. Affiliate 27 is excluded. No wagers, account changes or guarantee of returns.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
queryNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNo
planNo
emptyNo
errorNo
usageNo
statusNo
messageNo
event_idNo
source_urlNo
retry_afterNo
limit_reasonNo
retrieved_atNo
required_planNo
remaining_pointsNo
missing_entitlementNo
monthly_remaining_pointsNo

TDQS

B3.3/5.0
Behavior4/5

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

Annotations already cover read-only/idempotent/non-destructive, but the description adds genuinely new context: metered usage tied to the connected account, affiliate 27 exclusion, no wagers or guarantees, and the important warning that an empty result does not imply lack of coverage. It does not mention result limits or pagination interaction with the offset param.

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

Conciseness3/5

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

Front-loads the purpose, but the opening is a run-on that concatenates the title with a second clause, and the remaining sentences are a staccato list of constraints. Most clauses earn their place, but the flow is choppy and some phrasing ('Product data or price calculation') is opaque.

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

Completeness3/5

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

An output schema exists, so return-value detail is not required, and the safety profile is covered by annotations. However, with high-complexity query parameters (offset timezone boundary, sport_ids cap) at 0% schema description coverage, the omission of any parameter guidance leaves a real gap for an agent calling this correctly.

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

Parameters2/5

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

Schema description coverage is reported at 0% and the description adds nothing about the date, offset, or sport_ids parameters – no mention of day-boundary/UTC behavior, offset semantics, or the 50-ID cap. It only says 'for the given date', which the schema already conveys via the required path.date field.

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

Purpose4/5

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

States a specific verb and resource ('Get events across sports for a date') with a scope that distinguishes it from the per-sport siblings like v2GetEventsBySportAndDate. The second clause ('schedule listing dates grouped by sport') is a little muddled about what is actually returned, keeping it short of a 5.

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

Usage Guidelines3/5

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

Gives operating constraints ('one bounded request, no background polling or automatic retry') and hints at downstream use ('Use returned canonical IDs'), but never states when to pick this over v1GetDatesBySport, v2GetDatesBySportIDs, or the per-sport event tools. Usage is implied rather than routed.

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

v2GetEventsBySportAndDateGet events with markets for a sport and dateA
Read-onlyIdempotent
Inspect

Get events with markets for a sport and date Returns events with full market/odds data for the specified sport and date. This is the primary endpoint for building odds screens.

main_line=true also excludes closed prices while selecting main lines.

For known zero-delay access, this response's positive whole-integer meta.delta_last_id can bootstrap /api/v2/markets/delta only when this response explicitly reports X-Data-Delay-Seconds: 0. If that header is positive, absent, or invalid, use scoped snapshots instead; do not start market-delta polling with 0. Read-only Product data or price calculation. Use returned canonical IDs. Access, delay and metered usage follow your connected account; never infer coverage from an empty result. One bounded request, no background polling or automatic retry. Affiliate 27 is excluded. No wagers, account changes or guarantee of returns.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
queryNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNo
planNo
emptyNo
errorNo
usageNo
statusNo
messageNo
event_idNo
source_urlNo
retry_afterNo
limit_reasonNo
retrieved_atNo
required_planNo
remaining_pointsNo
missing_entitlementNo
monthly_remaining_pointsNo

TDQS

A3.5/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, openWorld and non-destructive, yet the description adds real operational context beyond them: the delta_last_id bootstrap is only safe when X-Data-Delay-Seconds: 0, one bounded request with no polling/retry, metered usage follows the account, affiliate 27 excluded, and an empty result must not be read as absent coverage. That is substantive disclosure, though it is delivered as an undifferentiated run-on rather than organized caveats.

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

Conciseness2/5

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

The opening sentence restates the title almost verbatim ('Get events with markets for a sport and date Returns events with full market/odds data...'), wasting the most valuable position. The remaining content is a dense concatenation of unrelated caveats (main lines, delta bootstrap, rate/usage, affiliate exclusion, wagering disclaimer) with no ordering or formatting, making it hard to scan for the decision-relevant facts.

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

Completeness4/5

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

With an output schema present, return-value explanation is unnecessary, and the description covers the important call-time caveats: date-boundary handling is in the schema, delta bootstrapping conditions, no-retry expectation, and the empty-result warning. The main gap is sibling disambiguation, which for a tool in a family of ~70 near-duplicate endpoints is a meaningful omission.

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 schema itself documents every query parameter in depth (sportID enum values, offset semantics, market_ids limits, affiliate_ids sentinel behavior), so the schema carries the parameter burden. The description adds only one nuance beyond it, that main_line=true also excludes closed prices, which is a modest but genuine addition; nothing else about the two top-level parameters is clarified.

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

Purpose4/5

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

States a specific verb and resource ('Get events with markets for a sport and date') and the scope (full market/odds data for one sport+date). It is clear on its own, but it never distinguishes itself from near-identical siblings such as v1GetEventsBySportAndDate, v2GetEventsByDate, or v2GetMarketsBySportAndDate, so an agent cannot tell which one to pick from the description alone.

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

Usage Guidelines3/5

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

Offers some routing guidance: 'This is the primary endpoint for building odds screens' and a conditional alternative ('use scoped snapshots instead') for the delta-bootstrap case. However, there is no guidance on when to prefer this over the v1 equivalent, v2GetMarketsBySportAndDate, or the openers/closing siblings, so the sibling selection burden is left to inference.

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

v2GetFuturesEventByIDGet one futures competition, with progress and leadersA
Read-onlyIdempotent
Inspect

Get one futures competition, with progress and leaders Returns one futures/outright competition event — the same envelope and event object shape as GET /api/v2/sports/{sportID}/futures (meta.delta_last_id, events with a single event carrying event_id, sport_id, event_date, settle_by, event_status, settlement, schedule, markets) — plus up to three optional detail-only keys not served on the listing. Early access — requires an Ultra plan or higher.

progress — the competition's live non-odds state (a golf leaderboard, a team-sport standings table), refreshed on its own cycle independent of the odds board. entries[].participant_id is the same participant ID space markets[].participants[].id uses, so a progress row joins directly to a price. Omitted entirely (never null) when no progress document exists yet for the competition — "priced, no odds-board progress" is the normal state for a fresh team-championship board, not a degraded response. See Competition Stats (Progress) for the full field-by-field breakdown of both kinds live today.

leaders / player_leaders — optional curated season-stats leaderboards, team-grain and player-grain respectively, for a hand-verified set of sports. Both reuse the same {stat, stat_id, season_year, entries[]} shape and are omitted entirely (never an empty array) when the sport is not curated or no stat rows exist yet — see Competition Stats (Progress) for the curated sport list and the two distinct entry ID spaces.

Settled competitions are always served here. Unlike the listing (which hides settled markets and terminal events unless include_settled=true), this is a deep link to a specific competition you already hold the ID for, and it keeps working after settlement, with the graded results visible in settlement. There is no include_settled parameter on this endpoint. Read-only Product data or price calculation. Use returned canonical IDs. Access, delay and metered usage follow your connected account; never infer coverage from an empty result. One bounded request, no background polling or automatic retry. Affiliate 27 is excluded. No wagers, account changes or guarantee of returns.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
queryNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNo
planNo
emptyNo
errorNo
usageNo
statusNo
messageNo
event_idNo
source_urlNo
retry_afterNo
limit_reasonNo
retrieved_atNo
required_planNo
remaining_pointsNo
missing_entitlementNo
monthly_remaining_pointsNo

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds valuable behavioral context: early access requiring Ultra plan, progress refreshed on its own cycle, omitted fields are never null/empty, settled competitions always served, and no background polling. It also notes affiliate 27 exclusion. This is substantial beyond annotations, though return format details are partly covered by the output schema.

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

Conciseness3/5

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

The description is lengthy, with multiple bolded sections and a block of boilerplate at the end. It is front-loaded with the core purpose, but the legal/usage boilerplate ('Read-only Product data... Affiliate 27 is excluded...') is generic and could be trimmed. The detailed explanations of `progress` and `leaders` are useful but verbose.

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

Completeness4/5

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

Given the tool has an output schema, the description needn't explain return values, but it does provide rich context on the event object shape and the optional detail keys. It covers access requirements, refresh behavior, and edge cases (omitted vs null, settled events). It doesn't discuss rate limits or pagination (not applicable for a single resource) but is largely complete 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.

Parameters3/5

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

Schema description coverage is 0%, so the description must compensate. It does mention `include_settled` is not a parameter and explains that `sportID` and `eventID` come from prior responses, but doesn't detail the `market_ids` and `affiliate_ids` query parameters beyond what the schema provides (none). The description adds some parameter-related context (e.g., no include_settled) but doesn't fully compensate for the 0% coverage of the two query params.

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

Purpose5/5

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

States a specific verb+resource: fetches exactly one futures/outright competition event by ID. It explicitly contrasts with the listing endpoint `GET /api/v2/sports/{sportID}/futures` and clarifies that unlike the listing, settled competitions are always served here. This differentiates from sibling `v2GetFuturesForSport` and `list_futures`.

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

Usage Guidelines5/5

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

Provides explicit when-to-use guidance: use this for a deep link when you already hold the event ID, as it includes optional detail-only keys (`progress`, `leaders`, `player_leaders`) not served on the listing, and it keeps working after settlement unlike the listing. Names the alternative (the listing endpoint) and the condition distinguishing them.

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

v2GetFuturesForSportGet futures for a sportA
Read-onlyIdempotent
Inspect

Get futures for a sport Returns futures/outright competition events (e.g. tournament winner) for a sport, with future-class markets in the standard V2 market → participants → lines → prices shape and per-market settlement state. Competition events are excluded from the dated game endpoints and served only here. Early access — requires an Ultra plan or higher.

A competition is an interval, not an instant: event_date is when it starts and settle_by is when it must have graded. Futures events carry no teams array and no score — the human-readable identity is schedule.event_name.

Date filtering uses interval overlap. An event is returned when its [event_date, settle_by] span intersects the requested window — settle_by >= from and event_date <= to. So the default from=now means "in flight right now" and matches a season future that started months ago.

Paging is keyset-based (no skip parameter). When more results exist the response carries meta.next_cursor; pass it back verbatim as cursor. Ordering is soonest-to-resolve first: settle_by, then event_date, then event_id. meta.count is the number of events on the page, meta.has_more says whether another page exists, and meta.total is the number of events matching your filters across all pages, so a single call tells you the size of the listing.

Default visibility: settled markets are removed per market, an event is hidden once every requested future-class market on it has settled, and terminal (final/canceled/abandoned) events are excluded. include_settled=true lifts all of those and the default from=now, so settled history is reachable.

Delta bootstrap: On known zero-delay access, meta.delta_last_id can seed GET /api/v2/markets/delta only when this snapshot explicitly reports X-Data-Delay-Seconds: 0; it is a positive whole-integer cursor. With a positive, absent, or invalid delay header, keep using scoped snapshots and do not substitute 0. Futures market IDs are not in the delta feed's default set — pass them explicitly (e.g. market_ids=1141) when polling. See the Futures guide for the full integration recipe. Read-only Product data or price calculation. Use returned canonical IDs. Access, delay and metered usage follow your connected account; never infer coverage from an empty result. One bounded request, no background polling or automatic retry. Affiliate 27 is excluded. No wagers, account changes or guarantee of returns.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
queryNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNo
planNo
emptyNo
errorNo
usageNo
statusNo
messageNo
event_idNo
source_urlNo
retry_afterNo
limit_reasonNo
retrieved_atNo
required_planNo
remaining_pointsNo
missing_entitlementNo
monthly_remaining_pointsNo

TDQS

A4.4/5.0
Behavior5/5

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

Annotations cover the read-only/idempotent safety profile, but the description adds substantial non-structured context: the Ultra-plan access gate, per-market settlement removal and terminal-event hiding, exactly what include_settled=true lifts (including the default from=now), the delta-feed caveat that futures market IDs are not in the default delta set, and the no-background-polling/no-retry constraint. These are real behavioral traits beyond what annotations disclose.

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

Conciseness4/5

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

Purpose is front-loaded and the body is organized into bolded sub-topics (date filtering, paging, visibility, delta bootstrap), which is appropriate for a complex tool. It is dense and long, and the trailing generic boilerplate ('Read-only Product data...', 'No wagers, account changes or guarantee of returns') adds less value than the rest.

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 an output schema and full annotations, the description covers the remaining gaps an agent needs: access tier, interval semantics, keyset paging, default visibility, settled-history behavior, and delta-feed interaction. Nothing required to call it correctly is missing.

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

Parameters3/5

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

Although the reported schema coverage is 0%, the input schema itself carries rich per-parameter prose (interval semantics for from/to, offset timezone minutes, cursor opacity, market_ids intersection with future-class markets, include_settled effects). The description largely restates this interval-overlap and pagination behavior rather than adding new meaning, so it sits at the baseline of 3.

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

Purpose5/5

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

The description states a specific verb and resource ('Get futures for a sport') and immediately narrows scope to 'futures/outright competition events (e.g. tournament winner)', explicitly noting that competition events are excluded from the dated game endpoints and served only here. This lets an agent distinguish it from list_futures, v2GetFuturesEventByID, and the dated event endpoints without opening any schema.

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

Usage Guidelines4/5

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

It clearly establishes when this tool is the right one ('competition events are excluded from the dated game endpoints and served only here') and gives the Ultra-plan prerequisite. It does not, however, name the sibling to use for a single futures event (v2GetFuturesEventByID) or contrast with list_futures, so routing to alternatives 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.

v2GetHedgeOpportunitiesList Hedge Opportunities (v2)B
Read-onlyIdempotent
Inspect

List Hedge Opportunities (v2) Returns current arbitrage/hedge opportunities across sportsbooks. Read-only Product data or price calculation. Use returned canonical IDs. Access, delay and metered usage follow your connected account; never infer coverage from an empty result. One bounded request, no background polling or automatic retry. Affiliate 27 is excluded. No wagers, account changes or guarantee of returns.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNo
planNo
emptyNo
errorNo
usageNo
statusNo
messageNo
event_idNo
source_urlNo
retry_afterNo
limit_reasonNo
retrieved_atNo
required_planNo
remaining_pointsNo
missing_entitlementNo
monthly_remaining_pointsNo

TDQS

B3.1/5.0
Behavior4/5

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

Annotations already establish read-only, idempotent, non-destructive, open-world behavior, so the bar is lower. The description adds genuinely useful context beyond them: metered/account-dependent access, an explicit empty-result caveat ('never infer coverage from an empty result'), a bounded single-request/no-retry/no-polling contract, and affiliate 27 exclusion. It stops short of describing result freshness or rate limits.

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

Conciseness3/5

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

Purpose is front-loaded, but the opening verbatim-restates the title ('List Hedge Opportunities (v2)'), wasting the most prominent position. The remainder is a choppy series of clauses whose value varies; some (affiliate 27, empty-result caveat) earn their place while others are terse fragments.

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

Completeness3/5

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

An output schema exists, so return values need not be explained, and annotations cover the safety profile. What remains missing is sibling differentiation and any explanation of the ten nested query parameters, leaving the agent under-informed for a moderately complex filtered-list call.

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

Parameters2/5

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

Schema description coverage is reported at 0% for a nested query object carrying ten properties (sort, type, limit, offset, event_id, market_id, min_percent, include_live, affiliate_ids, include_closed). The description only touches affiliate exclusion and says nothing about filter semantics, sort direction, pagination, or opportunity-type values, so it fails to compensate for the coverage gap.

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 gives a specific verb+resource ('List Hedge Opportunities') and clarifies the domain ('current arbitrage/hedge opportunities across sportsbooks'), so the agent knows what it returns. However, it never distinguishes itself from close siblings like v2GetHedgeOpportunitiesByEvent, v2GetHedgeOpportunityByID, or v2GetTopHedgeOpportunities, which an agent could easily confuse for the same capability.

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

Usage Guidelines2/5

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

'Use returned canonical IDs' implies a chaining workflow, but the description never states when to prefer this tool over the event-scoped, ID-scoped, or 'top' hedge siblings. There is no when-to-use or when-not-to-use guidance, only operational constraints.

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

v2GetHedgeOpportunitiesByEventList Hedge Opportunities for an Event (v2)A
Read-onlyIdempotent
Inspect

List Hedge Opportunities for an Event (v2) Returns arbitrage/hedge opportunities for a specific event. Read-only Product data or price calculation. Use returned canonical IDs. Access, delay and metered usage follow your connected account; never infer coverage from an empty result. One bounded request, no background polling or automatic retry. Affiliate 27 is excluded. No wagers, account changes or guarantee of returns.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
queryNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNo
planNo
emptyNo
errorNo
usageNo
statusNo
messageNo
event_idNo
source_urlNo
retry_afterNo
limit_reasonNo
retrieved_atNo
required_planNo
remaining_pointsNo
missing_entitlementNo
monthly_remaining_pointsNo

TDQS

A4.1/5.0
Behavior5/5

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

Goes well beyond the annotations (readOnly/idempotent/openWorld) by disclosing metered usage tied to the connected account, a single bounded request with no background polling or automatic retry, affiliate 27 exclusion, and the absence of wagers or return guarantees. These are operational traits an agent cannot infer from structured fields alone.

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 purpose is front-loaded, but the text lapses into terse fragments ('Read-only Product data or price calculation.') and an awkward clause about access/delay/metered usage. Several phrases are dense and under-explained rather than genuinely concise.

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

Completeness4/5

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

Return values are covered by the output schema and the safety profile by annotations, and the description adds metering, retry policy, and exclusion caveats. It is largely complete, though it omits any parameter-level guidance for a tool with a nested, fully undocumented query object.

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

Parameters2/5

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

Schema description coverage is 0%, yet the description explains none of the query parameters (sort, limit, offset, min_percent, include_live, include_closed, market_id). Only indirectly does it touch event_id ('canonical IDs') and affiliate_ids ('Affiliate 27 is excluded'), leaving most parameters unelaborated.

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

Purpose5/5

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

States a specific verb+resource ('Returns arbitrage/hedge opportunities') scoped to 'a specific event', which cleanly separates it from the unfiltered v2GetHedgeOpportunities and the single-item v2GetHedgeOpportunityByID. An agent can identify the tool's function without opening the schema.

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 clear operating context: use returned canonical IDs, one bounded request with no polling/retry, and interpret empty results carefully. It never names a sibling alternative (e.g. v2GetTopHedgeOpportunities or v2GetHedgeOpportunityByID) or an explicit when-not condition, 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.

v2GetHedgeOpportunityByIDGet a Hedge Opportunity by ID (v2)A
Read-onlyIdempotent
Inspect

Get a Hedge Opportunity by ID (v2) Returns one hedge opportunity from the selected opportunity type. IDs are unique within an opportunity type, not across every hedge type, so an ID copied from a non-mainlines feed must be requested with that feed's concrete type. If omitted, type defaults to mainlines for backwards compatibility. Only the enumerated generally available opportunity types are part of this public contract. Read-only Product data or price calculation. Use returned canonical IDs. Access, delay and metered usage follow your connected account; never infer coverage from an empty result. One bounded request, no background polling or automatic retry. Affiliate 27 is excluded. No wagers, account changes or guarantee of returns.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
queryNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNo
planNo
emptyNo
errorNo
usageNo
statusNo
messageNo
event_idNo
source_urlNo
retry_afterNo
limit_reasonNo
retrieved_atNo
required_planNo
remaining_pointsNo
missing_entitlementNo
monthly_remaining_pointsNo

TDQS

A4.5/5.0
Behavior5/5

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

Annotations already declare read-only, idempotent, non-destructive, open-world behavior, yet the description adds real operational context: access/delay/metered usage follow the connected account, an empty result must not be read as absent coverage, one bounded request with no background polling or automatic retry, affiliate 27 excluded, and no wagers or account changes.

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

Conciseness4/5

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

Purpose is front-loaded and the ID-uniqueness/type-defaulting rule follows immediately. The tail contains several policy sentences (affiliate exclusion, no wagers, no guarantee of returns) that are useful but somewhat list-like and less tightly integrated.

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

Completeness4/5

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

With an output schema present, return values need no explanation, and the description covers scope, defaults, access/metering constraints, and empty-result interpretation. Remaining minor gap is that it never explicitly points to the sibling list tools for discovery.

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 reported at 0%, so the description carries weight: it explains that `id` is unique per opportunity type and that `type` defaults to mainlines, which is behavior beyond a plain field listing. It does not enumerate the concrete type values, but the schema's enum supplies those.

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 and resource ('Get a Hedge Opportunity by ID') and immediately scopes it to returning exactly one record from a selected opportunity type, which distinguishes it from the sibling list tools v2GetHedgeOpportunities, v2GetHedgeOpportunitiesByEvent and v2GetTopHedgeOpportunities.

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

Usage Guidelines4/5

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

Gives concrete selection guidance: IDs are unique only within an opportunity type, so an ID from a non-mainlines feed must be requested with that feed's concrete `type`, and omission defaults to `mainlines` for backwards compatibility. It stops short of explicitly naming alternative tools or stating when not to use this one.

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

v2GetMarketHistoryByEventGet market price history for an eventA
Read-onlyIdempotent
Inspect

Get market price history for an event Returns recorded price changes for the requested markets and sportsbooks, subject to your plan's historical-data access. Data can be available before, during, or after an event as prices are recorded. Each response is bounded by the requested limit. Read-only Product data or price calculation. Use returned canonical IDs. Access, delay and metered usage follow your connected account; never infer coverage from an empty result. One bounded request, no background polling or automatic retry. Affiliate 27 is excluded. No wagers, account changes or guarantee of returns.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
queryNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNo
planNo
emptyNo
errorNo
usageNo
statusNo
messageNo
event_idNo
source_urlNo
retry_afterNo
limit_reasonNo
retrieved_atNo
required_planNo
remaining_pointsNo
missing_entitlementNo
monthly_remaining_pointsNo

TDQS

A3.6/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint, so the safety profile is covered. The description adds genuinely useful behavior beyond that: metered usage/access delay tied to the connected account, a single bounded request with no polling or retry, affiliate 27 exclusion, and the caveat not to infer coverage from an empty result.

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 purpose is front-loaded, but it is delivered as a run-on ('...for an event Returns recorded price changes...') followed by a long trail of compliance-style statements that read partly as boilerplate. Several sentences (no wagers, no account changes) do little to help an agent invoke the tool.

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

Completeness4/5

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

With an output schema present, return-format detail is not required, and the annotations cover the safety profile. Combined with the access/metering, bounding, and empty-result caveats, this is close to complete; the main remaining gap is routing against sibling history tools.

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?

Top-level schema coverage is reported as 0%, so the description should carry more weight, though the nested property descriptions are in fact rich (market_ids default/cap, affiliate_ids list, main_line semantics). The description only implicitly signals filtering by markets/sportsbooks, the affiliate 27 exclusion, and canonical IDs, adding little syntax or default detail beyond the schema.

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

Purpose4/5

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

The opening sentence names a specific verb (Get) and resource (market price history for an event), which is unambiguous on its own. However, it does not differentiate from close siblings such as v2GetMarketLineHistoryByEvent or v2GetMarketLinePriceHistory, which an agent must disambiguate before choosing this tool.

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

Usage Guidelines3/5

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

It gives contextual guidance about historical-data access being plan-dependent and prices being recorded before/during/after an event, and warns that empty results do not imply missing coverage. But it names no alternative tool and gives no explicit when-to-use-this-vs-sibling rule, which matters in a family containing several near-identical history endpoints.

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

v2GetMarketLineHistoryByEventGet line price chart data for a specific marketA
Read-onlyIdempotent
Inspect

Get line price chart data for a specific market Returns time-series price data suitable for charting line movement. To chart one participant, first discover its public participant_id with GET /api/v2/markets/participants for the same event and market, then pass that value here. For totals (market 3), discover the TYPE_RESULT Over and Under participants and request each side separately. Series are grouped by affiliate and can otherwise contain points for more than one participant. main_line=true keeps only the points that were the main line when written. Read-only Product data or price calculation. Use returned canonical IDs. Access, delay and metered usage follow your connected account; never infer coverage from an empty result. One bounded request, no background polling or automatic retry. Affiliate 27 is excluded. No wagers, account changes or guarantee of returns.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
queryNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNo
planNo
emptyNo
errorNo
usageNo
statusNo
messageNo
event_idNo
source_urlNo
retry_afterNo
limit_reasonNo
retrieved_atNo
required_planNo
remaining_pointsNo
missing_entitlementNo
monthly_remaining_pointsNo

TDQS

A4.1/5.0
Behavior5/5

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

Annotations already declare read-only, idempotent, open-world, non-destructive behavior, but the description adds substantial operational context: metered usage tied to the connected account, no background polling or automatic retry, affiliate 27 exclusion, empty results not implying lack of coverage, and no guarantee of returns. This goes well beyond what the 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 front-loaded with purpose and then gives usage and behavioral guidance in a compact paragraph. It is somewhat long and repeats some schema details, but most sentences add actionable context for a complex, chart-oriented endpoint.

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

Completeness5/5

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

Given the presence of an output schema and annotations covering safety and idempotency, the description supplies the remaining context an agent needs: participant discovery workflow, totals handling, main-line behavior, affiliate exclusion, metering, and retry expectations. Nothing essential appears missing 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?

The schema itself already documents the nested path and query parameters in detail, including participant_id discovery, main_line, and affiliate_ids. The description largely repeats that schema content, adding only the note that series are grouped by affiliate and may contain points for more than one participant.

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

Purpose4/5

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

The description states a specific verb and resource: get line price chart data for a specific market, returning time-series data for charting line movement. It is clear what the tool does, but it does not explicitly differentiate itself from similar siblings such as v2GetMarketLinePriceHistory or v2GetMarketHistoryByEvent.

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 procedural guidance: discover participant_id via GET /api/v2/markets/participants first, and for totals discover TYPE_RESULT Over and Under participants and request each side separately. It also explains main_line filtering and affiliate exclusion, though it does not state when not to use this tool or name an alternative tool.

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

v2GetMarketLinePriceHistoryGet price history for specific market line pricesA
Read-onlyIdempotent
Inspect

Get price history for specific market line prices Read-only Product data or price calculation. Use returned canonical IDs. Access, delay and metered usage follow your connected account; never infer coverage from an empty result. One bounded request, no background polling or automatic retry. Affiliate 27 is excluded. No wagers, account changes or guarantee of returns.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNo
planNo
emptyNo
errorNo
usageNo
statusNo
messageNo
event_idNo
source_urlNo
retry_afterNo
limit_reasonNo
retrieved_atNo
required_planNo
remaining_pointsNo
missing_entitlementNo
monthly_remaining_pointsNo

TDQS

A3.5/5.0
Behavior4/5

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

With readOnlyHint/idempotentHint already declaring the safety profile, the description still adds real operational context: metered usage and delay tied to the connected account, a single bounded request with no polling or automatic retry, and the Affiliate 27 exclusion. The trailing 'No wagers, account changes or guarantee of returns' is boilerplate and adds little, which keeps this from a 5.

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 purpose is front-loaded, but the opening sentence runs directly into the next clause with no punctuation, and the semicolon-separated constraint list reads as appended boilerplate. The final clause about wagers/account changes/returns does not earn its place in a read-only price-history tool.

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

Completeness3/5

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

An output schema exists, so return values need not be explained, and the annotations cover the safety profile; the description covers access/metering caveats and exclusion rules reasonably. What is missing is the one thing an agent most needs here: what distinguishes this history tool from the many sibling history and delta tools in the family.

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?

Top-level coverage is low (the single `query` parameter carries no description), but the nested properties `to`, `from`, `main_line`, and `market_line_price_ids` are documented in-schema with format and max-50 constraints; only `limit` is undocumented. The description contributes the provenance rule for the IDs but says nothing about the time-range or main_line semantics, so it neither compensates nor detracts.

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 opening clause names a specific verb (Get) and resource (price history for market line prices), and the ID-scoped framing makes the object of the query unambiguous. However, it is essentially a restatement of the title and does nothing to separate itself from near-identical siblings such as v2GetMarketLineHistoryByEvent or v2GetMarketHistoryByEvent, so an agent cannot route on the description alone.

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

Usage Guidelines3/5

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

'Use returned canonical IDs' implies the input comes from a prior call's output, which is genuine implied usage guidance, and 'never infer coverage from an empty result' tells the agent how to read a null-ish response. But there is no explicit when-to-use vs when-not, and no alternative is named despite several sibling history tools existing.

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

v2GetMarketsByDateGet available markets by dateA
Read-onlyIdempotent
Inspect

Get available markets by date Returns available market definitions for each sport on the given date. Read-only Product data or price calculation. Use returned canonical IDs. Access, delay and metered usage follow your connected account; never infer coverage from an empty result. One bounded request, no background polling or automatic retry. Affiliate 27 is excluded. No wagers, account changes or guarantee of returns.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
queryNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNo
planNo
emptyNo
errorNo
usageNo
statusNo
messageNo
event_idNo
source_urlNo
retry_afterNo
limit_reasonNo
retrieved_atNo
required_planNo
remaining_pointsNo
missing_entitlementNo
monthly_remaining_pointsNo

TDQS

A3.6/5.0
Behavior4/5

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

Annotations already cover readOnly, idempotent, non-destructive, and open-world behavior. The description adds genuinely useful operational context: metered usage follows the connected account, no background polling or automatic retry, affiliate 27 is excluded, and empty results do not mean no markets exist. That is real disclosure 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.

Conciseness3/5

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

It is front-loaded and clear, but the sentence fragments are choppy and mix purpose, data provenance, usage constraints, and legal disclaimers in a dense run-on. Several clauses (affiliate exclusion, wager disclaimer) are only loosely tied to the tool's core function.

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

Completeness4/5

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

An output schema exists, so the description need not explain return values, and it correctly points to canonical IDs. It covers the key behavioral caveats for a metered, read-only market lookup, though it does not address the required path.date boundary or the relationship to sibling market-list endpoints.

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

Parameters3/5

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

Only one of two parameters (offset, backing a required path.date) is documented in the description, and the schema itself documents offset well (UTC-offset-in-minutes with example values). The description adds no path.date formatting or timezone-boundary detail, so it largely rests on the schema's existing 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?

States a specific verb and resource: returns available market definitions for each sport on a given date. It is distinguishable from siblings like v2GetMarketsBySportAndDate by being date-only, though the description never explicitly names or contrasts with that sibling.

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

Usage Guidelines3/5

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

The description implies usage ('Use returned canonical IDs') and warns never to infer coverage from an empty result, but it does not say when to prefer this tool over v2GetAllMarkets, v2GetMarketsBySportAndDate, or list_markets. Guidance is implied rather than explicit.

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

v2GetMarketsBySportAndDateGet available markets for a sport and dateA
Read-onlyIdempotent
Inspect

Get available markets for a sport and date Read-only Product data or price calculation. Use returned canonical IDs. Access, delay and metered usage follow your connected account; never infer coverage from an empty result. One bounded request, no background polling or automatic retry. Affiliate 27 is excluded. No wagers, account changes or guarantee of returns.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
queryNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNo
planNo
emptyNo
errorNo
usageNo
statusNo
messageNo
event_idNo
source_urlNo
retry_afterNo
limit_reasonNo
retrieved_atNo
required_planNo
remaining_pointsNo
missing_entitlementNo
monthly_remaining_pointsNo

TDQS

A3.6/5.0
Behavior4/5

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

Annotations already declare read-only, idempotent, open-world, non-destructive, so the safety profile is covered. The description adds genuinely non-obvious behavior beyond that: account-dependent access/delay/metered usage, a single bounded request with no polling or auto-retry, exclusion of affiliate 27, and no wagers/account changes. This is meaningful disclosure, though the odd 'Product data or price calculation' line adds no behavioral value.

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?

Purpose is front-loaded, which is good, but the rest is a run-on of stitched-together boilerplate fragments ('Read-only Product data or price calculation') and clauses of uneven relevance. It reads like concatenated spec tags rather than a curated description; several phrases do not earn their place.

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

Completeness4/5

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

An output schema exists, so return values need not be explained. The description covers auth/usage context, the empty-result caveat, and the bounded single-request nature. The main gap is sibling differentiation against v2GetMarketsByDate and v2GetAvailableMarketsByEvent, which an agent needs to route 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?

The description adds nothing about parameters; its only parameter-adjacent statement ('Use returned canonical IDs') concerns outputs. The input schema itself does document sportID (with common value table) and offset (UTC minutes), which conflicts with the reported 0% coverage, but judged strictly against the description text it contributes no semantic meaning beyond the schema.

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

Purpose4/5

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

The first sentence gives a specific verb and resource with scope ('available markets for a sport and date'), which is enough to distinguish it from event-scoped siblings like v2GetAvailableMarketsByEvent. However, it never distinguishes itself from the very close sibling v2GetMarketsByDate, and the trailing 'Product data or price calculation' fragment muddies rather than sharpens the purpose.

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

Usage Guidelines3/5

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

It gives downstream guidance ('Use returned canonical IDs') and a real caveat ('never infer coverage from an empty result'), but there is no explicit when-to-use versus the many market/odds siblings (v2GetAllMarkets, v2GetMarketsByDate, v2GetAvailableMarketsByEvent). Usage is implied rather than stated.

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

v2GetMarketsDeltaGet market price changes since a given IDA
Read-onlyIdempotent
Inspect

Get market price changes since a given ID Returns market line price changes (new, updated, closed) since the specified last_id. Use for efficient polling.

Bootstrap flow: On known zero-delay access, call GET /api/v2/sports/{sportID}/events/{date} with the snapshot scope you need. Use its positive whole-integer meta.delta_last_id only when that response explicitly reports X-Data-Delay-Seconds: 0, then pass it as last_id. If the header is positive, absent, or invalid, keep using scoped snapshots; do not substitute 0.

Staleness guard: Cursors older than 30 minutes are rejected with HTTP 400. After a cursor error, take at most one fresh scoped snapshot and resume only when it meets the same zero-delay and valid-cursor conditions. Do not loop bootstrap requests.

Core live markets: Event snapshots expand market_ids=1,2,3 to include in-play IDs. This delta endpoint filters IDs literally, so poll 1,2,3,41,42,43 to receive full-game core updates before and during play. Returned rows retain their actual market IDs. Read-only Product data or price calculation. Use returned canonical IDs. Access, delay and metered usage follow your connected account; never infer coverage from an empty result. One bounded request, no background polling or automatic retry. Affiliate 27 is excluded. No wagers, account changes or guarantee of returns.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNo
planNo
emptyNo
errorNo
usageNo
statusNo
messageNo
event_idNo
source_urlNo
retry_afterNo
limit_reasonNo
retrieved_atNo
required_planNo
remaining_pointsNo
missing_entitlementNo
monthly_remaining_pointsNo

TDQS

A4.5/5.0
Behavior5/5

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

Annotations already declare read-only, idempotent, non-destructive, open-world behavior, and the description adds substantial extra context: 30-minute cursor rejection with HTTP 400, one bounded request with no background polling or automatic retry, metered/account-scoped access, affiliate 27 exclusion, and no guarantee of returns. It also warns that empty results do not imply lack of coverage.

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

Conciseness4/5

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

Front-loaded with the core purpose before the bootstrap/staleness detail, and most sentences carry operational information. It is dense and long, and fragments like 'Read-only Product data or price calculation' with an embedded line break read awkwardly and slightly dilute the otherwise tight structure.

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 delta-polling tool with an output schema already present, the description covers everything an agent needs: cursor acquisition, staleness rules, filtering semantics, polling strategy for live markets, and account/usage caveats. Return-value explanation is correctly delegated to the output 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?

The reported schema coverage is 0% for the top-level query object, so the description must compensate, and it does: it explains last_id provenance and validity, the literal market_ids filtering with the 1,2,3,41,42,43 core-market expansion, and the affiliate_ids exclusion. Much of this also appears in the nested schema descriptions, so the added value over the schema is real but partly duplicative.

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

Purpose4/5

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

States a specific verb+resource ('Get market price changes since a given ID', returns new/updated/closed market line changes) and names the intended use case ('efficient polling'). However, it never distinguishes itself from the closely named sibling v2GetDelta, so an agent cannot tell which delta endpoint to pick without opening both schemas.

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

Usage Guidelines5/5

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

Explicitly states when to use it (polling for deltas), when not to bootstrap (only on known zero-delay access with a valid positive meta.delta_last_id, never substitute 0), what to do on cursor failure (one fresh scoped snapshot, no looping), and how to poll core live markets. This is unusually complete when/why/alternative guidance.

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

v2GetMarketsParticipantsGet market participantsA
Read-onlyIdempotent
Inspect

Get market participants Lists teams, players, or result sides for the requested event and markets. Use participant_id from this response, rather than id, to filter a participant-specific chart. Market 3 totals use TYPE_RESULT Over and Under participants, while markets 1 and 2 use TYPE_TEAM participants. For example, discover totals with GET /api/v2/markets/participants?event_id=733a06aa4f4f2a3af7872c3667a60f22&market_ids=3&participant_type=TYPE_RESULT, then request each discovered side from GET /api/v2/events/{eventID}/markets/{marketID}/history. Read-only Product data or price calculation. Use returned canonical IDs. Access, delay and metered usage follow your connected account; never infer coverage from an empty result. One bounded request, no background polling or automatic retry. Affiliate 27 is excluded. No wagers, account changes or guarantee of returns.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNo
planNo
emptyNo
errorNo
usageNo
statusNo
messageNo
event_idNo
source_urlNo
retry_afterNo
limit_reasonNo
retrieved_atNo
required_planNo
remaining_pointsNo
missing_entitlementNo
monthly_remaining_pointsNo

TDQS

A4.4/5.0
Behavior4/5

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

The annotations already cover the safety profile (readOnlyHint, idempotentHint, destructiveHint=false), so the description's job is to add context beyond safety — which it does: it warns about access/delay/metered usage following the connected account, that an empty result must not be read as lack of coverage, that it is a single bounded request with no background polling or automatic retry, that Affiliate 27 is excluded, and that it is not for wagers or account changes. The only gap is no mention of pagination or output shape, but an output schema exists.

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 content is front-loaded with the core purpose and market-mapping rule, but the description runs long, mixing usage guidance, example URL, cross-endpoint chaining, behavioral disclaimers, and a no-wagers notice in a single block. It is dense rather than wasteful, but an agent reading in one pass may lose the routing thread.

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 an output schema, the description need not describe return values, and it appropriately focuses on usage, chaining, and coverage caveats. The only missing piece is a note on pagination or result limits for a participant list, but given the output schema and the rich usage guidance, coverage is strong.

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

Parameters4/5

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

Schema description coverage is 0%, so the description carries the full parameter burden. It explains that participant_id (from the response) should be used rather than the generic id for filtering, and it demonstrates event_id, market_ids, and participant_type syntax in the example URL. It does not separately document participant_ids or the exact comma-separated constraints, but the example and the id distinction are meaningful additions beyond the schema.

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

Purpose5/5

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

The description states a specific verb (Get) and resource (market participants) plus the scope — teams, players, or result sides for a requested event and markets. It also names the sibling use case (filtering participant-specific charts via history endpoints), which no other sibling tool does, so an agent can distinguish it from v2GetMarketsByDate or v2GetPlayersByTeam.

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?

There is explicit when-to-use guidance ('Use participant_id from this response to filter a participant-specific chart'), a concrete worked example with a full URL, and the market-specific mapping rules (market 3 uses TYPE_RESULT, markets 1 and 2 use TYPE_TEAM). This is more than routing — it instructs how to chain the response into the correct history endpoint.

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

v2GetOpenersBySportAndDateGet opening lines for a sport and dateA
Read-onlyIdempotent
Inspect

Get opening lines for a sport and date Returns events with the earliest recorded price for each available line at each sportsbook. Opening snapshots are available whenever a price has been recorded, including before, during, or after an event. Read-only Product data or price calculation. Use returned canonical IDs. Access, delay and metered usage follow your connected account; never infer coverage from an empty result. One bounded request, no background polling or automatic retry. Affiliate 27 is excluded. No wagers, account changes or guarantee of returns.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
queryNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNo
planNo
emptyNo
errorNo
usageNo
statusNo
messageNo
event_idNo
source_urlNo
retry_afterNo
limit_reasonNo
retrieved_atNo
required_planNo
remaining_pointsNo
missing_entitlementNo
monthly_remaining_pointsNo

TDQS

A3.6/5.0
Behavior4/5

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

Annotations already cover the safety profile (readOnly, idempotent, non-destructive, open-world), so the bar is lower. The description still adds genuinely useful operational context beyond them: metered/account-scoped access and delay, 'never infer coverage from an empty result,' a single bounded request with no background polling or retry, and the affiliate 27 exclusion. It does not describe pagination or snapshot completeness limits, keeping it out of 5 territory.

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?

Purpose is front-loaded, but the opening is a run-on with a missing sentence break ('...for a sport and date Returns events with...'), and the trailing sentences ('No wagers, account changes or guarantee of returns') read as boilerplate. Several sentences earn their place; a few do not.

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

Completeness4/5

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

An output schema exists, so return values need not be explained, and the description covers the operational concerns an agent needs (account-scoped access, no retry, empty-result caveat, affiliate exclusion). What is missing is routing versus the closing/event-level siblings, which is the one gap for a tool in this crowded family.

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?

Top-level schema description coverage is reported at 0%, but the nested path/query properties carry extensive documentation (sportID common values, offset in minutes, market_ids limits, affiliate_ids semantics), so the schema is doing the heavy lifting. The description itself contributes only 'use returned canonical IDs,' which is a weak tie-in to the response rather than clarification of the two input parameters. Baseline 3 is appropriate given the schema's visible richness.

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

Purpose4/5

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

States a specific verb+resource (get opening lines for a sport and date) and adds real substance: 'earliest recorded price for each available line at each sportsbook.' That distinguishes it from the many closing/event-level siblings. It does not explicitly name v2GetClosingBySportAndDate or v2GetEventOpeners, so the agent must infer differentiation from the name and the word 'opening'.

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

Usage Guidelines3/5

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

Gives some contextual guidance ('opening snapshots are available whenever a price has been recorded, including before, during, or after an event'), which tells the agent when snapshots exist. However, it never states when to use this over v2GetClosingBySportAndDate, v2GetEventOpeners, or v1GetOpenersBySportAndDate, and offers no exclusion guidance. Usage is implied rather than directed.

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

v2GetOpeningPricesByEventGet opening prices for an event's marketsA
Read-onlyIdempotent
Inspect

Get opening prices for an event's markets Read-only Product data or price calculation. Use returned canonical IDs. Access, delay and metered usage follow your connected account; never infer coverage from an empty result. One bounded request, no background polling or automatic retry. Affiliate 27 is excluded. No wagers, account changes or guarantee of returns.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
queryNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNo
planNo
emptyNo
errorNo
usageNo
statusNo
messageNo
event_idNo
source_urlNo
retry_afterNo
limit_reasonNo
retrieved_atNo
required_planNo
remaining_pointsNo
missing_entitlementNo
monthly_remaining_pointsNo

TDQS

A3.6/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, openWorld and non-destructive, so safety is covered. The description goes beyond them with genuinely useful operational context: access/delay/metered usage follow the connected account, one bounded request with no server-side polling or retry, and affiliate 27 is excluded. That is real disclosure the annotations do not carry.

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 content is dense and mostly earns its place, but the prose is run-on and poorly punctuated ('markets Read-only Product data or price calculation'), and the key scoping fact is buried mid-sentence rather than front-loaded. Structure detracts from an otherwise short payload.

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

Completeness4/5

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

With an output schema present, return values need no explanation, and annotations cover the safety profile. The description adds the scoping, exclusion, and non-retry behavior an agent needs. Remaining gaps are minor for a single-resource read tool.

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

Parameters3/5

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

Reported schema coverage is 0%, so the description bears more weight. It does add meaning for the path parameter ('canonical IDs' from event endpoints) and reinforces the affiliate filter ('Affiliate 27 is excluded'), but market_ids handling and the affiliate_ids=0 sentinel behavior are only in the schema text, not the description. Partial compensation merits a 3.

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 first clause states a specific verb and resource: get opening prices for an event's markets. It is clear what the tool returns. However, it never distinguishes itself from close siblings like v2GetEventOpeners or v1GetOpenersBySportAndDate, so the agent must infer the boundary from the name alone.

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

Usage Guidelines3/5

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

Guidance is implied rather than explicit: 'Use returned canonical IDs' hints at chaining from event endpoints, and 'never infer coverage from an empty result' warns about interpreting results. But there is no when-to-use vs when-not statement relative to the opener siblings, leaving alternative selection to inference.

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

v2GetOutliersGet Bookmaker Outliers by Sport and Date using sport_id/date queryA
Read-onlyIdempotent
Inspect

Get Bookmaker Outliers by Sport and Date using sport_id/date query Returns prices from one sportsbook that are most out of line with the peer-book consensus for matching event, market, period, participant, and line. The date scope keeps the query bounded and cacheable. Read-only Product data or price calculation. Use returned canonical IDs. Access, delay and metered usage follow your connected account; never infer coverage from an empty result. One bounded request, no background polling or automatic retry. Affiliate 27 is excluded. No wagers, account changes or guarantee of returns.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNo
planNo
emptyNo
errorNo
usageNo
statusNo
messageNo
event_idNo
source_urlNo
retry_afterNo
limit_reasonNo
retrieved_atNo
required_planNo
remaining_pointsNo
missing_entitlementNo
monthly_remaining_pointsNo

TDQS

A3.6/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint and destructiveHint=false, so safety is covered. The description goes beyond them with genuinely useful behavior: affiliate 27 is excluded, access/delay/metered usage depend on the connected account, results are bounded and cacheable by date, there is no automatic retry, and an empty result does not imply missing coverage. It does not describe pagination or the shape of a ranked outlier, but the additions are substantive.

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

Conciseness3/5

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

The core definition is front-loaded and the consensus sentence is excellent, but the tail accumulates boilerplate ('Read-only Product data or price calculation', 'No wagers, account changes or guarantee of returns') that reads like compliance copy rather than invocation guidance. Several sentences could be compressed without losing agent-relevant 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?

An output schema exists, so return values need not be explained, and the description covers the remaining gaps an agent would care about: read-only nature, account-dependent metering, bounded/cacheable scope, excluded affiliate, and empty-result interpretation. The one real omission is sibling differentiation, which matters given the near-duplicate outlier tool in the list.

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

Parameters3/5

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

The schema itself documents every property (date format, limit, min_peers as minimum peer prices for consensus, affiliate_ids format, affiliate 27 exclusion), so the structured field already carries the parameter burden regardless of the reported coverage figure. The description reinforces the consensus concept and the affiliate-27 exclusion but adds no format, default, or range detail the schema lacks.

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

Purpose4/5

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

The description states a specific verb and resource and then defines what an 'outlier' actually is: prices from one sportsbook most out of line with the peer-book consensus for a matching event/market/period/participant/line. That is far more informative than the tautological title. However, it never distinguishes itself from the near-identical sibling v2GetOutliersBySportAndDate, which is the single most important disambiguation an agent needs here.

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

Usage Guidelines3/5

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

It gives operational context ('One bounded request, no background polling or automatic retry', 'Use returned canonical IDs') and warns not to infer coverage from an empty result, which is useful. But it offers no explicit when-to-use guidance and never names an alternative or the condition that would select v2GetOutliersBySportAndDate over this tool, so routing is left to inference.

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

v2GetOutliersBySportAndDateGet Bookmaker Outliers by Sport and DateB
Read-onlyIdempotent
Inspect

Get Bookmaker Outliers by Sport and Date Returns prices from one sportsbook that are most out of line with the peer-book consensus for matching event, market, period, participant, and line. The date scope keeps the query bounded and cacheable. Read-only Product data or price calculation. Use returned canonical IDs. Access, delay and metered usage follow your connected account; never infer coverage from an empty result. One bounded request, no background polling or automatic retry. Affiliate 27 is excluded. No wagers, account changes or guarantee of returns.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
queryYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNo
planNo
emptyNo
errorNo
usageNo
statusNo
messageNo
event_idNo
source_urlNo
retry_afterNo
limit_reasonNo
retrieved_atNo
required_planNo
remaining_pointsNo
missing_entitlementNo
monthly_remaining_pointsNo

TDQS

B3.4/5.0
Behavior4/5

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

Adds real context beyond the annotations: metered usage and delay follow the account, empty results don't imply no coverage, affiliate 27 is excluded, and no retry/polling is expected. Annotations already cover the read-only/idempotent/non-destructive safety profile, and the description complements rather than repeats them.

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?

Purpose is front-loaded, but the body reads as template boilerplate with clipped fragments ('Read-only Product data or price calculation.'), which costs clarity. Sized acceptably but not tightly edited.

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

Completeness4/5

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

With an output schema present, return values need not be described, and the annotations plus description together cover safety, usage limits, and the affiliate exclusion. The remaining gap is parameter-level detail for the query options.

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?

Top-level schema description coverage is 0% (path and query carry no description), so the description must carry the load, yet it only restates the affiliate-27 exclusion already present in the nested schema and says nothing about limit, offset, min_peers, or sample_limit semantics. It adds little parameter meaning.

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

Purpose4/5

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

States a specific verb (Get) and resource (Bookmaker Outliers) and defines the concept precisely: prices most out of line with peer-book consensus for matching event, market, period, participant, and line. It does not explicitly distinguish itself from the close sibling v2GetOutliers, 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 Guidelines3/5

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

Implies when to use it via the sport/date scoping and the 'one bounded request, no background polling or automatic retry' constraint, and warns against inferring coverage from an empty result. But it never names an alternative or states when to prefer this over v2GetOutliers or the steamers endpoints.

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

v2GetParlayBookFind Best Same-Book Parlay PriceA
Read-onlyIdempotent
Inspect

Find Best Same-Book Parlay Price Returns sportsbooks that currently have every requested leg open, ranked by the combined same-book price. The response does not guarantee that a sportsbook will accept the exact betslip combination. Read-only Product data or price calculation. Use returned canonical IDs. Access, delay and metered usage follow your connected account; never infer coverage from an empty result. One bounded request, no background polling or automatic retry. Affiliate 27 is excluded. No wagers, account changes or guarantee of returns. POST computes same-book prices from existing public prices; it does not submit a bet.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyYesRead-only same-book price calculation; does not place a wager.

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNo
planNo
emptyNo
errorNo
usageNo
statusNo
messageNo
event_idNo
source_urlNo
retry_afterNo
limit_reasonNo
retrieved_atNo
required_planNo
remaining_pointsNo
missing_entitlementNo
monthly_remaining_pointsNo

TDQS

A3.8/5.0
Behavior5/5

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

Annotations already declare read-only, idempotent, non-destructive and open-world, and the description adds real substance on top: results do not guarantee the sportsbook will accept the exact betslip, an empty result does not imply lack of coverage, POST computes prices from existing public prices rather than submitting a bet, and affiliate 27 is excluded. These are genuine behavioral caveats an agent needs.

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 opening concatenates the title directly into the sentence ('Find Best Same-Book Parlay Price Returns sportsbooks...'), which is awkward and mildly confusing. The trailing claims are somewhat repetitive — 'No wagers, account changes' restates 'does not submit a bet' — costing some density.

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

Completeness4/5

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

With an output schema present, return-value detail is unnecessary, and the description covers the safety profile, affiliate exclusion, retry/polling policy and empty-result caveat. The one missing piece is disambiguation from the very similar v2GetBestParlayBook sibling.

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

Parameters3/5

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

Schema coverage is 100%, so the schema already documents the body/legs/limit/affiliate_ids structure, including the affiliate-27 exclusion. The description adds no format or syntax detail beyond what the schema provides, so baseline 3 applies.

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

Purpose4/5

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

The description states a specific verb and resource: it returns sportsbooks that have every requested leg open, ranked by combined same-book price. That is concrete and actionable. However, it never distinguishes itself from the near-identically named sibling v2GetBestParlayBook, leaving the agent to guess which parlay-price tool to call.

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

Usage Guidelines3/5

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

It gives operational guidance (use returned canonical IDs, one bounded request, no background polling or automatic retry, affiliate 27 excluded) but never says when to choose this tool over v2GetBestParlayBook or v1GetBestLineMulti. Usage is implied rather than routed.

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

v2GetPlayerByIDGet a player by IDB
Read-onlyIdempotent
Inspect

Get a player by ID Read-only Product data or price calculation. Use returned canonical IDs. Access, delay and metered usage follow your connected account; never infer coverage from an empty result. One bounded request, no background polling or automatic retry. Affiliate 27 is excluded. No wagers, account changes or guarantee of returns.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNo
planNo
emptyNo
errorNo
usageNo
statusNo
messageNo
event_idNo
source_urlNo
retry_afterNo
limit_reasonNo
retrieved_atNo
required_planNo
remaining_pointsNo
missing_entitlementNo
monthly_remaining_pointsNo

TDQS

B3.2/5.0
Behavior4/5

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

Annotations already declare read-only, idempotent, open-world, non-destructive behavior. The description adds real context beyond them: access/delay/metered usage depend on the connected account, an empty result does not imply lack of coverage, one bounded request with no polling or retry, and Affiliate 27 is excluded. These are meaningful operational caveats.

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

Conciseness2/5

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

The first clause is front-loaded, but the remainder is a run-on stream of mixed boilerplate ('Product data or price calculation', affiliate exclusions, wager disclaimers) that reads as pasted policy text rather than tool-specific guidance. Several sentences do not earn their place in a single-parameter lookup description.

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

Completeness3/5

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

An output schema exists, so return values need not be explained, and annotations carry the safety profile. The description does cover access/metering caveats, but for a nested-object, by-ID lookup it omits any indication of what a successful player record contains or how 'not found' is signaled.

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

Parameters3/5

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

Schema description coverage is 0%, and the single playerID parameter (integer, 1..2147483647) is undocumented in the schema. The description partially compensates by indicating the ID should be a canonical ID returned elsewhere, but adds no format, source-endpoint, or error semantics for an invalid/unknown ID.

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 opening 'Get a player by ID' states a specific verb and resource, and the 'by ID' pattern is distinguishable from list-style siblings like v2GetPlayersByTeam. However, the following clause 'Product data or price calculation' is confusing boilerplate that does not clarify the tool's actual purpose or differentiate it from v2GetPlayerStatsByTeam/v2GetPlayersByTeam.

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

Usage Guidelines2/5

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

The only guidance is the terse 'Use returned canonical IDs', which hints that the playerID should come from a prior response but never names an alternative tool (e.g., v2GetPlayersByTeam) or states when this lookup is preferred. No when-not guidance is given.

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

v2GetPlayersByTeamGet players for a teamA
Read-onlyIdempotent
Inspect

Get players for a team Read-only Product data or price calculation. Use returned canonical IDs. Access, delay and metered usage follow your connected account; never infer coverage from an empty result. One bounded request, no background polling or automatic retry. Affiliate 27 is excluded. No wagers, account changes or guarantee of returns.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNo
planNo
emptyNo
errorNo
usageNo
statusNo
messageNo
event_idNo
source_urlNo
retry_afterNo
limit_reasonNo
retrieved_atNo
required_planNo
remaining_pointsNo
missing_entitlementNo
monthly_remaining_pointsNo

TDQS

A3.8/5.0
Behavior5/5

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

Annotations already cover readOnly, idempotent, openWorld, and non-destructive hints. The description adds substantial operational context: metered access follows the connected account, empty results do not imply missing coverage, one bounded request with no polling/retry, Affiliate 27 exclusion, and no wagers/account changes/return guarantees.

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 purpose is front-loaded, but the first sentence runs on and the description stacks several boilerplate clauses. It could be tightened without losing essential context.

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

Completeness4/5

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

For a simple read endpoint with annotations and an output schema, the description covers operational constraints (metering, retries, empty results) and exclusions. It lacks when-to-use guidance relative to similar siblings, but the core call is adequately described.

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 reported at 0%, and the single nested teamID parameter is only labeled 'Normalized team ID' in the schema. The description's 'Use returned canonical IDs' is a useful semantic hint about where to source the ID, but it never names teamID or clarifies the nested path requirement, so it only partially compensates.

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 verb+resource 'Get players for a team' is specific and distinguishes from single-player tools like v2GetPlayerByID by scope. It does not explicitly name or differentiate against any sibling, so it stays at 4.

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

Usage Guidelines3/5

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

The description offers usage context ('Product data or price calculation') and a sourcing rule ('Use returned canonical IDs'), but never states when to prefer this tool over alternatives such as v2GetPlayerStatsByTeam or v2GetTeamByID. Guidance is implied rather than explicit.

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

v2GetPlayerStatsByEventGet player game stats for an eventB
Read-onlyIdempotent
Inspect

Get player game stats for an event Read-only Product data or price calculation. Use returned canonical IDs. Access, delay and metered usage follow your connected account; never infer coverage from an empty result. One bounded request, no background polling or automatic retry. Affiliate 27 is excluded. No wagers, account changes or guarantee of returns.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
queryNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNo
planNo
emptyNo
errorNo
usageNo
statusNo
messageNo
event_idNo
source_urlNo
retry_afterNo
limit_reasonNo
retrieved_atNo
required_planNo
remaining_pointsNo
missing_entitlementNo
monthly_remaining_pointsNo

TDQS

B3.3/5.0
Behavior4/5

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

Annotations already declare readOnly/idempotent/non-destructive/openWorld, so the safety profile is covered. The description adds genuinely new operational context: access and delay follow the connected account, usage is metered, it is one bounded request with no retry, and affiliate 27 is excluded. It does not describe pagination or response size limits.

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

Conciseness3/5

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

The purpose is front-loaded, which is good, but the first sentence is missing terminal punctuation and the rest is a run-on of generic disclaimers ('No wagers, account changes or guarantee of returns') that are only loosely relevant to a read-only stats lookup.

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

Completeness3/5

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

An output schema exists so return values need no explanation, and the account-scoping and exclusion notes are useful. However, for a nested two-parameter tool with 0% schema coverage, the description leaves the required path structure and the stats/player ID semantics entirely to the schema.

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

Parameters2/5

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

Schema description coverage is reported at 0%, so the description must carry parameter meaning, but it only alludes to canonical IDs and never mentions eventID, stats_ids, or player_ids, nor their cardinality limits (12 stats / 6 players). An agent must open the schema to learn the required nested path and comma-separated format.

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 opening clause states a specific verb, resource and scope: 'Get player game stats for an event'. Combined with the name, an agent can separate it from v2GetStatsByEvent (event-level stats) and v2GetPlayerStatsByTeam (team-scoped player stats). It does not explicitly name a sibling to route away from, 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 Guidelines3/5

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

It gives real usage constraints ('Use returned canonical IDs', 'never infer coverage from an empty result', 'no background polling or automatic retry') but never says when to pick this over v2GetStatsByEvent or v2GetPlayerStatsByTeam, which are the closest alternatives. Usage context is implied rather than routed.

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

v2GetPlayerStatsByTeamGet player season stats for a teamB
Read-onlyIdempotent
Inspect

Get player season stats for a team Read-only Product data or price calculation. Use returned canonical IDs. Access, delay and metered usage follow your connected account; never infer coverage from an empty result. One bounded request, no background polling or automatic retry. Affiliate 27 is excluded. No wagers, account changes or guarantee of returns.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
queryNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNo
planNo
emptyNo
errorNo
usageNo
statusNo
messageNo
event_idNo
source_urlNo
retry_afterNo
limit_reasonNo
retrieved_atNo
required_planNo
remaining_pointsNo
missing_entitlementNo
monthly_remaining_pointsNo

TDQS

B3.3/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, non-destructive, openWorld. The description adds genuinely new behavior: metered usage tied to the connected account, one bounded request with no polling/retry, and no guarantee of returns. This exceeds what annotations convey.

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?

Purpose is front-loaded, but the remainder reads as a concatenated boilerplate policy block ('Read-only Product data or price calculation...') with some redundancy and no clear structure. It is not excessive in length but several clauses do not earn their place for this specific tool.

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

Completeness3/5

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

An output schema exists so return values need not be explained, and annotations cover the safety profile. The gap is that a nested-schema, 2-parameter tool with 0% schema coverage leaves parameter usage entirely undocumented, which is not compensated in the description.

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

Parameters2/5

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

Schema description coverage is reported at 0%, so the description should compensate, yet it says nothing about teamID, year, stats_ids, player_ids, or season_type semantics. The only nod is 'Use returned canonical IDs', which does not explain any parameter's format or constraints.

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+resource (get player season stats for a team), which is distinct from v2GetTeamStats and v2GetPlayerStatsByEvent. However it does not explicitly name or contrast those siblings, so an agent must infer the boundary from the scope wording alone.

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

Usage Guidelines3/5

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

It gives operational directives ('Use returned canonical IDs', 'never infer coverage from an empty result') and notes Affiliate 27 is excluded, which is useful context. But there is no explicit when-to-use vs alternatives guidance relative to the many sibling stat tools (v2GetPlayerStatsByEvent, v2GetTeamStats).

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

v2GetPlaysByEventGet play-by-play for an eventA
Read-onlyIdempotent
Inspect

Get play-by-play for an event Returns the play-by-play timeline for a live or completed event — one entry per play with description, period, game clock, running score, and (as attribution rolls out) the players involved. Live game state and play-by-play require an Ultra plan or higher; keys on lower tiers receive a 403. The companion live_game_state snapshot (current inning/quarter, count, base runners, possession, and more) is embedded on live event payloads for entitled keys. Also available for streaming via the plays channel on the V2 WebSocket. Read-only Product data or price calculation. Use returned canonical IDs. Access, delay and metered usage follow your connected account; never infer coverage from an empty result. One bounded request, no background polling or automatic retry. Affiliate 27 is excluded. No wagers, account changes or guarantee of returns.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
queryNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNo
planNo
emptyNo
errorNo
usageNo
statusNo
messageNo
event_idNo
source_urlNo
retry_afterNo
limit_reasonNo
retrieved_atNo
required_planNo
remaining_pointsNo
missing_entitlementNo
monthly_remaining_pointsNo

TDQS

A4/5.0
Behavior4/5

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

Adds real value beyond annotations: the Ultra-plan entitlement requirement with 403 behavior for lower tiers, the exclusion of Affiliate 27, the embedded `live_game_state` snapshot on live payloads, and the metering/no-retry constraints. Annotations already declare read-only/idempotent safety, so the extra access and entitlement context is the genuinely useful addition. Loses a point only because pagination/delay mechanics are left to the schema.

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

Conciseness3/5

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

Front-loaded and useful, but the second half drifts into generic legal/usage boilerplate ('No wagers, account changes or guarantee of returns', 'Affiliate 27 is excluded') that is not directly actionable for invoking this specific read-only tool, diluting the useful entitlement info.

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

Completeness4/5

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

Given an output schema exists, return-value detail is appropriately delegated. The description covers entitlement, live vs completed events, companion endpoint, and streaming alternative. It is nearly complete for an agent to call correctly, with only minor pagination experience detail missing.

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

Parameters4/5

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

Schema description coverage is 0%, so the description must compensate. It does implicitly via the play-level result shape (sequence ordering implied by the timeline and last-plays selection), but `before_sequence` cursor and `limit` behavior are only defined in the schema. The mention of the `event_id` field convention (in the schema) is not repeated, so the description adds moderate rather than full param value.

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

Purpose5/5

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

Specific verb (Get) + resource (play-by-play for an event), with the content enumerated: one entry per play with description, period, game clock, running score, and players. Distinguishes itself from stats/markets/odds siblings by describing the play-level timeline granularity.

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

Usage Guidelines3/5

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

Gives two meaningful routing signals: the `live_game_state` companion endpoint, and the `plays` WebSocket channel alternative. It also warns that an empty result must not be interpreted as coverage. However there is no explicit when-not-to-use statement and no guidance on whether to prefer this over v2GetStatsByEvent or v2GetPlayerStatsByEvent for related needs, so it is implied rather than prescriptive.

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

v2GetPublicTournamentRead public allowlisted tournament schedule and scores (no odds)A
Read-onlyIdempotent
Inspect

Read public allowlisted tournament schedule and scores (no odds) Read-only Product data or price calculation. Use returned canonical IDs. Access, delay and metered usage follow your connected account; never infer coverage from an empty result. One bounded request, no background polling or automatic retry. Affiliate 27 is excluded. No wagers, account changes or guarantee of returns.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNo
planNo
emptyNo
errorNo
usageNo
statusNo
messageNo
event_idNo
source_urlNo
retry_afterNo
limit_reasonNo
retrieved_atNo
required_planNo
remaining_pointsNo
missing_entitlementNo
monthly_remaining_pointsNo

TDQS

A3.7/5.0
Behavior4/5

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

Annotations cover readOnly/idempotent/non-destructive, and the description adds real value beyond them: affiliate 27 exclusion, no-wagers constraint, empty-result caveat, and 'no background polling or automatic retry'. Does not explain return format or the 'allowlist' membership rules, but that is covered adequately given the output schema exists.

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

Conciseness1/5

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

The first sentence duplicates the title verbatim, then the description reads as a run-on list of unrelated constraints (price calculation, affiliate exclusion, wagers, guarantees). Front-loading is poor and several clauses (e.g., 'Product data or price calculation') add no actionable meaning.

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

Completeness3/5

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

Covers the main behavioral guardrails for a read-only public endpoint, and an output schema exists so return values needn't be explained. But the disjointed phrasing, tautological opening, and absence of usage guidance against the many sibling listing/schedule tools leave the agent without clear routing information.

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

Parameters4/5

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

Only one parameter, whose enum is visible in the schema ('fifa'). Description says nothing about the path.tournament parameter's allowed values or format, so it adds no meaning beyond the schema — but with a single fully-enumerated parameter, the baseline is a 4.

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

Purpose5/5

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

States a specific verb (Read) plus resource (public allowlisted tournament schedule and scores) and explicitly excludes odds. Distinguishable from odds-oriented siblings like v2GetBestOdds and v2GetOutliers.

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

Usage Guidelines3/5

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

Provides behavioral guardrails (no polling, no retry, use canonical IDs) but never says when to use this tool versus alternatives like get_main_lines or v1GetScheduleBySport. Usage context is implied by the 'public allowlisted' scope rather than explicitly stated.

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

v2GetSeasonTypesList season types per sportA
Read-onlyIdempotent
Inspect

List season types per sport Read-only Product data or price calculation. Use returned canonical IDs. Access, delay and metered usage follow your connected account; never infer coverage from an empty result. One bounded request, no background polling or automatic retry. Affiliate 27 is excluded. No wagers, account changes or guarantee of returns.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNo
planNo
emptyNo
errorNo
usageNo
statusNo
messageNo
event_idNo
source_urlNo
retry_afterNo
limit_reasonNo
retrieved_atNo
required_planNo
remaining_pointsNo
missing_entitlementNo
monthly_remaining_pointsNo

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already declare readOnly/idempotent/non-destructive/openWorld, so the safety profile is covered. The description adds genuinely useful operational context beyond that: bounded single request, no polling or auto-retry, affiliate 27 excluded, and no wagers or account changes.

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 content is mostly useful, but the text is a run-on with missing punctuation ('per sport Read-only Product data...') and mixes several unrelated caveats into one block. The purpose is front-loaded, but the delivery is not clean.

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

Completeness4/5

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

An output schema exists, so return values need not be explained, and annotations cover the safety profile. The description adds the access/metering and exclusion caveats that complete the picture; only the 'per sport' wording without a corresponding parameter is a small 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?

Zero parameters, so per the rubric the baseline is 4. The phrase 'per sport' is slightly at odds with the empty schema, but with no parameters to document there is little the description could add.

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

Purpose4/5

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

States a specific verb and resource ('List season types per sport'), so an agent knows exactly what data comes back. It does not explicitly distinguish itself from the sibling v1GetSeasonTypes, which is the obvious alternative, so it falls short of a 5.

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

Usage Guidelines3/5

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

Offers 'Use returned canonical IDs' and a data-vs-price-calculation context, which implies usage. However it never says when to prefer this over v1GetSeasonTypes or the other listing tools, and no exclusion criteria are given.

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

v2GetSportsList all sportsA
Read-onlyIdempotent
Inspect

List all sports Returns all available sports with their IDs. No authentication required. Read-only Product data or price calculation. Use returned canonical IDs. Access, delay and metered usage follow your connected account; never infer coverage from an empty result. One bounded request, no background polling or automatic retry. Affiliate 27 is excluded. No wagers, account changes or guarantee of returns.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNo
planNo
emptyNo
errorNo
usageNo
statusNo
messageNo
event_idNo
source_urlNo
retry_afterNo
limit_reasonNo
retrieved_atNo
required_planNo
remaining_pointsNo
missing_entitlementNo
monthly_remaining_pointsNo

TDQS

A3.6/5.0
Behavior4/5

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

Beyond the readOnly/idempotent/openWorld annotations, the description adds genuinely useful behavior: no authentication required, affiliate 27 excluded, empty results are not evidence of missing coverage, and no background polling or automatic retry. The garbled fragment 'Read-only Product data or price calculation' is noise, but the rest meaningfully extends 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.

Conciseness2/5

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

The text is a single run-on string with no sentence boundaries, mixing purpose, auth, affiliate exclusion, retry policy, and disclaimers ('No wagers, account changes or guarantee of returns') that are irrelevant to a read-only sports list. The garbled 'Read-only Product data or price calculation' fragment further harms readability.

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

Completeness4/5

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

An output schema exists, so return values need no explanation, and the description covers auth requirements, ID usage, and the empty-result caveat. For a zero-parameter read tool it is largely complete, held back only by the jumbled presentation.

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

Parameters4/5

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

The tool takes zero parameters, so there is nothing for the description to disambiguate and the baseline of 4 applies. The mention of canonical IDs is about output, not input semantics.

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 opening clause 'List all sports Returns all available sports with their IDs' states a specific verb and resource, and the ID detail helps. It does not, however, distinguish this tool from near-identically named siblings like v1GetSports and list_sports, which an agent must disambiguate on its own.

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

Usage Guidelines3/5

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

'Use returned canonical IDs' implies the downstream consumption pattern, which is useful. But there is no explicit when-to-use guidance or comparison against the v1GetSports/list_sports alternatives that clearly overlap, leaving selection to inference.

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

v2GetSportsbooksList all sportsbooks (alias for /affiliates)C
Read-onlyIdempotent
Inspect

List all sportsbooks (alias for /affiliates) Read-only Product data or price calculation. Use returned canonical IDs. Access, delay and metered usage follow your connected account; never infer coverage from an empty result. One bounded request, no background polling or automatic retry. Affiliate 27 is excluded. No wagers, account changes or guarantee of returns.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNo
planNo
emptyNo
errorNo
usageNo
statusNo
messageNo
event_idNo
source_urlNo
retry_afterNo
limit_reasonNo
retrieved_atNo
required_planNo
remaining_pointsNo
missing_entitlementNo
monthly_remaining_pointsNo

TDQS

C2.9/5.0
Behavior4/5

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

Annotations already declare readOnly/idempotent/openWorld/non-destructive, so the safety profile is covered; the description goes further by disclosing that Affiliate 27 is excluded, that coverage should not be inferred from empty results, that usage is metered/delayed per account, and that there is no background polling or automatic retry. These are real behavioral traits not present in 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.

Conciseness3/5

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

Purpose is front-loaded, which is good, but the body is a run-on string of clauses with boilerplate ("No wagers, account changes or guarantee of returns") that reads like generic compliance filler rather than tool-specific information. Some clauses earn their place; others dilute the signal.

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

Completeness3/5

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

An output schema exists, so return values need not be described, and the exclusion/usage caveats are useful. However, the sole input parameter is unexplained and the tool's relationship to v2GetAffiliates (it is called an alias) is not resolved, leaving an agent unable to know what actually comes back versus the affiliate endpoint.

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

Parameters2/5

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

Schema description coverage is 0% for the single nested query.include parameter (enum "regions"), and the description says nothing about it — not what it does, nor that omitting it returns everything. The only hint ("Use returned canonical IDs") concerns output, not input, so the parameter is effectively undocumented.

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

Purpose3/5

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

The title and first clause state a clear verb+resource ("List all sportsbooks"), but the description then muddies it with "Read-only Product data or price calculation" and "alias for /affiliates" — an agent can't tell whether this returns books, product data, or affiliate records. It also fails to distinguish itself from siblings v1GetSportsbooks and v2GetAffiliates, which likely overlap.

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

Usage Guidelines2/5

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

There is no explicit when-to-use guidance despite ~80 sibling tools including v1GetSportsbooks, list_affiliates, and v2GetAffiliates. The line "Use returned canonical IDs" is downstream advice, not a selection rule. The agent is left to infer when this alias should be preferred over its siblings.

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

v2GetStatsByEventGet team game stats for an eventB
Read-onlyIdempotent
Inspect

Get team game stats for an event Read-only Product data or price calculation. Use returned canonical IDs. Access, delay and metered usage follow your connected account; never infer coverage from an empty result. One bounded request, no background polling or automatic retry. Affiliate 27 is excluded. No wagers, account changes or guarantee of returns.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
queryNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNo
planNo
emptyNo
errorNo
usageNo
statusNo
messageNo
event_idNo
source_urlNo
retry_afterNo
limit_reasonNo
retrieved_atNo
required_planNo
remaining_pointsNo
missing_entitlementNo
monthly_remaining_pointsNo

TDQS

B3.3/5.0
Behavior4/5

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

Annotations already declare readOnly/idempotent/openWorld/non-destructive, yet the description still adds real operational context: metered usage and delay follow the connected account, empty results do not imply no coverage, affiliate 27 is excluded, and there is no automatic retry. That is genuine value beyond the structured hints, though the string of constraints reads as boilerplate rather than tailored disclosure.

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?

Purpose is front-loaded in the first clause, which is good, but the remainder is a run-on sequence of loosely related caveats (affiliates, metering, retries, wagers) that would benefit from separation. Several sentences restate the same 'this is a bounded read-only request' idea.

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

Completeness3/5

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

An output schema exists, so return-shape explanation is not required, and the description covers the read-only scope, account-dependent metering, and the affiliate exclusion. It still omits the one thing an agent needs most in this dense sibling set: how this differs from v2GetTeamStats and other event-scoped stat tools.

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 schema itself documents eventID (canonical V2 event ID) and both query filters, and the description only reinforces the canonical-ID requirement without adding format or filtering detail. The team_id and stats_ids parameters are left entirely to the schema, so the description neither compensates for nor extends parameter meaning.

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 opening clause names a specific verb ('Get') and resource ('team game stats for an event'), which is unambiguous about what is returned. However, it never distinguishes itself from close siblings like v2GetTeamStats or v2GetPlayerStatsByEvent, so an agent must infer the scope difference from the parameter shape alone.

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

Usage Guidelines2/5

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

There is no statement of when to use this tool versus the numerous alternatives, and no prerequisites or exclusions tied to a selection decision. The closest thing to guidance is 'Use returned canonical IDs' and 'One bounded request, no background polling,' which describe usage constraints rather than routing logic.

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

v2GetStatsSampleGet a fixed complete-game stats sampleA
Read-onlyIdempotent
Inspect

Get a fixed complete-game stats sample Returns a static, marked sample game box for schema and parsing tests. It requires an API key but consumes zero data points. It is not a production-data entitlement and must not be polled. Read-only Product data or price calculation. Use returned canonical IDs. Access, delay and metered usage follow your connected account; never infer coverage from an empty result. One bounded request, no background polling or automatic retry. Affiliate 27 is excluded. No wagers, account changes or guarantee of returns.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNo
planNo
emptyNo
errorNo
usageNo
statusNo
messageNo
event_idNo
source_urlNo
retry_afterNo
limit_reasonNo
retrieved_atNo
required_planNo
remaining_pointsNo
missing_entitlementNo
monthly_remaining_pointsNo

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already cover the read-only/idempotent/non-destructive profile, yet the description adds substantive traits: it requires an API key, consumes zero data points, is not an entitlement, must not be polled, and is 'one bounded request, no background polling or automatic retry.' The remaining clauses about wagers, price calculation, and affiliate 27 are generic boilerplate not specific to a stats sample.

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

Conciseness2/5

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

The key facts are front-loaded, but the description is padded with template text irrelevant to a static sample: 'Read-only Product data or price calculation,' 'Use returned canonical IDs,' 'No wagers, account changes or guarantee of returns,' and the affiliate-27 exclusion. Several sentences do not earn their place here.

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

Completeness4/5

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

Given an output schema exists and there are no parameters, the description need not explain return values, and it adequately covers the constraints (API key, zero quota, no polling) plus the nature of the response. The stray boilerplate is noise rather than a missing-information gap.

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

Parameters4/5

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

The tool takes zero parameters, so per the rubric the baseline is 4. There is no parameter syntax the description could add, and it correctly implies no input is required to fetch the fixed sample.

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 opening sentence states a specific verb and resource ('Get a fixed complete-game stats sample') and immediately clarifies it is 'a static, marked sample game box for schema and parsing tests.' This clearly distinguishes it from the real-data siblings such as v2GetStatsByEvent, v2GetAllStats, and v2GetTeamStats.

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 clear context for use ('for schema and parsing tests'), states it is 'not a production-data entitlement,' and forbids polling. It does not explicitly name a sibling as the production alternative, but the when-to-use boundary is unambiguous.

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

v2GetSteamersGet Steamers by Sport and Date using sport_id/date queryA
Read-onlyIdempotent
Inspect

Get Steamers by Sport and Date using sport_id/date query Returns open prices for a sport and event date whose implied probability moved the most during the requested lookback window. Read-only Product data or price calculation. Use returned canonical IDs. Access, delay and metered usage follow your connected account; never infer coverage from an empty result. One bounded request, no background polling or automatic retry. Affiliate 27 is excluded. No wagers, account changes or guarantee of returns.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNo
planNo
emptyNo
errorNo
usageNo
statusNo
messageNo
event_idNo
source_urlNo
retry_afterNo
limit_reasonNo
retrieved_atNo
required_planNo
remaining_pointsNo
missing_entitlementNo
monthly_remaining_pointsNo

TDQS

A3.6/5.0
Behavior4/5

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

Annotations already declare read-only, idempotent, non-destructive, so the safety profile is covered. The description adds real beyond-annotation context: access/delay/metered usage tied to the connected account, no background polling or retry, affiliate 27 excluded, and empty results do not imply missing coverage. It omits pagination behavior, though offset/limit are bounded in the schema.

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

Conciseness3/5

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

Front-loads the what-it-does clause, but that clause is a near-copy of the title. The remainder is a string of clipped fragments ('Read-only Product data or price calculation.', 'No wagers, account changes or guarantee of returns.') that read as boilerplate disclaimers rather than information the agent needs to call the tool.

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?

Since an output schema exists, return shape need not be explained, and the description does explain the core semantics of the ranking, the account-scoped access caveat, and the affiliate exclusion. It is nearly complete for a one-parameter nested object; the missing piece is distinguishing it from its identically-purposed sibling.

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 schema's nested properties carry descriptions (date format, limit, offset as UTC minute adjustment, affiliate_ids rules, window_minutes), so the description's contribution is limited to echoing sport_id/date, the lookback window, and the affiliate-27 exclusion — which duplicates the affiliate_ids schema text verbatim. No additional meaning is added for offset or limit, so this sits at the baseline rather than compensating for the reported low 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 names a specific resource and defines the otherwise-jargon term 'steamer' concretely: open prices for a sport/date whose implied probability moved most during the lookback window. It does not, however, differentiate from the sibling v2GetSteamersBySportAndDate or v2GetOutliersBySportAndDate, which is the one thing an agent most needs here. The opening clause largely restates the title.

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

Usage Guidelines3/5

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

Offers operational guidance ('One bounded request, no background polling or automatic retry', 'Use returned canonical IDs') and a data-interpretation warning ('never infer coverage from an empty result'), which is useful. But it gives no explicit when-to-use vs. the near-identical sibling v2GetSteamersBySportAndDate, nor when this beats v2GetOutliersBySportAndDate — usage is implied rather than stated.

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

v2GetSteamersBySportAndDateGet Steamers by Sport and DateA
Read-onlyIdempotent
Inspect

Get Steamers by Sport and Date Returns open prices for a sport and event date whose implied probability moved the most during the requested lookback window. Read-only Product data or price calculation. Use returned canonical IDs. Access, delay and metered usage follow your connected account; never infer coverage from an empty result. One bounded request, no background polling or automatic retry. Affiliate 27 is excluded. No wagers, account changes or guarantee of returns.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
queryNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNo
planNo
emptyNo
errorNo
usageNo
statusNo
messageNo
event_idNo
source_urlNo
retry_afterNo
limit_reasonNo
retrieved_atNo
required_planNo
remaining_pointsNo
missing_entitlementNo
monthly_remaining_pointsNo

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already declare read-only, idempotent, open-world, non-destructive. The description adds real behavioral context beyond that: affiliate 27 is excluded, access/delay/metered usage follow the connected account, empty results do not imply missing coverage, and there is no background polling or automatic retry. It stops short of describing the return shape or pagination, but the added disclosure is substantive.

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 following fragments are dense but each carries operational information (read-only, canonical IDs, no polling, affiliate exclusion, no wagers). The phrasing is slightly run-on and repeats 'by Sport and Date' from the title, but there is little true 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?

With an output schema present and rich annotations, the description need not explain return values, and it covers the key operational caveats an agent needs (bounded single request, account-scoped metering, affiliate 27 exclusion, empty-result caution). The main remaining gap is that it never contrasts itself with the many near-identical sibling tools.

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 reported schema description coverage is 0%, so the description would normally need to carry the parameter burden; it only partially does, alluding to the lookback window and the affiliate 27 exclusion (mapping to window_minutes and affiliate_ids). It adds no syntax or semantics for sport_id, date, limit, or offset. Baseline 3 reflects partial compensation.

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

Purpose4/5

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

The description states a specific verb and resource (returns open prices for a sport and date) and adds the discriminating scope: prices whose implied probability moved the most during the lookback window. That distinguishes it from the broader v2GetSteamers sibling. It does not explicitly name the sibling it differs from, so it falls short of a 5.

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

Usage Guidelines3/5

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

Usage context is implied (read-only product/price data, one bounded request, no polling or retry) and there is a useful caution not to infer coverage from an empty result. However, there is no explicit when-to-use vs when-not-to-use guidance and no alternative tool is named among the many similarly named siblings (v2GetSteamers, v2GetOutliersBySportAndDate, etc.).

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

v2GetTeamByIDGet a team by IDB
Read-onlyIdempotent
Inspect

Get a team by ID Read-only Product data or price calculation. Use returned canonical IDs. Access, delay and metered usage follow your connected account; never infer coverage from an empty result. One bounded request, no background polling or automatic retry. Affiliate 27 is excluded. No wagers, account changes or guarantee of returns.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNo
planNo
emptyNo
errorNo
usageNo
statusNo
messageNo
event_idNo
source_urlNo
retry_afterNo
limit_reasonNo
retrieved_atNo
required_planNo
remaining_pointsNo
missing_entitlementNo
monthly_remaining_pointsNo

TDQS

B3.2/5.0
Behavior4/5

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

Annotations already declare readOnly/idempotent/non-destructive, so the bar is lower, and the description still adds real behavior: one bounded request with no polling or automatic retry, metered usage tied to the connected account, and affiliate 27 exclusion. The trailing 'no wagers, account changes or guarantee of returns' boilerplate is largely irrelevant to a read-only team lookup.

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

Conciseness2/5

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

Opens by restating the title verbatim, then strings together generic policy sentences, several of which (no wagers, no guarantee of returns) are noise for a read-only getter. The tool's actual purpose is buried under boilerplate rather than front-loaded.

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

Completeness3/5

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

An output schema exists, so return values need no explanation, and the description covers access/metering constraints adequately. It is still missing sibling routing and any explanation of the nested path/teamID structure an agent must supply.

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?

Coverage is low and the schema nests teamID inside a 'path' object, which the description never explains. However, 'Use returned canonical IDs' does add meaning about the expected ID form beyond the schema's bare 'Normalized team ID' note, so this is not a pure zero.

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

Purpose4/5

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

States a specific verb and resource ('Get a team by ID'), so an agent knows this is a single-entity lookup. It does not, however, distinguish itself from sibling retrieval tools like v2GetTeamsBySport or v1GetTeamsBySport, which fetch teams collectively.

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

Usage Guidelines2/5

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

No when-to-use guidance and no named alternative for the common case of listing teams by sport. 'Use returned canonical IDs' hints at input expectations but not tool selection. The only operational guidance is the negative warning never to infer coverage from an empty result.

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

v2GetTeamsBySportGet teams for a sportB
Read-onlyIdempotent
Inspect

Get teams for a sport Read-only Product data or price calculation. Use returned canonical IDs. Access, delay and metered usage follow your connected account; never infer coverage from an empty result. One bounded request, no background polling or automatic retry. Affiliate 27 is excluded. No wagers, account changes or guarantee of returns.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNo
planNo
emptyNo
errorNo
usageNo
statusNo
messageNo
event_idNo
source_urlNo
retry_afterNo
limit_reasonNo
retrieved_atNo
required_planNo
remaining_pointsNo
missing_entitlementNo
monthly_remaining_pointsNo

TDQS

B3.3/5.0
Behavior4/5

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

Annotations already declare readOnly/idempotent/open-world, and the description adds genuine context beyond them: metered usage tied to the connected account, no background polling or automatic retry, one bounded request, and an explicit affiliate exclusion (27). These are real operational traits an agent needs. It stops short of describing return shape or pagination.

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?

Compact, but the sentences are run-together and several clauses ("No wagers, account changes or guarantee of returns") read as boilerplate rather than actionable instruction. The most useful cues — canonical IDs, empty-result caveat — are buried mid-paragraph.

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

Completeness3/5

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

An output schema exists so return values need not be described, and the account/metering caveats are a useful addition. Still missing anything about the sportID input, result granularity, or how this differs from the v1 equivalent, leaving gaps for a simple but ambiguous lookup tool.

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 single parameter (sportID) is not mentioned in the description at all, and reported schema description coverage is 0%. Even though the schema itself enumerates common sport IDs, the description does no work to compensate for the coverage gap on the only input an agent must supply.

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

Purpose4/5

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

States a specific verb and resource ("Get teams for a sport") so the agent knows the operation. However it does nothing to distinguish itself from the near-identical sibling v1GetTeamsBySport, and the trailing clauses ("Product data or price calculation") muddy rather than sharpen the purpose.

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

Usage Guidelines3/5

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

"Use returned canonical IDs" and "never infer coverage from an empty result" give real usage guidance, which is above average. But there is no explicit when-to-use versus the v1 sibling or any other teams/markets tool, so the routing decision is left to inference.

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

v2GetTeamStatsGet season stats for a teamB
Read-onlyIdempotent
Inspect

Get season stats for a team Read-only Product data or price calculation. Use returned canonical IDs. Access, delay and metered usage follow your connected account; never infer coverage from an empty result. One bounded request, no background polling or automatic retry. Affiliate 27 is excluded. No wagers, account changes or guarantee of returns.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
queryNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNo
planNo
emptyNo
errorNo
usageNo
statusNo
messageNo
event_idNo
source_urlNo
retry_afterNo
limit_reasonNo
retrieved_atNo
required_planNo
remaining_pointsNo
missing_entitlementNo
monthly_remaining_pointsNo

TDQS

B3.1/5.0
Behavior4/5

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

Annotations already declare readOnly/idempotent/non-destructive/openWorld, so the description isn't needed for the safety profile, but it adds genuinely useful operational context: no background polling or automatic retry, access/delay/metered usage follows the connected account, and one bounded request. These 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.

Conciseness3/5

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

The purpose is front-loaded, but the text is a run-on string of template boilerplate ('Product data or price calculation', 'No wagers, account changes or guarantee of returns') that reads as organizational boilerplate rather than tool-specific information. Those clauses don't clearly earn their place.

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

Completeness3/5

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

An output schema exists so return values needn't be explained, and annotations carry the safety profile. But for a stats query with nested inputs and 0% schema description coverage, the description leaves the parameters entirely unexplained, leaving a real gap for correct invocation.

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

Parameters2/5

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

Schema description coverage is reported as 0% and the description mentions none of the inputs (teamID, year, stats_ids, season_type). With low coverage the description is expected to compensate, and it does not, so it adds no meaning beyond the raw schema structure.

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 opening clause 'Get season stats for a team' gives a specific verb and resource ('season stats' scoped to a team), which does distinguish it from player-level siblings like v2GetPlayerStatsByTeam. However it never explicitly names or contrasts those alternatives, so differentiation is implicit rather than stated.

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

Usage Guidelines2/5

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

There is no when-to-use guidance relative to the many stats siblings (v2GetAllStats, v2GetPlayerStatsByTeam, v2GetStatsByEvent). The 'never infer coverage from an empty result' and 'Affiliate 27 is excluded' notes are constraints, not selection guidance, and nothing tells the agent which scenario this tool is for.

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

v2GetTopHedgeOpportunitiesList Top Hedge Opportunities (v2)B
Read-onlyIdempotent
Inspect

List Top Hedge Opportunities (v2) Returns the top arbitrage/hedge opportunities by edge. Read-only Product data or price calculation. Use returned canonical IDs. Access, delay and metered usage follow your connected account; never infer coverage from an empty result. One bounded request, no background polling or automatic retry. Affiliate 27 is excluded. No wagers, account changes or guarantee of returns.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataNo
planNo
emptyNo
errorNo
usageNo
statusNo
messageNo
event_idNo
source_urlNo
retry_afterNo
limit_reasonNo
retrieved_atNo
required_planNo
remaining_pointsNo
missing_entitlementNo
monthly_remaining_pointsNo

TDQS

B3.2/5.0
Behavior4/5

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

Annotations already cover read-only, idempotent, and open-world traits, and the description adds substantial non-obvious context: access/delay/metered usage follow the connected account, empty results do not imply lack of coverage, affiliate 27 is excluded, and no wagers or account changes occur. This is genuinely useful behavioral disclosure beyond the structured hints, though it stops short of describing pagination or result shape.

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

Conciseness4/5

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

Front-loaded with purpose, then constraints; sentences are short and each carries a distinct constraint. Slight fragmentation ('Read-only Product data or price calculation.') and boilerplate-sounding clauses ('No wagers, account changes or guarantee of returns') keep it from a 5.

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

Completeness3/5

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

An output schema and rich annotations are present, so return values and safety are covered elsewhere. The description fills in the account/access model and empty-result caveat, but leaves the sibling-differentiation and parameter semantics gaps unaddressed, making it minimally viable for a tool with ten effective query parameters.

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

Parameters2/5

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

Schema description coverage is effectively 0% — only affiliate_ids carries an inline description, while sort, type, limit, offset, event_id, market_id, min_percent, include_live, and include_closed are undocumented. The description only echoes the affiliate-27 exclusion and mentions 'by edge' for sorting, so it fails to compensate for the large documentation gap.

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

Purpose4/5

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

States a specific verb (List) plus resource (Top Hedge Opportunities) and adds the ranking key ('by edge'), which is meaningful. However, it does not distinguish itself from the sibling v2GetHedgeOpportunities, so an agent cannot tell from the description alone why it should prefer this 'Top' variant over the plain one.

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

Usage Guidelines2/5

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

Offers operational constraints ('One bounded request, no background polling or automatic retry', 'Use returned canonical IDs') but gives no guidance on when to choose this tool over v2GetHedgeOpportunities, v2GetHedgeOpportunitiesByEvent, or v2GetHedgeOpportunityByID. There is no explicit when-to-use or when-not-to-use statement.

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. 79 tool updates
    • Addedcapture_hedge_stream
    • Addedcapture_live_stream
    • Addedcapture_market_stream
    • Addedcapture_v1_stream
    • Addedv1GetAffiliates
    • Addedv1GetBestLineMulti
    • Addedv1GetByLineID
    • Addedv1GetClosingBySportAndDate
    • Addedv1GetConferencesBySport
    • Addedv1GetDatesBySport
    • Addedv1GetDelta
    • Addedv1GetDeltaV2
    • Addedv1GetDivisionsBySport
    • Addedv1GetEventByID
    • Addedv1GetEventsBySportAndDate
    • Addedv1GetMoneylines
    • Addedv1GetOpenersBySportAndDate
    • Addedv1GetScheduleBySport
    • Addedv1GetSeasonTypes
    • Addedv1GetSports
    • Addedv1GetSportsbooks
    • Addedv1GetSpreads
    • Addedv1GetTeamsBySport
    • Addedv1GetTeamTotals
    • Addedv1GetTotals
    • Addedv2GetAffiliates
    • Addedv2GetAllMarkets
    • Addedv2GetAllStats
    • Addedv2GetAvailableMarketsByEvent
    • Addedv2GetBestLineByEvent
    • Addedv2GetBestOdds
    • Addedv2GetBestOddsByEvent
    • Addedv2GetBestOddsBySportAndDate
    • Addedv2GetBestParlayBook
    • Addedv2GetClosingBySportAndDate
    • Addedv2GetConferencesBySport
    • Addedv2GetDatesBySportID
    • Addedv2GetDatesBySportIDs
    • Addedv2GetDelta
    • Addedv2GetDivisionsBySport
    • Addedv2GetEventByID
    • Addedv2GetEventClosing
    • Addedv2GetEventOpeners
    • Addedv2GetEventsByDate
    • Addedv2GetEventsBySportAndDate
    • Addedv2GetFuturesEventByID
    • Addedv2GetFuturesForSport
    • Addedv2GetHedgeOpportunities
    • Addedv2GetHedgeOpportunitiesByEvent
    • Addedv2GetHedgeOpportunityByID
    • Addedv2GetMarketHistoryByEvent
    • Addedv2GetMarketLineHistoryByEvent
    • Addedv2GetMarketLinePriceHistory
    • Addedv2GetMarketsByDate
    • Addedv2GetMarketsBySportAndDate
    • Addedv2GetMarketsDelta
    • Addedv2GetMarketsParticipants
    • Addedv2GetOpenersBySportAndDate
    • Addedv2GetOpeningPricesByEvent
    • Addedv2GetOutliers
    • Addedv2GetOutliersBySportAndDate
    • Addedv2GetParlayBook
    • Addedv2GetPlayerByID
    • Addedv2GetPlayersByTeam
    • Addedv2GetPlayerStatsByEvent
    • Addedv2GetPlayerStatsByTeam
    • Addedv2GetPlaysByEvent
    • Addedv2GetPublicTournament
    • Addedv2GetSeasonTypes
    • Addedv2GetSports
    • Addedv2GetSportsbooks
    • Addedv2GetStatsByEvent
    • Addedv2GetStatsSample
    • Addedv2GetSteamers
    • Addedv2GetSteamersBySportAndDate
    • Addedv2GetTeamByID
    • Addedv2GetTeamsBySport
    • Addedv2GetTeamStats
    • Addedv2GetTopHedgeOpportunities
  2. 6 tool updates
    • First observedget_main_lines
    • First observedlist_affiliates
    • First observedlist_events
    • First observedlist_futures
    • First observedlist_markets
    • First observedlist_sports

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    B
    maintenance
    Exposes six read-only tools that let an MCP client find products, describe and fetch metrics, compare periods, list events and see what changed across a year of grocery sales data. Results are capped at 60 rows per call, so answers about sales, units, share and promo lift come back structured instead of guessed.
    -
  • A
    license
    Not graded
    quality
    A
    maintenance
    Enables agents to discover services and check API contracts via tools like directory search, API Doctor, and receipt verification, without requiring an account or payment.
    MIT
  • A
    license
    A
    quality
    A
    maintenance
    One endpoint in front of 950+ data APIs — SEO and AI visibility, finance, social, web search, sales and agent mail. tools/list returns five meta tools, not 580, so the catalogue never lands in a context window. Most clients can point straight at https://mcp.aisa.one/mcp; this package is the stdio bridge for the ones that only spawn a local command. OAuth, nothing to paste.
    5
    9 npm
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    Free JSON Schema validation, JSON to TypeScript, CSV to JSON, JSON repair and JSON to CSV for AI agents. Hosted MCP plus local STDIO. Connect once with a scoped key; enforce tool allowlists and quotas, inspect request IDs. Runnable repair → validate → CSV workflow. Bounded OpenAPI and webhook checks. No LLM calls or payments. Setup: invokeport.com/agents.
    3
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.