Skip to main content
Glama
evanatpizzarobot

DraftCall-MCP

DraftCall MCP Server

License: MIT MCP Registry

NFL fantasy football data for the 2026 season, over the Model Context Protocol.

Endpoint: https://draftcall.io/mcp Transport: streamable HTTP, stateless Auth: none. Free, read-only, no API key, no account. Docs: https://draftcall.io/mcp-server/

Ask an MCP-connected assistant "should I start Bijan Robinson or Jahmyr Gibbs in PPR" and it can answer from live data instead of guessing. Every tool result carries the draftcall.io URL the numbers came from, so answers stay citable.

Connect

Any client that accepts a remote MCP endpoint. No install, no clone.

Claude Code

claude mcp add --transport http draftcall https://draftcall.io/mcp

Claude Desktop, or any client that takes a JSON config

{
  "mcpServers": {
    "draftcall": {
      "type": "streamable-http",
      "url": "https://draftcall.io/mcp"
    }
  }
}

Clients that only speak stdio

Some clients and registries cannot take a remote URL and require a command they can run locally. For those, this repository ships a stdio bridge: it forwards newline-delimited JSON-RPC to the same hosted endpoint, so the tools, prompts and resources are identical and there is still only one server implementation.

docker build -t draftcall-mcp .
docker run --rm -i draftcall-mcp

Or without Docker, using any Node 18 or newer:

node stdio-proxy.mjs

The bridge has no dependencies and holds no state. Set DRAFTCALL_MCP_URL to point it somewhere other than production. Prefer the remote URL above wherever your client supports it; the bridge is a compatibility shim, not the main path.

Related MCP server: NFL MCP

Tools

Ten, all read-only. Nothing here can modify a league, a roster, or an account.

Tool

Arguments

What it answers

compare_players

player_a, player_b, scoring_format

Head to head: points per game in the requested format, volume stats, bye weeks, who produced more. Start/sit, draft and trade questions about two named players.

get_rankings

position, scoring_format, limit

Position rankings for QB, RB, WR, TE, FLEX, K or DEF.

get_player

name

One player's profile: production, tier, efficiency, bye week.

search_players

query, limit

Find players by partial name, team, or position.

get_positional_scarcity

scoring_format

How steep the scoring dropoff is at each position, for draft strategy.

get_bye_conflicts

players

Which bye weeks two or more rostered players share.

get_weekly_matchup

player, week, scoring_format

Who a player faces in a given week of the season, home or away, and how generous that opponent has been to the position. In-season start/sit questions that name a week.

get_strength_of_schedule

team + position, or player, or position alone

How easy or hard a schedule is for one position, over the full season and over fantasy playoff weeks 14 through 17. A position on its own ranks all 32 teams, easiest first.

get_adp_market_gaps

position, direction, scoring_format, limit

Players whose consensus average draft position disagrees most with their actual production ranking. Taken earlier than production means the room is drafting on expectation; later means it is drafting on doubt. A disagreement, not a recommendation.

verify_claim

player, metric, value, scoring_format

Check a stated figure (points per game, games played, bye week, rank, or any season stat) against the data. Confirms it, or returns the real number. Call it before quoting a stat from memory.

Prompts and resources

Three prompts, for clients that surface them in a picker or slash menu: start_sit, draft_pick, and bye_planning. Each one names the exact tools to call and the order to call them.

One resource, draftcall://methodology, a single markdown page describing how every derived figure is computed: season basis, scoring formats, tiers, scarcity, opponent difficulty, and strength of schedule.

scoring_format accepts PPR, half-PPR and standard. position accepts QB, RB, WR, TE, FLEX, K and DEF. week accepts 1 through 18.

Data

Player names and statistics are public-domain factual data. Rankings refresh daily. Every figure is labelled inline with the season it describes (2025 regular-season production until the 2026 season accrues a usable sample), and every response carries a stats_season field, so a model cannot mistake a completed season for a projection. DraftCall publishes no projections, ADP, or injury status through this server.

Not affiliated with the NFL or the NFLPA.

About

Built by Pizza Robot Studios LLC, an independent game and app studio in Los Angeles. DraftCall is also an iOS and Android app: https://draftcall.io/download/

This repository registers the hosted server, documents its tools, and carries the stdio bridge for clients that need one. The server itself runs at the endpoint above.

License

The contents of this repository (the registry manifest and these docs) are MIT licensed. See LICENSE and NOTICE.

That covers this repo only. The DraftCall service, the data it returns, and the DraftCall name are not covered: use of the endpoint is governed by https://draftcall.io/terms/, and DraftCall is a trademark of Pizza Robot Studios LLC (USPTO Serial 99762133).

Available Tools

9 tools
compare_playersCompare two NFL playersAInspect

Compare any two NFL players head to head for fantasy football: points per game in the requested scoring format, volume stats, bye weeks, and which one produced more. Use this for start/sit, draft, and trade questions about two specific players.

ParametersJSON Schema
NameRequiredDescriptionDefault
player_aYesFirst player name, e.g. "Bijan Robinson".
player_bYesSecond player name, e.g. "Jahmyr Gibbs".
scoring_formatNoScoring format. ppr awards 1 point per reception, half_ppr 0.5, standard 0. Defaults to half_ppr, the most common league setting.half_ppr

TDQS

A4/5.0
Behavior3/5

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 accurately describes what the tool returns (a comparison of stats) and implies it is read-only, but it does not explicitly state that it has no side effects, does not modify data, or any limitations (e.g., data freshness, player name ambiguity). The description is not misleading and provides some outcome detail, but it lacks explicit side-effect or constraint disclosure. Given the read-only nature, this is adequate but not exceptional.

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

Conciseness5/5

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

The description is two sentences long and front-loaded with the core purpose and outputs. Every clause adds value, avoiding redundancy. It efficiently communicates the tool's function and usage context without unnecessary elaboration, making it easy for an agent to parse and act on.

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

Completeness4/5

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

For a comparison tool with no output schema, the description provides a solid list of returned information (points per game, volume stats, bye weeks, which produced more) and clearly states its intended use cases. It does not specify edge cases like season scope or player name handling, but these are minor and unlikely to hinder correct invocation. The description is comprehensive enough for an agent to understand what the tool does and when to use it.

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

Parameters3/5

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

The input schema provides 100% parameter coverage with detailed descriptions, so the description adds minimal new information beyond what the schema already states. The description does reinforce that 'scoring format' is used in the comparison, but this is already present in the schema's parameter description. Since schema coverage is high, the baseline of 3 is appropriate; the description does not need to compensate for undocumented parameters.

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

Purpose5/5

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

The description uses a specific verb ('Compare') with a clear resource ('any two NFL players head to head') and explicitly lists the outputs (points per game, volume stats, bye weeks, which produced more). This differentiates it from siblings like get_player (single player) and get_rankings (list-oriented) by emphasizing head-to-head comparison. The mention of fantasy football use cases further clarifies its niche.

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

Usage Guidelines4/5

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

The description explicitly states when to use it: 'Use this for start/sit, draft, and trade questions about two specific players.' This provides clear context and appropriate scenarios. It does not explicitly name alternative tools or exclusions, but the use-case framing implicitly distinguishes it from ranking or single-player tools. A minor gap is the lack of explicit 'when not to use' guidance.

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

get_bye_conflictsFind bye-week conflicts on a rosterAInspect

Given a list of players, report which bye weeks two or more of them share. Use this for roster planning and draft questions about stacking byes.

ParametersJSON Schema
NameRequiredDescriptionDefault
playersYesPlayer names, two or more.

TDQS

A4/5.0
Behavior3/5

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

With no annotations, the description carries the full burden. It discloses the core behavior—reporting shared bye weeks—but omits details like input validation, error handling (e.g., unknown player names), whether the result includes only conflicts or also non-conflicts, or the output format. Adequate for a simple read-only tool, but not richly transparent.

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

Conciseness5/5

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

The description is two sentences with no filler. The first sentence precisely states the function, and the second adds a usage scenario. It is efficiently front-loaded and every word earns its place.

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

Completeness4/5

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

For a tool with one parameter and no output schema, the description is largely complete: it explains what it does and when to use it. The only minor gap is the absent description of the return value, but given the simplicity and the phrase 'report,' an agent can reasonably infer a list of bye weeks with associated players.

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

Parameters3/5

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

The schema provides 100% description coverage for the single parameter ('Player names, two or more'), so the description adds no further meaning beyond that. The tool description does not elaborate on formatting, ordering, or constraints beyond 'list of players,' matching the baseline expectation.

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

Purpose5/5

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

The description states a specific verb ('report') and a precise resource ('which bye weeks two or more of them share'), clearly distinguishing it from all siblings which focus on individual players, comparisons, rankings, or matchups. The title reinforces the purpose without introducing ambiguity.

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

Usage Guidelines4/5

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

The description explicitly states when to use the tool: 'Use this for roster planning and draft questions about stacking byes.' It provides a clear context but does not mention any alternatives or when not to use it, though the unique purpose makes conflict with siblings unlikely.

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

get_playerGet one NFL playerAInspect

A single player's fantasy profile: positional rank, points per game in all three scoring formats, season stats, games played, and bye week.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesPlayer name, e.g. "Puka Nacua".

TDQS

A4/5.0
Behavior4/5

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 describes the output (fantasy profile) thoroughly, implying a read-only operation. However, it does not disclose potential limitations such as seasonal scope, data freshness, or error behavior. Still, for a simple getter, the description is reasonably transparent about what it returns.

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

Conciseness5/5

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

The description is a single sentence with no filler. The core purpose ('A single player's fantasy profile') is front-loaded, followed by a concise list of contents. Every word earns its place, making it easy to scan.

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

Completeness4/5

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

Given the tool's simplicity (one parameter, no output schema), the description provides enough detail about the return payload. It lists the key data points an agent would expect. It omits possible error handling or caveats but these are less critical for a straightforward getter. Overall, it is fairly complete for its complexity.

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

Parameters3/5

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

The input schema provides 100% coverage for the only parameter (name) with an example. The description does not add any additional semantic value beyond what the schema already states. Per the rubric, this yields a baseline score of 3, which is appropriate.

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

Purpose5/5

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

The description clearly states the tool returns a single player's fantasy profile, enumerating specific data points like positional rank, points per game in three formats, season stats, games played, and bye week. This is a specific verb-resource pairing that differentiates it from siblings like search_players (searching) and compare_players (comparing). An agent can immediately understand what this tool delivers.

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

Usage Guidelines3/5

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

The description implies usage when a single player's profile is needed, but it does not explicitly state when to use this tool versus alternatives like compare_players or get_rankings. No mention of exclusions or conditions, leaving the agent to infer from context. This is adequate but lacks the explicit guidance seen in better definitions.

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

get_positional_scarcityCompare positional scarcityAInspect

How steep the fantasy dropoff is at each position in a given scoring format, measured from the top player to replacement level. Use this for draft-strategy questions like whether to take a running back or a wide receiver first.

ParametersJSON Schema
NameRequiredDescriptionDefault
scoring_formatNoScoring format. ppr awards 1 point per reception, half_ppr 0.5, standard 0. Defaults to half_ppr, the most common league setting.half_ppr

TDQS

A4/5.0
Behavior3/5

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 conceptual output (steepness of dropoff) but does not describe the exact return format (e.g., a table, numeric scores per position, or how it is presented). It also omits mention of any edge cases (e.g., default scoring format handling). For a simple read-only analytics tool, this is adequate but not richly transparent.

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

Conciseness5/5

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

The description is two sentences with no waste. The first sentence front-loads the core definition, and the second gives a concrete usage example. Every word serves a purpose, making it highly concise and well-structured.

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

Completeness4/5

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

The tool is simple (one parameter) and the description explains its purpose and use case. However, without an output schema, the agent is left to infer the response structure. Given the conceptual clarity and the example, it's mostly complete, but a mention of the expected output format would make it fully self-sufficient. The description adequately distinguishes it from siblings like get_rankings or compare_players.

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

Parameters3/5

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

Schema description coverage is 100% because the sole parameter 'scoring_format' is fully documented with an enum, default value, and explanation. The description adds no additional information about the parameter, so the baseline of 3 applies per the rubric.

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

Purpose5/5

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

The description clearly states what the tool does: measures the steepness of fantasy dropoff at each position for a given scoring format, defined from top player to replacement level. It uses specific terms like 'dropoff' and 'replacement level' and distinguishes itself from siblings like get_rankings or compare_players by focusing on scarcity across positions.

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

Usage Guidelines4/5

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

The description provides a concrete use case: 'draft-strategy questions like whether to take a running back or a wide receiver first.' This gives clear context for when to use it, though it doesn't explicitly name alternatives or state when not to use it. Since the tool is focused on scarcity, the example effectively implies its niche.

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

get_rankingsGet fantasy position rankingsAInspect

Fantasy football rankings for a position in a given scoring format, ordered by points per game. Positions: qb, rb, wr, te, flex, k, def. Use this for "who are the best X" and draft board questions.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoHow many players to return, newest ranking order.
positionYesPosition to rank. flex covers RB, WR, and TE together.
scoring_formatNoScoring format. ppr awards 1 point per reception, half_ppr 0.5, standard 0. Defaults to half_ppr, the most common league setting.half_ppr

TDQS

A3.6/5.0
Behavior3/5

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 ordering is by points per game, which is useful. However, it does not disclose what the response looks like, whether it returns a list object, or any pagination or error behavior. For a read-only query this is a moderate gap, but not critical. The lack of annotation support limits transparency.

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

Conciseness4/5

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

The description is concise, using two sentences that front-load the primary resource and ordering, then provides usage guidance. It wastes no words, and the structure is clear. It could be slightly more structured by separating the usage hint, but it is effective and easy to parse.

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

Completeness4/5

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

For a relatively simple tool that returns a list of rankings, the description covers the essential aspects: what it returns (rankings ordered by points per game), the valid positions, and typical use cases. The absence of an output schema is acceptable because the return shape is likely straightforward and inferable. It does not mention pagination or response format, but those are not strictly required for a basic query. Overall, the description is adequately complete for its complexity.

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

Parameters3/5

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

The input schema already provides descriptive text for all three parameters (position, limit, scoring_format) with enums, defaults, and explanations, yielding 100% schema description coverage. The tool description adds little beyond the schema: it restates the position list and the ordering note, but the schema already covers the meaning and defaults. Since the schema is thorough, a baseline of 3 is appropriate, and the description contributes marginal extra value.

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

Purpose4/5

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

The description clearly states the verb 'get rankings' and the resource (position, scoring format) and specifies the ordering by points per game. It also lists the accepted positions. However, it does not explicitly differentiate itself from sibling tools like get_positional_scarcity, relying on the reader to infer the difference. Overall it is specific and unambiguous about what it does.

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

Usage Guidelines4/5

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

The description provides explicit usage examples: "Use this for 'who are the best X' and draft board questions." This gives clear context for when to invoke the tool. It does not, however, mention when NOT to use it or point to alternatives for different kinds of queries (e.g., comparing players or checking scarcity), so some situational guidance is missing.

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

get_strength_of_scheduleStrength of schedule by team and positionAInspect

How easy or hard a team's schedule is for one fantasy position, over the full season and over the fantasy playoff weeks (14 through 17), measured as the average fantasy points its opponents allowed to that position over the prior completed season. Give a team abbreviation or a player name; give only a position to rank all 32 teams. Use this for rest-of-season stash, trade deadline, and playoff planning questions.

ParametersJSON Schema
NameRequiredDescriptionDefault
teamNoTeam abbreviation, e.g. "KC". Optional when player is given.
playerNoPlayer name; resolves the team and position. Optional when team is given.
positionNoPosition to grade the schedule for. Required with team, inferred from player, and on its own ranks every team.

TDQS

A4.4/5.0
Behavior4/5

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

With no annotations, the description bears the full burden. It proactively discloses the measurement methodology (average fantasy points allowed), the time periods covered (full season plus playoff weeks), and the ranking behavior when only a position is given. This explains the tool's behavior clearly, though it does not state whether it is read-only or error conditions, which would push it to a 5.

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

Conciseness5/5

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

The description is three sentences with zero waste. It front-loads the core purpose, then gives concise usage instructions, then lists applicable use cases. Each sentence earns its place; no redundancy or filler.

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

Completeness4/5

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

For a tool with three optional parameters, no output schema, and no annotations, the description is quite complete. It explains the metric, time ranges, input variations, and typical use cases. It leaves the exact return format (e.g., a number vs. a list) implicit, but the phrase 'rank all 32 teams' strongly implies a list output when applicable, making this a minor gap.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3. The description adds value beyond the schema by clarifying the interaction between parameters: team or player are alternatives, and a position alone ranks all teams. It also implies inference behavior (player resolves team and position), which is not fully specified in the schema. This added clarity justifies a 4.

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

Purpose5/5

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

The description explicitly states the tool measures schedule difficulty for a fantasy position, including full season and playoff weeks (14-17), based on opponent average fantasy points allowed. It clearly distinguishes itself from siblings like get_rankings (player rankings) and get_positional_scarcity (scarcity) by focusing on schedule strength. The verb 'get' plus the resource 'strength of schedule' is specific and unambiguous.

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

Usage Guidelines4/5

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

The description provides clear usage scenarios: 'rest-of-season stash, trade deadline, and playoff planning questions,' which helps an agent decide when to invoke it. However, it does not explicitly mention when not to use it or name alternative tools for different scenarios, so it stops short of full exclusion guidance.

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

get_weekly_matchupLook up a player matchup for one weekAInspect

Who a player faces in a given week of the 2026 season, whether it is home or away, and how generous that opponent has been to that position. Use this for in-season start or sit questions that name a week, which the season-long tools cannot answer.

ParametersJSON Schema
NameRequiredDescriptionDefault
weekYesRegular-season week, 1 through 18.
playerYesPlayer name, e.g. "Puka Nacua".
scoring_formatNoScoring format. ppr awards 1 point per reception, half_ppr 0.5, standard 0. Defaults to half_ppr, the most common league setting.half_ppr

TDQS

A4.4/5.0
Behavior4/5

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

With no annotations, the description carries the burden. It clearly implies a read-only lookup ('Who a player faces...') and describes the output content. It doesn't mention errors or edge cases, but for a simple lookup tool this is adequate. It is not misleading and adds context beyond the name.

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

Conciseness5/5

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

Two sentences with no filler. The first sentence describes the output, the second prescribes usage. Information is front-loaded and every word earns its place.

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

Completeness4/5

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

For a lookup tool without output schema, the description covers the purpose, usage context, and key data points. It doesn't state return format or handle edge cases, but given the simple scope and absence of annotations, it is reasonably complete for an agent to invoke correctly.

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

Parameters3/5

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

Schema coverage is 100%, so the schema already documents all three parameters (player, week, scoring_format). The description does not add new parameter-level meaning beyond what the schema provides—it focuses on output details. Baseline of 3 is appropriate.

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

Purpose5/5

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

The description clearly states the resource (player matchup for a given week of the 2026 season), the specific information provided (home/away, opponent generosity), and explicitly contrasts with season-long tools. This distinguishes it from siblings and makes 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.

Usage Guidelines5/5

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

Explicitly states when to use: 'for in-season start or sit questions that name a week', and when not to: 'which the season-long tools cannot answer'. This provides direct guidance on tool selection, referencing the limitation of alternatives.

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

search_playersSearch NFL playersBInspect

Find players by partial name, team abbreviation, or position. Use this when a name is ambiguous or only partly known before calling the other tools.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
queryYesPartial name, team abbreviation (e.g. "KC"), or position.

TDQS

B3.2/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden for behavioral disclosure. It does not state what the tool returns (list of players? IDs? full details?), whether it's read-only, any limitations on result counts (other than the limit param), or pagination. The description is too sparse to fully inform an agent about 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.

Conciseness5/5

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

A single, efficient sentence that front-loads the main action and includes a usage condition. No filler or redundant information. The structure is ideal for quick scanning.

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

Completeness2/5

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

The tool has no output schema and only a single description sentence. It fails to explain what the search results contain or how they should be used (e.g., to feed into get_player). Given the sibling tools, an agent needs to know if search_players returns enough data to proceed directly or if it should be followed by another call.

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

Parameters2/5

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

Schema description coverage is 50%, and the description does not compensate for the undocumented 'limit' parameter. It repeats the query semantics from the schema without adding new meaning (e.g., case sensitivity, format of team abbreviations). The 50% coverage means the description needs to explain the missing parameter but does not.

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

Purpose4/5

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

The description clearly states the tool 'finds players' with specific search criteria (partial name, team abbreviation, position). This is a specific verb + resource combination that distinguishes it from a retrieval tool like get_player. However, it does not explicitly name a sibling or contrast itself beyond implying it's a preliminary step.

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

Usage Guidelines4/5

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

Explicitly says 'Use this when a name is ambiguous or only partly known before calling the other tools.' This gives clear guidance on when to use it and positions it as a pre-step. It lacks explicit exclusions (e.g., when you have a player ID), but the context is clear enough for an agent.

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

verify_claimCheck a stated figure against DraftCall dataAInspect

Check a number you are about to state, or one a user has stated, against DraftCall data for one player: points per game, games played, bye week, positional rank, or any season stat such as rushingYards or receptions. Returns whether the figure matches and the actual value when it does not. Use this before quoting a figure from memory, and whenever a user asserts a stat.

ParametersJSON Schema
NameRequiredDescriptionDefault
valueYesThe figure being checked.
metricYesWhich figure to check. ppg is points per game in scoring_format; rank is positional rank; the rest are season totals.
playerYesPlayer name, e.g. "Puka Nacua".
scoring_formatNoScoring format. ppr awards 1 point per reception, half_ppr 0.5, standard 0. Defaults to half_ppr, the most common league setting.half_ppr

TDQS

A4.2/5.0
Behavior4/5

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 honestly states the return behavior ('Returns whether the figure matches and the actual value when it does not') and implies a read-only verification operation. It does not mention side effects, rate limits, or data freshness, but for this simple check tool, the given behavioral context is substantive and clear.

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

Conciseness5/5

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

Three sentences, each earning its place: purpose and scope, return behavior, and usage guidance. The most important information (what the tool does) is front-loaded, with no extraneous detail. It is highly concise and well structured.

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

Completeness4/5

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

Given the tool's moderate complexity (4 params, 2 enums, no output schema), the description covers all essential operational guidance: what it verifies, how it reports matches/mismatches, and when to use it. Pairing with the schema (which explains scoring_format and metric enums), the agent has enough to call it correctly. Minor gaps like error handling or data scope (e.g., only DraftCall players) are not critical.

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

Parameters3/5

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

Schema coverage is 100%, so the schema already documents all parameters with descriptions and enums. The description mentions example metrics ('rushingYards or receptions') and clarifies the purpose of ppg vs. rank, but it largely repeats what the schema already provides. It adds minimal extra meaning beyond the schema, so the baseline of 3 is appropriate.

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

Purpose5/5

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

States a specific verb ('Check') and resource ('DraftCall data for one player'), with explicit scope (points per game, games played, bye week, positional rank, season stats). Clearly distinguishes from sibling tools like get_player (retrieval) and compare_players (comparison) by focusing on verification of a stated figure.

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

Usage Guidelines4/5

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

Provides explicit when-to-use guidance: 'Use this before quoting a figure from memory, and whenever a user asserts a stat.' This gives clear context for appropriate invocation. However, it does not explicitly mention when not to use it or alternative tools (e.g., 'for detailed stats use get_player'), so it lacks a full when-not/alternatives breakdown.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 9 tool updatesv0.1.0
    • First observedcompare_players
    • First observedget_bye_conflicts
    • First observedget_player
    • First observedget_positional_scarcity
    • First observedget_rankings
    • First observedget_strength_of_schedule
    • First observedget_weekly_matchup
    • First observedsearch_players
    • First observedverify_claim

TDQS

A4.1/5.0
Disambiguation5/5

Each tool has a clearly distinct purpose: player profiles, head-to-head comparison, rankings, search, positional scarcity, bye-week conflicts, weekly matchups, strength of schedule, and stat verification. No two tools overlap in function; even the matchup-related tools (weekly vs. season-long) target different timeframes.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern using snake_case: get_player, compare_players, get_rankings, search_players, get_positional_scarcity, get_bye_conflicts, get_weekly_matchup, get_strength_of_schedule, verify_claim. The verbs are descriptive and the pattern is uniform throughout.

Tool Count5/5

With 9 tools, the server is well-scoped for a fantasy football data API. Each tool addresses a distinct query type, and the count feels neither bloated nor sparse—it covers the core needs of draft, start/sit, and trade analyses without redundancy.

Completeness5/5

The surface is remarkably complete for a read-only fantasy data service: it handles player identification (search), profiles, direct comparisons, rankings by position, draft strategy (scarcity), bye-week planning, weekly matchup context, season-long strength of schedule, and fact verification. No obvious dead ends or missing queries that would derail an agent.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    B
    maintenance
    An 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
  • A
    license
    Not graded
    quality
    B
    maintenance
    MCP 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
  • A
    license
    Not graded
    quality
    A
    maintenance
    Provides verified NFL stats (2016–2025) and Sleeper league context through an MCP server, with tools for querying metrics, comparing entities, verifying claims, and accessing league data.
    MIT
  • F
    license
    Not graded
    quality
    C
    maintenance
    MCP server for NFL fantasy football retrieval, providing access to NFL stats and Sleeper league data through retrieval-oriented tools.
    -

Latest Blog Posts

MCP directory API

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

curl -X GET 'https://glama.ai/api/mcp/v1/servers/evanatpizzarobot/draftcall-mcp'

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