Football Charts

Bảng xếp hạng, kết quả, lịch thi đấu, xác suất mô hình và dự đoán mùa giải Monte Carlo hàng ngày cho 93 giải bóng đá.

Tài liệu

Football data MCP server — 98 leagues, lower divisions included (Football Charts)

npm license MCP registry

English · 简体中文 (Simplified Chinese)

Give your AI assistant football data for 98 leagues (across 44 countries) — including the lower divisions other sources skip: tables, results, fixtures, goal timing, a public baseline model and Monte Carlo season projections from football-charts.com.

FC publishes probabilities and a public calibration record — not betting tips. Every model probability is published before kickoff and scored after; the get_track_record tool returns that record (hit rate, Brier score, reliability buckets).

No key needed

Every tool works without an API key at 300 requests/day per IP (20/min). A free key lifts that to 5,000/day, 60/min — get one in seconds:

curl -X POST https://footballcharts-backend.onrender.com/api/v1/keys/register/ \
  -H 'Content-Type: application/json' \
  -d '{"email":"you@example.com"}'

The key (fc_...) is shown once — store it. Both tiers: all 98 leagues (top and lower divisions, women's leagues), current + previous season, model probabilities and daily 10,000-run Monte Carlo projections, no betting odds (the historical odds archive is a paid dataset at football-charts.com/data).

Use it on claude.ai (web or mobile) — nothing to install

Settings → Connectors → Add custom connector, then paste:

https://mcp.football-charts.com/mcp

That is the keyless tier. With a key, paste https://mcp.football-charts.com/fc_your_key_here/mcp instead (a connector field accepts only a URL, so the key travels in it; keys are read-only, free and replaceable). Clients that can send headers use POST https://mcp.football-charts.com/mcp with Authorization: Bearer fc_….

Use with Claude Desktop — one-click extension

Download footballcharts-mcp-<version>.mcpb from the latest release and open it; Claude Desktop installs it. The API key field can stay empty.

Use with Claude Desktop — manual config

claude_desktop_config.json (FC_API_KEY is optional since 0.4.0):

{
  "mcpServers": {
    "football-charts": {
      "command": "npx",
      "args": ["-y", "footballcharts-mcp"],
      "env": { "FC_API_KEY": "fc_your_key_here" }
    }
  }
}

Use with Claude Code

claude mcp add football-charts -e FC_API_KEY=fc_your_key_here -- npx -y footballcharts-mcp

Tools

Ten read-only tools. Each description says what the tool returns.

tooluse it for
about_football_chartsSummary of the source: leagues covered, what it does not hold, league-key and season formats, how to read the probabilities.
list_leaguesEvery league covered (98 across 44 countries) with its key, country and seasons available.
get_league_tableStandings for one league season with form, expected points and a luck category; view=luck or goals for alternative rankings.
get_resultsFinished matches of one league season with full-time and half-time scores and first-goal minute; filter by team, keep the latest N with last.
get_fixturesUpcoming matches of one league with the model's calibrated probabilities.
get_matchOne match in full, by slug: model probabilities, team ratings and goal-timing histograms.
get_season_projectionTitle, top-four and bottom-three probabilities and points ranges from 10,000 simulations, refreshed daily.
get_teamOne team's season: table row, match log, goals per 15-minute period and first-goal distribution.
get_goal_timingGoals per 15-minute period for every team in a league season, with peak periods and league totals; pass team for one team.
get_track_recordThe model's public calibration record: hit rate, Brier score and reliability buckets.

The model is a public baseline (Dixon-Coles). It is calibrated, and get_track_record shows how well; it does not beat the bookmaker market. Per-bookmaker opening and closing odds for 91 leagues, 2020 onward, are a paid dataset at football-charts.com/data.

Changelog

  • 0.6.0 — every answer links the football-charts.com page with the same data (source_url); get_track_record returns a calibration record (hit rate, Brier score, reliability buckets); descriptions say what each tool returns, with no instructions to the model, and each tool's title is also in annotations.title; outputs drop the site-only fields roi_*, profit_* and gates; get_season_projection explains a missing projection instead of failing output validation. Same ten tools and arguments.
  • 0.5.0 — every tool has an outputSchema and returns structuredContent; descriptions rewritten from the consumer side (purpose → when to use a sibling instead → one example); get_match drops storage internals. The tool list is ~6k tokens (was ~3k) — the schemas are the cost. Two deliberate choices: list_leagues keeps its list_ prefix because it enumerates everything rather than fetching one thing, and league stays a free string rather than an enum of the 93 keys (an enum would add ~700 tokens to every tool; list_leagues resolves a name in one call). Schema leaves are untyped so that an unexpected null never fails a call; the field types are what the API returns (numbers for counts and probabilities, ISO dates, 'home:away' score strings).
  • 0.4.1 — registry entry declares the hosted endpoint (remotes) so connector directories list it; get_results ordering wording clarified (chronological, last=N keeps the latest N).
  • 0.4.0 — a key is optional: the API serves keyless callers at 300/day per IP (20/min) and its 429 says how to get a free key; about and list_leagues guidance updated; MCPB desktop-extension bundle (manifest.json, icon); registry isRequired: false for FC_API_KEY.
  • 0.3.0 — descriptions rewritten for the model (when / returns / example); new about_football_charts orientation tool (keyless); get_rankings folded into get_league_table via view; get_goal_timing gains a team filter and peak_bins guidance; one structured log line per tool call on stderr (tool, ok, ms, key prefix — never arguments).
  • 0.2.0 — hosted Streamable HTTP transport, read-only annotations, key accepted from header, path or query for registry gateways.

Things to ask

  • "How does the Allsvenskan title race look after this weekend?"
  • "When does Flamengo usually score — early or late?"
  • "Show me the K League table, and who's overperforming what the market expected."
  • "Which team in Serie B hasn't conceded in the first 15 minutes?"
  • "What is Football Charts' actual prediction track record this season?"

Configuration

Env varDefaultPurpose
FC_API_KEY— (required)Your API key
FC_API_BASEFC production APIOverride for self-hosted/testing

Privacy Policy

This extension sends your tool requests (league keys, team names, seasons — never your conversation) to football-charts.com's API over HTTPS. Requests are rate-limited per IP; if you configure an API key, the key identifies your account and its usage is counted per key. No conversation content is stored. Football Charts' privacy policy: https://www.football-charts.com/privacy. Questions: contact@football-charts.com.

Terms

Free for personal and research use with attribution ("Data by football-charts.com"). No resale of the data. Commercial use of the paid tier: contact@football-charts.com.

License

MIT (server code only). The data served by the football-charts.com API remains © football-charts.com, provided under the terms at https://www.football-charts.com/developers.

Claude Code plugin

This repository is also a Claude Code plugin (plugins/football-charts/). It adds the hosted MCP server above (no key needed) and the football-data skill:

/plugin install football-charts --marketplace ddevetak/footballcharts-mcp

Cursor plugin

This repository is also a Cursor plugin (.cursor-plugin/plugin.json). It adds the hosted MCP server above (no key needed) and a football-data skill that explains the tools and the REST API. To try it locally, copy the repository to ~/.cursor/plugins/local/football-charts, reload Cursor, and check Customize for the Football Charts MCP server and skill.