by withqwerty
Searchable football data provider documentation for AI coding agents. Like Context7 for football data.
# Add to your Claude Code skills
git clone https://github.com/withqwerty/football-docsGuides for using ai agents skills like football-docs.
Last scanned: 9/23/2026
{
"issues": [
{
"file": "README.md",
"line": 91,
"type": "secret-exfiltration",
"message": "Instruction appears to send credentials/secrets to an external endpoint",
"severity": "medium"
}
],
"status": "PASSED",
"scannedAt": "2026-09-23T09:06:57.909Z",
"npmAuditRan": true,
"pipAuditRan": true,
"promptInjectionRan": true
}See how football-docs compares with popular alternatives.
football-docs is an open-source ai agents skill for AI coding assistants such as Claude Code, Codex CLI, and ChatGPT, built by withqwerty. Searchable football data provider documentation for AI coding agents. Like Context7 for football data. It has 194 GitHub stars.
Yes. football-docs passed SkillsLLM's automated security scan — a dependency vulnerability audit plus prompt-injection heuristics — with no high-severity issues. You can read the full report in the Security Report section on this page.
Clone the repository with "git clone https://github.com/withqwerty/football-docs" and add it to your Claude Code skills directory (see the Installation section above).
football-docs is primarily written in TypeScript. It is open-source under withqwerty on GitHub, so you can review or fork the full source.
Yes. SkillsLLM lists many other AI Agents skills you can browse and compare side by side. Open the AI Agents category from the badge at the top of this page, or use the Related Skills and comparison links further down to weigh football-docs against similar tools.
No comments yet. Be the first to share your thoughts!
⚠️ Third-Party Software Notice
This skill is third-party open-source software developed and hosted independently on GitHub. SkillsLLM is an informational directory and does not control or maintain the underlying repository.
Any security checks, ratings, or warnings displayed by SkillsLLM are automated and limited in scope. They do not constitute a security certification or guarantee that the software is safe, error-free, or free from malicious code, vulnerabilities, compromised dependencies, or prompt-injection risks.
Review the source code, permissions, dependencies, and configuration before installing or running any third-party skill. Use is at your own risk. To the maximum extent permitted by applicable law, SkillsLLM is not liable for losses arising from third-party software.
Searchable football data provider and tooling documentation for AI coding agents. Like Context7 for football data.
Who it's for: Developers and analysts who use AI coding tools (Claude Code, Cursor, VS Code Copilot) to work with football data. Works with any tool that supports MCP.
What it does: Gives your AI agent a searchable index of documentation for 30 football data providers and tools — event types, qualifier IDs, coordinate systems, API endpoints, data models, identity surfaces, and cross-provider comparisons for the data providers (StatsBomb, Opta, Wyscout, Impect, SkillCorner, Sportradar, TheSportsDB, FMDB Pro, TransferRoom, and more), the open-source libraries people build with (kloppy, mplsoccer, socceraction, soccerdata, floodlight, fast-forward, unravelsports, and more), and the APIs of wearable and sports-science vendors (STATSports, Firstbeat, Hawkin Dynamics, VALD). Your agent looks up the real docs instead of guessing from training data.
Why not just let the AI figure it out? LLMs get football data specifics wrong constantly — Opta qualifier IDs, StatsBomb coordinate ranges, API endpoint URLs, library method signatures. These are mutable facts that change across versions. football-docs gives the agent verified, sourced documentation with provenance tracking so you know where every answer came from.
football-docs is intended to be a community-owned, source-transparent Context7 for football data. The public operating contract is in STRATEGY.md: what belongs here, what must stay out, how we handle public-safe provider facts, and how contributors should prove retrieval quality.
football-docs is the public source for provider identity-surface facts: access shape, ID schemes, matching fields, provider quirks, and provenance rules. Curated provider identity notes belong here when they can be stated as public facts about the provider. They should say whether a fact comes from public docs, public page evidence, licensed feed shape, or a reviewed public-safe observation, and must not include credentials, local paths, internal tooling details, or restricted payloads from any private project.
MCP (Model Context Protocol) is a standard for connecting AI coding tools to external data sources.
The server needs Node.js 22.13 or newer. It uses Node's built-in SQLite, so no native module is compiled at install time.
claude mcp add football-docs -- npx -y football-docs
Settings → MCP → Add server. Use this config:
{
"mcpServers": {
"football-docs": {
"command": "npx",
"args": ["-y", "football-docs"]
}
}
}
Add to .vscode/mcp.json:
{
"servers": {
"football-docs": {
"command": "npx",
"args": ["-y", "football-docs"]
}
}
}
Add to claude_desktop_config.json:
{
"mcpServers": {
"football-docs": {
"command": "npx",
"args": ["-y", "football-docs"]
}
}
}
npx updates its cached copy of football-docs in place. A server that was
already running keeps the old version until it restarts, and its replies then
start with a note: "football-docs on disk is now vX, but this server is still
running vY". Reconnect the server to fix it (in Claude Code: /mcp, then
reconnect football-docs).
| Tool | Description |
|---|---|
search_docs |
Full-text search across all provider docs. Filter by provider. Results include provenance (source URL, version), mark partial matches, name query terms that no indexed doc mentions, and say when a query names a provider that is not indexed (the not_indexed list in providers.json gives the reason). |
resolve_provider_id |
Resolve provider names and aliases to canonical indexed provider keys before searching. |
get_provider_docs |
Retrieve docs for a resolved provider, optionally filtered by topic or category. |
list_providers |
List all indexed providers and their doc coverage. |
compare_providers |
Compare how different providers handle the same concept. |
request_update |
Request a new provider, flag outdated docs, or suggest a better doc source. Queues locally and points to the matching public GitHub issue template. |
resolve_entity |
Map a player, coach, referee, team, competition, season, stage or match to its IDs at every provider through the Reep register. Uses a local copy of the free register (REEP_DUCKDB_PATH), else the Reep API (REEP_API_KEY; keys are issued by hand on request to getintouch+nutmeg@withqwerty.com, with no self-service sign-up), else returns setup steps and a DuckDB query. See Reep through football-docs. |
search_papers |
Search scholarly papers on football analytics and sport science in OpenAlex (title, abstract and full text), arXiv and SportRxiv, and, when asked, your Zotero library. See Papers and web sources. |
get_paper |
Look up one paper by DOI, arXiv ID, OpenAlex ID or Zotero item: authors, date, venue, all IDs, licence, open copies with their licences, abstract and a citation line. |
get_web_source |
Read a public web page or PDF (a blog post, newsletter, club or vendor article, or an author's copy of a paper) as text, with its author, date, licence and Wayback Machine snapshots. Long pages come back by section. |
read_paper |
Read a paper: the full text of an open copy, by section, with its licence; or the outline and short passages of a paper you supplied. Kept in your library, so a second read sends no request. |
match_quote |
Check that a quote appears in a paper or web page: exact, normalised, close (with a score) or none, with the section, page and a W3C text quote selector. |
add_local_paper |
Add a PDF you have to your library, for papers with no open copy. |
forget_paper |
Remove one paper from your library. |
purge_cache |
Delete your whole paper library (needs confirm: true). |
Provider filters use the indexed provider keys shown by list_providers, but common aliases are accepted. Examples: fbref, understat, ClubElo, football-data.co.uk, and engsoccerdata search free-sources; Sofascore searches soccerdata; ESPN, ESPN FC, and espn-soccer search espn; FMDB searches fmdb-pro; Transfer Room searches transferroom; Hudl Wyscout searches wyscout; Stats Perform / Opta F24 / WhoScored search opta; Metrica, Sportec / DFL, and TRACAB search databallpy; Second Spectrum searches kloppy; Hawk-Eye, SciSports, Signality, Respovision, GradientSports and OptaVision search fast-forward; unravel searches unravelsports; SportRadar API / Soccer Extended search sportradar; Sonra / Apex search statsports; Hawkin searches hawkin-dynamics; ForceDecks / NordBord / ForceFrame search vald; The Sports DB / TSDB search thesportsdb; StatsBomb Open Data searches statsbomb.
The package ships a docs index, but doc fixes do not wait for a new package
version. Once a day at most, the server checks the
data-latest
release of this repository for a newer index built from main:
manifest-v1-signed.json) and, only when that
names a newer build, downloads the index (about 6 MB).src/data-signing.ts). The manifest carries the
index's size and SHA-256, so the signature covers the index too.$XDG_DATA_HOME/football-docs/data/ (by default
~/.local/share/football-docs/data/). The next tool call uses the new file; no
restart is needed.list_providers ends with the build time of the index in use and whether it is
bundled or downloaded.Privacy: the check is one HTTPS request a day to GitHub, plus the download when there is one. No search queries or other usage data are sent.
Settings, as environment variables in the server's MCP configuration:
FOOTBALL_DOCS_DATA=bundled: use only the index inside the package. No update
check, no downloads. (This does not turn off the paper tools; see
FOOTBALL_DOCS_PAPERS under Papers and web sources.)FOOTBALL_DOCS_DATA=auto: the default for an installed package. Check daily and
use the newest valid index.FOOTBALL_DOCS_DB_PATH=<file>: use exactly this index file.FOOTBALL_DOCS_DATA_BASE_URL=<url>: read the manifest and index from a mirror
(HTTPS only).Offline, or behind a proxy that Node's built-in fetch does not use, the check
fails quietly and the server keeps the index it has. Under CI (CI set) the check
does not run. A server running from a git checkout defaults to bundled, so
development and tests always use the working tree's docs.
Many football methods come from papers, and some from blog posts: Karun Singh
introduced expected threat (xT) in a blog post, not a paper. search_papers
finds papers and the works that cite an idea; a web search finds the original
post, and get_web_source reads it. get_paper checks that a reference exists,
read_paper reads it, and match_quote checks that a quote is in the source.
| Paper | How it gets in | What the tool