Skip to main content
Glama
kashrockapi

kashrock-mcp

Official
by kashrockapi

kashrock-mcp

Full tier-scoped KashRock esports MCP for Cursor, Claude, and other agents.

Install (effortless)

{
  "mcpServers": {
    "kashrock": {
      "command": "uvx",
      "args": ["kashrock-mcp"]
    }
  }
}

Then say log in to KashRock. Google opens; the agent gets your billed plan.

Requires uv. Optional: KASHROCK_API_KEY skips login.

Related MCP server: Sports Hub MCP Server

Local (this repo)

cd mcp && uv sync

Cursor ~/.cursor/mcp.json:

{
  "mcpServers": {
    "kashrock": {
      "command": "uv",
      "args": ["run", "--directory", "/ABS/PATH/TO/kashrock/mcp", "kashrock-mcp"],
      "env": { "KASHROCK_API_KEY": "kr_…" }
    }
  }
}

What agents can do

  • Board: DFS props (get_props), DFS+sportsbook player props (get_player_props), media (get_media), player snapshot (get_player_snapshot), consensus lines including DFS Teams (get_lines / get_best_lines), gaps (get_gaps)

  • Players / research / rankings / streams / H2H

  • Builder+: matches, live in-game (get_live_boxscore / get_live_games / get_live_frame / get_live_odds / get_live_odds_history), live WebSocket (get_live_wsWS /v6/esports/live/ws), gamelogs, finished vault boxscores (get_boxscore), results, history tape, closing mainlines (get_lines_history)

  • Match intel: get_match_prep (CS2, R6, COD, Valorant & Apex team stats, mode/map winrates, map pool/biases, key player matchups, betting insights), get_player_board (CS2 weapons / Valorant agents), get_tournament_maps — pass KashRock slug/kr_match_id only

  • Public ids: lists and boxscores emit kr_match_id, kr_tm_* teams, kr_pl_* players. Lineup includes STARTER and SUB. Never pass foreign numerics.

Live KDA path: get_live_boxscore("cs2") → pick game_idget_live_boxscore("cs2", game_id). Sport boards: CS2 money/bomb, LoL gold/towers, Dota gold/roshan when visible, Deadlock gold/CS/level on tournament games. Do not use get_boxscore for mid-map stats (that is finished-match vault + lineup + model fields).

Live WebSocket (Builder+): call get_live_ws for the wss://…/v6/esports/live/ws URL + subscribe ops. Auth with your API key (?api_key= / Bearer / x-api-key). After hello, send {"op":"subscribe","sport":"cs2","game_id":"<id>|*" }. Pushes: snapshot, games_list, frame, boxscore, meta, event, odds. WS traffic does not count against HTTP req/min. MCP returns the contract only — your app holds the socket.

Call whoami, list_capabilities, or suggest_build first. Stacks are not exposed.

Docs: https://www.kashrock.com/mcp

App SDKs (not MCP): pip install kashrock · Python · JS

Available Tools

46 tools
explain_errorA

Turn an API/MCP error string into a plain-English next step.

ParametersJSON Schema
NameRequiredDescriptionDefault
messageYes

TDQS

A3.6/5.0
Behavior2/5

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

With no annotations provided, the description carries full behavioral burden. It only states the transformation and does not disclose side effects, authentication requirements, output format, or whether it is read-only. For a pure conversion tool this is less critical, but the lack of any behavioral detail beyond the operation warrants a low score.

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

Conciseness5/5

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

The description is a single, front-loaded sentence with no filler — every word contributes.

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 a simple one-parameter transformation, and the description covers both the expected input (error string) and output (next step). However, with no annotations and no output schema, it could mention return value structure or prerequisites, but for this simplicity it is adequately complete.

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

Parameters3/5

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

The input schema has one 'message' string parameter with no description. The description clarifies that the message should be an API/MCP error string, adding meaning beyond the schema property name. However, it does not provide further format or example guidance.

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

Purpose5/5

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

The description uses a specific verb ('Turn') and resource ('API/MCP error string'), clearly stating the transformation to a plain-English next step. It is distinct from all sibling tools, which are data-retrieval focused, so an agent can identify when to use it.

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 when an error string is encountered, but it does not explicitly state when to use it versus alternatives or mention any exclusions. Sibling tools are all data retrieval, so there is no similar alternative, but the guideline is not explicitly spelled out.

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

get_best_linesB

Top cross-venue edges from /lines (useful operation — not raw board dump). live_only=true (default) drops started matches.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
sportYes
marketNo
live_onlyNo

TDQS

B3.1/5.0
Behavior3/5

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

With no annotations provided, the description carries the full behavioral burden. It discloses that live_only=true (the default) drops started matches and that the tool performs a 'useful operation' rather than returning a raw dump. However, it does not explain what 'edges' means, whether any authentication is needed, how results are returned, or other side effects/transformations.

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 short and front-loaded with the core value proposition before the parameter note. The parenthetical provides useful differentiation without fluff. Minor filler like 'useful operation' could be omitted, but overall it earns its place.

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?

Given the tool has 4 parameters, no output schema, no annotations, and complex sibling context, the description is not complete. It leaves key questions unanswered: what exactly qualifies as an 'edge', what format sport/market expect, how limit affects results, and what the response shape looks like. The live_only explanation helps but does not compensate for broad gaps.

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 schema has 0% description coverage, so the description is the only source of parameter meaning. It explains live_only clearly but omits sport, market, and limit entirely. This partial coverage is insufficient for an agent to confidently set all parameters, especially since sport is required.

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 identifies the tool as returning 'Top cross-venue edges from /lines', which names a specific resource and operation beyond the generic tool name. It distinguishes itself from a 'raw board dump' and from sibling tools like get_lines and get_lines_history. The term 'edges' is domain jargon but understandable in context.

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 this is the refined, useful variant of /lines, suggesting it should be used when top cross-venue edges are needed rather than the raw board dump. It does not explicitly list alternatives or state when NOT to use it, though the contrast with the raw dump gives some guidance. The live_only parameter behavior is explained, adding practical usage context.

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

get_boxscoreA

Finished-match vault boxscore + STARTER/SUB lineup and sport-native model fields by slug or kr_match_id (or recent list). Not live KDA — use get_live_boxscore. Sandbox=last 30 days, Hobby=last 90 days, Builder+=full vault.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
sportYes
match_slugNo

TDQS

A4.3/5.0
Behavior4/5

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

With no annotations provided, the description carries the behavioral disclosure burden. It discloses that only finished matches are available, that this is not live KDA, and that data availability varies by plan tier. It also mentions the output includes boxscore, starter/sub lineup, and sport-native model fields, though it does not cover auth, rate limits, or pagination behavior.

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

Conciseness5/5

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

The description is compact and front-loaded with the core purpose, followed by the key exclusion and tier constraints. Every sentence adds useful information without fluff 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?

The description covers the tool's purpose, lookup modes, output contents, live-data exclusion, and plan limitations. However, without an output schema and with no parameter-level details for sport and limit, an agent may still need to consult sibling tools like list_sports or infer behavior from defaults to call it confidently.

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

Parameters3/5

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

The input schema has 0% description coverage, so the description must compensate. It adds meaning by explaining that match_slug accepts a slug or kr_match_id and that omitting it returns a recent list. However, it does not explain the allowed values for the required sport parameter or the behavior of the limit parameter, leaving meaningful gaps.

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

Purpose5/5

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

The description clearly states a specific action and resource: retrieving a finished-match vault boxscore with lineup and sport-native model fields. It explicitly distinguishes itself from the live variant by saying 'Not live KDA — use get_live_boxscore.' The lookup modes (slug, kr_match_id, or recent list) are also specified.

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

Usage Guidelines5/5

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

The description gives explicit when-to-use guidance: for finished-match boxscores, not live data. It names the alternative tool for live KDA and provides tier-based availability restrictions (Sandbox, Hobby, Builder+), which helps an agent decide whether this tool is usable.

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

get_coverageC

How many props each book has on the live board for a sport.

ParametersJSON Schema
NameRequiredDescriptionDefault
sportYes

TDQS

C2.8/5.0
Behavior2/5

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

No annotations are present, so the description carries the full burden of behavioral disclosure. It indicates a read-only counting operation but does not disclose response shape, whether zero-count books appear, what counts as a prop, or any availability constraints. It adds little beyond the basic action.

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?

A single sentence with no fluff; the core question is front-loaded. It could be improved with a clearer verb or explicit output phrasing, but every word contributes meaning and the size is appropriate for a simple 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?

For a one-parameter count query, the description is close to adequate, but with no output schema it should specify the result shape and clarify what counts as a prop on the live board. It also does not mention that the sport value likely comes from list_sports, so an agent may need to inspect sibling tools to call 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?

The schema describes only 'sport' as a required string with 0% schema description coverage, and the description merely says 'for a sport,' restating the property name. It does not explain valid sport identifiers or how to obtain them via list_sports. The description fails to compensate for the empty parameter documentation.

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 communicates a clear informational goal: count props per book for a sport on the live board. It is distinct from siblings like get_props or get_player_board, though it does not explicitly state that distinction. It lacks an imperative verb like 'returns' or 'counts', but the meaning 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 Guidelines2/5

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

There is no guidance about when to use this tool instead of get_props, research_board, get_live_odds, or other siblings. The phrase 'live board' implies some context, but no exclusions or alternatives are provided. Given the large sibling set, this is a meaningful gap.

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

get_gamelogsA

Per-map player gamelogs (kills, ADR, gold, GPM, hero when present). player = slug, nickname, or kr_pl_*. Sandbox=last 30 days, Hobby=last 90 days, Builder+=full vault.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
sportYes
playerYes

TDQS

A3.5/5.0
Behavior4/5

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

With no annotations, the description carries the behavioral burden and does well: it discloses per-map granularity, included stats, conditional hero field, accepted player aliases, and retention limits by environment. It does not describe output structure or pagination, but the expected list-of-gamelogs behavior is clear.

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

Conciseness5/5

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

Three short sentences, with purpose first, then player formats, then environment retention. Every sentence carries useful information and there is no 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?

The definition is strong for a simple list tool but incomplete: no output schema, no annotations, and the required sport parameter is not covered. An agent can likely select the tool correctly, but may not know how to populate sport without external context.

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 coverage is 0%, so the description must explain parameters. It does for player ('slug, nickname, or kr_pl_*'), but it never describes the required sport parameter or the limit parameter, leaving a large invocation gap for a required input.

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

Purpose4/5

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

The description states the resource and scope: 'Per-map player gamelogs' with specific stats (kills, ADR, gold, GPM, hero). This is clear and distinct from aggregate player stats, though it does not explicitly name any sibling tool to differentiate against.

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 provides useful invocation context such as accepted player identifiers and environment retention boundaries, but it never says when to prefer this tool over get_player_stats_full, get_player_snapshot, or other player data tools. The appropriate use case is only implied by the purpose.

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

get_gapsC

DFS book-vs-book line spreads for the same player/event/market (Hobby+).

ParametersJSON Schema
NameRequiredDescriptionDefault
bookNo
limitNo
sportYes
marketNo
offsetNo
playerNo
min_gapNo
market_containsNo

TDQS

C2.4/5.0
Behavior2/5

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

With no annotations provided, the description must carry the full burden of behavioral disclosure. It states only the basic operation and offers no details on authentication, rate limits, return format, pagination behavior, or side effects. The read-only nature is implied but not stated.

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

Conciseness4/5

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

The description is a single concise sentence with no wasted words, front-loading the core purpose. It is appropriately brief for a simple tool, though given the parameter complexity it could be slightly more detailed without losing conciseness.

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

Completeness1/5

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

For a tool with 8 parameters, no output schema, and no annotations, the description is grossly incomplete. It lacks information on return values, filtering options, pagination, and the meaning of specialized terms. An agent would struggle to call it correctly without external knowledge.

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

Parameters1/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 fails to explain any of the 8 parameters, including min_gap, market_contains, offset, or book. It mentions 'player/event/market' generically but does not map to the schema fields, adding no semantic 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 description clearly identifies the resource (DFS book-vs-book line spreads) and the operation (get gaps for same player/event/market). It distinguishes from sibling line tools like get_lines or get_best_lines by focusing on gaps between books, though niche terms like 'DFS' and 'Hobby+' are 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 Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives. Sibling tools such as get_lines, get_best_lines, and get_lines_history exist, but the description does not differentiate usage scenarios or mention any conditions for selection.

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

get_history_tapeB

Quote tape for a prop/book or market_key. Builder+. Need market_key OR prop_id+book.

ParametersJSON Schema
NameRequiredDescriptionDefault
bookNo
prop_idNo
market_keyNo

TDQS

B3.4/5.0
Behavior3/5

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

With no annotations, the description carries the full burden. It discloses the Builder+ access requirement and a necessary parameter combination, which is useful. However, it does not describe what the tape returns, whether the operation is read-only, or any error/edge-case behavior.

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

Conciseness5/5

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

The entire definition is two short sentences with no filler. The core purpose is front-loaded, and the access/argument constraints are stated immediately afterward.

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

Completeness3/5

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

For a simple retrieval tool with three params and no output schema, the description gives the essential input constraints and access restriction. Still, it leaves the return value and typical use context unstated, which an agent may need to invoke it confidently.

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 clearly states the required combination: market_key alone, or prop_id together with book. This adds meaningful relationship semantics beyond the bare parameter names and defaults.

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

Purpose4/5

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

The description states the resource ('quote tape') and the supported targets ('prop/book or market_key'), and the tool name reinforces the history/quote purpose. It is clear enough to distinguish from odds-history or lines-history siblings, though it does not explicitly name a differentiator.

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

Usage Guidelines2/5

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

No guidance is given about when to choose this tool over alternatives such as get_live_odds_history or get_lines_history. The 'Builder+' and 'Need market_key OR prop_id+book' notes are prerequisites rather than usage context or exclusions.

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

get_linesC

Consensus mainlines across sportsbooks, DFS Teams, and prediction markets (Hobby+). live_only=true (default) drops started matches.

ParametersJSON Schema
NameRequiredDescriptionDefault
sportYes
marketNo
event_idNo
live_onlyNo

TDQS

C2.9/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It does add one meaningful behavior: live_only=true (default) drops started matches, which explains an important default filter. However, it does not mention output format, authentication requirements, subscription limits (despite mentioning Hobby+), or any side effects. Partial transparency but not comprehensive.

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

Conciseness4/5

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

The description is only two sentences and is front-loaded with the primary purpose before the parameter detail. Every word contributes; there is no filler. The only slight issue is that domain terms like 'mainlines' and 'Hobby+' are not expanded, but as a concise summary it is efficient.

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?

Given there is no output schema, 4 parameters (3 with default values that carry meaning), and no annotations, the description is too thin to fully support correct invocation. It does not explain what the response looks like, how to filter by market or event, or why 'Hobby+' is mentioned. An agent would need to guess at parameter formats and return structure, and might pick a sibling tool instead.

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 compensate for explaining parameters. It only clarifies live_only, mapping 'true' to dropping started matches. It says nothing about sport (the required parameter), market, or event_id. The default-empty-string values for market and event_id are left unexplained. The description fails to compensate for the lack of schema descriptions.

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 fetches consensus mainlines across multiple source types (sportsbooks, DFS teams, prediction markets), which is a specific verb+resource combination. It conveys the core purpose of getting aggregated lines. However, it does not distinguish itself from similar siblings like get_moneylines, get_best_lines, or get_live_odds, so it misses some differentiation credit.

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 guidance on when to use this tool versus the many sibling tools such as get_moneylines, get_best_lines, or get_lines_history. The only contextual hint is the live_only parameter behavior, which is a parameter detail rather than a use-case selector. No alternative tools are named or conditions provided for choosing this one.

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

get_lines_historyC

Opening and closing team mainlines for a match slug or kr_match_id. Builder+. Not live in-play steam.

ParametersJSON Schema
NameRequiredDescriptionDefault
bookNo
sportYes
marketNo
match_idYes

TDQS

C2.8/5.0
Behavior3/5

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

With no annotations, the description carries the behavioral burden; it usefully discloses that the data is opening/closing (historical) and not live in-play, which clarifies what the tool does not provide. However, it omits access requirements (beyond the cryptic 'Builder+'), return format, and any side-effect or rate-limit caveats.

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-loaded with the core subject, which is good, but 'Builder+.' and 'Not live in-play steam' are cryptic fragments that add little clarity and contain a likely typo. It is concise without being well-structured enough to be a model of clarity.

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?

With four parameters, no output schema, and no annotations, an agent needs more detail about parameter values and return shape. The description gives only the match-identifier hint and the non-live exclusion, leaving book, market, sport, and response semantics unspecified.

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 coverage is 0%, so the description must explain parameters, but it only hints that match_id can be a match slug or kr_match_id. The required sport and optional book/market parameters are not explained at all; 'team mainlines' vaguely relates to market but not enough to choose values.

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 identifies the resource (team mainlines for a match) and the historical nature implied by 'Opening and closing' and the tool name, so an agent can infer this is a line-history lookup. It is not a pure tautology and has an identifiable subject, but 'Builder+' and the unclear 'steam' wording keep it from being a crisp, sibling-differentiating statement.

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?

'Not live in-play steam' gives a single exclusion warning, implying the tool is for historical rather than live data, but it never names alternatives such as get_live_odds_history or states when to prefer get_lines/get_best_lines. No explicit when-to-use guidance is provided.

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

get_live_boxscoreA

Live in-game board (K/D/A plus sport-native state: CS2 money/bomb, LoL gold/towers, Deadlock gold/CS/level). Omit game_id to list live games. Sandbox=CS2, 30-60s delayed; Hobby=all sports, 5s delayed; Builder+=real-time.

ParametersJSON Schema
NameRequiredDescriptionDefault
sportYes
game_idNo

TDQS

A4/5.0
Behavior4/5

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

With no annotations present, the description carries the full burden and does well by disclosing data freshness and tier-dependent behavior: Sandbox is 30-60s delayed, Hobby is 5s delayed, and Builder+ is real-time. It also reveals what data is included in the response, though it does not discuss auth, side effects, or return shape.

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 deliver core content, an important usage pattern, and tier-specific latency information with no filler. The most important identifying information is front-loaded, and every sentence earns its place.

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

Completeness4/5

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

For a simple 2-parameter tool with no output schema, the description is largely complete: it tells the agent what data is returned, how to list live games, and what latency to expect per plan. The main gap is the lack of an explicit allowed/expected sport value list, which matters because sport is the only required parameter.

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

Parameters3/5

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

Schema description coverage is 0%, so the description must compensate. It adds meaning for game_id by explaining that omitting it lists live games, and it hints at valid sports via CS2, LoL, and Deadlock. However, it never gives the exact accepted sport values or game_id format, leaving a partial 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 clearly states a specific resource: a live in-game boxscore with K/D/A and sport-native details like CS2 money/bomb, LoL gold/towers, and Deadlock gold/CS/level. It is specific enough to be understood, though it does not explicitly differentiate itself from siblings such as get_live_frame or get_boxscore.

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

Usage Guidelines4/5

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

The description provides clear usage context: 'Omit game_id to list live games' tells the agent when the optional parameter can be dropped. It also gives environment-specific guidance with the Sandbox/Hobby/Builder+ latency tiers, but it does not mention when to prefer a sibling tool over this one.

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

get_live_eventsB

Sport-native live events (kills, bomb, towers, roshan, round wins) for one game_id. Sandbox=30-60s delayed, Hobby=5s delayed, Builder+=real-time.

ParametersJSON Schema
NameRequiredDescriptionDefault
sportYes
game_idYes

TDQS

B3.1/5.0
Behavior3/5

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

With no annotations, the description carries the full burden and it does add valuable timing behavior (sandbox 30-60s delay, hobby 5s, builder+ real-time). However, it does not disclose whether the result is a one-time snapshot or a stream, how events are returned, or any auth/rate-limit implications.

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

Conciseness5/5

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

The description is two terse sentences, each earning its place: the first defines the resource and content, the second adds plan-dependent latency. No wasted words and the core scope is 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?

For a two-parameter tool with no output schema, the description is reasonably complete about what events and latency to expect. It is incomplete in that it leaves the delivery/response model unspecified and requires the agent to guess at parameter values, given a large sibling family of live tools.

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 only implicitly suggests game_id identifies the match; it does not explain the range or format of sport, whether sport maps to a specific enum, or where to get valid game_id values. The description adds minimal 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 description states a clear resource ('live events for one game_id') and content scope (kills, bomb, towers, roshan, round wins) that separates it conceptually from stats/odds/boxscore siblings. It lacks an explicit contrast with sibling tools like get_live_frame or get_live_boxscore, so it stops short of full differentiation.

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

Usage Guidelines2/5

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

No guidance is given on when to use this tool versus alternatives; sibling live-event tools are not mentioned. The latency-tier note is operational context, not usage direction, and there are no exclusion criteria or prerequisites.

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

get_live_frameB

Raw live NormalizedFrame + metadata for one game_id. Sandbox=CS2, 30-60s delayed; Hobby=all sports, 5s delayed; Builder+=real-time.

ParametersJSON Schema
NameRequiredDescriptionDefault
sportYes
game_idYes

TDQS

B3.2/5.0
Behavior3/5

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

With no annotations, the description must carry behavioral disclosures. It does provide useful latency/plan behavior (Sandbox, Hobby, Builder+), but it omits side effects, auth requirements, rate limits, and any caveats about the returned payload.

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

Conciseness5/5

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

The description is two short, front-loaded sentences: the first states the core purpose, the second gives critical latency context. Every clause adds information and there is no filler.

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 tool with no output schema, no annotations, and two undocumented parameters, this is too thin. The agent still needs to discover valid sport codes, game_id provenance (likely via list_sports/get_live_games), and the response structure, none of which are mentioned.

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 coverage is 0%, so the description is the only source for parameter meaning. It explains that game_id selects a single game and indirectly mentions sport via 'Sandbox=CS2... all sports', but it does not define valid sport values, game_id format, or parameter relationships.

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 the resource (raw live NormalizedFrame) and scope (one game_id), making clear this returns a single live frame with metadata. It is distinguishable from siblings like get_live_events or get_live_boxscore, though it does not explicitly compare itself to 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 phrase 'for one game_id' and 'Raw live' imply this is for retrieving a raw live frame for a single game, but there is no explicit guidance on when to prefer it over sibling live-data tools or how to obtain valid sport/game_id values.

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

get_live_gamesA

List games with live in-game telemetry (KDA frames). Sandbox=CS2, 30-60s delayed; Hobby=all sports, 5s delayed; Builder+=real-time. Use game_id with get_live_boxscore.

ParametersJSON Schema
NameRequiredDescriptionDefault
sportYes

TDQS

A3.6/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It does add useful behavioral context: the telemetry delay characteristics per environment and the fact that it returns game IDs usable with get_live_boxscore. However, it does not explicitly state that the operation is read-only/safe, nor does it mention authentication requirements or potential rate limiting. The delay disclosure and follow-up linkage are helpful, but the absence of a clear safety profile prevents a higher score.

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

Conciseness5/5

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

The description is three tight, efficient sentences. The main purpose is front-loaded in the first sentence, followed by necessary environment-specific delay caveats, and a concise pointer to the companion boxscore tool. There is no filler or redundant content; every sentence earns its 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?

Given the tool has no output schema and no annotations, the description should explain what the response contains. It confirms that games with live KDA telemetry are returned and implicitly indicates that game_id is available, but it does not describe the full response structure (e.g., fields like match info, scores, timestamps). The delay and tier caveats add situational completeness, but the lack of return-shape detail leaves an agent uncertain about what data it can use after calling this tool.

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

Parameters1/5

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

The input schema has a single required parameter 'sport' with no description, and the schema description coverage is 0%. The description does not mention the 'sport' parameter at all, nor does it explain what values it accepts (e.g., 'cs2', 'football', 'nba') or how it affects results. This is a critical gap because the tool cannot be invoked correctly without understanding this parameter. The description fails to compensate for the poor schema coverage.

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

Purpose5/5

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

The description opens with a specific verb and resource: 'List games with live in-game telemetry (KDA frames).' This clearly identifies what the tool does and distinguishes it from sibling tools like get_matches or get_live_odds by emphasizing KDA telemetry. The additional environment-specific delay details further narrow the tool's scope, making its purpose unambiguous without needing to mention sibling names.

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

Usage Guidelines4/5

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

The description provides clear context for when to use the tool: it explains the data freshness differences across Sandbox/Hobby/Builder+ tiers ('Sandbox=CS2, 30-60s delayed; Hobby=all sports, 5s delayed; Builder+=real-time') and gives a direct follow-up instruction ('Use game_id with get_live_boxscore'). It does not explicitly name alternative tools to exclude, but the environment-specific delay guidance effectively informs the agent when this tool's data is appropriate versus other live-data tools.

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

get_live_oddsA

Shifting betting odds (live in-play and pre-match steam moves) and markets across premier sportsbooks. Hobby+. Omit game_id to list matches with odds. Optional status=all|live|prematch.

ParametersJSON Schema
NameRequiredDescriptionDefault
sportYes
statusNoall
game_idNo

TDQS

A3.5/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It discloses that odds are shifting/live and that status can be all|live|prematch, but it does not explicitly state read-only behavior, rate limits, pagination, data delay, or access requirements. The phrase 'Hobby+' is vague and not particularly informative.

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

Conciseness4/5

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

The description is compact and front-loaded with the core subject and usage hint. The 'Hobby+' fragment is slightly odd, but overall every sentence earns its place with no real padding.

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?

There is no output schema and no annotation coverage, so the description should explain more about what the caller receives. It communicates odds, markets, and match listing, but it does not describe output structure, which sportsbooks are included, or how status affects the response shape. It is adequate for invocation but leaves notable gaps.

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

Parameters4/5

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

With 0% schema description coverage and no enum definitions, the description adds meaningful parameter guidance: it enumerates status values and explains that omitting game_id lists matches with odds. It does not explain the sport parameter, but sport is self-evident from the schema and tool context.

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 identifies the resource clearly: betting odds and markets across sportsbooks, and it explains that omitting game_id lists matches with odds. However, it lacks an explicit verb like 'get' or 'list' and does not differentiate itself from sibling tools such as get_lines, get_moneylines, or get_live_odds_history.

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 context about live in-play and pre-match steam moves and gives parameter-level guidance for status and game_id. It does not explicitly state when to use this tool instead of alternatives like get_live_odds_history or get_lines, nor does it mention any exclusions.

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

get_live_odds_historyC

Audit log of in-game odds shifts and line movements for one match. Hobby+.

ParametersJSON Schema
NameRequiredDescriptionDefault
sportYes
game_idYes

TDQS

C2.7/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. 'Audit log' implicitly signals a read-only historical operation and 'Hobby+' hints at an access tier constraint, which is useful, but the description does not disclose return shape, update cadence, data delay relative to live games, pagination, or behavior when the match has no recorded movements.

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 highly compact at two sentences and twelve words, with the core purpose front-loaded before the 'Hobby+' tag. It earns its words, though the trailing 'Hobby+' fragment is cryptic and the terseness tips toward under-specification in the dimensions above.

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 two-parameter read tool this is minimal but not adequate: with no output schema and no annotations, the agent is never told what an audit-log entry looks like (timestamps, odds before/after, bookmaker names, event types), nor what 'Hobby+' actually requires, nor how this differs from get_lines_history. The agent could invoke it correctly but would be guessing at result interpretation.

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 names no parameters explicitly. 'For one match' weakly implies game_id identifies the match within the sport's context, but there is no guidance on accepted value formats for sport, how to obtain a valid game_id (e.g., from get_matches or get_live_games), or whether the tool can accept league codes versus names.

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 identifies a specific resource — an audit log of in-game odds shifts and line movements scoped to one match — which is concrete and more specific than a generic listing. However, the verb is only implied ('audit log of' rather than 'retrieves'), and it does not explicitly differentiate from closely named siblings like get_lines_history or get_history_tape.

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 guidance on when to use this tool versus alternatives, no exclusions, and no mention of prerequisites. With roughly 47 siblings including get_live_odds, get_lines_history, and get_history_tape, an agent has no stated basis for deciding which history tool fits, and must infer that 'live' implies in-game context.

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

get_live_wsA

Live push WebSocket contract (Builder+). Returns URL, auth, subscribe ops — connect from your app; MCP cannot hold the socket.

ParametersJSON Schema
NameRequiredDescriptionDefault
sportNocs2

TDQS

A3.8/5.0
Behavior4/5

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

With no annotations, the description carries the full transparency burden. It adds useful behavioral detail: the tool returns URL/auth/subscribe ops, requires Builder+, and cannot hold the socket on the MCP side. This goes beyond a generic 'get' and informs the agent of an important practical limitation.

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

Conciseness5/5

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

The description is a single dense sentence that front-loads the core purpose and then delivers the key usage constraint. Every phrase adds value; there is no filler 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?

The return categories (URL, auth, subscribe ops) and the connection limitation are covered, but there is no output schema, no annotations, and the only parameter is undocumented. An agent can call it, but it will not know how `sport` affects the result or the exact shape of the returned contract.

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

Parameters1/5

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

The schema has one optional parameter, `sport`, with 0% schema description coverage, and the description never mentions it. The agent is given no guidance on what values are valid, what the default means, or how the parameter affects the returned contract.

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

Purpose5/5

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

The description names a specific verb-resource pair: it returns the live WebSocket contract, including URL, auth, and subscribe operations. It also distinguishes itself from the many data-fetching live tools by explicitly noting the socket is for the caller's app, not something MCP holds.

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

Usage Guidelines4/5

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

The description clearly conveys the intended usage: obtain the WebSocket contract and connect from your app, since MCP cannot hold the socket. It does not explicitly name alternatives or say when not to use it, but the context is clear enough to route an agent correctly.

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

get_matchB

One match by kr_match_id (preferred) or slug. Teams/players are KashRock ids. Builder+.

ParametersJSON Schema
NameRequiredDescriptionDefault
slugNo
sportYes
match_idNo

TDQS

B3.3/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It adds useful context about KashRock ids and the preferred key, but it does not disclose read-only behavior, return format, error cases, or the role of the required sport parameter. For a tool with no annotation safety net, this is thin.

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 no filler. The primary resource and identifying constraints are front-loaded, and every phrase adds signal.

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?

Given no annotations, no output schema, and sparse parameter documentation, the description leaves critical gaps: what sport means and why it is required, what the returned match object looks like, and what 'Builder+' implies about access. An agent can guess the intent but cannot invoke the tool with full confidence.

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 compensate for all three parameters. It clarifies match_id/slug usage and priority, but the only required parameter, sport, is never explained. The 'Teams/players are KashRock ids' note seems to describe returned values more than input param formats.

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 operation ('One match') with a clear resource and the two accepted identifiers, and marks kr_match_id as preferred. The singular 'one match' also differentiates it from sibling tools like get_matches and search_matches.

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 provides a parameter preference ('kr_match_id preferred or slug') but does not explicitly say when to choose this tool over get_matches or search_matches, nor when slug would be the better choice. Usage is implied rather than stated with alternatives.

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

get_matchesC

Match list (kr_match_id, kr_tm_* team ids). status: upcoming | live | finished. Builder+. finished uses vault history.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
sportYes
offsetNo
statusNoupcoming
end_dateNo
start_dateNo

TDQS

C2.8/5.0
Behavior3/5

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

With no annotations, the description carries the full behavioral burden. It does disclose one meaningful behavioral trait: finished matches come from 'vault history' rather than a live source. However, it does not explain default behavior (e.g., default status is 'upcoming', date filtering semantics, pagination behavior via limit/offset), which leaves notable gaps.

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 very short and front-loaded with the core purpose, which is good. However, the phrasing is cryptic and compressed ('Builder+', 'finished uses vault history') rather than clearly structured, and it omits important operational details that would make the brevity effective.

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?

Given six parameters, no output schema, and no annotations, the description is incomplete. It hints at the output shape and one data-source caveat, but an agent still lacks clarity on how to choose values, how dates filter results, what pagination defaults apply, and what the returned list looks like beyond the ID fields.

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 compensate for all six parameters. It only covers 'status' by listing valid values (upcoming | live | finished), which is helpful, but it gives no meaning for sport, start_date, end_date, limit, or offset. This is insufficient for a tool with six parameters and no schema-level descriptions.

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

Purpose4/5

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

The description clearly identifies the resource ('Match list') and the key output fields ('kr_match_id, kr_tm_* team ids'), so an agent can infer this tool returns match IDs and team mappings. It also lists the supported statuses. However, it does not differentiate this from sibling tools like search_matches or get_match, and the phrase 'Builder+' is opaque.

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 guidance on when this tool should be used versus alternatives such as search_matches, get_live_games, or get_team_matches. The mention of statuses and 'finished uses vault history' indirectly hints at intended use cases, but no explicit when-to-use or when-not-to-use guidance is provided.

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

get_match_prepB

Match prep board: team stats, mode winrates, map pool & side biases, form, key player matchups, betting insights. sport = cs2, r6, cod, valorant, or apex. match_slug = KashRock -vs- slug or kr_match_id. Builder+.

ParametersJSON Schema
NameRequiredDescriptionDefault
dateNo
sportYes
team1No
team2No
match_slugYes

TDQS

B3.2/5.0
Behavior3/5

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

With no annotations, the description carries the disclosure burden: the content list makes clear this is a read-only aggregated report, which is useful behavioral information. However, it does not mention authentication needs (despite a login sibling), rate limits, data recency, or how 'Builder+' changes behavior, so disclosure is partial but not misleading.

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 short and front-loaded: the first clause immediately communicates the output board and its sections, and the parameter hints are compact. The trailing 'Builder+.' is cryptic and contributes little, but overall there is minimal waste.

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?

Because there is no output schema and no annotations, the description must stand alone; it does make the required call viable by documenting the required parameters and output sections. Yet it leaves optional parameters ambiguous, does not define 'kr_match_id', and does not explain the returned structure or caveats around betting insights, so clear gaps remain.

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 description compensates for the two required parameters: it enumerates allowed sport values and gives two valid match_slug formats. The remaining three parameters (date, team1, team2) are undocumented in both schema and description, and their role as optional filters is not explained.

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 the resource ('Match prep board') and enumerates concrete contents (team stats, mode winrates, map pool & side biases, form, key player matchups, betting insights), so it is not tautological and can be told apart from siblings like get_player_board or get_match. It lacks an explicit verb in the description and leaves 'Builder+.' unexplained, which costs the top score.

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 usage guidance is the valid sport list and accepted match_slug formats, which are more parameter-format hints than selection criteria. It never states when to choose this board over get_player_board, get_match, research_board, or the many other match/player tools, and gives no negative guidance or explicit conditions.

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

get_mediaC

Resolve player faces + team logos. Same links shape as props (player_image, team_logo).

ParametersJSON Schema
NameRequiredDescriptionDefault
teamNo
sportYes
playerNo
team_idNo
opponentNo
player_idNo

TDQS

C2.7/5.0
Behavior2/5

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

With no annotations, the description carries the full burden of explaining behavior. It only says media is 'resolved' and that the links match the props shape; it does not disclose side effects, whether it performs network fetches, what happens for missing images, or how output is structured beyond those two fields.

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

Conciseness4/5

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

The description is a single efficient sentence followed by a short shape hint; it front-loads the core purpose before the output detail. It loses a point only because 'props' is internal jargon and the meaning of 'same links shape' is not self-contained.

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?

With six parameters, no annotations, and no output schema, this definition is too sparse for an agent to call the tool correctly in all cases. Missing are selection rules among player/team/opponent, whether both faces and logos are returned together, and the exact return format.

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 coverage is 0% and the description does not explain the six parameters. The terms player, team, opponent, and the associated IDs imply which params correspond to faces vs. logos, but the description never states the required sport, the role of opponent, or whether to prefer IDs or names.

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

Purpose4/5

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

The description uses a specific verb ('Resolve') and names the two resources it returns (player faces, team logos), so an agent can identify it as a media-resolution helper. It is distinguishable from data-heavy siblings like get_player or get_props, though it does not explicitly contrast itself with any sibling.

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 guidance on when to call get_media instead of get_player, get_player_snapshot, get_props, or other tools that may include image fields. No context, prerequisites, or exclusions are given, so an agent must infer when media resolution is needed.

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

get_moneylinesB

Team match moneylines from consensus lines board (not DFS props). Upcoming only by default.

ParametersJSON Schema
NameRequiredDescriptionDefault
bookNo
limitNo
sportYes
offsetNo

TDQS

B3.3/5.0
Behavior3/5

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

With no annotations, the description carries the behavioral burden. It adds useful context: the source board, the exclusion of DFS props, and the default upcoming filter. Still, it says nothing about pagination, authentication, or the shape of the returned odds, so transparency is only partial.

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

Conciseness5/5

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

The description is a single front-loaded sentence with no filler. The parenthetical exclusion and the default-filter clause both earn their place.

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?

With four parameters, no annotations, and no output schema, the description should provide more operational context. It does not clarify how book/limit/offset shape the request, how 'upcoming' is determined, or what fields the response contains, so an agent would need significant schema inference or sibling tools to call it confidently.

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

Parameters1/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 for the four parameters, but it names none of them. There is no explanation of what sport values are accepted, what 'book' means relative to consensus, or how limit/offset affect results.

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

Purpose5/5

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

The description names the exact resource ('Team match moneylines') and source ('consensus lines board'), then explicitly separates it from 'DFS props', which are covered by sibling prop tools. The 'upcoming only by default' clause further narrows the scope, so an agent can tell what this tool returns 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 Guidelines3/5

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

'Not DFS props' gives a useful when-not signal, and 'upcoming only by default' indicates when the tool applies. However, no alternative tool is named for DFS props or for past lines, so routing among the many sibling line/prop tools is left mostly to inference.

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

get_playerC

Player profile. player_id is kr_pl_* (preferred) or nickname.

ParametersJSON Schema
NameRequiredDescriptionDefault
sportYes
player_idYes

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description itself must carry the burden of behavioral disclosure. It only names the resource and ID convention; it does not state whether this is read-only, what profile data is included, or any authentication or side-effect considerations.

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

Conciseness4/5

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

The description is a single concise sentence with the core resource front-loaded and the ID convention immediately after. It is efficient, though the brevity means some useful context is omitted.

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?

The tool is a simple lookup, but with no output schema, no annotations, and no differentiation from several similar player-focused tools, the description is too thin to fully support correct selection and usage. The agent still lacks clarity on what the returned profile contains and when this tool should be preferred.

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 meaningful detail for player_id by noting the preferred kr_pl_* prefix and nickname fallback, which the schema lacks. However, it gives no explanation for the required sport parameter, and with 0% schema coverage that remains a notable 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 clearly identifies the resource as a 'Player profile' and even gives the ID format, so an agent can infer this is a lookup operation. It does not explicitly use a verb and does not distinguish the tool from siblings like get_player_stats or research_player, 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 Guidelines2/5

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

There is no guidance on when to use get_player versus the many related player tools. The player_id format note is useful parameter guidance but does not help an agent decide when this tool is the right choice.

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

get_player_boardB

Player averages + favourite weapons (CS2) or agent/role board (Valorant). match_slug = KashRock -vs- slug or kr_match_id (not provider ids). Builder+.

ParametersJSON Schema
NameRequiredDescriptionDefault
dateNo
sportYes
team1No
team2No
match_slugYes

TDQS

B3.2/5.0
Behavior3/5

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

No annotations are present, so the description carries the full burden. It usefully discloses that match_slug must be 'KashRock -vs- slug or kr_match_id' and not provider IDs, which is a real input-validation behavior. However, it does not state read-only status, auth requirements, rate limits, or error behavior.

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 very short and front-loaded with the core output. The 'Builder+' fragment is vague and adds little, but the rest is compact and free of redundancy.

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

Completeness3/5

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

With no output schema and no annotations, the description provides the essential return content and the critical match_slug constraint. It omits the purpose of optional parameters, authentication expectations, and typical usage context, making it adequate but not 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?

Schema coverage is 0%, so the description must add parameter meaning. It explains the sport parameter's effect (CS2 vs Valorant output type) and the match_slug format, but leaves date, team1, and team2 unexplained.

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 player averages plus favourite weapons (CS2) or agent/role board (Valorant), tied to a match via match_slug. It distinguishes the output by sport, which helps differentiate it from generic player-stat siblings, though it lacks an explicit verb like 'retrieve' or 'get'.

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

Usage Guidelines2/5

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

No guidance is given on when to use this tool versus siblings like get_player_stats_full or research_player. The match_slug format note is parameter guidance, not usage context or alternative selection criteria.

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

get_player_propsC

DFS + sportsbook named-player props. Default view=groups + slim — not the full 8MB dump.

ParametersJSON Schema
NameRequiredDescriptionDefault
bookNo
slimNo
viewNogroups
boardNoall
limitNo
sportYes
marketNo
offsetNo
playerNo
event_idNo
player_idNo
market_containsNo
include_event_linesNo

TDQS

C2.9/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden. It usefully discloses that the default view is groups+slim and warns against the full 8MB dump, which is meaningful behavioral context. It does not mention pagination behavior, return format, or any access or side-effect concerns.

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

Conciseness4/5

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

The description is a single compact sentence with the most important payload warning front-loaded. Every word earns its place, though the brevity contributes to the incompleteness on parameters and usage.

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 tool with 13 parameters, no annotations, and no output schema, this description is far from complete. It addresses the large-payload concern but leaves output structure, filtering semantics, pagination, and use-case routing 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%, so the description needed to compensate across 13 parameters, but it only adds context around the 'view' and 'slim' defaults. The remaining parameters (book, market, player, event_id, market_contains, include_event_lines, etc.) are left entirely to inference from their names.

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 identifies a specific resource ('DFS + sportsbook named-player props') and differentiates the tool from generic prop tools by the 'named-player' qualifier. However, it lacks an explicit verb and doesn't directly name sibling tools, so it stops short of being immediately distinguishable from get_props or get_player_board.

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

Usage Guidelines2/5

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

No guidance is given about when to use this tool versus alternatives like get_props or get_player_board. The mention of the default slim/grouped view implies a preference for smaller payloads, but it does not state selection criteria or exclusions.

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

get_player_snapshotC

One-shot: media links + slim player-prop groups for a player (agent-friendly).

ParametersJSON Schema
NameRequiredDescriptionDefault
boardNoall
limitNo
sportYes
playerYes
market_containsNo

TDQS

C2.7/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions the output type and 'one-shot', but fails to state whether the operation is read-only, whether authentication is needed, or any limitations/pagination. 'Agent-friendly' is a vague label, not a concrete behavioral trait.

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

Conciseness4/5

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

The description is a single, efficient sentence with no wasted words. 'One-shot:' front-loads the key value, and 'slim' adds scope, though the structure is minimal rather than fully organized.

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?

With no output schema, no annotations, and 0% schema coverage, the agent is left to guess the response shape and how optional parameters like market_contains behave. The description captures the core idea but omits too many operational details for a 5-parameter 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 0%, so the description must compensate, but it only maps to the player parameter ('for a player'). No meaning is given for sport, board, limit, or market_contains, leaving most of the 5-parameter surface 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?

The description names a specific resource ('media links + slim player-prop groups for a player') and conveys a single-call snapshot concept. It is clear about what the tool returns, though it lacks an explicit verb and does not explicitly differentiate it from siblings like get_player_props or get_media.

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 'One-shot' phrasing implies a quick overview use case, but there is no explicit statement about when to use this tool over alternatives, nor any when-not-to-use guidance. An agent must infer the appropriate context, which is insufficient among 40+ siblings.

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

get_player_statsD

Canonical player stats (KPR and related).

ParametersJSON Schema
NameRequiredDescriptionDefault
sportYes
player_idYes

TDQS

D1.3/5.0
Behavior1/5

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

No annotations are provided, so the description must alone disclose behavior. It says nothing about side effects, read-only nature, rate limits, or response format. The description is a noun phrase with zero 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.

Conciseness2/5

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

The description is extremely short, but this is under-specification rather than effective conciseness. It front-loads 'Canonical' but omits all practical detail, making it more a placeholder than a useful description.

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

Completeness1/5

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

With no schema coverage, no annotations, no output schema, and two required parameters, the description is severely incomplete. It fails to explain KPR, what stats are included, parameter formatting, or any query context, leaving the agent to guess.

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

Parameters1/5

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

The schema has zero description coverage, and the description omits any mention of the parameters sport or player_id. It does not clarify expected formats, meaning of 'KPR', or related stats, adding no value beyond the property names.

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 'Canonical player stats (KPR and related)' is barely more than a restatement of the tool's name, with vague reference to 'player stats' and an unexplained acronym 'KPR'. It does not state the specific resource or distinguish it from siblings like get_player_stats_full or get_player_board.

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

Usage Guidelines1/5

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

There is no guidance on when to use this tool versus alternatives. The word 'Canonical' hints at a standard version but no explicit comparison, condition, or exclusion is given, leaving the agent with no basis for selection.

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

get_player_stats_fullB

Full Redis aggregate: period stats + foundation + recent maps. player = nickname or kr_pl_* id.

ParametersJSON Schema
NameRequiredDescriptionDefault
sportYes
playerYes
recent_limitNo

TDQS

B3/5.0
Behavior3/5

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

With no annotations, the description carries the behavioral burden. It does disclose that the tool is a Redis-backed aggregate covering the player's full stats, which implies a cached, read-only operation. However, it does not address error behavior, missing data handling, or what 'foundation' means, leaving some ambiguity.

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

Conciseness5/5

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

The description is extremely compact: two sentences, no fluff, and the core meaning is front-loaded. The parameter clarification is immediately useful and does not waste space.

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?

With no output schema and no annotations, the description is not complete enough. It states the general components ('period stats + foundation + recent maps') but leaves out response format, valid sport values, and guidance for choosing between this and get_player_stats. An agent would still have unanswered questions before invoking 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%, so the description must compensate for all three parameters. It helps only with 'player' by explaining the accepted identifier forms ('nickname or kr_pl_* id'). The required 'sport' parameter and the optional 'recent_limit' parameter receive no explanatory coverage.

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

Purpose4/5

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

The description clearly identifies the resource ('Redis aggregate') and the content ('period stats + foundation + recent maps'), and it clarifies the identifier format. However, it does not explicitly distinguish this tool from the similarly named get_player_stats sibling, so it loses the top score.

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

Usage Guidelines2/5

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

No guidance is given on when to prefer get_player_stats_full over similar sibling tools like get_player_stats or get_player_snapshot. The description only states what the tool returns, not when it should be used or when an alternative would be more appropriate.

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

get_propsC

DFS player props only. Prefer book/market/player filters — default slim+limit keeps payloads small.

ParametersJSON Schema
NameRequiredDescriptionDefault
bookNo
slimNo
limitNo
sportYes
marketNo
offsetNo
playerNo
market_containsNo

TDQS

C2.4/5.0
Behavior2/5

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

No annotations are provided, so the description must disclose behavioral traits. It only notes that defaults keep payloads small, implying a read operation but never explicitly stating that it is non-mutating. It does not mention pagination via offset, return format, rate limits, or any side effects. The description fails to carry the full behavioral burden in the absence of 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 description is short (two sentences) and avoids fluff, which is good. However, the brevity leads to vagueness—key details about parameter semantics and tool selection are missing. It is concise but not effectively structured to convey essential information.

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?

Given the tool has 8 parameters, no output schema, and no annotations, the description is far from complete. It does not explain what the response looks like, how pagination works (offset), how 'market_contains' differs from 'market', or any constraints on values. An agent cannot reliably invoke this tool correctly with the provided information.

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 compensate. It mentions 'book/market/player filters' and 'slim+limit' but does not clarify the required 'sport' parameter, the 'offset' pagination parameter, or 'market_contains'. With 8 parameters and no schema documentation, this partial explanation is insufficient for correct usage.

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 description states it returns 'DFS player props only', which names a specific resource. However, it does not distinguish itself from the sibling tool 'get_player_props', which likely serves a very similar purpose. Without differentiation, an agent may struggle to choose between 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?

The description advises to 'Prefer book/market/player filters' and mentions the default 'slim+limit' for payload size, but it does not provide guidance on when to use this tool versus alternatives like get_player_props or get_lines. There is no mention of conditions that make this tool the right choice or exclusions for other tools.

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

get_rankingsD

Player rankings. filter: lifetime | last_3_months.

ParametersJSON Schema
NameRequiredDescriptionDefault
sportYes
filterNolifetime

TDQS

D1.9/5.0
Behavior2/5

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

With no annotations, the description carries the full burden of behavioral disclosure, but it only reveals the exact filter strings. It does not indicate whether this is a read-only operation, what output shape is returned, or whether the required sport parameter constrains the query, leaving the tool's runtime behavior mostly undisclosed.

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 short and contains no filler, and the filter values are front-loaded. However, it is a sentence fragment rather than a complete sentence, and the brevity crosses into under-specification rather than intentional conciseness.

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

Completeness1/5

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

Given no annotations and no output schema, the description must carry more weight, but it fails to explain what the tool returns, what sports are supported, or how it differs from siblings like get_player_board and search_players. It is inadequate for reliable invocation of a two-parameter 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 0%, so the description must compensate. It documents valid values for 'filter' but says nothing about 'sport', which is the only required parameter – no allowed sports, format, or effect on results. The compensation is only partial.

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 is a fragment, 'Player rankings.', which essentially restates the tool name without an explicit verb like 'retrieves' or 'lists'. It does not distinguish this tool from closely related siblings such as get_player_board or get_player_stats, and the purpose remains vague.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives. The only usage hint is the filter enumeration (lifetime | last_3_months), but there is no explanation of when each filter is appropriate and no exclusions or context about not using this tool in favor of another.

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

get_resultsB

Settled prop grades: hit | miss | push | pending | error. Sandbox=last 30 days, Hobby=last 90 days, Builder+=full vault.

ParametersJSON Schema
NameRequiredDescriptionDefault
gradeNo
sportYes

TDQS

B3/5.0
Behavior3/5

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

With no annotations, the description carries the behavioral burden. It usefully discloses possible grade values and retention limits by environment, which is more than the tool name alone provides. However, it does not disclose whether the operation is read-only, requires authentication, returns one record per prop, or paginates results.

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

Conciseness5/5

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

The description is extremely concise: two short sentences, each carrying distinct information. The grade taxonomy is front-loaded, and the environment-specific retention detail is efficiently placed in the second sentence with no filler words.

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?

Given that the schema has no descriptions and there is no output schema, the description leaves important gaps: the required sport parameter is not mentioned, the meaning of an empty grade is unclear, and there is no statement of how results are scoped or grouped. It provides useful tier context but is not complete enough for confident 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 0%, so the description needed to explain both parameters. It references the possible grade values, which partially maps to the grade parameter, but it never explains the required sport parameter or how grade is used as a filter. The default grade behavior is also left 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?

The description clearly identifies the resource as settled prop grades and gives a concrete taxonomy of possible values (hit, miss, push, pending, error). It lacks an explicit verb like 'fetch' or 'get', but the meaning is specific enough to distinguish it from a generic results endpoint, even if it doesn't explicitly separate it from siblings like get_props.

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 provides no direct guidance on when to use this tool versus alternatives like get_props or get_player_props. The environment-tier note (Sandbox=30 days, Hobby=90 days, Builder+=full vault) gives useful context about data availability, but it does not help an agent choose this tool or avoid it in favor of another.

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

get_streamsA

Live Twitch/Kick streams for a sport (viewer counts + URLs).

ParametersJSON Schema
NameRequiredDescriptionDefault
sportYes

TDQS

A3.6/5.0
Behavior3/5

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

With no annotations provided, the description must carry the behavioral disclosure burden. It does disclose useful output behavior: streams are live and results include viewer counts and URLs. However, it does not mention empty-result behavior, authentication requirements, or whether the returned URLs are direct stream links, which leaves meaningful gaps.

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

Conciseness5/5

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

The description is a single, tightly worded sentence with no filler. It front-loads the core purpose and adds the most important output details in a parenthetical, keeping the definition compact and scannable.

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

Completeness3/5

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

For a simple one-parameter read tool, the description is minimally viable: it names the resource, the input, and key output fields. But it omits how to determine valid sport values, what happens when no streams are live, and the exact response shape—gaps that are more significant because there is no output schema or annotations.

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 schema has a single required 'sport' parameter with no description, and the tool description only says 'for a sport,' which merely restates the property name. It does not specify accepted formats, examples, or point to list_sports for valid values, so the description fails to compensate for the 0% schema coverage.

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

Purpose5/5

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

The description clearly states the verb and resource: it gets live Twitch/Kick streams for a sport, and it specifies that results include viewer counts and URLs. This distinguishes it from sibling tools like get_live_games or get_live_events, which return game/event data rather than streams.

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 intended use is implied by 'Live Twitch/Kick streams for a sport,' so an agent can infer when to call it. However, it does not explicitly mention when not to use it or direct users to alternatives such as list_sports for valid sport values or get_live_games for non-stream live data.

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

get_team_h2hC

Finished team-vs-team meetings (scores + maps) from the history vault.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
sportYes
team1Yes
team2Yes

TDQS

C2.6/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden. It discloses that the tool returns only finished meetings and includes scores and maps, which is useful behavioral context. However, it omits information about authentication requirements, response format, pagination, or any side effects. The disclosure is minimal but not misleading.

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 no redundant words, which is concise. However, it is under-specified; the brevity comes at the cost of missing critical details. The structure is acceptable but does not front-load the most actionable information or organize it effectively.

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

Completeness1/5

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

The tool has 4 parameters, no output schema, and no annotations, yet the description provides almost no operational details. An agent cannot determine how to format team names, what sports are supported, or what the 'limit' parameter controls. This is severely incomplete for successful invocation.

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

Parameters1/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 any parameters. The roles of 'sport', 'team1', 'team2', and 'limit' are entirely undefined. An agent cannot know valid values, formats, or constraints from either the schema or the description, making this a critical 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 clearly states the resource: finished team-vs-team meetings with scores and maps from the history vault. It distinguishes from live or upcoming matches and implies retrieval of historical head-to-head data. While it lacks an explicit verb like 'get' or 'retrieve', the tool name and context make the action obvious.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives such as get_team_matches, get_matches, or search_matches. The description does not mention prerequisites, preferred scenarios, or exclusions, leaving the agent to infer when this head-to-head specific tool is appropriate.

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

get_team_matchesB

Full finished team schedule from the history vault. Builder+.

ParametersJSON Schema
NameRequiredDescriptionDefault
teamYes
limitNo
sportYes
offsetNo
end_dateNo
start_dateNo

TDQS

B3.1/5.0
Behavior3/5

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

With no annotations, the description must carry behavioral context, and it does disclose that only finished games from a historical archive are returned. It does not cover pagination, ordering, date-filtering behavior, or the meaning of 'Builder+', which are meaningful gaps for a read tool.

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 very short and front-loads the core idea in the first clause. Every phrase except the cryptic 'Builder+' earns its place; the line is parsimonious rather than padded.

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 tool with six parameters, no annotations, and no output schema, this description is too thin to let an agent invoke it correctly. It omits parameter formats, date-range semantics, pagination, and return-value expectations.

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 needed to compensate for undocumented parameters. It only conveys that the resource is a team schedule, lightly covering 'team' and possibly 'sport', but says nothing about limit, offset, start_date, or end_date.

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 phrase 'Full finished team schedule from the history vault' identifies a specific resource: completed match history for a team, and the tool name adds the 'get' verb. It is not a tautology and gives enough scope to distinguish from live-game or generic match tools, though it never names a sibling explicitly.

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: 'finished' and 'history vault' suggest this is for completed historical matches rather than live or upcoming fixtures. However, the description provides no explicit when-to-use/when-not-to-use guidance and does not point to alternatives such as search_matches or get_live_games.

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

get_tournament_mapsB

CS2 tournament map picks/bans + T/CT winrates for a match. match_slug = KashRock -vs- slug or kr_match_id. Builder+.

ParametersJSON Schema
NameRequiredDescriptionDefault
sportYes
match_slugYes

TDQS

B3.4/5.0
Behavior3/5

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

With no annotations, the description must carry the behavioral burden. It clearly discloses the returned content type, but it does not mention caveats such as auth requirements, missing match data behavior, or rate limits. For a read-style tool this is adequate but thin.

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

Conciseness4/5

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

The description is compact and front-loaded, with the core purpose in the first sentence and a useful parameter hint in the second. The cryptic 'Builder+' phrase is not explained, which prevents a top score.

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

Completeness3/5

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

The tool is simple with only two parameters徒, but there is no output schema and no annotations, so the description is the only source of understanding. It covers the main output and match_slug format, yet leaves sport values and the exact returned structure underspecified.

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 provides no parameter descriptions, so the description must compensate. It adds real semantics for match_slug by showing accepted forms, but it only implicitly hints that 'sport' is CS2 and gives no allowed value details. Coverage is partial rather than complete.

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 clear resource ('tournament map picks/bans + T/CT winrates') for a match, which defines what the tool returns. It does not explicitly compare itself to sibling tools such as get_match or get_matches, so it misses the top score.

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 explicit input format hint ('match_slug = KashRock -vs- slug or kr_match_id') and 'Builder+' suggests a context, so usage is implied. However, it does not state when to prefer this tool over alternatives or when not to use it.

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

list_booksC

Live book registry (DFS apps + sportsbooks including Pinnacle, Bovada, Thunderpick, Cloudbet, BetRivers + Kalshi/Polymarket).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It mentions 'Live' registry, suggesting real-time data, but does not disclose whether there are rate limits, authentication requirements, or what happens if the registry is unavailable. It adds some context (the specific bookies covered) but lacks depth.

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

Conciseness4/5

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

The description is a single compact sentence that front-loads the key concept ('Live book registry') and provides specific examples. It is efficient with no wasted words, though it could be slightly clearer about the tool's scope.

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

Completeness3/5

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

For a zero-parameter tool with no output schema, the description is reasonably complete in telling the agent what it returns (a list of books including examples). However, it lacks details about the output format, any filtering capabilities, or how this relates to other data tools. Given the simplicity, a 3 is fair.

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

Parameters4/5

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

The tool has 0 parameters, and schema description coverage is 100% (empty schema). The description adds context about the content (list of specific books), which is the main value. With no parameters, a baseline of 4 applies, and the description adequately compensates by describing the resource.

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 description states the tool lists books (DFS apps and sportsbooks), naming specific examples. It is somewhat clear but does not distinguish it from siblings like list_sports or list_capabilities. The purpose is evident but could be more explicit about what 'books' means in contrast to other list tools.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives like list_sports or list_markets. There is no mention of exclusions or context. The description implies a registry lookup but does not explain when an agent should choose it.

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

list_capabilitiesA

Tools available for your current plan — call whoami first if unsure of plan.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.9/5.0
Behavior3/5

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

With no annotations, the description carries the behavioral burden; it discloses that results depend on the current plan and that whoami is a prerequisite. It does not state that the operation is read-only or describe output shape, but the listing nature implies no destructive effect.

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?

One compact sentence with the core purpose front-loaded and the prerequisite in a dash clause. No filler or redundancy.

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

Completeness4/5

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

For a 0-parameter listing tool with no output schema, the description gives the essential use context and a prerequisite. It doesn't describe the return format, but the tool name and 'tools available' make the result type inferable.

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

Parameters4/5

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

There are zero parameters and the schema is trivial, so the baseline is 4. The description adds no parameter-specific detail because none is needed.

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 the resource ('tools available for your current plan') and the plan-dependent scope, clearly implying a listing action. It also points to whoami as a related tool for plan identity, helping differentiate the two. It lacks an explicit verb, but 'available' plus the tool name is sufficient.

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 tells the agent when to use this tool (to see plan-scoped tools) and gives a concrete prerequisite: call whoami first if the plan is unknown. It does not enumerate exclusions or alternatives beyond whoami, but for a 0-parameter list tool that is adequate.

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

list_marketsA

Canonical prop stat_types and /lines market names agents should use.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.9/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden. It states the content is canonical names but does not explicitly describe the return structure, whether the list is static, or any side effects. This leaves the agent to infer that calling it returns a list of strings.

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?

One short sentence with no filler. It efficiently packs both the subject (canonical prop stat_types and /lines market names) and intended usage ('agents should use') without redundancy.

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

Completeness3/5

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

Given the tool has no parameters and no output schema, the description would need to describe the response shape to be fully actionable. It does not, leaving uncertainty about whether the response is a flat list or a structured object. It is minimally adequate but has a clear 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 has zero parameters, so the description is not required to explain parameter semantics. Baseline of 4 applies, and no misleading information is present.

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

Purpose5/5

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

The description clearly identifies the tool as the authoritative source for prop stat_types and /lines market names, differentiating it from sibling list tools like list_sports and list_books by specifying the exact domain of returned values.

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

Usage Guidelines4/5

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

The phrase 'agents should use' indicates this is the go-to reference for canonical names, but it does not explicitly state when to prefer this over sibling list tools or how it relates to query-building tools like get_lines. Clear context, but no exclusions or explicit alternatives.

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

list_sportsC

Sports KashRock covers.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

C2.1/5.0
Behavior1/5

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

With no annotations, the description carries the full burden of behavioral disclosure. It does not state whether the tool is read-only, requires authentication, is static, or how it behaves. The phrase 'covers' is not a 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.

Conciseness2/5

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

The description is under-specified rather than concise. A three-word fragment does not stand as a proper tool description; it sacrifices clarity for brevity and does not form a functional sentence.

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?

There is no output schema and no annotations, and the description does not mention return format, data type, sorting, or any caveats. For a simple list tool, an agent still lacks sufficient information about what will actually be returned.

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

Parameters4/5

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

The tool has 0 parameters with 100% schema description coverage, so the schema already fully documents the parameter surface. Per the baseline rule for 0 parameters, a score of 4 is appropriate; the description adds no parameter semantics, but none are needed.

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 'Sports KashRock covers' is a noun phrase, not a clear verb+resource statement. It lacks an explicit action verb like 'list' or 'return', so an agent must infer the purpose from the tool name. It also does not differentiate from sibling list tools such as list_books or list_markets.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives. There is no mention of related list tools like list_capabilities, list_books, or list_markets, and no context for selection is given.

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

loginA

Open Google sign-in in the browser and store a KashRock API key locally.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior3/5

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

Without annotations, the description carries the full burden of behavioral disclosure. It discloses a side effect (storing an API key locally) and the action of opening a browser for sign-in. However, it does not mention potential outcomes (e.g., success/failure states, if it requires user interaction, or if it modifies any existing credentials). The disclosure is adequate but not rich.

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

Conciseness5/5

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

The description is a single, well-structured sentence that front-loads the primary action ('Open Google sign-in') and follows with the storage side effect. Every word earns its place; there is no fluff or redundancy.

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

Completeness4/5

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

For a tool with no parameters and an output schema (present but not shown), the description is complete enough. It explains what the tool does and its key side effect. It could mention when to use it or what the return value signifies, but the output schema covers return details, and the purpose is self-evident for a login tool. Minor omission: no indication of authentication flow prerequisites (e.g., needing a browser).

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

Parameters4/5

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

The tool has zero parameters, so the description need not explain any parameter details beyond the schema (which already has 100% coverage for an empty object). The baseline for zero parameters is 4, and the description adds no param-specific information because there is none to add.

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

Purpose5/5

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

The description clearly states the tool's action: opening Google sign-in and storing a KashRock API key locally. It specifies a concrete verb ('Open', 'store') and resource ('Google sign-in', 'KashRock API key'), and it is unmistakably distinct from the sibling tools, which are all data retrieval operations.

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 that this tool is for authentication, since it mentions login and storing an API key. However, it does not explicitly state when to use it in relation to other tools (e.g., before calling get_* tools, or how it differs from whoami). No alternatives or exclusions are mentioned, so the usage context is only implied.

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

research_boardD

Research slips for the current board.

ParametersJSON Schema
NameRequiredDescriptionDefault
sportNocs2
recentNo

TDQS

D1.3/5.0
Behavior1/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure, and it fails entirely. 'Research slips for the current board' discloses no side effects, no scoping behavior, no notion of what 'current' means, and no sense of what the returned data represents. The agent is left blind about what happens when it calls this tool.

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 short, but this is under-specification, not conciseness. A single ambiguous sentence with no useful front-loaded information does not earn conciseness credit — every word is wasted because the sentence communicates almost nothing actionable.

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

Completeness1/5

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

With no output schema, no annotations, two undocumented parameters, and a large sibling set creating ambiguity, the description is wholly inadequate. An agent cannot determine what 'slips' and 'current board' mean, what the parameters do, what the output looks like, or how this differs from research_board_tapes.

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

Parameters1/5

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

Schema description coverage is 0%, so neither the schema nor the description explains the two parameters. The description never mentions 'sport' or 'recent', leaving the agent to guess what values are valid and what effect they have on the results.

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 names a verb ('Research') and a resource ('slips for the current board'), but 'research' is a vague verb that does not indicate the actual operation, and 'slips' plus 'board' are undefined domain jargon. It does nothing to differentiate this tool from closely named siblings like research_board_tapes or research_player, so an agent cannot tell what this tool uniquely does.

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

Usage Guidelines1/5

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

There is no guidance whatsoever on when to use this tool versus the roughly 50 siblings. No exclusions, no alternatives, no context — with research_board_tapes and research_player in the same family, the agent has no basis for choosing this tool over the others.

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

research_board_tapesC

Research quote tapes for the current board (Hobby+).

ParametersJSON Schema
NameRequiredDescriptionDefault
sportNocs2

TDQS

C2.1/5.0
Behavior1/5

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

With no annotations provided, the description carries the full burden of disclosing behavior, but it does not mention side effects, access requirements, read-only nature, output format, or what a 'tape' entails. The only behavioral hint is the verb 'research', which weakly implies a read operation.

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 single sentence is concise and front-loads the main purpose without filler. It loses a point only because the jargon-laden 'quote tapes' and parenthetical 'Hobby+' are not expanded, so compactness comes at the cost of clarity.

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 tool with one optional parameter, no annotations, no output schema, and many siblings, the description is too thin: it omits parameter behavior, return expectations, and selection criteria. Some context is present (current board, Hobby+), but it is not enough for correct invocation.

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

Parameters1/5

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

Schema description coverage is 0% and the description adds nothing about the optional 'sport' parameter. An agent can only infer from the property name and default 'cs2'; the description fails to explain whether sport is required or how it affects the tape results.

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 description names a specific action and resource ('Research quote tapes') and scopes it to 'the current board (Hobby+)', so it is not a pure tautology. However, 'quote tapes' is unexplained jargon and the description does not differentiate this from siblings like research_board or get_history_tape, leaving the agent to guess what the tool actually returns.

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 only implies that this tool is for researching quote tapes on the current board. It gives no explicit conditions for when to choose it over research_board, research_player, or get_history_tape, nor any exclusions.

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

research_playerB

Career tape for one player and market. player is kr_pl_* (preferred), catalog slug, or nickname. Empty tape is 200, not 404.

ParametersJSON Schema
NameRequiredDescriptionDefault
sportNocs2
marketNokills_maps_1_2
playerYes
recentNo

TDQS

B3/5.0
Behavior3/5

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

With no annotations, the description is the sole behavioral source. It discloses a valuable edge case — empty tape returns 200, not 404 — which prevents misinterpretation of empty results. It does not mention auth, data recency, or side effects, though the read-only nature is implied.

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

Conciseness5/5

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

Three short sentences each carry distinct information: purpose, player identifier format, and the empty-tape behavior. It is front-loaded, free of filler, and easy to scan.

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 tool with four parameters, no annotations, and no output schema, the description is too thin. It does not describe the structure of a career tape, the effect of `recent`, or valid values for `sport` and `market`, leaving an agent to guess important call details.

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 compensate, but it only documents the `player` parameter (kr_pl_*, slug, nickname). It leaves `sport`, `market`, and `recent` unexplained, and the market mention in the purpose line does not clarify its format or allowed values.

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, 'Career tape', and scopes it to one player and market, which clearly conveys the core function. It implicitly distinguishes this from board-level siblings like research_board_tapes, but it uses no explicit verb and never names alternatives, so it stops short of full differentiation.

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 guidance on when to choose this tool over research_board_tapes, get_player_stats_full, or get_player. The only usage hint is the parameter-level note about player identifiers, which is not tool-selection guidance.

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

search_matchesC

Find matches by team name(s) and optional YYYY-MM-DD. Builder+.

ParametersJSON Schema
NameRequiredDescriptionDefault
dateNo
sportYes
team1Yes
team2No

TDQS

C2.7/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It reveals the query criteria but does not state whether authentication or special permissions beyond 'Builder+' are required, what the response contains, whether results are limited, or whether the operation is read-only. 'Builder+' is an ambiguous label rather than a clear access disclosure.

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

Conciseness4/5

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

The description is a single focused sentence with no filler, front-loading the core action and criteria. The cryptic 'Builder+' slightly hurts clarity but does not add unnecessary length.

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?

The tool has four parameters, no output schema, and no annotation support, so the description needs to do substantial work. It fails to document the required sport parameter, explain 'Builder+', define the return shape, or mention ordering or limits. An agent cannot reliably construct a correct call or interpret the response from this description alone.

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 compensate for the schema's lack of parameter documentation. It adds some meaning for date ('YYYY-MM-DD') and for team1/team2 via 'team name(s)', but it completely omits the required 'sport' parameter and gives no value guidance for any 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?

The description uses a specific verb ('Find'), identifies the resource ('matches'), and states the primary search dimensions (team name(s), optional date). However, it does not differentiate this tool from siblings like get_matches or get_team_matches, and the term 'Builder+' is unexplained, so it is not 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 Guidelines2/5

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

There is no guidance on when to use search_matches versus sibling tools such as get_matches, get_team_matches, or search_players. 'Builder+' hints at an access restriction but is not explained, and no exclusions or alternative tool recommendations are provided.

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

search_playersA

Find a player by nickname. Returns kr_pl_* ids. limit caps rows (default 25, max 200).

ParametersJSON Schema
NameRequiredDescriptionDefault
qYes
limitNo
sportYes

TDQS

A3.9/5.0
Behavior4/5

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

With no annotations, the description carries the burden of behavioral disclosure, and it does add meaningful behavior: it reveals the return format ('kr_pl_* ids') and the limit semantics (default 25, max 200). It could disclose more, such as match behavior or error cases, but for a simple search tool it provides valuable, non-obvious behavioral detail beyond the bare schema.

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

Conciseness5/5

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

Three short sentences, each earning its place: the main purpose, the return format, and a parameter constraint. The most important information is front-loaded, and there is no filler or repetition of schema defaults beyond what is useful.

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

Completeness3/5

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

For a simple search tool, the description covers purpose, return shape, and limit behavior. But it leaves the required sport parameter unexplained and does not describe the result structure beyond the ID prefix, which is significant since there is no output schema. The agent can likely invoke the tool, but it must guess about sport values and the exact response shape.

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 explains q as a nickname and gives limit's default and maximum, which adds value over the bare schema. However, it omits the required 'sport' parameter entirely, leaving the agent without guidance on what values are accepted (sport name, slug, code) or how it constrains the search.

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 phrase 'Find a player by nickname' names a specific verb, a clear resource, and a distinct search criterion. It also differentiates this tool from siblings like get_player and get_player_snapshot, which are retrieval-by-ID tools, and signals the returned ID namespace with 'Returns kr_pl_* ids'.

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 primary usage: search when you have a nickname and need a player ID. However, it does not explicitly state when to use this instead of get_player, whether to use search_matches for match lookup, or what to do with the returned IDs. The 'by nickname' phrasing gives only implied context, not explicit routing guidance.

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

suggest_buildA

Given a one-line app goal, return which MCP tools + plan to use (no endpoints required).

ParametersJSON Schema
NameRequiredDescriptionDefault
goalYes

TDQS

A4.5/5.0
Behavior4/5

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

With no annotations, the description carries the burden. It discloses that the tool returns a recommendation rather than executing endpoints, and explicitly notes endpoints are not required. It does not detail the plan format, but for a non-destructive advisory tool this is reasonable.

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?

A single sentence with no filler; the input condition is front-loaded and the output promise follows immediately. Every word 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 simple one-parameter advisory tool, the description specifies the input, the output shape, and the absence of an endpoint requirement. Nothing essential is missing for an agent to invoke it correctly.

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

Parameters4/5

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

The schema provides only a 'goal' string with zero description. The phrase 'one-line app goal' adds meaningful constraints on format and scope that the schema lacks, compensating for the 0% schema coverage.

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

Purpose5/5

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

States a specific verb and resource: given a one-line app goal, return the MCP tools plus a plan. This clearly differentiates it from the many data-retrieval siblings such as get_player or get_matches, which fetch data rather than plan a build.

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

Usage Guidelines4/5

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

The phrase 'Given a one-line app goal' establishes a clear use context, and 'no endpoints required' distinguishes it from endpoint-driven data tools. It does not explicitly name alternatives or list when-not-to-use conditions, so it stops short of a 5.

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

whoamiB

Your KashRock plan, quota remaining, and unlocked data drawers.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It does not state that this is a read-only operation, whether authentication is required, or whether there are side effects. It only lists returned content.

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

Conciseness4/5

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

The description is a single short sentence with no wasted words. It is concise, but the terse noun-phrase structure lacks a verb and may require additional inference from the agent.

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

Completeness3/5

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

For a zero-parameter status tool with no output schema, the description gives the broad categories of returned information but does not explain the format or how the agent should interpret the response. It is adequate but not fully complete.

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

Parameters4/5

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

The tool has zero parameters and the schema is empty with 100% coverage. The description adds no parameter info, but with no parameters to describe, the baseline of 4 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 identifies the subject (your KashRock account) and the specific data returned (plan, quota remaining, unlocked data drawers). It distinguishes this tool from the sports-data sibling tools, though it lacks an explicit verb like 'retrieve' or 'get'.

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 guidance on when to use this tool versus alternatives. The reader must infer that it is for account/status information; no explicit context or exclusions are provided.

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. 46 tool updatesv0.6.5
    • First observedexplain_error
    • First observedget_best_lines
    • First observedget_boxscore
    • First observedget_coverage
    • First observedget_gamelogs
    • First observedget_gaps
    • First observedget_history_tape
    • First observedget_lines
    • First observedget_lines_history
    • First observedget_live_boxscore
    • First observedget_live_events
    • First observedget_live_frame
    • First observedget_live_games
    • First observedget_live_odds
    • First observedget_live_odds_history
    • First observedget_live_ws
    • First observedget_match
    • First observedget_match_prep
    • First observedget_matches
    • First observedget_media
    • First observedget_moneylines
    • First observedget_player
    • First observedget_player_board
    • First observedget_player_props
    • First observedget_player_snapshot
    • First observedget_player_stats
    • First observedget_player_stats_full
    • First observedget_props
    • First observedget_rankings
    • First observedget_results
    • First observedget_streams
    • First observedget_team_h2h
    • First observedget_team_matches
    • First observedget_tournament_maps
    • First observedlist_books
    • First observedlist_capabilities
    • First observedlist_markets
    • First observedlist_sports
    • First observedlogin
    • First observedresearch_board
    • First observedresearch_board_tapes
    • First observedresearch_player
    • First observedsearch_matches
    • First observedsearch_players
    • First observedsuggest_build
    • First observedwhoami

TDQS

C2.6/5.0

Scored across 46 tools

Disambiguation2/5

Several tools have heavily overlapping surfaces, such as get_props/get_player_props/get_player_snapshot, get_lines/get_best_lines/get_moneylines/get_live_odds, and get_live_games/get_live_boxscore (which also lists live games when game_id is omitted). Descriptions add caveats, but with 46 similarly named read tools an agent will often struggle to pick the right one.

Naming Consistency4/5

The vast majority of tools follow a get_/list_/search_/research_ + noun snake_case pattern, and there is no mixed casing. Minor deviations like login, whoami, explain_error, and suggest_build are still readable and conventional, though the abundance of get_lines/get_live_odds/get_moneylines/get_best_lines makes names semantically confusing.

Tool Count2/5

At 46 tools, this is far beyond the healthy 3-15 range and falls into the 'too many' category. Many tools could be consolidated, especially the live-game listing, props variants, and lines/odds families, which would reduce navigation burden without losing capability.

Completeness4/5

The surface covers the domain well: plan/auth, sports/books/markets catalogs, match scheduling, player search and stats, props, odds, live telemetry, results, media, and research tapes. Minor gaps exist—no tournament/event listing and no direct single-prop detail endpoint—but agents can work around them with existing tools.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    B
    quality
    D
    maintenance
    MCP-compatible server that gives AI agents access to alternative sports data across 30+ leagues — odds, events, probabilities, settlement, and futures for prediction markets, DFS platforms, and sportsbooks.
    29
    8 npm
    MIT
  • A
    license
    A
    quality
    B
    maintenance
    A unified MCP server that aggregates 32 sports API providers into a single service, providing 336 tools for scores, stats, odds, esports, and more across 70+ sports.
    100
    66 npm
    33
    MIT
  • A
    license
    A
    quality
    A
    maintenance
    Live sports betting player props MCP server covering NBA, MLB, NFL, NHL, NCAA, and soccer. Unified from real sportsbooks into one REST API and a real MCP server (Streamable HTTP). Free tier, no card required.
    5
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Props-first sports odds API with a hosted MCP server. Live odds and player props (moneyline, spreads, totals) across US sportsbooks, normalized to JSON. Tools: get_odds, get_props, get_events, get_books. API-key auth, free tier.
    MIT No Attribution