Ball Ranks
Server Details
Fantasy football and basketball rankings and player projections from Ball Ranks.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- Repository
- Ollynov/ball-ranks-plugin
- GitHub Stars
- 0
- Server Listing
- Ball Ranks
TDQS
Scored across 4 tools
Each tool has a clearly distinct purpose: player projections vs. player rankings vs. season ranking boards vs. weekly position rankings. The descriptions clarify scope, identifiers, and sport/format constraints, leaving little room for misselection.
All four tools follow a consistent get_<entity>_<resource> pattern: get_player_projections, get_player_rankings, get_season_rankings, get_week_rankings. The convention is predictable and easy for an agent to parse.
Four tools is well-scoped for a read-only fantasy rankings and projections service. Each tool covers a distinct retrieval need without redundancy or obvious padding.
The surface covers core player projections, player rankings, season boards, and weekly football rankings. Minor gaps remain: no direct weekly player ranking lookup, no basketball weekly rankings, and no name/search helper for resolving player IDs or slugs.
Available Tools
4 toolsget_player_projectionsGet a player's projectionBRead-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 readOnly/idempotent/non-destructive/openWorld, so the safety profile is covered. The description adds only the mild note that projections are 'published' and the weekly-mode constraint; it says nothing about what happens with an invalid week, an unpublished season, or a player that exists but lacks a projection.
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, zero filler, with the primary season lookup front-loaded and the weekly fork immediately after. 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?
The output schema covers return values and the annotations cover safety, so the remaining burden is parameter meaning — where a 0% coverage schema leaves model, scoring_format, and season unexplained in both places. Adequate for a lookup tool, but not 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 coverage is 0% across 7 parameters, so the description carries the full burden — yet it only explains 'player' (ID or slug), 'scope', and 'week'. It is silent on sport, model, season, and scoring_format, four enum-bearing parameters an agent must set correctly.
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') and distinguishes two real modes (season vs. weekly football). It never names the rankings siblings, so an agent gets no explicit contrast against them, but the resource itself is unambiguous.
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 one concrete conditional: 'Weekly projections require scope=weekly and a week number,' which is useful mode-selection guidance. It stops there — no when-not, no prerequisites, and no routing to get_player_rankings or the ranking tools for roster-wide comparisons.
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 establish this is a safe, idempotent, read-only lookup, so the description need not restate safety. It adds the useful constraint that only 'published' rankings are returned, but says nothing about behavior for unpublished/nonexistent players, ID-vs-slug resolution failures, or the default season — modest added context over 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?
Two tight sentences with zero filler; scope is front-loaded before the usage cue. Every clause earns its place and nothing is repeated from structured fields.
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. However, with five parameters, 0% schema coverage, and three enums, the description is thin on how sport/model/scoring_format affect the result and on what happens when no ranking is published for the player.
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, yet it explains only the 'player' parameter (ID or slug). The required 'sport' enum, 'model', 'season', and 'scoring_format' enums get no semantic treatment, leaving an agent to guess at season defaults and format implications.
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 a clearly scoped resource: one player's published Ball Ranks season ranking. 'One player's' plus 'season ranking' distinguishes it from siblings get_season_rankings and get_week_rankings, which imply bulk/period listings, so an agent can tell them apart without opening schemas.
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 trigger: 'Use this when the user asks where a specific player ranks.' That is clear positive routing guidance, but it never names the alternative tools (get_season_rankings, get_week_rankings, get_player_projections) or the conditions under which one should be preferred instead.
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 readOnly, idempotent, open-world, non-destructive behavior, so the safety profile is covered. The description adds real domain context beyond that: basketball returns nine-category per-game ranks while football is driven by standard/half-PPR/PPR scoring, which tells the agent how the result set will differ by sport.
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 tightly written sentences with no filler, front-loading the core purpose before the sport-specific qualifiers. Nothing is redundant with the schema and no sentence is wasted.
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?
Output schema exists, so return values need no explanation, and the annotations cover safety. The description covers sport-specific semantics and pagination at a high level, but leaves the opaque 'season' format and the 'model' version parameter unexplained, which is a real gap for a six-parameter tool.
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 six parameters, so the description carries the full burden and largely fails. It clarifies that scoring_format applies only to football and what basketball rankings mean, but says nothing about 'model' (v0/v1), 'season' (accepts int or string up to a huge bound), 'limit', or 'offset' beyond the word 'paginated'.
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 gives a specific verb and resource ('Return a paginated Ball Ranks season ranking board') and specifies the sport-dependent ranking semantics. It implicitly separates itself from get_week_rankings by scoping to a season, but never names a sibling explicitly, 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?
Usage is implied by the word 'season' (as opposed to week or player rankings) but the description never states when to choose this tool over get_player_rankings or get_week_rankings, nor any exclusions or prerequisites. An agent must infer the routing decision from the tool name alone.
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 the safety profile is covered. The description adds the 'published' qualifier and the sport exclusion, but says nothing about pagination behavior despite limit/offset parameters, nor about result ordering.
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 with the core action front-loaded and no filler. Slightly under-specified rather than bloated, but well structured.
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-value explanation is not required. However, for a paginated, parameter-rich list tool (8 params, 1 required) the description omits pagination and season/model semantics, leaving meaningful 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 8 parameters, so the description carries the burden. It names only position, week, and scoring format (3 of 8) and leaves season, limit, offset, model, and sport entirely undefined with no format or pagination 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?
The description gives a specific verb and resource ('Return published weekly fantasy football rankings') and scopes it to one position, week, and scoring format. It is clear what the tool does, though it never names the sibling tools (get_season_rankings, get_player_rankings) to sharpen the distinction.
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' supplies a concrete use case, and the explicit exclusion 'does not support basketball' rules out a plausible misuse. No alternative tool is named for adjacent needs like season-long rankings, which keeps it 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.
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
Fantasy analysis for your ESPN, Yahoo, and Sleeper leagues. Reads your leagues, never changes them.
Live NFL, MLB, and NBA sports intelligence: injury signals, identity resolution, projections.
Verified NFL stats and Sleeper league context. Every figure carries its own source rank.
Sports betting odds, player props, scores, betting splits and history from 30+ sportsbooks
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.2MIT
- 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.9MIT
- 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.