Skip to main content
Glama
smw355

NFL Data MCP Server

by smw355

Server Quality Checklist

50%
Profile completionA complete profile improves this server's visibility in search results.
  • Latest release: v1.0.0

  • Disambiguation4/5

    Each tool targets a distinct purpose: getting a player's stats, comparing players, retrieving position leaders, and searching players by name. There's slight overlap between get_player_stats and compare_players since both retrieve player statistics, but the former is single-player while the latter is multi-player, making them mostly distinguishable.

    Naming Consistency5/5

    All tools follow a consistent verb_noun pattern: get_player_stats, compare_players, get_position_leaders, search_players. Each uses a clear action verb (get, compare, search) followed by the object (player_stats, players, position_leaders, players). This is highly predictable and consistent.

    Tool Count4/5

    With 4 tools, the count is well within the appropriate range for a focused data retrieval server. Each tool services a distinct query pattern (individual lookups, comparisons, positional rankings, and searching). The count feels slightly lean but reasonable for a data-only server with no write operations.

    Completeness3/5

    The set covers core statistical queries: individual stats, comparison, position rankings, and discovery. However, there are notable gaps such as team-level stats, game-level data, week-by-week breakdowns, and season/league overviews that a comprehensive NFL data server might be expected to provide. An agent could often work around these gaps, so they're moderate rather than severe.

  • Average 3/5 across 4 of 4 tools scored.

    See the Tool Scores section below for per-tool breakdowns.

    • No community issues in the last 6 months
    • 0 commits in the last 12 weeks
    • No stable releases found
    • No critical vulnerability alerts
    • No high-severity vulnerability alerts
    • No code scanning findings
    • CI status not available
  • Add a LICENSE file by following GitHub's guide. Once GitHub recognizes the license, the system will automatically detect it within a few hours.

    If the license does not appear after some time, you can manually trigger a new scan using the MCP server admin interface.

    MCP servers without a LICENSE cannot be installed.

  • This repository includes a README.md file.

  • No tool usage detected in the last 30 days. Usage tracking helps demonstrate server value.

    Tip: use the "Try in Browser" feature on the server page to seed initial usage.

  • Add a glama.json file to provide metadata about your server.

  • If you are the author, simply .

    If the server belongs to an organization, first add glama.json to the root of your repository:

    {
      "$schema": "https://glama.ai/mcp/schemas/server.json",
      "maintainers": [
        "your-github-username"
      ]
    }

    Then . Browse examples.

  • Add related servers to improve discoverability.

How to sync the server with GitHub?

Servers are automatically synced at least once per day, but you can also sync manually at any time to instantly update the server profile.

To manually sync the server, click the "Sync Server" button in the MCP server admin interface.

How is the quality score calculated?

The overall quality score combines two components: Tool Definition Quality (70%) and Server Coherence (30%).

Tool Definition Quality measures how well each tool describes itself to AI agents. Every tool is scored 1–5 across six dimensions: Purpose Clarity (25%), Usage Guidelines (20%), Behavioral Transparency (20%), Parameter Semantics (15%), Conciseness & Structure (10%), and Contextual Completeness (10%). The server-level definition quality score is calculated as 60% mean TDQS + 40% minimum TDQS, so a single poorly described tool pulls the score down.

Server Coherence evaluates how well the tools work together as a set, scoring four dimensions equally: Disambiguation (can agents tell tools apart?), Naming Consistency, Tool Count Appropriateness, and Completeness (are there gaps in the tool surface?).

Tiers are derived from the overall score: A (≥3.5), B (≥3.0), C (≥2.0), D (≥1.0), F (<1.0). B and above is considered passing.

Tool Scores

  • Behavior2/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 of behavioral disclosure. It does not state whether this is a read-only operation, what data is returned (which stat categories), whether year is optional and defaults to the latest season, or how name matching works (exact vs fuzzy). For a data-fetch tool with zero annotation coverage, this is a meaningful gap.

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

    Conciseness3/5

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

    The description is a single concise sentence with zero waste. However, it compresses 'by name and position' which duplicates what the schema already declares in the required parameters. It's efficient but under-specified relative to its brevity - it doesn't use the space to add behavioral value beyond the schema.

    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?

    This is a data retrieval tool with no annotations and no output schema, so the description must carry substantial explanatory weight. It is incomplete: it doesn't specify what statistics are returned, whether year is optional, how name/position matching works, or how this differs from the sibling tools (search_players, compare_players). For a 3-parameter tool with sibling overlap, this level of detail is insufficient.

    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 100%, so the baseline is 3. However, the description adds minimal value beyond the schema: it bundles player_name and position together but doesn't clarify behavioral semantics like whether position filters the search or is required for disambiguation, whether year defaults to the most recent season when omitted, or how name matching behaves (exact match, case sensitivity). The description doesn't compensate for these ambiguities.

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

    Purpose4/5

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

    The description states a clear verb+resource+scope ('Get season statistics for a specific player by name and position'). It identifies the tool's purpose well, though it doesn't explicitly distinguish the single-player lookup nature from sibling tools like compare_players or search_players. The purpose is clear but lacks explicit sibling differentiation.

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

    Usage Guidelines2/5

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

    No guidance is given on when to use this tool versus alternatives. Siblings like search_players (for finding players) and compare_players (for comparing) have overlapping domains, and the description doesn't clarify that this tool fetches full season stats for exactly one known player. No exclusions or alternative tool references are provided.

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

  • Behavior2/5

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

    No annotations are provided, so the description carries full behavioral burden. The description 'Compare statistics between multiple players' conveys a read-only aggregation operation but doesn't disclose what output format is returned, whether results are sorted, how multiple metrics are combined, or whether data is normalized across positions. For a comparative tool with no output schema, this is a meaningful gap.

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

    Conciseness3/5

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

    The description is a single concise sentence with zero waste. However, it is terse to the point of under-specification for a tool with 3 parameters and no output schema. The sentence earns its place but doesn't cover enough ground.

    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 schema fully describes all 3 parameters (100% coverage), giving the description some relief. However, there is no output schema, no annotations, and the comparison operation has ambiguous semantics - the description doesn't explain what comparison output looks like, whether it's side-by-side fields, deltas, or rankings. Given the tool's moderate complexity, the description is incomplete.

    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%, so the schema fully documents all parameters (players array, year range, metrics array). The description adds nothing beyond what the schema provides. Per the rubric, baseline is 3 with high coverage; the description 'Compare statistics' implies metrics matter but doesn't clarify metric semantics beyond the schema.

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

    Purpose4/5

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

    The description states a clear verb+resource combination: 'Compare statistics between multiple players.' It uses a specific verb and resource, and the plural 'players' distinguishes it from the sibling get_player_stats (single player) and get_position_leaders (leaderboard). It does distinguish from siblings implicitly via scope, though without explicitly naming alternatives.

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

    Usage Guidelines2/5

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

    The description provides no explicit guidance on when to use this tool versus the siblings. The plural 'players' implies multi-player comparison rather than single-player stats, but no when-to-use, when-not-to-use, or alternative tool names are given. Usage is only implied by the plural framing relative to sibling names.

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

  • Behavior2/5

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

    No annotations are provided, so the description carries full burden for behavioral disclosure. It describes a read/query operation implicitly but doesn't state return format, whether results are ordered descending, what the ranking metric expects, or whether ties are handled. For a ranking tool, stating that results are sorted descending by the metric would be valuable context that is currently missing.

    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 a single efficient sentence with zero waste. It front-loads the key purpose clearly. It could arguably add a sentence about sorting or usage, but for its length, it's concise and well-structured.

    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 4 parameters, a required metric field, no output schema, and no annotations. Given these gaps, the description should compensate by explaining the return format (list sorted descending?), how ranking works, and whether certain metrics are only valid for certain positions. For a data-retrieval tool with no output schema, the description leaves too much to inference.

    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%, so the baseline is 3. The description adds 'top performers' context which implies the results are ranked, but it doesn't add details about the metric parameter format or how position interacts with metric (e.g., which metrics are valid per position). The description adds marginal value beyond the schema's parameter descriptions.

    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 'Get top performers at a position for specific metrics' uses a specific verb ('Get') with a clear resource ('top performers at a position') and scoping ('for specific metrics'). It clearly communicates a leaderboard-style ranking tool. However, it doesn't explicitly distinguish itself from sibling tools like get_player_stats or compare_players, though the 'leaders' framing does imply a ranking/top-N semantic that differentiates implicitly.

    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 the usage context: querying ranked top performers by position and metric. However, there is no explicit when-to-use guidance or alternatives mentioned (e.g., comparing against get_player_stats for individual stats). The absence of exclusions or alternative references means the agent must infer the tool's role from the 'leaders' name and description framing.

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

  • Behavior3/5

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

    No annotations are provided, so the description carries the burden of behavioral disclosure. It states the tool searches by name pattern across all positions but doesn't disclose what is returned (full player profiles? just IDs?), matching behavior for wildcards, or whether results are limited. This is a read/search operation that is reasonably inferable, but the return contract is unspecified.

    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?

    A single compact sentence that conveys the verb, resource, and scope. Zero wasted words. Could potentially add usage guidance but is economical for a simple search tool.

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

    Completeness3/5

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

    For a 2-param search tool with 100% schema coverage and no output schema, the description is mostly adequate. The main gap is that return behavior is not specified (what does a search result look like, are there pagination limits, is matching fuzzy or exact). Given the simplicity, it's acceptable but could clarify return format or how results connect to sibling stats tools.

    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%, so both parameters are already documented in the schema. The description adds the 'across all positions' context and clarifies name_pattern is a partial-match search, which is marginally useful. The year parameter is optional and its purpose (filtering season) is inferable from schema alone, so description adds little beyond schema coverage.

    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?

    Clear verb+resource (search players) and scope (by name pattern, across all positions). It distinguishes itself from get_player_stats and get_position_leaders which are stats-oriented, though it doesn't explicitly differentiate from compare_players. The 'across all positions' qualifier adds useful scope clarity.

    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 this is the lookup tool for finding players by name, which contrasts with stats-oriented siblings. However, it doesn't state when NOT to use it or explicitly reference alternative tools. Usage context is reasonably clear from the name search focus but lacks explicit exclusions.

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

GitHub Badge

Glama performs regular codebase and documentation scans to:

  • Confirm that the MCP server is working as expected.
  • Confirm that there are no obvious security issues.
  • Evaluate tool definition quality.

Our badge communicates server capabilities, safety, and installation instructions.

Card Badge

NFL-Data-MCP MCP server

Copy to your README.md:

Score Badge

NFL-Data-MCP MCP server

Copy to your README.md:

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/smw355/NFL-Data-MCP'

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