list_tables
List every queryable table in one league with a one-line summary each. No credentials needed. Follow with describe_table before querying.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| league | Yes |
List every queryable table in one league with a one-line summary each. No credentials needed. Follow with describe_table before querying.
| Name | Required | Description | Default |
|---|---|---|---|
| league | Yes |
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the transparency burden. It discloses auth requirements (no credentials) and output format (one-line summaries), adding value beyond the tool name. It does not mention error handling or rate limits, but for a simple read-only list, this is adequate.
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?
Two sentences, front-loaded with the core purpose, followed by essential usage notes. No filler or repetition.
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 one-parameter list tool, the description covers purpose, auth, output summary, and a recommended next step. It does not detail return structure, but the output is summarized as one-liners, which is sufficient for a tool of this simplicity.
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?
The description implies the league parameter ('in one league') but does not describe its values or behavior. Schema coverage is 0%, so the description partially compensates, but the schema already fully defines the league enum and requirement.
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 clearly states the tool lists every queryable table in a league with one-line summaries. It explicitly names the resource (tables) and scope (per league), distinguishing it from sibling list_leagues.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides actionable guidance: 'No credentials needed' and 'Follow with describe_table before querying.' However, it does not explicitly compare to alternatives like query_table or list_leagues, though the workflow is implied.
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.