Skip to main content
Glama

footballcharts-mcp

Match detail

get_match
Read-onlyIdempotent

Returns one match in full, identified by its slug ('country/league-slug/YYYY-MM-DD-home-vs-away', as listed in the slug field of upcoming fixtures): the complete model probability block (calibrated and raw), team ratings, first-goal-time histograms for both sides, recent form and, once played, the score, half-time score and status.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
slugYesMatch slug as listed in upcoming fixtures, e.g. 'england/premier-league/2026-09-05-brentford-vs-sunderland'

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
matchYes
attributionNoCite as "Data by football-charts.com"

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed13 schema fields changed
    • removedOutput schema / properties / match / properties / away_score / $ref
      Removed value: -"#/properties/match/properties/home_score"
    • removedOutput schema / properties / match / properties / away_team / $ref
      Removed value: -"#/properties/match/properties/slug"
    • removedOutput schema / properties / match / properties / country / $ref
      Removed value: -"#/properties/match/properties/slug"
    • removedOutput schema / properties / match / properties / home_team / $ref
      Removed value: -"#/properties/match/properties/slug"
    • removedOutput schema / properties / match / properties / ht_result / $ref
      Removed value: -"#/properties/match/properties/slug"
    • removedOutput schema / properties / match / properties / label / $ref
      Removed value: -"#/properties/match/properties/slug"
    • removedOutput schema / properties / match / properties / league / $ref
      Removed value: -"#/properties/match/properties/slug"
    • removedOutput schema / properties / match / properties / match_date / $ref
      Removed value: -"#/properties/match/properties/slug"
    • removedOutput schema / properties / match / properties / match_status / $ref
      Removed value: -"#/properties/match/properties/slug"
    • changedOutput schema / properties / match / properties / model_predictions / anyOf
      Previous value: -[
      -  {
      -    "additionalProperties": true,
      -    "properties": {
      -      "dc_v2": {
      -        "anyOf": [
      -          {
      -            "additionalProperties": true,
      -            "properties": {
      -              "calibrated": {
      -                "anyOf": [
      -                  {
      -                    "additionalProperties": true,
      -                    "description": "Probabilities 0–1. The draw is NOT a field: draw = 1 − home − away.",
      -                    "properties": {
      -                      "away": {
      -                        "$ref": "#/properties/match/properties/model_predictions/anyOf/0/properties/dc_v2/anyOf/0/properties/calibrated/anyOf/0/properties/home"
      -                      },
      -                      "btts_yes": {
      -                        "$ref": "#/properties/match/properties/model_predictions/anyOf/0/properties/dc_v2/anyOf/0/properties/calibrated/anyOf/0/properties/home"
      -                      },
      -                      "expected_away_goals": {
      -                        "$ref": "#/properties/match/properties/model_predictions/anyOf/0/properties/dc_v2/anyOf/0/properties/calibrated/anyOf/0/properties/home"
      -                      },
      -                      "expected_home_goals": {
      -                        "$ref": "#/properties/match/properties/model_predictions/anyOf/0/properties/dc_v2/anyOf/0/properties/calibrated/anyOf/0/properties/home"
      -                      },
      -                      "expected_ht_goals": {
      -                        "$ref": "#/properties/match/properties/model_predictions/anyOf/0/properties/dc_v2/anyOf/0/properties/calibrated/anyOf/0/properties/home"
      -                      },
      -                      "home": {},
      -                      "ht_over_0.5": {
      -                        "$ref": "#/properties/match/properties/model_predictions/anyOf/0/properties/dc_v2/anyOf/0/properties/calibrated/anyOf/0/properties/home"
      -                      },
      -                      "ht_over_1.5": {
      -                        "$ref": "#/properties/match/properties/model_predictions/anyOf/0/properties/dc_v2/anyOf/0/properties/calibrated/anyOf/0/properties/home"
      -                      },
      -                      "over_0.5": {
      -                        "$ref": "#/properties/match/properties/model_predictions/anyOf/0/properties/dc_v2/anyOf/0/properties/calibrated/anyOf/0/properties/home"
      -                      },
      -                      "over_1.5": {
      -                        "$ref": "#/properties/match/properties/model_predictions/anyOf/0/properties/dc_v2/anyOf/0/properties/calibrated/anyOf/0/properties/home"
      -                      },
      -                      "over_2.5": {
      -                        "$ref": "#/properties/match/properties/model_predictions/anyOf/0/properties/dc_v2/anyOf/0/properties/calibrated/anyOf/0/properties/home"
      -                      },
      -                      "over_3.5": {
      -                        "$ref": "#/properties/match/properties/model_predictions/anyOf/0/properties/dc_v2/anyOf/0/properties/calibrated/anyOf/0/properties/home"
      -                      },
      -                      "over_4.5": {
      -                        "$ref": "#/properties/match/properties/model_predictions/anyOf/0/properties/dc_v2/anyOf/0/properties/calibrated/anyOf/0/properties/home"
      -                      }
      -                    },
      -                    "type": "object"
      -                  },
      -                  {
      -                    "type": "null"
      -                  }
      -                ],
      -                "description": "Use these. Calibrated on settled matches."
      -              },
      -              "computed_at": {
      -                "$ref": "#/properties/match/properties/slug"
      -              },
      -              "data_through": {
      -                "$ref": "#/properties/match/properties/slug",
      -                "description": "Last match date the model has seen"
      -              },
      -              "model": {
      -                "$ref": "#/properties/match/properties/slug"
      -              }
      -            },
      -            "type": "object"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ]
      -      }
      -    },
      -    "type": "object"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "additionalProperties": true,
      +    "properties": {
      +      "dc_v2": {
      +        "anyOf": [
      +          {
      +            "additionalProperties": true,
      +            "properties": {
      +              "calibrated": {
      +                "anyOf": [
      +                  {
      +                    "additionalProperties": true,
      +                    "description": "Probabilities 0–1. The draw is NOT a field: draw = 1 − home − away.",
      +                    "properties": {
      +                      "away": {},
      +                      "btts_yes": {},
      +                      "expected_away_goals": {},
      +                      "expected_home_goals": {},
      +                      "expected_ht_goals": {},
      +                      "home": {},
      +                      "ht_over_0.5": {},
      +                      "ht_over_1.5": {},
      +                      "over_0.5": {},
      +                      "over_1.5": {},
      +                      "over_2.5": {},
      +                      "over_3.5": {},
      +                      "over_4.5": {}
      +                    },
      +                    "type": "object"
      +                  },
      +                  {
      +                    "type": "null"
      +                  }
      +                ],
      +                "description": "Use these. Calibrated on settled matches."
      +              },
      +              "computed_at": {},
      +              "data_through": {
      +                "description": "Last match date the model has seen"
      +              },
      +              "model": {}
      +            },
      +            "type": "object"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      }
      +    },
      +    "type": "object"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • removedOutput schema / properties / match / properties / real_league_name / $ref
      Removed value: -"#/properties/match/properties/slug"
    • removedOutput schema / properties / match / properties / season / $ref
      Removed value: -"#/properties/match/properties/slug"
    • removedOutput schema / properties / match / properties / time / $ref
      Removed value: -"#/properties/match/properties/slug"
  2. Changed1 schema field changed
    • changedInput schema / properties / slug / description
      Previous value: -"Match slug from get_fixtures, e.g. 'england/premier-league/2026-09-05-brentford-vs-sunderland'"New value: +"Match slug as listed in upcoming fixtures, e.g. 'england/premier-league/2026-09-05-brentford-vs-sunderland'"
  3. 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"
      +      ]
      +    },
      +    "match": {
      +      "additionalProperties": true,
      +      "properties": {
      +        "away_score": {
      +          "$ref": "#/properties/match/properties/home_score"
      +        },
      +        "away_team": {
      +          "$ref": "#/properties/match/properties/slug"
      +        },
      +        "country": {
      +          "$ref": "#/properties/match/properties/slug"
      +        },
      +        "fgt_a": {
      +          "anyOf": [
      +            {
      +              "type": "array"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ],
      +          "description": "Away side first-goal-time histogram"
      +        },
      +        "fgt_h": {
      +          "anyOf": [
      +            {
      +              "type": "array"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ],
      +          "description": "Home side first-goal-time histogram"
      +        },
      +        "home_score": {},
      +        "home_team": {
      +          "$ref": "#/properties/match/properties/slug"
      +        },
      +        "ht_result": {
      +          "$ref": "#/properties/match/properties/slug"
      +        },
      +        "label": {
      +          "$ref": "#/properties/match/properties/slug"
      +        },
      +        "league": {
      +          "$ref": "#/properties/match/properties/slug"
      +        },
      +        "match_date": {
      +          "$ref": "#/properties/match/properties/slug"
      +        },
      +        "match_status": {
      +          "$ref": "#/properties/match/properties/slug",
      +          "description": "'scheduled' before kick-off; 'ft' when finished"
      +        },
      +        "model_predictions": {
      +          "anyOf": [
      +            {
      +              "additionalProperties": true,
      +              "properties": {
      +                "dc_v2": {
      +                  "anyOf": [
      +                    {
      +                      "additionalProperties": true,
      +                      "properties": {
      +                        "calibrated": {
      +                          "anyOf": [
      +                            {
      +                              "additionalProperties": true,
      +                              "description": "Probabilities 0–1. The draw is NOT a field: draw = 1 − home − away.",
      +                              "properties": {
      +                                "away": {
      +                                  "$ref": "#/properties/match/properties/model_predictions/anyOf/0/properties/dc_v2/anyOf/0/properties/calibrated/anyOf/0/properties/home"
      +                                },
      +                                "btts_yes": {
      +                                  "$ref": "#/properties/match/properties/model_predictions/anyOf/0/properties/dc_v2/anyOf/0/properties/calibrated/anyOf/0/properties/home"
      +                                },
      +                                "expected_away_goals": {
      +                                  "$ref": "#/properties/match/properties/model_predictions/anyOf/0/properties/dc_v2/anyOf/0/properties/calibrated/anyOf/0/properties/home"
      +                                },
      +                                "expected_home_goals": {
      +                                  "$ref": "#/properties/match/properties/model_predictions/anyOf/0/properties/dc_v2/anyOf/0/properties/calibrated/anyOf/0/properties/home"
      +                                },
      +                                "expected_ht_goals": {
      +                                  "$ref": "#/properties/match/properties/model_predictions/anyOf/0/properties/dc_v2/anyOf/0/properties/calibrated/anyOf/0/properties/home"
      +                                },
      +                                "home": {},
      +                                "ht_over_0.5": {
      +                                  "$ref": "#/properties/match/properties/model_predictions/anyOf/0/properties/dc_v2/anyOf/0/properties/calibrated/anyOf/0/properties/home"
      +                                },
      +                                "ht_over_1.5": {
      +                                  "$ref": "#/properties/match/properties/model_predictions/anyOf/0/properties/dc_v2/anyOf/0/properties/calibrated/anyOf/0/properties/home"
      +                                },
      +                                "over_0.5": {
      +                                  "$ref": "#/properties/match/properties/model_predictions/anyOf/0/properties/dc_v2/anyOf/0/properties/calibrated/anyOf/0/properties/home"
      +                                },
      +                                "over_1.5": {
      +                                  "$ref": "#/properties/match/properties/model_predictions/anyOf/0/properties/dc_v2/anyOf/0/properties/calibrated/anyOf/0/properties/home"
      +                                },
      +                                "over_2.5": {
      +                                  "$ref": "#/properties/match/properties/model_predictions/anyOf/0/properties/dc_v2/anyOf/0/properties/calibrated/anyOf/0/properties/home"
      +                                },
      +                                "over_3.5": {
      +                                  "$ref": "#/properties/match/properties/model_predictions/anyOf/0/properties/dc_v2/anyOf/0/properties/calibrated/anyOf/0/properties/home"
      +                                },
      +                                "over_4.5": {
      +                                  "$ref": "#/properties/match/properties/model_predictions/anyOf/0/properties/dc_v2/anyOf/0/properties/calibrated/anyOf/0/properties/home"
      +                                }
      +                              },
      +                              "type": "object"
      +                            },
      +                            {
      +                              "type": "null"
      +                            }
      +                          ],
      +                          "description": "Use these. Calibrated on settled matches."
      +                        },
      +                        "computed_at": {
      +                          "$ref": "#/properties/match/properties/slug"
      +                        },
      +                        "data_through": {
      +                          "$ref": "#/properties/match/properties/slug",
      +                          "description": "Last match date the model has seen"
      +                        },
      +                        "model": {
      +                          "$ref": "#/properties/match/properties/slug"
      +                        }
      +                      },
      +                      "type": "object"
      +                    },
      +                    {
      +                      "type": "null"
      +                    }
      +                  ]
      +                }
      +              },
      +              "type": "object"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ]
      +        },
      +        "real_league_name": {
      +          "$ref": "#/properties/match/properties/slug"
      +        },
      +        "season": {
      +          "$ref": "#/properties/match/properties/slug"
      +        },
      +        "slug": {},
      +        "time": {
      +          "$ref": "#/properties/match/properties/slug"
      +        }
      +      },
      +      "type": "object"
      +    }
      +  },
      +  "required": [
      +    "match"
      +  ],
      +  "type": "object"
      +}
  4. First observed

TDQS

A3.9/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint and openWorldHint, so the safety profile is covered. The description usefully notes conditional behavior ('once played, the score, half-time score and status'), implying a pre-match vs post-match return shape, but adds little on error handling or what happens for an invalid slug.

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?

One front-loaded sentence with verb+resource first, then the payload enumeration. Dense but every clause carries information; the trailing list of returned fields is long but not padded.

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?

An output schema exists, so the return list is bonus rather than a necessity, and annotations cover the safety profile. For a one-param read tool this is sufficient; only explicit routing guidance against the sibling detail/listing tools is missing.

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?

With a single required parameter and 100% schema coverage the baseline is 3, but the description goes beyond the schema's example by spelling out the slug composition ('country/league-slug/YYYY-MM-DD-home-vs-away'), which clarifies field ordering and format that the bare example only illustrates.

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 (Returns) and resource (one match), and enumerates the payload: probability block, team ratings, goal-time histograms, form, and post-match score/status. This clearly separates it from list-oriented siblings like get_fixtures and get_results.

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?

It implicitly tells the agent where the identifier comes from ('as listed in the slug field of upcoming fixtures'), which sketches a workflow, but never states when to prefer this over get_fixtures, get_results, or get_team, nor any exclusion. Usage is implied rather than explicit.

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.