Sleeper Fantasy MCP
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Sleeper Fantasy MCPoptimize my lineup for this week"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Sleeper Fantasy MCP
A Model Context Protocol (MCP) server for integrating Sleeper Fantasy Football with Claude Code. Get comprehensive fantasy analytics, player projections, historical performance, and league management directly through Claude.
Features
š Complete Fantasy Analytics
Real-time player projections and historical scores
Advanced NFL metrics (snap counts, target share, efficiency stats)
Waiver wire analysis and trending players
Lineup optimization and matchup projections
š Comprehensive Player Data
Passing: completions, attempts, passer rating, air yards, sacks
Rushing: YPC, broken tackles, yards after contact, red zone carries
Receiving: catch rate, target share, drops, air yards, YAC
Snap counts and usage percentages
šÆ Fantasy Tools
Historical scoring (actual fantasy points vs projections)
League standings and matchup analysis
Available players and waiver wire gems
Trending players with add/drop activity
Quick Setup
1. Install Dependencies
npm install2. Configure Your Leagues
Copy the example environment file and add your Sleeper information:
cp .env.example ~/.envEdit ~/.env with your details:
SLEEPER_USERNAME=your_sleeper_username
ROAD_TO_GLORY_ID=your_league_id_1
DYNASTY_LEAGUE_ID=your_league_id_2
ROAD_TO_GLORY_TEAM=Your Team Name 1
DYNASTY_TEAM=Your Team Name 2Finding Your League ID:
Open Sleeper app/website
Go to your league
Copy the long number from the URL (e.g.,
1199118916182364160)
3. Build the Project
npm run build4. Add to Claude Code
Add this to your Claude Code MCP configuration in ~/.claude.json:
{
"mcpServers": {
"sleeper-fantasy": {
"type": "stdio",
"command": "node",
"args": ["/path/to/sleeper-fantasy-mcp/dist/index.js"],
"env": {}
}
}
}Replace /path/to/sleeper-fantasy-mcp with the actual path to this directory.
5. Restart Claude Code
Exit and restart Claude Code to load the new MCP server.
Available Tools
Core Fantasy Tools
get_league_info- League settings and standingsget_my_roster- Your current roster with player detailsget_my_matchup- Current week matchup analysisget_available_players- Waiver wire and free agents
Advanced Analytics
get_player_projections- Projected fantasy pointsget_historical_scores- Actual historical performance with advanced statsget_matchup_projections- Compare projected vs opponentoptimize_lineup- Optimal lineup suggestions
Research Tools
get_trending_players- Hot waiver wire pickupsPlayer filtering by position, team, availability
Advanced metrics like snap counts, target share, efficiency
Example Usage
"What were Jalen Hurts' actual stats in Week 1?"
"Who are the trending RBs I should pick up?"
"Optimize my lineup for this week"
"Show me my current matchup projections"
"Find available WRs with high target share"Advanced Configuration
Multiple Leagues
You can configure up to 2 leagues (modify config.ts for more). Set league names in the environment:
ROAD_TO_GLORY_ID/ROAD_TO_GLORY_TEAMDYNASTY_LEAGUE_ID/DYNASTY_TEAM
API Settings
SLEEPER_API_BASE- Sleeper API endpoint (default: https://api.sleeper.app/v1)CACHE_DURATION_MINUTES- Cache duration for API calls (default: 15)
Development
Project Structure
src/
āāā index.ts # Main MCP server
āāā config.ts # Configuration management
āāā tools/ # Individual MCP tools
āāā LeagueTool.ts # League information
āāā RosterTool.ts # Roster management
āāā ProjectionsTool.ts # Player projections
āāā HistoricalScoresTool.ts # Historical performance
āāā ...Building
npm run build # Build TypeScript
npm run watch # Watch mode for development
npm run start # Run the serverTesting
npm test # Verify build worksTroubleshooting
"League not found" errors
Verify your league ID is correct (copy from Sleeper URL)
Check that your username matches your Sleeper profile
Ensure team name matches exactly (case sensitive)
MCP connection issues
Restart Claude Code after configuration changes
Check the path to
dist/index.jsis correctVerify the project built successfully (
npm run build)
No data returned
Confirm you're in an active fantasy season
Check that your leagues are public or you're a member
Verify week numbers are valid (1-18)
Contributing
Feel free to submit issues and enhancement requests!
License
MIT License - see LICENSE file for details.
Available Tools
12 toolsget_available_playersB
Get available players (free agents) for your league with enhanced filtering and sorting
| Name | Required | Description | Default |
|---|---|---|---|
| league | No | League name (ROAD_TO_GLORY or DYNASTY), defaults to configured default | |
| position | No | Filter by position (QB, RB, WR, TE, K, DEF) | |
| limit | No | Maximum number of players to return (default: 20) | |
| sortBy | No | Sort players by criteria (projections, trending, ownership, alphabetical) | projections |
| week | No | Week number for projections (defaults to current week) | |
| minProjection | No | Minimum projected points filter | |
| team | No | Filter by NFL team (e.g., 'PHI', 'SF') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It mentions 'enhanced filtering and sorting' but doesn't disclose key behavioral traits: whether this is a read-only operation, if it requires authentication, rate limits, pagination, or what the return format looks like (e.g., list of players with stats). For a tool with 7 parameters and no annotations, this is inadequate.
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?
The description is a single, efficient sentence that front-loads the core purpose. It avoids redundancy but could be slightly more structured (e.g., separating purpose from capabilities). Every word earns its place, making it appropriately concise for the tool's complexity.
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?
Given 7 parameters, no annotations, and no output schema, the description is incomplete. It doesn't explain what data is returned (e.g., player attributes, projections), behavioral constraints, or error handling. For a filtering/sorting tool with rich parameters, more context is needed to guide effective use.
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 100%, so the schema fully documents all 7 parameters with descriptions, enums, defaults, and constraints. The description adds no additional parameter semantics beyond implying filtering/sorting capabilities, which are already covered in the schema. Baseline 3 is appropriate when schema does all the work.
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 verb ('Get') and resource ('available players/free agents'), specifying the domain ('for your league'). It distinguishes itself from siblings like 'get_my_roster' or 'get_player_projections' by focusing on free agents with filtering/sorting, though it doesn't explicitly name alternatives. The purpose is specific but could be more differentiated.
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?
The description implies usage when needing free agents with enhanced filtering/sorting, but provides no explicit guidance on when to use this tool versus alternatives like 'get_trending_players' or 'get_player_projections'. It mentions the context ('for your league') but lacks exclusions or clear comparisons with sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_historical_scoresB
Get actual historical fantasy points scored by players
| Name | Required | Description | Default |
|---|---|---|---|
| league | No | League name (ROAD_TO_GLORY or DYNASTY), defaults to configured default | |
| week | Yes | Week number to get historical scores for | |
| season | No | Season year (defaults to current NFL season) | |
| players | No | Array of player IDs to get historical scores for (optional - gets your roster if not provided) | |
| position | No | Filter by position (QB, RB, WR, TE, K, DEF) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. While 'Get' implies a read operation, it doesn't specify whether this requires authentication, has rate limits, returns paginated results, or what format the historical scores come in. For a tool with 5 parameters and no annotation coverage, this leaves significant behavioral questions unanswered.
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?
The description is a single, efficient sentence that gets straight to the point with zero wasted words. It's appropriately sized for what it communicates and front-loads the essential information about what the tool does.
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 read-only tool with comprehensive schema documentation (100% coverage) but no output schema, the description provides basic purpose but lacks important context. It doesn't explain what format the historical scores return, whether results are paginated, or how to interpret the data. With no annotations and no output schema, the description should do more to compensate for these 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?
The schema has 100% description coverage, so all parameters are well-documented in the structured fields. The description adds no additional parameter information beyond what's already in the schema. According to scoring rules, when schema_description_coverage is high (>80%), the baseline is 3 even with no param info in the description.
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 action ('Get') and resource ('historical fantasy points scored by players'), making the purpose immediately understandable. However, it doesn't differentiate from sibling tools like 'get_player_projections' or 'get_matchup_projections' which might also involve player scoring data, leaving room for confusion about when to use this specific historical data tool.
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?
The description provides no guidance on when to use this tool versus alternatives. With siblings like 'get_player_projections' and 'get_matchup_projections' that might provide similar or overlapping data, the agent has no indication whether this is for past performance analysis versus future predictions, or what specific use cases warrant selecting this historical data tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_league_infoC
Get league information and settings
| Name | Required | Description | Default |
|---|---|---|---|
| league | No | League name (ROAD_TO_GLORY or DYNASTY), defaults to configured default |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states it's a read operation ('Get'), but doesn't mention any behavioral traits such as authentication requirements, rate limits, error conditions, or what format the information is returned in. This leaves significant gaps for an agent to understand how to use it effectively.
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?
The description is a single, clear sentence with no wasted words. It's front-loaded with the core purpose, making it highly efficient and easy to parse. Every word earns its place by directly contributing to understanding the tool's function.
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?
Given the lack of annotations and no output schema, the description is incomplete for a tool that retrieves data. It doesn't specify what 'information and settings' includes, how results are structured, or any behavioral context like error handling. For a read operation with no structured output documentation, this leaves too many unknowns for reliable use.
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 schema description coverage is 100%, with the parameter 'league' fully documented in the schema including its type, description, enum values, and default behavior. The description adds no additional parameter semantics beyond what the schema provides, so it meets the baseline score of 3 for adequate coverage without extra value.
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 verb ('Get') and resource ('league information and settings'), making the purpose immediately understandable. However, it doesn't differentiate this tool from its siblings like 'get_league_transactions' or 'get_historical_scores', which also retrieve league-related data but for different aspects.
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?
The description provides no guidance on when to use this tool versus alternatives. With siblings like 'get_league_transactions' for transaction data and 'get_historical_scores' for past scores, there's no indication of when this tool is appropriate or what specific 'information and settings' it covers compared to others.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_league_transactionsC
Get league transactions including trades, waivers, and free agent moves
| Name | Required | Description | Default |
|---|---|---|---|
| league | No | League name (ROAD_TO_GLORY or DYNASTY), defaults to configured default | |
| week | No | Week number to get transactions for (defaults to current week) | |
| transactionType | No | Filter by transaction type | all |
| limit | No | Maximum number of transactions to return (default: 20) | |
| includeAllWeeks | No | Get transactions from all weeks (default: false) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but only states what data is retrieved without disclosing behavioral traits. It doesn't mention whether this is a read-only operation, authentication requirements, rate limits, pagination behavior, or what happens with invalid parameters. The description is insufficient for a tool with 5 parameters and no annotation coverage.
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?
The description is a single, efficient sentence that gets straight to the point without unnecessary words. It's appropriately sized for a data retrieval tool, though it could be slightly more structured by front-loading the most critical information.
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 tool with 5 parameters, no annotations, and no output schema, the description is inadequate. It doesn't explain what format the transactions are returned in, how results are ordered, what happens when limits are exceeded, or provide examples of typical use cases. The description should do more to compensate for the lack of structured metadata.
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 doesn't add any parameter-specific information beyond what's already in the schema (which has 100% coverage). It mentions 'transactions' generally but doesn't explain how parameters like 'week', 'transactionType', or 'includeAllWeeks' affect the results. With complete schema coverage, the baseline score of 3 is appropriate.
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 verb ('Get') and resource ('league transactions') with specific examples of what's included ('trades, waivers, and free agent moves'). It distinguishes from siblings like get_available_players or get_historical_scores by focusing on transaction data, but doesn't explicitly differentiate from all siblings.
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?
No guidance is provided on when to use this tool versus alternatives. It doesn't mention prerequisites, timing considerations, or compare with sibling tools like get_historical_scores or get_league_info that might provide related data.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_matchup_projectionsC
Compare projected scores for your current matchup
| Name | Required | Description | Default |
|---|---|---|---|
| league | No | League name (ROAD_TO_GLORY or DYNASTY), defaults to configured default | |
| week | No | Week number (defaults to current week) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden for behavioral disclosure. While 'compare projected scores' implies a read-only operation, it doesn't specify what data is compared (teams? players?), the format of comparison, whether authentication is needed, or any rate limits. For a tool with no annotation coverage, this leaves significant behavioral gaps.
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?
The description is a single, efficient sentence that gets straight to the point with no wasted words. It's appropriately sized for the tool's apparent complexity and is perfectly front-loaded with the core functionality.
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?
Given no annotations, no output schema, and a description that only states the basic purpose, this is incomplete for a tool that presumably returns matchup comparison data. The description doesn't explain what 'compare' means operationally, what format the comparison takes, or what information users can expect to receive from this 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 100%, with both parameters well-documented in the schema. The description adds no parameter-specific information beyond what's already in the schema. The baseline score of 3 is appropriate when the schema does the heavy lifting for parameter documentation.
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's purpose: 'Compare projected scores for your current matchup' - this specifies the action (compare), resource (projected scores), and scope (current matchup). It doesn't explicitly distinguish from siblings like 'get_my_matchup' or 'get_player_projections', but the focus on comparison and current matchup provides reasonable differentiation.
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?
The description provides no guidance on when to use this tool versus alternatives. With siblings like 'get_my_matchup', 'get_player_projections', and 'optimize_lineup' available, there's no indication of when this comparison tool is preferred over those other matchup or projection-related tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_my_matchupC
Get your current week matchup details
| Name | Required | Description | Default |
|---|---|---|---|
| league | No | League name (ROAD_TO_GLORY or DYNASTY), defaults to configured default | |
| week | No | Week number (defaults to current week) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool retrieves 'matchup details' but doesn't explain what those details include (e.g., scores, teams, status), whether it requires authentication, if it's read-only (implied by 'get'), or any rate limits. For a tool with no annotations, this is a significant gap in transparency.
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?
The description is a single, efficient sentence that front-loads the core purpose ('Get your current week matchup details') with zero wasted words. It's appropriately sized for a simple retrieval tool, making it easy for an agent to parse quickly.
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?
Given no annotations and no output schema, the description is incomplete for a tool that likely returns complex matchup data. It doesn't specify what 'matchup details' include (e.g., scores, players, status), how data is structured, or any behavioral traits like authentication needs. For a retrieval tool with potential complexity, this leaves significant gaps for an agent.
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 100%, so the schema fully documents both parameters (league and week) with descriptions, enums, and constraints. The description adds no additional parameter information beyond what's in the schema, such as explaining how 'current week' is determined or the implications of league choice. Baseline 3 is appropriate when the schema does the heavy lifting.
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's purpose as 'Get your current week matchup details', which specifies the action (get), resource (matchup details), and scope (current week, your matchup). It distinguishes from siblings like get_historical_scores (past data) and get_my_roster (roster vs. matchup), though not explicitly. A 5 would require explicit sibling differentiation.
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?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention siblings like get_matchup_projections (for future estimates) or get_historical_scores (for past data), nor does it specify prerequisites or context for usage. This leaves the agent to infer usage from the name and description alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_my_rosterB
Get your team's roster with player details
| Name | Required | Description | Default |
|---|---|---|---|
| league | No | League name (ROAD_TO_GLORY or DYNASTY), defaults to configured default |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool retrieves data ('Get'), implying a read-only operation, but doesn't specify if it requires authentication, has rate limits, returns paginated results, or what format the 'player details' include. For a tool with no annotation coverage, this leaves significant gaps in understanding its behavior.
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?
The description is a single, efficient sentence: 'Get your team's roster with player details'. It's front-loaded with the core purpose, has zero wasted words, and is appropriately sized for a simple retrieval tool. Every part of the sentence contributes to understanding the tool's function.
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?
Given the tool's low complexity (1 optional parameter, no output schema, no annotations), the description is minimally adequate. It covers the basic purpose but lacks details on behavioral aspects like authentication or output format. For a read operation with no annotations, it should ideally mention more about the return data or usage context to be 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?
The input schema has 100% description coverage, with the 'league' parameter well-documented in the schema itself. The description doesn't add any parameter-specific information beyond what the schema provides, such as explaining the 'league' context or default behavior. With high schema coverage, the baseline score of 3 is appropriate, as the description doesn't compensate but also doesn't need to.
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's purpose: 'Get your team's roster with player details'. It specifies the action ('Get'), resource ('team's roster'), and scope ('player details'), which distinguishes it from siblings like 'get_available_players' or 'get_historical_scores'. However, it doesn't explicitly differentiate from all siblings, such as 'get_my_matchup', which might also relate to user-specific data.
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?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites, such as needing to be logged in or having a team, or compare it to siblings like 'get_available_players' for broader player lists. There's an implied context of user-specific data, but no explicit usage instructions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_nfl_stateB
Get current NFL season state including week, playoffs, and team bye weeks
| Name | Required | Description | Default |
|---|---|---|---|
| includeByeWeeks | No | Include team bye weeks information (default: true) | |
| season | No | Season year (defaults to current season) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It states the tool retrieves data (implying read-only), but doesn't mention authentication needs, rate limits, response format, or whether it's real-time vs cached data. This leaves significant behavioral gaps for a tool with no annotation coverage.
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?
The description is a single, efficient sentence that front-loads the core purpose with specific data points. Every word earns its place with zero redundancy or unnecessary elaboration.
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?
Given no annotations and no output schema, the description provides basic purpose but lacks details on return values, error conditions, or behavioral constraints. It's minimally adequate for a simple read operation but doesn't fully compensate for missing structured data.
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 100%, so parameters are fully documented in the schema. The description adds no additional parameter semantics beyond implying season state retrieval, which aligns with schema details. This meets the baseline for high schema coverage.
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's purpose with a specific verb ('Get') and resource ('current NFL season state'), listing key data points like week, playoffs, and bye weeks. It distinguishes itself from siblings by focusing on season-wide state rather than player, matchup, or transaction details, though it doesn't explicitly name alternatives.
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?
The description implies usage for retrieving current season state, but provides no explicit guidance on when to use this tool versus alternatives like get_historical_scores or get_league_info. It lacks clear exclusions or prerequisites, leaving usage context to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_player_newsB
Get player news, injury status, and recent updates for your roster or specific players
| Name | Required | Description | Default |
|---|---|---|---|
| league | No | League name (ROAD_TO_GLORY or DYNASTY), defaults to configured default | |
| scope | No | Scope of players to check: 'roster' (your team), 'trending' (add/drop activity), or 'all' (league-wide) | roster |
| hoursBack | No | Hours back to check for news updates (default: 48) | |
| includeHealthy | No | Include healthy players without injury status (default: false) | |
| playerIds | No | Specific player IDs to check (optional) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It mentions what data is retrieved (news, injury status, recent updates) but doesn't describe response format, pagination, rate limits, authentication needs, or error conditions. For a tool with 5 parameters and no output schema, this leaves significant behavioral gaps for an AI agent.
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?
The description is a single, efficient sentence that front-loads the core purpose. Every word earns its place with no redundancy or wasted text. It directly communicates the tool's function without unnecessary elaboration.
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?
Given 5 parameters with 100% schema coverage but no annotations and no output schema, the description is minimally adequate. It states what data is retrieved but doesn't explain the return format, which is a significant gap when no output schema exists. For a news retrieval tool with multiple filtering options, more context about response structure would be helpful.
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 100%, so the schema already documents all 5 parameters thoroughly. The description adds minimal value beyond the schema - it mentions 'roster or specific players' which relates to the 'scope' and 'playerIds' parameters, but doesn't provide additional syntax, format, or semantic context. Baseline 3 is appropriate when schema does the heavy lifting.
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's purpose: 'Get player news, injury status, and recent updates' with specific resources (roster or specific players). It distinguishes from siblings like get_historical_scores or get_player_projections by focusing on news/injury updates rather than scores or projections. However, it doesn't explicitly differentiate from get_trending_players which might overlap with the 'trending' scope.
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?
The description implies usage context ('for your roster or specific players') but lacks explicit guidance on when to use this tool versus alternatives. It doesn't mention when to choose get_player_news over get_trending_players (which might provide similar trending data) or get_my_roster (which might provide roster details without news). No exclusions or prerequisites are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_player_projectionsC
Get projected points for players this week
| Name | Required | Description | Default |
|---|---|---|---|
| league | No | League name (ROAD_TO_GLORY or DYNASTY), defaults to configured default | |
| week | No | Week number (defaults to current week) | |
| players | No | Array of player IDs to get projections for (optional - gets your roster if not provided) | |
| position | No | Filter by position (QB, RB, WR, TE, K, DEF) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It mentions 'projected points' but doesn't disclose behavioral traits like what data source provides projections, whether projections are real-time or cached, if there are rate limits, authentication requirements, or what happens when parameters are omitted. The description is minimal and lacks operational context.
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?
The description is a single, efficient sentence with zero waste. It's front-loaded with the core purpose and appropriately sized for a straightforward data retrieval tool. Every word contributes to understanding what the tool does.
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 tool with 4 parameters, no annotations, and no output schema, the description is inadequate. It doesn't explain what 'projected points' means in this context, how results are structured, or any prerequisites. The lack of behavioral transparency and output information leaves significant gaps for an AI agent to use this tool effectively.
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 100%, so the schema fully documents all 4 parameters. The description adds no parameter-specific information beyond implying a temporal context ('this week') that loosely relates to the 'week' parameter. With high schema coverage, the baseline score of 3 is appropriate as the description doesn't enhance parameter understanding.
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's purpose: 'Get projected points for players this week' - a specific verb ('Get') and resource ('projected points for players') with temporal scope ('this week'). However, it doesn't distinguish this from sibling tools like 'get_matchup_projections' or 'get_historical_scores', which might also involve projections or player data.
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?
The description provides no guidance on when to use this tool versus alternatives. With sibling tools like 'get_matchup_projections' and 'get_historical_scores' available, there's no indication of how this tool differs or when it's preferred. The temporal scope 'this week' is mentioned but not contrasted with other timeframes.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_trending_playersB
Get trending players with add/drop activity and analysis
| Name | Required | Description | Default |
|---|---|---|---|
| league | No | League name (ROAD_TO_GLORY or DYNASTY), defaults to configured default | |
| type | No | Type of trending activity (add, drop, both) | both |
| lookbackHours | No | Hours to look back for trending activity (default: 24) | |
| limit | No | Maximum number of players to return (default: 20) | |
| position | No | Filter by position (QB, RB, WR, TE, K, DEF) | |
| availableOnly | No | Only show players available in your league (default: true) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but offers minimal behavioral insight. It mentions 'trending players with add/drop activity and analysis', hinting at data aggregation, but lacks details on permissions, rate limits, data freshness, or response format, which are critical for a tool with multiple parameters.
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?
The description is a single, efficient sentence that front-loads the core purpose without unnecessary words. It's appropriately sized for the tool's complexity, with every part contributing to understanding.
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 tool with 6 parameters, 100% schema coverage, and no output schema, the description is minimal but adequate as a starting point. It states what the tool does, but lacks context on behavioral traits and usage guidelines, making it incomplete for optimal agent decision-making.
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 100%, so the schema fully documents all 6 parameters. The description adds no additional parameter semantics beyond implying the tool returns trending data, which is already suggested by the tool name. Baseline 3 is appropriate as the schema does the heavy lifting.
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 action ('Get') and resource ('trending players'), and specifies the data includes 'add/drop activity and analysis'. However, it doesn't explicitly differentiate from sibling tools like 'get_available_players' or 'get_league_transactions' which might overlap in player data retrieval.
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?
No guidance on when to use this tool versus alternatives is provided. The description doesn't mention sibling tools or contexts where this is preferred over tools like 'get_available_players' or 'get_league_transactions', leaving usage ambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
optimize_lineupC
Suggest optimal lineup based on projections
| Name | Required | Description | Default |
|---|---|---|---|
| league | No | League name (ROAD_TO_GLORY or DYNASTY), defaults to configured default | |
| week | No | Week number (defaults to current week) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It implies a read-only, non-destructive operation ('suggest'), but fails to detail critical aspects such as whether it requires authentication, how it handles missing data, or any rate limits. This is inadequate for a tool that likely involves complex calculations.
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?
The description is a single, efficient sentence with no wasted words. It is appropriately sized and front-loaded, directly stating the tool's core function without unnecessary elaboration.
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?
Given the complexity of lineup optimization, lack of annotations, and no output schema, the description is incomplete. It does not explain what 'optimal' means, how projections are used, or what the output format is (e.g., a list of players with positions), leaving significant gaps for the agent.
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 input schema has 100% description coverage, clearly documenting both parameters ('league' and 'week') with enums and defaults. The description adds no parameter-specific information beyond what the schema provides, so it meets the baseline score of 3 for high schema coverage.
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 states the tool 'suggest[s] optimal lineup based on projections,' which provides a vague purpose without specifying the sport/context (e.g., fantasy football) or distinguishing it from siblings like 'get_matchup_projections' or 'get_player_projections.' It uses a clear verb ('suggest') but lacks resource specificity and sibling differentiation.
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?
The description offers no guidance on when to use this tool versus alternatives. It does not mention prerequisites (e.g., needing player data), exclusions, or how it differs from sibling tools like 'get_my_roster' or 'get_matchup_projections,' leaving the agent 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.
TDQS
Most tools have distinct purposes, such as get_available_players for free agents and get_my_roster for team details, but get_player_projections and get_matchup_projections could be confused as both involve projections. Descriptions help clarify, but some overlap exists.
All tools follow a consistent verb_noun pattern with 'get_' or 'optimize_' prefixes, using snake_case uniformly. This predictability makes it easy for agents to understand and navigate the toolset without confusion.
With 12 tools, the server is well-scoped for fantasy football management, covering key areas like league info, rosters, projections, and transactions. Each tool serves a clear purpose without being overwhelming or insufficient.
The toolset covers most fantasy football workflows, including league data, player info, projections, and lineup optimization. A minor gap is the lack of tools for making transactions (e.g., add/drop players) or managing league settings, but agents can work around this with existing tools.
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
Read-only ESPN, Sleeper, and Fantrax fantasy leagues for Claude, ChatGPT, and other AI tools.
Read-only fantasy analysis for ESPN, Yahoo, and Sleeper leagues via MCP
NFL analytics tools for AI agents: stats, fantasy, injuries, schedules, and advanced analysis.
Teamfight Tactics data & AI coaching for Claude and ChatGPT ā 19 tools, built-in Riot key.
Appeared in Searches
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/justfeltlikerunning/sleeper-fantasy-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server