Skip to content

feat(adapters): add Football Charts MCP adapter - #1454

Merged
helpcodeai merged 2 commits into
HelpCode-ai:mainfrom
ddevetak:feat/add-football-charts-adapter
Nov 2, 2026
Merged

helpcodeai merged 2 commits into
HelpCode-ai:mainfrom
ddevetak:feat/add-football-charts-adapter

Conversation

@ddevetak

@ddevetak ddevetak commented Nov 2, 2026

Copy link
Copy Markdown
Contributor

Summary

Adds a pre-built REST adapter for the Football Charts Developer API v1 (https://footballcharts-backend.onrender.com/api/v1, docs at https://www.football-charts.com/developers), exposing 10 read-only tools covering 98 football leagues across 44 countries (top divisions, lower tiers, and women's leagues).

Works in both Cloud and self-hosted deployments without required credentials (keyless tier: 100 requests/day per IP, 20/min), with an optional FOOTBALL_CHARTS_API_KEY (X-API-Key: ${FOOTBALL_CHARTS_API_KEY}, free key: 200 requests/day per email address, 60/min across the current and previous season; historical seasons back to 2020 on paid plans).

Changes

  • Added packages/backend/src/adapters/intl/football-charts.json with 10 read-only football_charts_* tools (list_leagues, get_league_table, get_results, get_fixtures, get_season_projection, get_goal_timing, list_teams, get_team, get_match, get_track_record).
  • Added packages/backend/src/adapters/intl/football-charts.live.spec.ts with static conformance checks and an opt-in live test (RUN_FOOTBALL_CHARTS_LIVE=1).
  • Added connector icon packages/frontend/public/logos/connectors/football-charts.svg.
  • Regenerated packages/backend/src/adapters/catalog.ts, updated adapter/keyless counts (694 adapters, 35 keyless), and regenerated llms.txt / llms-full.txt.

Type

  • Bug fix
  • New feature
  • Documentation
  • Refactoring
  • Performance improvement
  • Other (describe below)

Testing

  • Added/updated unit tests
  • Tested manually (describe steps below)
  • No tests needed (explain why)

Executed from repository root (/tmp/fc_prs/anythingmcp):

  • node scripts/validate-adapters.mjs --warn → Validated 708 adapters: 708 passed, 0 failed (0 warnings on intl/football-charts.json)
  • node scripts/regenerate-catalog.mjs → Regenerated packages/backend/src/adapters/catalog.ts: 708 adapters across 15 regions
  • node scripts/adapter-count.mjs --check → OK: every quoted count equals 694 adapters (35 keyless, 12276 tools).
  • node scripts/generate-llms-txt.mjs --check → exit code 0
  • node --test scripts/validate-adapters.test.mjs scripts/generate-llms-txt.test.mjs scripts/adapter-new.test.mjs → 59 pass, 0 fail

Checklist

  • My code follows the existing code style
  • I have tested my changes locally
  • I have updated documentation (if applicable)
  • All existing tests pass (npm test)
  • This PR has a descriptive title

@github-actions

github-actions Bot commented Nov 2, 2026

Copy link
Copy Markdown

👋 Welcome, @ddevetak, and thanks for opening your first PR on AnythingMCP!

A few quick pointers:

  • Make sure CI is green before requesting review (Backend, Frontend, Playwright, CodeQL, Trivy).
  • If this is a new adapter, the parametrised catalog.spec.ts test will validate it automatically.
  • Sign off your commits if you can — it's not blocking, just nice to have.

Someone from the core team will look at this within ~48h. If you don't hear back, please ping us in Discussions / Q&A.

⭐ While you wait — if you find AnythingMCP useful, a star helps others discover it.

@github-actions

github-actions Bot commented Nov 2, 2026 •

Copy link
Copy Markdown

All contributors have signed the CLA ✍️ ✅
Posted by the CLA Assistant Lite bot.

@ddevetak

ddevetak commented Nov 2, 2026

Copy link
Copy Markdown
Contributor Author

I have read the CLA Document and I hereby sign the CLA

github-actions Bot added a commit that referenced this pull request Nov 2, 2026
@helpcodeai

Copy link
Copy Markdown
Contributor

Thanks @ddevetak, and welcome. I checked that the PR touches no workflow files and approved the CI runs. The API answers and the docs page is up. I'll review the adapter once CI is green.

@helpcodeai helpcodeai left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks @ddevetak, this is a clean adapter. I checked it against the live API:

  • The /leagues/ paths with the trailing slash are right: without it the API answers 301.
  • An empty X-API-Key (keyless tier) is accepted. I got 200 on /leagues/.
  • The example league keys in the descriptions (premier, cha, germany1, sweden1, wgermany1) all resolve.
  • get_match works with a real slug from get_fixtures (germany/bundesliga/2026-11-06-…): the engine leaves path params unencoded, so the slashes go through.
  • The response sizes are fine for a tool answer: a full season of results is about 42 KB.
  • All tools are read-only and the optional key is marked secret with a pattern. The logo is a plain SVG.

Approving.

@helpcodeai
helpcodeai merged commit b3b0b1f into HelpCode-ai:main Nov 2, 2026
14 checks passed
@github-actions github-actions Bot locked and limited conversation to collaborators Nov 2, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants