get_record
Fetch a single row by primary key. Returns the row object. Requires an API key; costs 1 record of quota.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | primary-key value (integer or text PK) | |
| table | Yes | ||
| league | Yes |
Fetch a single row by primary key. Returns the row object. Requires an API key; costs 1 record of quota.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | primary-key value (integer or text PK) | |
| table | Yes | ||
| league | Yes |
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 an API key is required and that the operation costs 1 record of quota, which is meaningful operational context beyond the 'fetch' action. It implies a read-only operation but does not discuss error behavior or not-found handling.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three concise sentences, each adding distinct information: the operation, the return type, and the usage cost. It is front-loaded and contains no filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read tool, the description covers the essential context: purpose, return type, authentication, and quota cost. There is no output schema, so the return type description is helpful. However, it lacks explicit guidance on when to prefer this over query_table and does not mention behavior when the record is missing, leaving minor gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% (only 'id' has a description). The description adds no meaningful detail about 'league' or 'table'; it only reinforces that id is the primary key. It does not compensate for the missing parameter explanations, leaving users to infer league/table semantics from names/enums.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states 'Fetch a single row by primary key' with a specific verb and resource, clearly distinguishing it from sibling tools like query_table by emphasizing single-row/primary-key operation. It also specifies the return type ('Returns the row object').
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use the tool (when you need a single row by primary key), but it does not explicitly mention alternatives or exclusions relative to sibling tools such as query_table. The phrase 'single row by primary key' implies the appropriate scenario.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Add one secure layer between your agents and this server.
Each tool targets a distinct purpose: metadata discovery (list_leagues, list_tables, describe_table), data retrieval (query_table, get_record, graphql_query), convenience queries (games_on_date, game_markets, search_players), and account management (api_usage). No two tools have overlapping boundaries despite some sharing the ability to access data.
Most tools follow a clear verb_noun pattern (describe_table, get_record, list_leagues, list_tables, query_table, search_players), but a few use noun-only names (api_usage, game_markets, games_on_date, graphql_query). The naming is still readable and lowercase snake_case throughout, but the mix prevents a perfect score.
10 tools is well-scoped for a sports data API: it provides the essential discovery, schema inspection, querying, and retrieval operations, plus a few convenience wrappers. The count is neither too thin nor bloated.
The tool set fully covers the lifecycle of a read-only data API: exploring available leagues/tables, understanding table schemas, querying with filters and pagination, fetching by primary key, and accessing relational data via GraphQL. Convenience tools for games, markets, and player search address common use cases, and any data not directly exposed can be accessed through query_table.