Fantasy-Football-Draft-MCP
This server is a live fantasy football draft assistant that provides real-time draft recommendations, player analytics, draft management, and strategy tools.
League Management: Create, configure, list, switch, and remove multiple leagues with custom settings (teams, scoring, roster slots, draft slot, PPR/half-PPR/standard, superflex, TE premium, consistency weight).
Draft Sync & Management: Sync draft boards from Sleeper, ESPN (public or private), or pasted text. Manually record, undo, or reset picks. View current draft status and roster composition.
Draft Recommendations & Planning: Get real-time pick recommendations (who_should_i_pick, on_the_clock) based on projected value, consistency, roster needs, and survival odds. Browse best available players sorted by draft score, value over replacement, consistency, projected points, or ADP bargain. Plan entire drafts from your slot using strategies like balanced, zero RB, hero RB, or robust RB. Run Monte Carlo mock drafts vs. ADP-bot opponents and identify value picks where the model disagrees with the market.
Player & Team Analysis: Detailed player reports (production, role, environment, injury history, consistency), compare up to 4 players head-to-head, rookie projections, separation and route efficiency metrics from NFL Next Gen Stats, team context (O-line, pace, run/pass split, schedule), and defense reports by position over a 5-year view. Resolve player names and nicknames.
Backtesting & Insights: Draft value history, persistent value players, matchup backtests, draft backtests, and champion strategies to understand what historically wins leagues.
Data & Model Management: Refresh data, prewarm caches for fast draft-day performance, and tune model factor weights (O-line, pace, injury, schedule, consistency).
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., "@Fantasy-Football-Draft-MCPSync my Sleeper draft and tell me who to pick."
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.
Fantasy Football Draft Analyst (MCP Server)
A live draft assistant. Connect it to Claude, sync your ESPN or Sleeper draft board, and ask "who should I pick?" at every turn. It answers with a recommendation, the reasoning, and the odds each player survives to your next pick.
Tested end to end against live data: 631 players (551 veterans, 80 rookies) modelled from 247,284 plays across five seasons, priced against real 2026 preseason consensus.
Quick start
git clone https://github.com/zacharytran26/Fantasy-Football-Draft-MCP.git
cd Fantasy-Football-Draft-MCP
# Use a virtual environment (required on macOS with Homebrew Python, and
# recommended everywhere else) -- see docs/quickstart.md if `pip`/`python`
# aren't found or you hit "externally-managed-environment".
#
# If this repo lives under an iCloud-synced folder (Desktop or Documents on
# macOS), put the venv somewhere NOT synced instead, e.g. ~/.venvs/ffdraft-mcp
# -- see docs/troubleshooting.md for why.
python3 -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\activate
pip install -e .
# One-time data build (~3-6 min; downloads 5 seasons, then caches)
python setup_data.pyAdd to claude_desktop_config.json:
{
"mcpServers": {
"fantasy-draft": {
"command": "/absolute/path/to/ff-draft-mcp/.venv/bin/python",
"args": ["-m", "ffdraft.server"],
"env": {
"FFDRAFT_SEASON": "2026",
"ESPN_SWID": "optional-for-private-espn-leagues",
"ESPN_S2": "optional-for-private-espn-leagues",
"PYTHONPATH": "/absolute/path/to/ff-draft-mcp/src"
}
}
}
}Use absolute paths for both command and PYTHONPATH — Claude Desktop launches the server
from an undefined working directory, so plain python or relative paths won't resolve.
PYTHONPATH is a deliberate belt-and-suspenders: on macOS with Python 3.13, an editable
install's .pth file can end up with the OS "hidden" flag set (cause varies), and Python
3.13 silently skips hidden .pth files at startup, which breaks the ffdraft import even
though pip install -e . succeeded. Pointing PYTHONPATH straight at src/ sidesteps that
mechanism entirely. See troubleshooting if the server still
doesn't appear.
Then in Claude:
Set up my home league: 10 teams, full PPR, I pick 4th.
Set up my work league: 13 teams, half PPR, I pick 11th.
Switch to home. Sync my Sleeper draft 1234567890. Who should I pick?Related MCP server: NFL MCP
Documentation
Guide | What's in it |
Install to first recommendation in ten minutes | |
Every tool, argument and environment variable | |
How projections work and why the defaults are what they are | |
When something looks wrong | |
A full draft session, prompt snippets, sample ADP file | |
ESPN cookies, network access, what's stored locally | |
Tests, lint, and the bar for model changes | |
Release history |
What it does
Recommends picks by opportunity cost, not raw value. Knowing a player is good is easy; knowing whether he'll still be there at your next turn is what decides who to take now. For each position the model walks the board top-down, accumulating the probability every better player is gone, and values a pick by its marginal gain over waiting.
At pick 6 with the top five off the board, that means recommending Amon-Ra St. Brown over Josh Allen — Allen grades as the highest-value player left, but has a 73% chance of lasting to pick 19, and the receiver has 8%.
Projects players from five seasons of open data. Offensive line from adjusted line yards and pressure allowed, neutral-script pace and run/pass split, five-year defensive strength by position, divisional schedule, injury history crossed with workload burden, positional aging curves. Computed from raw plays rather than scraped from ranking tables, so it recomputes under your scoring and doesn't break when a website changes its HTML.
Optimises for consistency. The default leans toward week-to-week reliability over raw ceiling. Tune it with one number.
Handles your actual leagues. PPR, half PPR, standard, superflex, TE premium, any size, any slot. Multiple leagues side by side with separate boards and drafts.
Separation and route efficiency from NGS tracking data — the open-data stand-in for paywalled charting. Validated against a published PFF table: TPRR within a few hundredths, ordering correct.
Rookies projected from draft capital, fitted to ten years of first-year outcomes.
Live sync from Sleeper (public API, no credentials), ESPN, or paste from anywhere.
Name matching that survives real drafts — JSN, CMC, Bijan, Hollywood Brown,
Joshua Palmer, and typos. Ambiguous names name their candidates rather than guessing.
Tools
Tool | What it does |
| Create or update a named league; makes it active |
| All your leagues and which is active |
| Change active league; board and draft resume instantly |
| Delete a league and its draft history |
| Rebuild the board from source. Run once before draft day |
| Pull the live board from Sleeper, ESPN, or pasted text |
| The main one. Sync, status, recommendation, round-scoped value, and matchup detail — one call |
| Recommendation + reasoning for the pick on the clock |
| Next best players, sortable by value, consistency, or ADP bargain |
| Manual board management |
| Your roster and where the draft stands |
| Build all caches before draft day so nothing computes on the clock |
| This year's rookie class, projected from draft capital |
| Check how names resolve before trusting a paste sync |
| Separation, cushion, YPRR, TPRR, plus a schedule-adjusted matchup score |
| Where the model disagrees with the draft market |
| Backtest: preseason rank vs actual finish, by round and position |
| Backtest: does schedule-adjusted matchup score beat talent alone at predicting finish? |
| Replay a real past ESPN draft: algorithm's pick vs. true optimal vs. what you actually took, round by round, with value verdicts and team context for each |
| Monte Carlo mock draft: the algorithm vs. many simulated ADP-bot opponents, averaged over N trials |
| What actually won your ESPN league each season, and which specific pick made the difference |
| Players who beat their draft cost year after year |
| Every modelled factor for one player |
| Head to head, up to four |
| O-line ranks, pace, run/pass split, schedule for an NFL team |
| Fantasy points allowed by position, 5-year view |
| Simulate all 16 of your picks from your slot |
| Retune factor weights |
Data attribution
This project computes everything from open sources and ships no third-party data:
nflverse — play-by-play, weekly stats, snap counts, injury reports, rosters, schedules, draft picks, combine.
NFL Next Gen Stats (mirrored by nflverse) — separation, cushion, YAC over expected.
dynastyprocess/data — FantasyPros expert consensus rank history.
Please respect the terms of those upstream projects. Nothing here scrapes paywalled sources, and no proprietary data is redistributed.
Available Tools
25 toolsbest_availableA
The next best players still on the board.
sort_by: draft_score (balanced), vor (raw value), consistency (floor), proj_points, or value (biggest gap between ADP and model rank).
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| sort_by | No | draft_score | |
| position | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
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. It explains sort_by options which gives insight into ranking behavior, but it does not disclose return format, whether the list is filtered by position, or any side effects. Some useful behavioral context, but incomplete.
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 brief and front-loaded, with one clear sentence plus a compact list of sort options. Every sentence contributes to understanding the tool.
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 no annotations and minimal schema descriptions, the description is insufficient. It omits the meaning of limit and position, and does not clarify how to interpret the output despite an output schema being present. It provides some value but leaves critical gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, yet the description only elaborates on sort_by values. 'limit' and 'position' are not explained in the description or schema, so the agent gets minimal semantics for those parameters.
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 function: 'The next best players still on the board' – a specific verb+resource. It distinguishes from sibling 'who_should_i_pick' by implying a list rather than a single recommendation.
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 conveys an implied use case (seeing best available players) but does not explicitly state when to use this tool over siblings like 'who_should_i_pick' or 'value_picks'. No exclusions or alternative guidance is provided, so it's only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compare_playersA
Compare 2-4 players head to head. Pass a comma-separated list.
| Name | Required | Description | Default |
|---|---|---|---|
| names | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
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. It does not disclose any behavioral traits beyond the basic comparison, such as how names are resolved, error handling for invalid counts, or the nature of the output (though output schema exists). The description is minimal and lacks context like whether it requires exact player names or handles nicknames.
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, concise sentence that immediately states the purpose and the required input format. Every word earns its place, with no fluff or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple (one parameter, no nested objects) and has an output schema, so the description need not explain return values. It covers the purpose and parameter format adequately. However, the lack of behavioral transparency slightly reduces completeness, but it remains sufficient for this low-complexity 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?
The schema only defines 'names' as a string with no description. The description adds crucial semantics: it must be a comma-separated list and should contain 2-4 players. This meaningfully compensates for the complete lack of schema 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 tool's function: 'Compare 2-4 players head to head.' This includes a specific verb ('Compare') and resource ('players'), and the range (2-4) distinguishes it from other player-related tools like player_report or rookie_report.
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 context is clear: use when you want to compare multiple players. The instruction 'Pass a comma-separated list' indicates the expected input format. However, it does not explicitly mention alternatives or when not to use this tool, so it gets a 4 rather than 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
configure_leagueB
Create or update a league, and make it the active one.
Give each league a name and you can keep as many as you like side by side — a 10-team full PPR and a 13-team half PPR hold separate boards, separate replacement levels and separate in-progress drafts.
scoring: ppr, half_ppr, or standard. Use superflex=1 for a second QB-eligible slot, and te_premium_bonus for extra points per tight end reception. consistency_weight trades expected points against week-to-week reliability (0 = pure upside, 1 = pure floor).
| Name | Required | Description | Default |
|---|---|---|---|
| qb | No | ||
| rb | No | ||
| te | No | ||
| wr | No | ||
| flex | No | ||
| name | No | default | |
| snake | No | ||
| teams | No | ||
| rounds | No | ||
| scoring | No | half_ppr | |
| superflex | No | ||
| draft_slot | No | ||
| adp_csv_path | No | ||
| te_premium_bonus | No | ||
| consistency_weight | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
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 mentions side effects: making the league active, and separate boards/replacement levels/drafts. However, it does not explain overwrite/update semantics (what happens if a league name already exists), prerequisites, or error behavior. This is moderate transparency, covering some behavioral context but leaving significant 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 reasonably concise and front-loaded with the purpose. The scoring parameter explanations are helpful, though the 'side by side' example adds context that could be shortened. Overall, no wasted sentences, but structure could be tightened.
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 complexity (15 parameters, no annotations), the description is incomplete. It explains a few scoring-related params but omits core lineup configuration, draft settings, and data source (adp_csv_path). While an output schema exists, the description does not clarify the many optional fields or the update behavior, leaving the agent under-informed for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It explains scoring options, superflex, te_premium_bonus, and consistency_weight, but 11 of 15 parameters (e.g., qb, rb, wr, te, flex, snake, teams, rounds, draft_slot, adp_csv_path) remain undocumented in both schema and description. The partial coverage is insufficient for a 15-parameter tool.
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 a clear verb+resource: 'Create or update a league, and make it the active one.' This distinguishes it from siblings like list_leagues, switch_league, and remove_league. The additional context about multiple leagues side by side reinforces the tool's unique role.
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 by explaining the tool creates/updates and activates a league, but it does not explicitly contrast with alternatives like switch_league or list_leagues. There is no 'when to use' or 'when not to use' guidance, though the sibling names provide obvious distinctions. This is implied usage, not explicit guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
defense_reportA
Defensive rankings against a position — fantasy points allowed, 5-year view.
Rank 1 = toughest matchup. This is what drives the schedule adjustment.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| position | No | RB |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden. It adds key behavioral context: 'Rank 1 = toughest matchup' explains how to interpret the output, and '5-year view' specifies the time range. It does not explicitly state that the tool is read-only, but as a report tool, this is reasonably implied.
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 three sentences, front-loaded with the core purpose, and every sentence adds meaningful information. No wasted words.
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 has an output schema, return values are likely covered there. The description provides enough key context for selecting and understanding the tool's role, though it could briefly mention parameter usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It mentions 'against a position' which relates to the position parameter, but does not explain possible values or the meaning of 'limit'. The description adds minimal value beyond the schema.
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 it provides 'defensive rankings against a position' with 'fantasy points allowed' over a '5-year view'. This is a specific verb-like noun (rankings) and resource (defensive performance against a position), which distinguishes it from sibling tools like rookie_report or separation_report.
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?
It implies usage through 'This is what drives the schedule adjustment', giving context for when to use it. However, it does not explicitly state when not to use it or mention any alternatives among the many sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
draft_statusB
Where the draft stands and what your roster looks like.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose safety characteristics, side effects, or return format. It implies a read-only status check but does not explicitly state it, which is a gap.
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 concise sentence that conveys the tool's purpose without wasted words.
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 simple status tool with no parameters and an output schema, the description is mostly sufficient. However, it is slightly ambiguous about scope (whose roster, what draft state), but overall adequate.
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?
With zero parameters, the schema is trivially complete. The description adds nothing about parameters but doesn't need to. Baseline 4 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 indicates the tool provides draft status and roster view. It does not use a strong verb like 'get' or 'retrieve', but it's a clear purpose. It differentiates from siblings like 'best_available' or 'who_should_i_pick' by focusing on overall state, though not explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool vs alternatives. It doesn't mention prerequisites or exclusions, leaving the agent to infer usage from the description alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
draft_value_historyC
Backtest: how preseason consensus rank compared to where players actually finished.
Value is measured in points against what that draft slot actually returned, so "did RB5 capital buy RB5 production?" Rank movement would be unfair to early picks and would label whole rounds as busts, because undrafted breakouts push every drafted player down the final standings.
| Name | Required | Description | Default |
|---|---|---|---|
| seasons | No | 2021,2022,2023,2024 | |
| group_by | No | draft_round |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
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 explains the value measurement philosophy ('Value is measured in points against what that draft slot actually returned') but fails to disclose what the tool actually returns, whether it is read-only, or how it handles the seasons and group_by inputs. The rationale is helpful but does not convey the tool's execution 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 relatively concise at three sentences, but the second sentence is long and focuses on the rationale against rank movement, which is not essential for understanding the tool's function. It could be tighter by front-loading the action and output.
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?
Although an output schema exists, the description does not explain what the output represents or how the parameters influence it. Given the tool's complexity (two optional parameters, historical analysis), the lack of parameter guidance and output expectations leaves an agent under-equipped to use it 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?
The input schema has 0% description coverage, and the description does not mention either parameter ('seasons' or 'group_by'). An agent is given no hints about what values to provide or how they affect the analysis, making it impossible to invoke the tool with confidence.
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 function: 'Backtest: how preseason consensus rank compared to where players actually finished.' This provides a specific verb (backtest) and resource (consensus rank vs. actual finish), distinguishing it from other draft tools that focus on current value or recommendations.
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 explicit guidance on when to use this tool versus alternatives. It does not mention any exclusions or direct comparisons to sibling tools like value_picks or separation_report, leaving the usage context purely implied by the term 'Backtest.'
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_leaguesA
Every league you've set up, and which one is active.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of disclosing behavior. It implies a read-only listing operation and reveals that active status is included, but it does not explicitly mention the absence of side effects or any other behavioral traits. For a simple list tool, this is adequate but not highly transparent.
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, concise sentence that conveys both the content (all leagues) and a key detail (which is active). Every word earns its place, with no redundancy or fluff.
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 simplicity (0 parameters, no nested objects, output schema present), the description fully covers what the tool does. It specifies what is returned and the inclusion of active status, which is sufficient for an agent to understand the tool's purpose.
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 tool has zero parameters, and the schema covers 100% of them (none exist). Per the baseline rule for 0 params, a score of 4 is appropriate, and the description does not need to elaborate on parameter meanings.
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 that the tool outputs every league the user has set up and indicates which one is active. Although it lacks an explicit verb like 'list' or 'show', the meaning is unambiguous and distinguishes it from sibling tools such as switch_league or configure_league.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied: the name and description suggest using this tool when needing an overview of leagues and the active one. There is no explicit comparison to alternatives, but for a simple listing operation, the context is sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
model_settingsC
Tune how much each factor moves a player. Rebuilds the board.
| Name | Required | Description | Default |
|---|---|---|---|
| pace_weight | No | ||
| oline_weight | No | ||
| injury_weight | No | ||
| schedule_weight | No | ||
| consistency_weight | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the burden falls on the description. It discloses a key behavioral trait ('Rebuilds the board'), indicating a mutating side effect, but lacks details about persistence, reversibility, or any other side effects. The description is too sparse to fully inform an agent about consequences.
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 extremely concise, just two short sentences. It front-loads the primary purpose ('Tune how much each factor moves a player') and adds a crucial side-effect note ('Rebuilds the board') without any redundant wording.
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 has 5 parameters with zero schema descriptions, no annotations, and a mutating behavior, the description is insufficient. It doesn't explain parameter semantics, side effects beyond rebuilding, or any usage context. The presence of an output schema does not compensate for the missing parameter and behavior details.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description only generically references 'each factor' without explaining the individual parameters (pace_weight, oline_weight, etc.). It does not clarify value ranges, impact of nulls, or how weights affect the board. The description adds minimal meaning beyond the parameter names.
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 a clear action ('Tune how much each factor moves a player') with a specific resource (model settings affecting player movement). It uses a specific verb and indicates the purpose, though it doesn't explicitly differentiate from sibling tools like configure_league. The phrase 'Rebuilds the board' adds clarity about the tool's effect.
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 implied usage context ('Tune how much each factor moves a player') but gives no explicit instructions on when to use this tool versus alternatives like configure_league or reset_draft. No when-not-to-use or alternative guidance is present.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
persistent_value_playersC
Players who beat their draft cost repeatedly, not once.
One outperformance is a season; three is a trait. This is the closest the data comes to naming players the market persistently misprices.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| seasons | No | 2021,2022,2023,2024 | |
| min_seasons | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
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 disclosing behavior. It only offers a metaphorical statement about persistent mispricing, without mentioning that this is a read-only query, how data is processed, or what the output contains. This leaves significant ambiguity for an 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 compact and stylistically coherent, with no unnecessary fluff. Each sentence contributes to the concept, though the opening is a noun phrase rather than a clear action statement, reducing structural clarity.
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 three optional parameters and no annotations, the description is insufficient. It conveys the core idea but lacks operational details such as parameter meanings, result format, or any contextual limitations. The existence of an output schema does not compensate for the lack of guidance in the description.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not explain any of the three parameters (limit, seasons, min_seasons). It subtly hints at the multi-season concept with 'three is a trait,' which partially relates to min_seasons, but no explicit mapping is provided.
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 identifies the tool's purpose: to return players who have beaten their draft cost repeatedly, not just once. It also distinguishes itself from siblings by framing these as players the market persistently misprices. However, it lacks a specific action verb like 'list' or 'get,' making it more conceptual than operational.
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 explicit guidance is given on when to use this tool versus alternatives like value_picks or separation_report. The description implies a use case for identifying persistent value but does not state conditions or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
plan_my_draftA
Simulate your whole draft from your slot and return the projected lineup.
Runs the board forward pick by pick, using ADP to model who realistically falls to you at each turn, and applies the same recommendation logic at every stop. strategy: balanced, zero_rb, hero_rb, or robust_rb.
| Name | Required | Description | Default |
|---|---|---|---|
| strategy | No | balanced |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. It discloses meaningful behavioral details: 'Runs the board forward pick by pick, using ADP to model who realistically falls to you at each turn' and 'applies the same recommendation logic at every stop.' The word 'simulate' strongly implies a read-only action, though side-effect absence is not explicitly stated.
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 three sentences, front-loaded with the primary purpose, followed by mechanism and parameter values. Every sentence earns its place with no filler or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need no explanation. The description covers purpose, algorithm, and parameter values well. It does not mention prerequisites such as an active league or draft, but the sibling tool context suggests these are managed elsewhere.
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 0% description coverage and no enum, but the description adds the valid strategy values: 'balanced, zero_rb, hero_rb, or robust_rb.' This gives the parameter real meaning beyond the bare schema string, though it does not elaborate on what each strategy entails.
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 opens with 'Simulate your whole draft from your slot and return the projected lineup,' which clearly states the tool's action, scope, and output. This distinguishes it from sibling tools like record_pick or who_should_i_pick, which are not simulation-focused.
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 makes the simulation use-case clear ('Simulate your whole draft') and implies it is for planning rather than live drafting. However, it does not explicitly name alternatives or state when not to use it, so it stops short of full guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
player_reportA
Full breakdown of one player: production, role, environment, injury, consistency.
| Name | Required | Description | Default |
|---|---|---|---|
| player_name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of behavioral disclosure. 'Full breakdown' implies a read-only informational report, but it does not explicitly state that it is non-destructive or whether it depends on the currently configured league. The listed categories give some insight into the report's scope, but no deeper behavioral traits are disclosed.
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, front-loaded sentence that efficiently communicates the tool's scope. Every word adds value and there is no redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description lists five report categories, giving a good sense of the output content, and an output schema exists to define return values. However, it does not mention any dependency on league context or data freshness, and the absence of usage guidance makes the description less complete for an agent that must choose among many sibling tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has one parameter, player_name, with no description (0% schema coverage). The description only refers to 'one player', which weakly connects the parameter to the tool's purpose, but does not clarify the expected format, name resolution, or any constraints. It fails to compensate for the schema's lack of detail.
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: 'Full breakdown of one player' followed by specific report categories (production, role, environment, injury, consistency). This distinguishes it from sibling tools like rookie_report, team_context, and compare_players, which target other scopes or comparisons.
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 a comprehensive single-player report is needed, but it does not explicitly state when to use this tool versus alternatives such as compare_players or rookie_report. No exclusions or clear context about league prerequisites are provided, so guidance is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
prewarmA
Build every cache before draft day so nothing computes while you're on the clock.
The first query of a session pays for downloading and modelling five seasons. Every query after it is served from memory. Run this an hour before your draft, not during it.
| Name | Required | Description | Default |
|---|---|---|---|
| verbose | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden. It discloses the cost model (first query expensive, subsequent cached) and implies a heavy operation by suggesting to run it an hour before. It doesn't mention auth or destructive effects, but the cache-building behavior and timing are well explained.
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 concise, front-loaded with the primary purpose, and every sentence adds value. The metaphor 'nothing computes while you're on the clock' is engaging and memorable, and the timing guidance is clear.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple (one optional param, no required args). The description covers the purpose and timing well. It could mention prerequisites (e.g., league must be selected), but for the tool's scope, it is reasonably complete, especially with an output schema present.
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 only parameter 'verbose' is not mentioned in the description, and schema coverage is 0%. The description should have indicated what verbose does (e.g., enabling output) since the schema itself offers no description. This is a clear gap, though the parameter is simple.
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: 'Build every cache before draft day' — a specific verb and resource. It distinguishes itself from sibling tools by focusing on pre-draft cache warming rather than league configuration, picks, or reports.
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?
Explicit usage timing is given: 'Run this an hour before your draft, not during it.' It also explains the rationale (first query pays for download/modeling, subsequent queries served from memory), making it clear when and why to use this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
record_pickA
Log a pick that just happened. Use after every pick if you aren't auto-syncing.
| Name | Required | Description | Default |
|---|---|---|---|
| team_slot | No | ||
| player_name | Yes | ||
| overall_pick | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden, but it only says 'log a pick' without disclosing side effects, prerequisites, error conditions, or idempotency. The auto-syncing reference hints at a potential conflict but doesn't explain 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 two short sentences, with the action verb front-loaded. Every word earns its place, achieving maximum clarity with minimal length.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is a mutation with no annotations, and the description is sparse. It doesn't mention league context, validation rules, or what happens if the pick is already logged. The output schema exists, so return values don't need explanation, but other operational details are missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not mention any parameters. Parameter names are somewhat intuitive, but the description adds no semantic value beyond the schema, leaving room for ambiguity like pick numbering or team slot interpretation.
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 logs a pick that just happened, using a specific verb and resource. It also differentiates from auto-syncing workflows, which matches sibling tools like sync_draft.
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?
It explicitly says to use after every pick if not auto-syncing, providing a clear condition for use. However, it doesn't explicitly name an alternative tool like sync_draft, so the guidance is slightly indirect.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
refresh_dataB
Rebuild the player board from source data. Run once before draft day.
| Name | Required | Description | Default |
|---|---|---|---|
| force_download | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must explain behavioral traits. 'Rebuild' implies a non-incremental, potentially destructive operation, but the description does not disclose what happens to existing data, whether manual changes are overwritten, or if network access is required. The vague 'source data' leaves side effects unclear.
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 extremely economical: two short sentences that state the action and provide timing. Every word contributes meaning, with no fluff or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple with one optional parameter and an output schema, so the description does not need to explain return values. It covers the primary purpose and usage timing. However, it lacks key context about the force_download parameter and potential side effects, making it adequate but incomplete.
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 zero descriptions for force_download, and the description does not mention this parameter at all. The agent gets no guidance on when to set force_download to true versus relying on the default false. The name is self-descriptive but does not clarify the consequences or scenarios for using it.
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 ('Rebuild') and the resource ('the player board') from a defined source ('source data'). This distinguishes it from incremental operations like sync_draft, though it does not 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?
It provides explicit timing guidance: 'Run once before draft day.' This tells the agent when to invoke it. However, it does not mention when not to use it or compare it to sibling tools like prewarm or sync_draft.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
remove_leagueA
Delete a league and its draft history. The board cache is left alone, since other leagues with the same format may share it.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral burden. It discloses a key side effect (board cache preserved) and explains why, which is valuable. It does not explicitly state irreversibility, but 'Delete' inherently signals that.
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?
Exactly two sentences, front-loaded with the core action and followed by a relevant caveat. Every word adds value, no filler or repetition.
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 simple 1-parameter delete tool, the description covers the action, scope, and an important side effect. An output schema exists, so return values need not be described. It is complete for safe invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must compensate. It implies the 'name' parameter is the league name ('Delete a league'), but does not explicitly state that the parameter is 'name' or add details like type or format. This is adequate but not rich.
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 'Delete' and the resource 'a league and its draft history', making the action unambiguous. It also distinguishes from siblings like 'reset_draft' or 'switch_league' by specifying the deletion 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 when to use it (to permanently remove a league) and provides a clear exclusion: the board cache is left alone. It does not explicitly name alternatives, but the context is sufficient for an agent to select it over related tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
reset_draftA
Clear all recorded picks and start fresh.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears the full burden of behavioral disclosure. It states the primary destructive action ('clear all recorded picks') but does not mention irreversibility or whether other draft state is reset, leaving potential side effects undisclosed.
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, concise sentence that is front-loaded with the verb and object. It contains no filler or redundant 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?
Given the simplicity of the tool (zero parameters, output schema present), the description covers the basic purpose. However, for a destructive operation it lacks important context about consequences, making it only partially 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 tool has no parameters, so there is nothing for the description to add beyond the schema. The baseline for zero parameters is 4, and the description correctly avoids inventing parameter details.
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 clears all recorded picks and starts fresh, using a specific verb (clear) and resource (recorded picks). This distinguishes it from sibling tools like undo_pick or record_pick, making its purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The context for use is implicit: 'start fresh' indicates when a full reset is needed. However, it does not explicitly mention alternatives such as undo_pick for single-pick corrections, so it lacks explicit exclusion guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
resolve_namesA
Check how names resolve against the board — useful before trusting a paste sync.
Reports the match type for each name so silent mismatches surface. A name that fails to resolve looks like a player who scored zero, which is the single most damaging failure mode in this whole pipeline.
| Name | Required | Description | Default |
|---|---|---|---|
| names_csv | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the transparency burden. It discloses that the tool reports match types and warns that unresolved names 'looks like a player who scored zero,' which is valuable behavioral insight beyond basic functionality.
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 three sentences and front-loads the main purpose. The additional context about failure modes is relevant and earns its place, though the third sentence could be trimmed without losing essential meaning.
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 simple one-parameter tool with an output schema, the description covers purpose, usage timing, and a critical behavioral caveat. The lack of parameter format detail is a gap, but the overall context is sufficient for a competent 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 schema lists 'names_csv' with zero description coverage. The description mentions 'names' and 'each name' but does not explain the CSV format, delimiters, or expected structure, leaving a significant gap for a parameter that is the sole input.
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 a specific verb and resource: 'Check how names resolve against the board.' It also distinguishes this tool from siblings by positioning it as 'useful before trusting a paste sync,' which implies it is a pre-validation step.
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 explicitly says 'useful before trusting a paste sync,' giving a clear when-to-use context. It does not name alternatives or provide exclusions, but the use case is well defined.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rookie_reportA
Projected rookies for this season, from draft capital and landing spot.
Rookies have no NFL history, so they're projected off a curve fitted to how draft pick converted to first-year production across the last ten classes, then adjusted for the offence they landed in. Consistency is deliberately low for all of them: rookie roles move mid-season and the floor is a healthy scratch.
Treat these as the widest error bars on the board.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| position | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
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 goes beyond a simple 'returns projections' by explaining the model's dependence on draft capital and landing spot, deliberately low consistency, mid-season role volatility, and the possibility of a healthy scratch floor. This gives the agent a realistic sense of output reliability, even though it does not explicitly state that the tool is read-only or describe return format (which the output schema covers).
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 compact and front-loaded, with the core purpose in the first sentence. Each subsequent sentence adds meaningful context about methodology and limitations without padding. It earns its length by explaining the inherent uncertainty and modeling approach, which is essential for an agent to interpret the output correctly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the tool's conceptual purpose, data sources, and statistical caveats, providing a strong mental model for the agent. The absence of parameter documentation is a gap, but given the output schema exists (which likely describes return fields) and the tool is straightforward (a filtered report), the description is sufficiently complete for the expected use case.
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 mentions no parameter details, and the input schema only provides field titles and defaults (limit, position), with no explanations. Schema description coverage is 0%, so the description must compensate, but it does not. An agent would have no idea what values 'position' accepts or how 'limit' affects the report. This is a significant gap.
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 opens with a clear, specific statement: 'Projected rookies for this season, from draft capital and landing spot.' This identifies both the action (projected) and the resource (rookies), and distinguishes the tool from sibling reports like player_report or best_available by focusing exclusively on rookies. The methodology explanation further reinforces what this tool uniquely provides.
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 when to use the tool—when you need rookie projections—and offers a caution ('widest error bars on the board') that could guide against using it for high-stakes decisions. However, it does not explicitly reference alternatives or state when not to use it versus other tools. There is no 'use this instead of X' guidance, so it only partially addresses the selection decision.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
separation_reportA
Separation and route efficiency — the open-data version of a PFF SEP/YPRR table.
avg_separation is NFL Next Gen Stats tracking data: yards of daylight between receiver and nearest defender when the ball arrives. YPRR and TPRR use routes estimated from snap share times team dropbacks. Only players who cleared 250 routes and 50 targets in a season are included, so these are real workloads rather than flattering part-time rates.
Man-versus-zone splits are not reproducible from open data — that needs per-play coverage charting.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| position | No | WR | |
| player_name | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It reveals methodology (NFL Next Gen Stats tracking data, estimated routes), inclusion criteria (250 routes, 50 targets), and reproducibility limits. It does not explicitly state side effects or return format, but the report context implies a read-only safe operation. The caveat about man/zone adds valuable 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 well-structured with line breaks, opening with a concise summary then providing necessary methodology and caveats. Each sentence adds value, though it is slightly longer than strictly needed. It is organized for skimming and front-loads the core purpose.
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 output schema exists, the description need not explain return values. It provides substantial context about the data source, metric definitions, and inclusion thresholds, covering the tool's purpose and limitations. However, it omits any guidance on how to use the parameters, which is a gap given the schema's lack of descriptions. Overall, it is complete for a report tool but not exhaustive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the description provides no information about the three parameters (limit, position, player_name). While it mentions player thresholds, that does not explain the parameter options. The description fails to compensate for the schema gap, leaving the agent with no guidance on how to configure the query.
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 identifies the tool as a separation and route efficiency report, explicitly comparing it to a PFF SEP/YPRR table. It names specific metrics (avg_separation, YPRR, TPRR) and distinguishes it from sibling tools like rookie_report or defense_report. Although no verb like 'list' is used, the intent is unambiguous and distinct.
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 clear context on when to use the tool: when needing separation and route efficiency stats from open data. It also states a limitation (man-versus-zone splits are not reproducible) which serves as a when-not, but it does not explicitly name alternative tools. This is more than implied usage but stops short of offering alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
switch_leagueA
Make a different league active. Its board and draft resume where you left them.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses that the tool changes the active league and that the league's board and draft state will resume where left off. However, it does not mention potential side effects like whether the previous league's state is saved automatically or any prerequisites such as requiring the league to exist.
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 two short sentences, with the primary purpose front-loaded in the first sentence ('Make a different league active') and a valuable behavioral detail in the second. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has one parameter and an output schema, so the description need not explain return values. It covers the main action and the state-resumption effect, which is adequate for a simple switch operation. However, it lacks explicit mention of prerequisites or error conditions, but this is minor given the low complexity.
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 0% description coverage for the required 'name' parameter. The description implies 'name' refers to the league to activate, but it does not explicitly confirm that or provide details about format or uniqueness. This minimal compensation is insufficient given the 0% 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 uses the specific verb 'Make' with the resource 'a different league active,' clearly stating the tool's function of switching the active league. It distinguishes itself from siblings like list_leagues and configure_league by emphasizing the activation action and the behavioral consequence of resuming the board and draft.
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 clear context for when to use this tool: when the user wants to change the active league. It does not explicitly state alternatives or exclusion criteria, but the purpose is self-evident from the text and the sibling tool set.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sync_draftA
Pull the current draft board from your platform.
platform="sleeper" with draft_id -- fully automatic, public API. platform="espn" with league_id -- works for public leagues; private ones need ESPN_SWID and ESPN_S2 environment variables from a logged-in browser session. platform="paste" with pasted_board -- paste the drafted list from any site.
| Name | Required | Description | Default |
|---|---|---|---|
| season | No | ||
| draft_id | No | ||
| platform | Yes | ||
| league_id | No | ||
| pasted_board | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations, so the description carries the full burden. It discloses platform behavior, such as 'fully automatic, public API' for sleeper and the need for environment variables for private ESPN leagues. However, it does not state whether the operation is read-only, whether it overwrites any local state, or what the return format is. These unaddressed behavioral aspects prevent a higher score.
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 succinct and well-organized, front-loaded with the primary purpose and followed by platform-specific details. Each sentence adds essential information without fluff, 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 the tool's multi-platform complexity and the existence of an output schema, the description covers platform distinctions, authentication prerequisites, and the paste fallback. It does not explain the season parameter or potential side effects, but it provides sufficient context for effective tool selection and invocation in most scenarios.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It effectively explains the semantic roles of platform, draft_id, league_id, and pasted_board by linking each to a platform path. The season parameter is not mentioned, but the description covers most of the parameters and adds important context (e.g., environment variables) beyond the schema.
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 begins with 'Pull the current draft board from your platform,' which clearly states the verb (pull) and resource (draft board). It distinguishes this tool from siblings like record_pick or draft_status by emphasizing the syncing/pulling of the draft board from an external platform, and it lists platform-specific variants (sleeper, espn, paste) that further clarify its 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 gives clear context on when to use the tool and how to configure it per platform: draft_id for sleeper, league_id for espn, pasted_board for paste, and notes the ESPN_SWID/ESPN_S2 environment variable requirement for private leagues. It does not explicitly exclude alternative tools, but the platform-specific instructions serve as effective usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
team_contextC
Offensive environment for an NFL team: O-line, pace, run/pass split, schedule.
| Name | Required | Description | Default |
|---|---|---|---|
| team | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must disclose behavioral traits. It fails to state whether the tool is read-only, has side effects, or requires specific permissions. It only lists data topics, leaving the agent unaware of the tool's operational impact.
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 12-word sentence, efficiently conveying the core components and using a colon to introduce them. It is front-loaded and has no wasted words, though it is terse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the main data areas provided by the tool, and the presence of an output schema means return values are documented elsewhere. However, it lacks guidance on the team parameter format and does not explain when the tool should be used in the broader workflow.
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 defines a single 'team' parameter with no description, and the description only says 'NFL team' without specifying the expected format (e.g., name, abbreviation, ID). This is insufficient for an agent to construct the argument correctly, especially with 0% 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 provides 'offensive environment for an NFL team' with specific components like O-line, pace, run/pass split, and schedule, which distinguishes it from defense_report. However, it lacks an explicit verb (e.g., 'get', 'fetch'), making it unclear whether the tool retrieves, calculates, or configures this information.
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 usage guidance is provided. The description does not mention when to use this tool over siblings such as player_report or plan_my_draft, nor does it state any prerequisites or alternative scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
undo_pickA
Remove the most recent pick — for when someone mis-enters the board.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
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 states the action ('Remove the most recent pick') but does not elaborate on side effects, reversibility, or impact on draft state. For a mutation tool, this is a modest disclosure but not rich enough to anticipate all consequences.
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, tightly-written sentence that includes the action, target ('most recent pick'), and a motivating use case. Every word earns its place, and it is immediately clear 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?
Given the tool's simplicity (zero parameters) and the presence of an output schema, the description adequately covers its main purpose and typical trigger. It could optionally mention any limitations (e.g., cannot undo if no picks exist) but is generally sufficient for an agent to select and invoke the tool correctly.
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 zero parameters, so the baseline is 4 as per instructions. The description adds no parameter information because there are none to describe. It correctly focuses on the tool's behavior rather than nonexistent parameters.
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 function with a specific verb and resource: 'Remove the most recent pick'. It also provides a concrete use case ('for when someone mis-enters the board') that distinguishes it from sibling tools like record_pick (adding picks) and reset_draft (clearing the entire draft).
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 gives clear context for when to use this tool (when someone mis-enters a pick) but does not explicitly mention alternatives or when not to use it. It implies it is for error correction, which is helpful but lacks explicit exclusions or comparison to other tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
value_picksA
Where the model disagrees with the draft market, on draftable players only.
Positive gap means the model ranks a player higher than the room does — the players you can wait on and still get. Negative means the market is paying more than the model thinks they're worth.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| direction | No | undervalued |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It explains the meaning of the gap values, which is essential for interpreting the output. The description implies a read-only analysis tool, though it does not explicitly state side effects or permissions.
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 concise and well-structured, with the core concept stated upfront and the gap interpretation following logically. Every sentence adds value and there is no unnecessary verbosity.
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 simplicity and the presence of an output schema, the description is largely complete. It clearly explains the core concept and interpretation, but the lack of parameter semantics creates a notable gap in fully understanding the tool's behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not explain the 'limit' or 'direction' parameters. While it explains the meaning of positive/negative gaps, it fails to connect these to the 'direction' parameter, leaving the agent guessing about how to control the output.
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: it shows draftable players where the model's ranking disagrees with the market. This distinguishes it from siblings like best_available or who_should_i_pick by focusing on discrepancies rather than simple recommendations.
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 clear context for when to use the tool (to identify value picks) and explains the interpretation of positive and negative gaps. However, it does not explicitly mention alternatives or when not to use it, leaving room for improvement in differentiation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
who_should_i_pickA
The live draft-analyst call: who to take right now, and why.
Weighs projected value, week-to-week consistency, your roster's open starting slots, and the odds each player survives to your next pick.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description carries full burden. It discloses that the tool weighs projected value, consistency, roster slots, and survival odds, giving insight into its decision logic. It does not explicitly state whether it is read-only or triggers side effects, though the 'analyst call' wording implies analysis, leaving some behavioral aspects undisclosed.
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 two sentences, with the core purpose front-loaded in the first sentence and supporting detail in the second. No wasted words; every clause adds value.
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?
With an output schema present, return values are covered. The main gaps are the unexplained 'limit' parameter and lack of explicit alternative guidance. Overall, the description is adequate for a simple analysis tool but leaves some usage and parameter semantics unclear.
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 a single 'limit' parameter with default 6, but the description never mentions 'limit' or explains how it affects the output. With 0% schema description coverage, the description does not compensate, leaving the parameter meaningless to the agent.
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 answers 'who to take right now, and why', identifying a specific decision task. It distinguishes itself from sibling tools by emphasizing the 'live' draft-analyst nature and the factors it weighs, making it distinct from planning or generic best-available tools.
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 phrase 'live draft-analyst call' and 'your next pick' provides clear context for immediate use during a draft. However, it does not explicitly exclude alternative tools like best_available or plan_my_draft, nor does it name any alternatives, so it stops short of full when/when-not guidance.
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 clearly distinct scopes (league management, draft syncing, player reports, historical analysis). However, best_available, who_should_i_pick, and value_picks all serve draft recommendation purposes, creating mild ambiguity despite detailed descriptions.
All names use lowercase snake_case and are readable, but they mix verb_noun patterns (configure_league, record_pick) with noun phrases (best_available, value_picks, separation_report). This is mostly consistent but not perfectly uniform.
At 25 tools, the count is borderline heavy but suits the broad domain of fantasy football drafting, covering league setup, live draft management, player research, backtesting, and simulation. Each tool serves a distinct purpose, so the size feels justified rather than bloated.
The tool set offers comprehensive lifecycle coverage: league CRUD, draft tracking (record/sync/undo/reset), multiple analysis perspectives (player, team, defense, rookies), historical value tools, and full-draft simulation. No major gaps are apparent for the stated draft-focused purpose.
Maintenance
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
An MCP server that integrates with Discord to provide AI-powered features.
MCP server for generating rough-draft project plans from natural-language prompts.
Driflyte MCP server which lets AI assistants query topic-specific knowledge from web and GitHub.
MCP server for Flux AI image generation
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceAn open NFL fantasy-football analytics platform that provides live data, machine-learned projections, dynasty values, and prospect grades via an MCP server for AI clients.MIT
- AlicenseNot gradedqualityBmaintenanceMCP server that turns real NFL & fantasy data into a decisive edge, offering 70+ tools for draft assistance, start/sit recommendations, trade analysis, playoff odds, and more, with live league integration.MIT
- FlicenseNot gradedqualityCmaintenanceMCP server for NFL fantasy football retrieval, providing access to NFL stats and Sleeper league data through retrieval-oriented tools.
- AlicenseNot gradedqualityCmaintenanceA read-only MCP server that supplies live context from Sleeper fantasy-football leagues, including rosters, trade analysis, draft picks, and league settings via Sleeper's public API.MIT
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/zacharytran26/Fantasy-Football-Draft-MCP'
If you have feedback or need assistance with the MCP directory API, please join our Discord server