Skip to main content
Glama
brettadams0

yahoo-fantasy-mcp

by brettadams0

yahoo-fantasy-mcp

CI License: MIT Node

An MCP server over Yahoo Fantasy Sports, backed by a self-owned Yahoo Developer OAuth2 app. Read-only — it reports on leagues, rosters, and matchups but does not set lineups or make transactions.

Runs over stdio, registered in ~/.claude.json as yahoo-fantasy.

Tools

Tool

Purpose

yahoo_get_my_games

Fantasy games (NFL, NBA, MLB, NHL) the account has played

yahoo_get_my_leagues

Leagues for the account, optionally filtered by game

yahoo_get_league_settings

Scoring rules, roster slots, league configuration

yahoo_get_league_standings

Current standings with W/L/T and points

yahoo_get_league_transactions

Adds, drops, and trades

yahoo_get_scoreboard

Matchups and scores for a given week

yahoo_get_team_roster

A team's roster, optionally for a specific week

yahoo_get_team_matchups

A team's full matchup history

yahoo_search_league_players

Player search within a league, with filters

yahoo_fantasy_raw_get

Escape hatch — arbitrary path against the Fantasy API

yahoo_fantasy_raw_get exists because Yahoo's API surface is much wider than the typed tools above, and its response shapes are too irregular to wrap exhaustively. Use it when a typed tool doesn't cover what you need.

Related MCP server: ESPN Fantasy MCP Server

Auth

OAuth2 with a refresh token in credentials/token.json (gitignored). Yahoo does rotate refresh tokens on use, so the stored token is rewritten after each refresh — meaning credentials/ must be writable, and restoring an old backup of it will fail with an invalid-grant error rather than working.

npm run authorize    # one-time browser consent
npm run check-auth   # verify the stored token still works

Setup

Requires Node 20+.

  1. Create an app at developer.yahoo.com/apps with Fantasy Sports → Read permission. Set the redirect URI to OOB (out-of-band): Yahoo displays the code on screen instead of redirecting, so there is no callback server to run.

  2. Save the id and secret to credentials/client_secret.json — see credentials/client_secret.example.json. credentials/ is git-ignored.

  3. Authorize and register:

    npm ci
    npm run authorize
    claude mcp add yahoo-fantasy -- node <path>/yahoo-fantasy-mcp/src/index.js

Tests

npm test

Registration plus the OAuth constants that silently break consent if changed — notably the out-of-band redirect. No network and no credentials.

Layout

src/auth.js            token load, rotate-on-refresh, caching
src/fantasy.js         all tool registrations
src/index.js           McpServer construction + stdio transport
scripts/authorize.js   one-time OAuth consent flow
scripts/check-token.js token health check

Notes

  • Yahoo's resource keys are positional and awkward: a league key looks like nfl.l.123456, a team key like nfl.l.123456.t.7. yahoo_get_my_leagues is the reliable way to discover the keys the other tools need.

  • The API returns XML-shaped JSON with numeric-string object keys and count fields rather than plain arrays. Responses are passed through as-is, so expect that structure rather than idiomatic JSON.

Available Tools

10 tools
yahoo_fantasy_raw_getRaw Yahoo Fantasy API GETA

Escape hatch: GET any Yahoo Fantasy Sports API path (under /fantasy/v2/) not covered by a dedicated tool, e.g. "/league/{key}/draftresults". Read-only.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesPath after /fantasy/v2, must start with /

TDQS

A4.2/5.0
Behavior3/5

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

No annotations are provided, so the description carries full burden. It declares the tool read-only, indicating non-destructive behavior, but offers no details on error responses, rate limits, authentication, or response format. For a simple raw GET tool, this is minimally sufficient but lacks depth.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise, consisting of two short sentences. It front-loads the key concept ('Escape hatch'), provides a clear example, and states the read-only nature. Every word adds value with no redundancy.

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 tool's simplicity (one parameter, no output schema), the description covers essential aspects: purpose, usage scope, and safety. It could briefly mention expected response format (e.g., JSON) but is otherwise adequate for selecting and invoking the tool correctly.

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 single parameter 'path' has a schema description, and the tool description adds an example and clarification that the path is relative to /fantasy/v2/. This enriches the schema information. However, there is no further elaboration on path syntax or constraints beyond the requirement to start with '/'.

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?

Description clearly states the tool is an 'escape hatch' for raw GET requests to the Yahoo Fantasy Sports API, covering paths not handled by dedicated tools. It provides a concrete example path and explicitly labels the operation as read-only, making the purpose unambiguous and distinguishing it from siblings.

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 explicitly directs use to paths not covered by dedicated tools and includes a representative example. It clearly states the tool is for GET requests only ('Read-only'), but does not provide explicit when-not-to-use guidance or mention alternatives beyond implied exclusivity.

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

yahoo_get_league_settingsGet league settingsC

Scoring rules, roster positions, and other settings for a league.

ParametersJSON Schema
NameRequiredDescriptionDefault
leagueKeyYes

TDQS

C2.7/5.0
Behavior2/5

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

With no annotations provided, the description should disclose behavioral traits. It does not mention that the operation is read-only, any authentication requirements, or rate limits. The description is minimal.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence, which is concise, but it lacks necessary detail about parameters and behavioral aspects. It is minimally acceptable in length but not optimally informative.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given one required parameter, no output schema, and no annotations, the description is incomplete. It should at least clarify the leagueKey requirement and hint at the output shape. It does not, leaving gaps for the agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must explain parameters. It does not mention the 'leagueKey' parameter, its format (e.g., 'league.l.123'), or why it is needed. The description adds no semantic value for parameters.

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 returns 'Scoring rules, roster positions, and other settings for a league', which is a specific verb+resource. It distinguishes from sibling tools like standings, scoreboard, and transactions.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives. For example, when to use this vs yahoo_get_my_leagues is not mentioned, and there are no when-not or explicit context clues.

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

yahoo_get_league_standingsGet league standingsC

Current standings for a league.

ParametersJSON Schema
NameRequiredDescriptionDefault
leagueKeyYes

TDQS

C2.4/5.0
Behavior2/5

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

No annotations exist, and the description only says 'Current standings' without disclosing whether it is a safe read, what data it returns, or any limitations (e.g., season, scope).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is very short but omits essential information, making it under-specified rather than efficiently concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema and minimal description, the tool lacks completeness. It does not explain what 'standings' includes (e.g., rankings, wins/losses) or how the leagueKey relates to other Yahoo tools.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the tool description does not explain the 'leagueKey' parameter's format, source, or meaning.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Current standings for a league' clearly states the verb and resource. However, it does not differentiate from sibling tools like 'yahoo_get_scoreboard' or 'yahoo_get_league_settings', relying on the name alone.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool vs alternatives, nor are there prerequisites or exclusions mentioned.

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

yahoo_get_league_transactionsGet league transactionsC

Recent adds/drops/trades in a league.

ParametersJSON Schema
NameRequiredDescriptionDefault
leagueKeyYes

TDQS

C2.6/5.0
Behavior2/5

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

No annotations are provided, so the description must disclose behavior. It only says 'recent' without defining the time window, omitting pagination, rate limits, or error conditions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Very concise, single sentence, but at the expense of necessary detail. It is front-loaded but under-specified, failing to earn its place with adequate information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with one parameter, no output schema, and no annotations, the description is woefully incomplete. It lacks any detail on response format, transaction types, or constraints like date range.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has 0% description coverage for the only parameter 'leagueKey'. The description does not explain what this parameter is or how to format it, relying solely on the parameter name.

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 'Recent adds/drops/trades in a league,' which specifies exactly what the tool retrieves. It distinguishes from sibling tools like standings or settings that serve different purposes.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives. Does not mention scenarios where transactions are needed vs. other league data, nor does it explain how 'recent' is defined.

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

yahoo_get_my_gamesList your fantasy gamesA

Lists every fantasy sport/season (NFL, NBA, MLB, NHL, across years) the logged-in Yahoo account has played.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations, the description carries the burden. It clearly indicates this is a read-only list operation for the logged-in user's games. It could add detail about return structure or handling of archived games.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One clear, concise sentence with no wasted words. All information delivered upfront.

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?

For a zero-parameter tool without an output schema, the description is largely complete. It could benefit from noting response structure or whether only active games are included.

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?

There are zero parameters, so schema coverage is 100%. The description is unnecessary for parameter semantics but does not misuse the opportunity.

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 verb 'Lists' and the resource 'every fantasy sport/season' that the user has played, which is specific and distinguishes it from siblings like yahoo_get_my_leagues.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no explicit when-to-use or when-not-to-use guidance. While the sibling list implies context, the description itself lacks alternatives or exclusions.

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

yahoo_get_my_leaguesList your leagues for a gameA

Lists the leagues the account belongs to for a given game key (e.g. "nfl", "nba", "mlb", "nhl", or a year-specific code).

ParametersJSON Schema
NameRequiredDescriptionDefault
gameKeyYes

TDQS

A3.5/5.0
Behavior3/5

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

No annotations are provided, so the description carries the burden. It describes a read-only operation (listing) with no destructive hints. However, it does not discuss authentication, rate limits, or error cases. The behavior is minimally transparent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence with no wasted words. It efficiently conveys the core functionality.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple list tool, the description is fairly complete. It does not explain return format, pagination, or error handling, but given the absence of output schema and sibling tool context, it is minimally adequate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Only one parameter with no schema description. The description adds examples of valid game keys (e.g., 'nfl', 'nba') which adds meaning beyond the type string. However, it does not fully define the parameter format or constraints.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool lists leagues for a given game key with examples, and the action (list) and resource (leagues) are explicit. It distinguishes from sibling tools like yahoo_get_my_games by focusing on leagues.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use (have a game key, need to list leagues) but does not explicitly state when not to use or provide alternatives. The context of sibling tools provides some guidance, but the description itself lacks exclusion criteria.

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

yahoo_get_scoreboardGet league scoreboardB

Matchup scores for a league, optionally for a specific week.

ParametersJSON Schema
NameRequiredDescriptionDefault
weekNo
leagueKeyYes

TDQS

B3.1/5.0
Behavior2/5

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

No annotations provided. Description only states it returns 'matchup scores', implying read-only, but no disclosure of authentication needs, rate limits, or error scenarios.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, no redundancy, clear and front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema, no annotations, and only one sentence. Fails to describe return format, edge cases, or behavior for missing data.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%. The description adds minimal semantic value: 'optionally for a specific week' clarifies week param optional, but does not explain leagueKey format or week range.

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?

Clearly states it retrieves matchup scores for a league, with an optional week parameter. Distinct from sibling tools like standings, settings, etc.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool over alternatives (e.g., yahoo_get_league_standings for standings). Lacks context on prerequisites or typical usage.

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

yahoo_get_team_matchupsGet a team's matchupsC

A team's full schedule of matchups and results for the season.

ParametersJSON Schema
NameRequiredDescriptionDefault
teamKeyYes

TDQS

C2.4/5.0
Behavior2/5

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

No annotations exist, and the description only gives a high-level purpose. It fails to disclose behavioral traits like whether results include past and future matchups, any data limits, or authentication needs.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise with a single sentence. However, it lacks structure and could be expanded to include key details without becoming verbose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has one parameter, no output schema, and no annotations, the description is too brief to be complete. It does not explain what 'matchups' entails or what the response contains.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The only parameter, teamKey, has no description in the schema (0% coverage) and the tool description does not elaborate on its format or expected values, leaving ambiguity.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states it provides 'a team's full schedule of matchups and results for the season,' which clearly indicates the resource and action. However, it does not explicitly differentiate from sibling tools like yahoo_get_scoreboard.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidelines are provided about when to use this tool versus alternatives, such as when to use yahoo_get_my_games or yahoo_get_scoreboard. Missing context on prerequisites or scenarios.

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

yahoo_get_team_rosterGet a team rosterC

A team's roster, optionally for a specific week.

ParametersJSON Schema
NameRequiredDescriptionDefault
weekNo
teamKeyYes

TDQS

C2.7/5.0
Behavior2/5

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

With no annotations, the description is the sole source of behavioral information. It only hints at the optional week parameter but does not disclose any potential side effects, authentication needs, or error conditions.

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 very concise, consisting of a single sentence. While it is not verbose, it could benefit from additional context without becoming overly long.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the lack of output schema, the description should at least hint at the return format (e.g., list of players). It does not, leaving the agent uncertain about what data the roster contains.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It mentions the week parameter's optionality but provides no details on teamKey or the format/meaning of week. The description adds minimal value beyond the schema structure.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states that the tool gets a team roster, with an optional week parameter. However, it does not differentiate from sibling tools like yahoo_get_team_matchups, which could also involve team-specific data.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives. The description does not mention when to use roster vs. other team-related tools or list any prerequisites.

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

yahoo_search_league_playersSearch players in a leagueC

Searches the player pool for a league by name.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYes
leagueKeyYes

TDQS

C2.2/5.0
Behavior1/5

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

No annotations are provided, and the description does not disclose any behavioral traits such as read-only nature, side effects, pagination, rate limits, or result format. The agent cannot infer the call's impact or expected behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence, but it is under-specified. While there is no fluff, the lack of structure or detail reduces its effectiveness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has two required parameters, no output schema, and no annotations, the description is wholly inadequate. It does not explain the response format, search behavior, or any important details needed for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description must compensate but fails to do so. It mentions 'by name' but does not clarify which parameter corresponds to a name. Neither 'query' nor 'leagueKey' are explained, leaving the agent to guess their meaning.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states 'Searches the player pool for a league by name', which gives a clear verb and resource. The title 'Search players in a league' reinforces the purpose. However, it does not distinguish this tool from siblings like yahoo_get_team_roster or yahoo_get_league_transactions, and the phrase 'by name' is ambiguous (player name vs league name).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool vs alternatives, nor any prerequisites or restrictions. The description is a single sentence with no usage context.

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. Dates show when Glama detected each change.

  1. 10 tool updatesv1.0.0
    • First observedyahoo_fantasy_raw_get
    • First observedyahoo_get_league_settings
    • First observedyahoo_get_league_standings
    • First observedyahoo_get_league_transactions
    • First observedyahoo_get_my_games
    • First observedyahoo_get_my_leagues
    • First observedyahoo_get_scoreboard
    • First observedyahoo_get_team_matchups
    • First observedyahoo_get_team_roster
    • First observedyahoo_search_league_players

TDQS

B3.3/5.0
Disambiguation5/5

Each tool targets a distinct resource or action (e.g., games, leagues, standings, settings, scoreboard, transactions, players, teams, matchups, plus a raw API escape hatch). No two tools overlap in purpose.

Naming Consistency5/5

All tools follow a consistent 'yahoo_verb_noun' pattern (e.g., yahoo_get_my_games, yahoo_get_league_standings). The naming convention is uniform and predictable.

Tool Count5/5

With 10 tools, the set is well-scoped for a fantasy sports MCP server. It covers the most common queries without being overwhelming, and each tool serves a clear need.

Completeness4/5

The tools cover most key read operations for Yahoo Fantasy (games, leagues, standings, scoreboard, transactions, roster, matchups, player search). The raw get tool fills gaps like draft results, but write operations are missing, which is a minor gap for a read-only interface.

Maintenance

ActivitySlowing
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    B
    maintenance
    Connect ESPN & Yahoo fantasy leagues to AI assistants via MCP. Read-only tools for rosters, standings, matchups, free agents, and league info across football and baseball.
    17
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    A Model Context Protocol server that provides read-only access to Yahoo Fantasy Sports data, enabling AI assistants to query league standings, player stats, matchups, and rosters.
    3
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Provides read-only access to Sleeper fantasy football leagues, enabling team snapshots, available players, matchups, trade context, and league history through standardized MCP tools.
    MIT

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/brettadams0/yahoo-fantasy-mcp'

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