Ball Ranks Fantasy Sports
Server Details
Fantasy football and basketball rankings and player projections from Ball Ranks.
- Status
- Healthy
- Uptime
- 100.0% over 26 days
- Last Tested
- Transport
- Streamable HTTP ยท MCP 2025-11-25
- URL
- Repository
- Ollynov/ball-ranks-plugin
- GitHub Stars
- 0
- Server Listing
- Ball Ranks Fantasy Sports
TDQS
Scored across 4 tools
The four tools split cleanly by data type (projections vs rankings) and granularity (single player vs board). The only mild friction is between get_player_rankings (one player's season rank) and get_season_rankings (the full season board), but the descriptions make the single-vs-board distinction explicit.
All four tools follow the same get_<scope>_<object> pattern: get_player_projections, get_player_rankings, get_season_rankings, get_week_rankings. No mixing of conventions or verb styles.
Four tools is a lean but sensible surface for a rankings/projections API, with each tool covering a distinct data axis. It sits slightly on the minimal side, leaving little room for batch or lookup helpers.
Read-only coverage of projections, per-player rankings, season boards, and weekly boards is solid. However, projections are single-player only (no batch), and there is no tool to resolve a player name to the required ID/slug, a minor dead end.
Available Tools
4 toolsget_player_projectionsGet a player's projectionARead-onlyIdempotentInspect
Look up one player's published season projection, or a weekly football projection, by player ID or slug. Weekly projections require scope=weekly and a week number.
| Name | Required | Description | Default |
|---|---|---|---|
| week | No | ||
| model | No | v0 | |
| scope | No | season | |
| sport | Yes | ||
| player | Yes | ||
| season | No | ||
| scoring_format | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| meta | Yes | |
| week | No | |
| scope | Yes | |
| player | Yes | |
| season | Yes | |
| sourceUrl | Yes | |
| projection | Yes | |
| scoringFormat | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, so the safety profile is covered. The description adds the non-obvious constraint that weekly lookups need scope=weekly plus a week, but says nothing about auth, rate limits, or coverage of unpublished projections.
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 front-loaded sentences with no filler: the primary capability first, the weekly-mode precondition second. Every clause earns its place.
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?
An output schema exists so return values need no explanation, and the weekly constraint is a valuable addition. However, for a 7-parameter tool with 0% schema coverage, the description omits guidance on the season, sport, model, and scoring_format parameters, leaving notable 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 0% across 7 parameters, so the description carries the burden but only clarifies three things: player accepts an ID or slug, scope=weekly, and week. It leaves sport, model, season, and scoring_format entirely to the schema's enums/types.
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?
States a specific verb+resource ('look up one player's published season projection... or weekly football projection') and identifies the lookup keys (player ID or slug). It is clearly distinguishable from the sibling rankings tools by resource type, though it does not name them explicitly.
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?
Gives an explicit conditional for the weekly path ('require scope=weekly and a week number'), which tells the agent when weekly mode is applicable. It stops short of naming the rankings siblings as alternatives for comparison-type queries.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_player_rankingsGet a player's season rankingARead-onlyIdempotentInspect
Look up one player's published Ball Ranks season ranking by player ID or slug. Use this when the user asks where a specific player ranks.
| Name | Required | Description | Default |
|---|---|---|---|
| model | No | v0 | |
| sport | Yes | ||
| player | Yes | ||
| season | No | ||
| scoring_format | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| meta | Yes | |
| player | Yes | |
| season | Yes | |
| ranking | Yes | |
| sourceUrl | Yes | |
| scoringFormat | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnlyHint, idempotentHint, destructiveHint=false, openWorldHint), so the bar is lower. The description adds only that the ranking is 'published,' and says nothing about behavior when a player or season is not found, whether season defaults, or how the data is scoped.
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 short sentences, correctly front-loaded with the action and resource before the usage trigger. No filler or redundant restatement of the title.
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?
An output schema exists, so return values need not be described. However, for a 5-parameter tool with zero schema coverage, the description leaves too much unstated โ especially season defaults, scoring_format relevance, and model version selection.
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 0% across 5 parameters, so the description must carry the load. It clarifies only that the 'player' parameter accepts an ID or a slug; sport, season, scoring_format, and the v0/v1 model parameter are left entirely unexplained.
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?
States a specific verb ('look up') and resource ('one player's published Ball Ranks season ranking') and identifies the lookup key (player ID or slug). It contrasts implicitly with the plural siblings (get_season_rankings, get_week_rankings) but never names them, so differentiation is left to inference.
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?
Gives a concrete trigger: 'Use this when the user asks where a specific player ranks.' That is clear usage context, but there are no exclusions or routing rules against the very similar get_season_rankings / get_week_rankings siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_season_rankingsGet season rankingsARead-onlyIdempotentInspect
Return a paginated Ball Ranks season ranking board for fantasy basketball or football. Basketball uses nine-category per-game rankings; football accepts standard, half-PPR, or PPR scoring.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| model | No | v0 | |
| sport | Yes | ||
| offset | No | ||
| season | No | ||
| scoring_format | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| meta | Yes | |
| query | Yes | |
| total | Yes | |
| rankings | Yes | |
| sourceUrl | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, so the safety profile is covered. The description adds that results are paginated and that ranking methodology differs by sport, which is genuinely useful, but it omits anything about default page size, pagination limits, or the meaning of the model versions.
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, no filler, with the primary purpose front-loaded before the sport-specific detail. Every clause carries information the schema does not already state.
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?
An output schema exists so return values need not be explained, and annotations cover safety, so the definition is close to sufficient. The remaining gaps are the undocumented 'model' parameter and the absence of any routing guidance relative to the three sibling ranking tools.
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 0%, so the description carries the full burden for six parameters. It usefully clarifies the sport enum values and the football scoring formats, and 'paginated' hints at limit/offset, but 'model' (v0/v1) is completely unexplained and 'season' gets no format guidance.
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?
States a specific verb and resource ('Return a paginated ... season ranking board') plus the sport scope, which is more specific than the title alone. However, it never names or contrasts with the sibling tools (get_week_rankings, get_player_rankings), so the agent must infer the season-vs-week distinction from the name.
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?
Usage is implied by the words 'season ranking board', which suggests it is the season-scope counterpart to get_week_rankings, and the description notes the basketball vs football ranking methodology. There is no explicit when-to-use, when-not-to-use, or named alternative, so routing between siblings is left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_week_rankingsGet weekly football rankingsBRead-onlyIdempotentInspect
Return published weekly fantasy football rankings for one position, week, and scoring format. Use this for start/sit comparisons or a ranked position list. This tool does not support basketball.
| Name | Required | Description | Default |
|---|---|---|---|
| week | Yes | ||
| limit | No | ||
| model | No | v0 | |
| sport | No | football | |
| offset | No | ||
| season | No | ||
| position | No | RB | |
| scoring_format | No | ppr |
Output Schema
| Name | Required | Description |
|---|---|---|
| meta | Yes | |
| query | Yes | |
| total | Yes | |
| rankings | Yes | |
| sourceUrl | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false, and openWorldHint, so safety is covered. The description adds the 'published' qualifier and the basketball limitation, but says nothing about pagination behavior (limit/offset exist) or what the response contains. Adequate but not rich beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, front-loaded with the core action and free of padding. The basketball note is compact and functional rather than filler.
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?
An output schema exists, so return values need not be described, and annotations cover the safety profile. Still, for an 8-parameter tool with zero schema descriptions, the pagination (limit/offset) and season/model parameters are unexplained, and the basketball/sport-enum mismatch is left dangling. Solid but not fully complete.
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 0% across 8 parameters, so the description carries the full burden. It names only position, week, and scoring_format, and adds no format/default/syntax detail; season, model, limit, and offset go entirely unexplained. The sport enum even permits 'basketball' while the description says basketball is unsupported, which the description does not reconcile.
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?
States a specific verb and resource (published weekly fantasy football rankings) plus the scoping dimensions (one position, week, scoring format). The 'weekly' qualifier implicitly distinguishes it from get_season_rankings, but no sibling is named or contrasted explicitly.
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?
'Use this for start/sit comparisons or a ranked position list' gives a use context, and 'does not support basketball' provides one exclusion. However, it never mentions the adjacent siblings (get_player_rankings, get_season_rankings, get_player_projections), leaving the agent to infer when this tool beats them.
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.
4 tool updates
- First observed
get_player_projections - First observed
get_player_rankings - First observed
get_season_rankings - First observed
get_week_rankings
Related MCP Connectors
DFS projections, ownership, optimizers and model picks for NFL, MLB, NBA, NHL, PGA, MMA and more.
Fantasy analysis for your ESPN, Yahoo, and Sleeper leagues. Reads your leagues, never changes them.
Dynasty and redraft fantasy football trade values, trade grades, and Sleeper league rosters.
Live NFL, MLB, and NBA sports intelligence: injury signals, identity resolution, projections.
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceAn open NFL fantasy-football analytics platform that provides live data, machine-learned projections, dynasty values, and prospect grades via an MCP server for AI clients.3MIT
- AlicenseAqualityDmaintenanceProvides AI-powered sports analytics for Daily Fantasy Sports (DFS) with real-time player projections, lineup optimization, live odds aggregation from multiple sportsbooks, and SHAP-based explainability to understand recommendation reasoning.41MIT
- AlicenseAqualityAmaintenanceNFL fantasy football data over MCP. Compare any two players head to head, pull position rankings in PPR, half-PPR or standard, check positional scarcity and bye-week conflicts.91MIT
- FlicenseBqualityNot gradedmaintenanceProvides access to FantasyPros API for retrieving sports data including news, player information, consensus rankings, and projections across NFL, MLB, NBA, and NHL.57-
Glama MCP Gateway
Add one secure layer between your agents and this server.