Skip to main content
Glama
chrispickford

fifa-public-api-mcp

Server Quality Checklist

67%
Profile completionA complete profile improves this server's visibility in search results.
  • Latest release: v0.2.0

  • Disambiguation5/5

    Each tool targets a distinct entity or action: competitions, seasons, matches (list, live, timeline), teams, stadiums, confederations, countries. No overlap; even search vs get vs list are clearly different.

    Naming Consistency5/5

    All tool names follow a consistent verb_noun pattern in snake_case (get_, list_, search_). No mixed conventions or vague verbs.

    Tool Count5/5

    12 tools cover the core entities of FIFA data (competitions, seasons, stages, matches, teams, stadiums, confederations, countries). The count feels well-scoped for the domain.

    Completeness4/5

    Covers basic CRUD-like operations for major entities. Missing player/squad data and standings, but the core workflow (find competition, list seasons, get matches, drill into a match) is complete.

  • Average 3.9/5 across 12 of 12 tools scored. Lowest: 3.1/5.

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

    • No community issues in the last 6 months
    • 19 commits in the last 12 weeks
    • Last stable release on
    • No critical vulnerability alerts
    • No high-severity vulnerability alerts
    • No code scanning findings
    • CI is passing
  • This repository is licensed under MIT License.

  • 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?

    With no annotations, the description must carry the full burden, but it omits important traits such as the effect of the 'raw' and 'language' parameters, idempotency, error behavior, or what happens when the stadium is not found. It only lists a few returned fields without depth.

    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 extremely concise, comprising a single sentence. While it lacks depth, it is front-loaded with the core purpose and avoids unnecessary fluff.

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

    Completeness2/5

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

    Given no output schema and three parameters with one undocumented, the description is too sparse. It does not explain the parameter interplay (e.g., raw returns untouched payload) or provide complete return value details, leaving the agent with incomplete context.

    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 67%, leaving the 'idStadium' parameter undefined. The description lists three fields (name, city, capacity) that map to the response but does not elaborate on any parameter beyond the schema, such as the 'raw' boolean or 'language' code.

    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 identifies the action (Get), resource (stadium/venue), and key identifier (idStadium), and specifies the returned fields (name, city, capacity). This effectively distinguishes it from sibling tools like get_team or get_season.

    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 explicit guidance on when to use this tool versus alternatives, nor any conditions or exclusions. The description only implies usage when an idStadium is available, lacking context-specific direction.

    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?

    With no annotations provided, the description carries full transparency burden. It mentions the output order (goals, cards, substitutions) but does not disclose behavioral traits such as authentication needs, rate limits, error handling, or what happens if the match is not found. This is insufficient for safe agent invocation.

    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, front-loaded with the main action, and contains no extraneous information. Every sentence serves a clear purpose, achieving maximum efficiency.

    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 6 parameters and no output schema, placing a high burden on the description. While it mentions the types of events, it does not explain the output structure, the raw parameter's effect, or the language parameter's role. This leaves critical gaps for an agent to understand the full behavior, making it 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?

    The schema has 33% description coverage (only raw and language have descriptions). The description adds meaning by naming the four required IDs and explaining that idMatch comes from get_matches, which is helpful. However, it does not detail the raw or language parameters, leaving gaps. This is adequate compensation given the low 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?

    The description clearly states 'Get one match's event timeline in order: goals, cards, substitutions, and other key events,' which uniquely identifies the tool's function. However, it does not explicitly differentiate from sibling tools like get_matches or get_live_match, limiting clarity for an agent choosing among them.

    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 specifies the required parameters (idCompetition, idSeason, idStage, idMatch) and notes that idMatch comes from get_matches, providing a usage context. However, it lacks guidance on when not to use the tool or alternative tools, making it merely adequate.

    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 provided, so description carries full burden. It only states the action and output fields, lacking details on permissions, rate limits, or side effects. 'Reference data' hints at idempotency but is insufficient.

    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?

    Single sentence with no superfluous words. Efficient, but could benefit from a brief expansion on the tool's purpose relative to siblings.

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

    Completeness3/5

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

    For a simple list tool with no output schema and minimal annotations, the description is adequate but not fully complete. Lacks details on return structure beyond idCountry, which may require additional context for agents.

    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% with descriptions for both parameters. The description adds no extra meaning beyond the schema, meeting the baseline for high coverage.

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

    Purpose5/5

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

    Description clearly states verb 'List' and resource 'FIFA countries and member associations', with a note on reference data. It is distinct from sibling tools like list_confederations or list_seasons.

    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 explicit when-to-use or when-not-to-use guidance. The phrase 'reference data' weakly implies static nature, but no alternatives or exclusions are mentioned.

    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?

    With no annotations provided, the description carries full burden. It discloses the return content (dates, associations, host teams, image URLs) and implies a read operation. However, it does not mention behavior on invalid idSeason, rate limits, or side effects. The 'raw' and 'language' parameters are not explained behaviorally.

    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 that efficiently communicates the tool's purpose and output. It is front-loaded with the core action and immediately provides examples and key data elements. No redundancy or unnecessary words.

    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?

    Given 3 parameters, no output schema, and no annotations, the description is moderate. It lists output elements but not their structure or how parameters affect output. Sibling tools exist but are not differentiated. The description is sufficient for a simple get-by-id tool but leaves gaps for parameter usage and error behavior.

    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 coverage is 67%, with idSeason having no description in schema. The description mentions 'by idSeason' but does not clarify the format of the string. For 'raw' and 'language', the description adds no meaning beyond the schema defaults and descriptions. The description should at least explain the 'raw' parameter's function.

    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 it retrieves a single season/edition by ID and lists the data included (dates, associations, host teams, image URLs), making the verb and resource specific. It implicitly distinguishes from siblings like list_seasons (which lists multiple) and other get tools that return different entities.

    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 you need detailed info on a specific season by ID, but provides no explicit guidance on when to use this tool versus siblings like list_seasons, get_competition, or search_competitions. There is no mention of exclusions or prerequisites.

    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 provided, so description bears full burden. Describes return of matching competitions with idCompetition, mentions raw parameter for untouched payload, but doesn't disclose other behaviors like error handling or rate limits.

    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 concise sentences, no wasted words. Front-loaded with 'Start here.' and immediately states purpose, example, and key output. Optimal length.

    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?

    Description covers core purpose and critical output (idCompetition) but omits details like result limits, pagination, error responses, or behavior when no matches found. Minimal but functional for a simple search tool given no output schema.

    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% (all 3 parameters documented in schema). Description explains name parameter and idCompetition output but does not add extra meaning for 'raw' or 'language' beyond schema defaults. Baseline 3 applies.

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

    Purpose5/5

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

    Description clearly states the tool's purpose: 'Start here. Find a FIFA competition...' by name fragment, emphasizing its role as the entry point and that it returns idCompetition used by all other tools, distinguishing it from siblings.

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

    Usage Guidelines4/5

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

    Explicitly says 'Start here' implying initial step, states output 'idCompetition that every other tool builds on', and gives example 'world cup'. However, lacks explicit when-not-to-use or alternatives.

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

  • Behavior4/5

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

    With no annotations, the description discloses that not-yet-started matches have empty lineups and null scores, which is useful behavioral context. However, it does not mention whether the data is cached or requires authentication, though the tool name suggests live data.

    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 redundant information: it first enumerates return fields, then clarifies behavior for edge cases and required parameters.

    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 no output schema, the description adequately covers return fields and edge cases. It misses details on optional parameters and authentication, but for a single-match retrieval tool, the provided information is sufficient for most use cases.

    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 description lists the four required parameters (idCompetition, idSeason, idStage, idMatch) but does not explain their meaning beyond the names. Schema coverage is only 33%, and the description partially compensates by naming required ones, but does not clarify the optional parameters (raw, language).

    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 specifies the exact data fields returned (starting lineups, substitutes, officials, attendance, weather, live score, status) and distinguishes the tool from siblings like get_matches and get_match_timeline by focusing on rich detail for a single match.

    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 explains that the tool works for any match state and lists required parameters, but does not explicitly contrast with siblings or state when to use this tool over alternatives like get_matches for list views or get_match_timeline for timeline events.

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

  • Behavior4/5

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

    For a simple read-only listing tool, the description conveys the core behavior. It does not disclose authentication needs or idempotency, but the function is straightforward with no hidden traits.

    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 sentence that front-loads the purpose with zero wasted words, achieving maximum conciseness.

    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 (no output schema, 2 optional params), the description covers the main function. It could hint at the output structure beyond 'idConfederation', but the parameter descriptions handle the rest.

    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%, and the tool description adds no extra meaning beyond the schema's parameter descriptions. Baseline score 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 verb 'list' and the specific resource 'six FIFA confederations' with enumeration, making the tool's purpose unambiguous and distinct from sibling list tools.

    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?

    No explicit guidance on when to use this tool versus alternatives like list_countries or list_seasons. The description implies usage for listing confederations but lacks exclusions or context.

    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 full behavioral burden. It implies a read operation (fetch details) but does not explicitly state it's read-only, nor does it disclose any side effects, authentication needs, or rate limits. The mention of 'details' and specific fields provides some context but lacks comprehensive behavioral disclosure.

    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, no wasted words. The first sentence front-loads the purpose, the second provides usage guidance. Structure is clean and efficient.

    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?

    No output schema exists, but the description hints at returned fields (name, organizer, type), which helps the agent understand the response shape. For a simple retrieval tool, this is adequate. However, it could mention read-only behavior or error scenarios to be more complete.

    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 67% (2 of 3 params have descriptions). The description adds context for the required `idCompetition` parameter by stating it's the identifier, but it does not elaborate on format or constraints. The `raw` and `language` parameters already have schema descriptions, so no additional value from the tool description. Overall, the description adds marginal meaning beyond the schema.

    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 'Get details for one FIFA competition by its idCompetition', specifying the verb (Get), resource (details for one FIFA competition), and key fields (name, organizer, type). It distinguishes from siblings by referencing search_competitions for name-based lookup.

    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?

    The description explicitly provides guidance: 'Use search_competitions first if you only have the competition's name.' This tells the agent when to use this tool versus an alternative, making it highly actionable.

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

  • Behavior4/5

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

    With no annotations, the description carries the burden. It discloses returned data (fields, idStadium surfaced) and implies read-only. It does not mention error handling or auth, but for a simple get-by-id, this is adequate.

    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, front-loaded with the core purpose, no wasted words. The structure efficiently conveys the tool's function and a chaining opportunity.

    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 3 params, no output schema, and no annotations, the description covers essential usage and output expectations. It could mention error behavior or that it returns a single team, but overall it's complete enough.

    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 67% (2 of 3 parameters described). The description adds no parameter-specific details beyond what the schema provides, so it meets the baseline without exceeding.

    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 gets a national team or club by idTeam, listing specific returned fields (name, abbreviation, country, home city, stadium) and distinguishing it from siblings by mentioning chaining to get_stadium.

    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 context: use when you have an idTeam, and hints at chaining to get_stadium. It lacks explicit alternatives or when-not-to-use, but the sibling list helps differentiate.

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

  • Behavior4/5

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

    With no annotations, the description carries full burden. It discloses that results are sorted newest first, includes start/end dates, and the key idSeason. It does not mention pagination or rate limits, but as a read-only list tool, this is adequate.

    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 fluff. Key information is front-loaded. Every sentence 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?

    Given no output schema, the description adequately describes the return shape (newest first, start/end dates, idSeason). It could mention more fields but is sufficient for a list tool.

    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 50% (only raw and language have descriptions). The description adds meaning for idCompetition and the return value but does not explain raw, count, or language. It partially compensates but leaves gaps.

    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 action ('List'), the resource ('a competition's seasons/editions'), and the ordering ('newest first'). It differentiates from sibling tools like get_season (single season) and list_stages (stages within a season).

    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?

    It specifies the required parameter (idCompetition) and explains the return value's purpose ('returns the idSeason that stage, fixture, and squad lookups need'), implying when to use this tool. It does not explicitly list alternatives or when not to use, but the context from sibling tools makes it clear.

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

  • Behavior4/5

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

    No annotations provided, but description discloses key behavioral traits: pagination is non-functional, no continuation token returned, and the raw parameter returns FIFA's untouched payload. Gives enough transparency for safe invocation.

    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?

    Extremely concise—two sentences with zero wasted words. Front-loaded with purpose, immediately followed by actionable usage details. Every sentence adds value.

    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 list tool with no output schema, the description covers key return content (fixtures, kickoff times, final scores) and pagination caveat. Could mention sorting or limit defaults, but sufficient for agent understanding.

    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 43%, but the description adds meaning for required parameters (idCompetition, idSeason) and optional narrowing (idStage, idGroup). Also explains count as pagination control and raw as payload toggle. Some schema parameters (like idStage, idGroup) remain minimally described.

    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 it lists a competition's matches, including fixtures, kickoff times (UTC), and final scores for a season. It specifies required parameters (idCompetition + idSeason) and differentiates from siblings like get_live_match by focusing on list retrieval.

    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 context on when to use (listing matches for a season) and how to narrow results with idStage/idGroup. It also gives important pagination advice (pass large count for full list, no continuation token). However, lacks explicit when-not alternatives.

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

  • Behavior4/5

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

    No annotations provided, so the description carries full burden. It describes a read-only list operation with no destructive behavior. It could mention ordering or additional details, but for a simple list, it is adequate and consistent.

    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 fluff. Every sentence provides useful information: what the tool does, examples, required parameters, and return value.

    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 no output schema, the description mentions the return value (idStage). The tool has 4 params; the description covers the key two. Could mention other return fields, but it is sufficient for a simple list tool.

    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 description coverage is 50% (only raw and language have descriptions). The description adds meaning by stating that idCompetition and idSeason are required and used together to list stages, compensating for the missing schema descriptions. Raw and language already have schema descriptions.

    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 lists a season's stages, provides examples (Group Stage, Round of 16, Final), and specifies the required parameters and return value. This distinguishes it from siblings like list_seasons or get_season.

    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 says which parameters are required (idCompetition + idSeason) and explains that the returned idStage is used to scope fixtures and match lookups, implying when to use it. However, it does not explicitly state when not to use it or mention alternatives.

    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

fifa-public-api-mcp MCP server

Copy to your README.md:

Score Badge

fifa-public-api-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/chrispickford/fifa-public-api-mcp'

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