Skip to main content
Glama
DanielTomaro13

sportsdata-mcp

espnfantasy_positional_ratings

Read-onlyIdempotent

Compare pro defenses by average fantasy points allowed to each position, revealing the softest matchups for lineup decisions.

Instructions

Positional ratings — average fantasy points allowed by each pro defence to each position (the strength-of-matchup table).

Returns: {positionAgainstOpponent:{positionalRatings:{'1':{average, total, ratingsByOpponent:{'proTeamId':{average, rank}}}}}} (keys are position ids). IN-SEASON ONLY: verified 2026-07-02 that completed/old seasons return 200 with the whole positionAgainstOpponent block ABSENT — that is upstream behaviour, not an error.

Example: Which defences are soft against each position {"game": "ffl", "seasonId": 2018, "leagueId": 1234, "scoringPeriodId": 3}

Auth: works without a key; ESPN_FANTASY_COOKIE unlocks more if set.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
gameNoFantasy game code. One of: ffl, flb, fba, fhl, wfba.ffl
viewNoLeave as-is.
leagueIdYesLeague id. Required — part of the URL path.
seasonIdYesSeason year (>= 2018). Required — part of the URL path.
scoringPeriodIdYesScoring period to rate.
Behavior5/5

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

Beyond the readOnlyHint and idempotentHint annotations, the description adds crucial behavioral details: the exact return structure, the odd non-error behavior on old seasons (absent block), and authentication requirements. This gives the agent confidence in interpreting unexpected responses.

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 organized into clear sections (definition, return type, in-season caveat, example, auth). Each section is informative, but the example is questionable and the return structure line is dense. Slightly verbose but no wasted words, justifying a 4.

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?

Given the lack of an output schema, the description compensates by providing the full return structure, a scenario for when it fails, and auth info. However, the misleading example and lack of clarification about position IDs (e.g., what '1' means) leave minor gaps. Overall highly complete, so a 4.

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 input schema already has 100% coverage with descriptions for all parameters, so the baseline is 3. The description adds value through a concrete usage example (though the seasonId is problematic) and clarifies the default game 'ffl' implicitly. This nudges the score to 4.

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 function: it returns average fantasy points allowed by each pro defense to each position, explicitly calling it the strength-of-matchup table. This is a specific verb+resource+scope that distinguishes it from sibling tools like espnfantasy_players or espnfantasy_standings.

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: it is 'IN-SEASON ONLY' and explains what happens with completed/old seasons (200 with absent block, not an error). It also includes an example with parameter values. However, the example uses seasonId 2018, which contradicts the in-season-only warning since 2018 is a completed season, potentially leading an agent astray.

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

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/DanielTomaro13/sportsdata-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server