Skip to main content
Glama

footballcharts-mcp

List leagues

list_leagues
Read-onlyIdempotent

Every league this source covers — 93 across 42 countries — with country, league key, display name and the seasons available, newest first. No parameters. Call first in any workflow: every other tool takes a league key and most take a season string, and both must match these values exactly. Season format differs by competition (winter leagues '2026-2027', summer leagues '2026'), so read the season here rather than constructing it. ("list" rather than "get": it enumerates everything, it does not fetch one thing.) Example: "Which Polish league do you have?" → list_leagues, filter by country.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
countNo
leaguesYes
attributionNoCite as "Data by football-charts.com"
season_windowNo

Schema Changelog

Changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "$schema": "http://json-schema.org/draft-07/schema#",
      +  "additionalProperties": true,
      +  "properties": {
      +    "attribution": {
      +      "description": "Cite as \"Data by football-charts.com\"",
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "count": {},
      +    "leagues": {
      +      "items": {
      +        "additionalProperties": true,
      +        "properties": {
      +          "country": {
      +            "type": "string"
      +          },
      +          "league": {
      +            "description": "The key to pass as `league`",
      +            "type": "string"
      +          },
      +          "name": {
      +            "type": "string"
      +          },
      +          "seasons": {
      +            "description": "Newest first; exact strings for `season`",
      +            "items": {
      +              "type": "string"
      +            },
      +            "type": "array"
      +          },
      +          "url": {}
      +        },
      +        "required": [
      +          "league",
      +          "name",
      +          "country",
      +          "seasons"
      +        ],
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "season_window": {
      +      "$ref": "#/properties/leagues/items/properties/url"
      +    }
      +  },
      +  "required": [
      +    "leagues"
      +  ],
      +  "type": "object"
      +}
  2. First observed

TDQS

A4.8/5.0
Behavior4/5

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

Annotations already declare the tool read-only, idempotent, and non-destructive. The description adds useful behavioral context beyond that: no parameters, output ordered newest first, season availability included, and season format varying by competition ('2026-2027' vs '2026'). It does not discuss pagination or stability of the 93-league set, but those are minor given the available output schema.

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?

Every sentence earns its place: the first states the output inventory, followed by no-parameters, workflow precedence, season-format caveat, list-vs-get disambiguation, and an example. It is front-loaded with the core purpose and remains readable despite covering several important nuances.

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

Completeness5/5

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

For a parameterless, read-only list tool with a rich output schema and strong annotations, the description is complete: it names return fields, ordering, scope, and downstream matching requirements. An agent has everything needed to call this tool correctly and understand its role in a broader workflow.

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

Parameters5/5

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

With zero parameters, the input schema carries no information beyond an empty object. The description explicitly states 'No parameters' and explains that league keys and season strings are output values that must match exactly when used in other tools, preventing the model from inventing or constructing 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 and resource, stating it lists every league the source covers, with country, league key, display name, and seasons available. It also explicitly distinguishes "list" from "get": 'it enumerates everything, it does not fetch one thing,' which separates it from sibling tools like get_match and get_team.

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?

It gives explicit workflow precedence: 'Call first in any workflow: every other tool takes a league key and most take a season string.' It also advises reading season strings from this tool rather than constructing them and provides a concrete example query, leaving no doubt about when to invoke it.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

TDQS

A4.7/5.0
Disambiguation5/5

Each tool targets a clearly distinct resource or query type: fixtures, results, match details, standings, team profiles, goal timing, projections, track record, and league enumeration. Descriptions include explicit cross-references to related tools, eliminating boundary confusion.

Naming Consistency4/5

The dominant pattern is get_ + noun, which is consistent and predictable. list_leagues and about_football_charts are deliberate exceptions that fit their meta/enumeration purposes, but they do break the otherwise uniform convention.

Tool Count5/5

Ten tools is well-scoped for a football data and model-probability server. Each tool covers a meaningful slice of the domain without redundancy or bloat.

Completeness5/5

The tool surface covers the full read-only workflow: discovering leagues, viewing tables, fixtures, results, single matches, team deep-dives, goal timing, season projections, and model credibility. No obvious dead ends or missing operations for the stated purpose.