mcpField
C
Claudinho — live 2026 World Cup scores for your AI agent (stdio, npm)

Claudinho — live 2026 World Cup scores for your AI agent (stdio, npm)

Local
npmjs.comGames & Entertainment35Updated today

About Claudinho — live 2026 World Cup scores for your AI agent (stdio, npm)

Claudinho is an MCP server for coding agents and other MCP clients to check football scores, fixtures and standings across the World Cup and club competitions. It also provides match cards, team and bracket data, with a bundled World Cup schedule and read-only tools.

Key features

  1. 01Live scores and dated fixtures
  2. 02Competition standings and World Cup bracket
  3. 03Team next-match lookup
  4. 04Shareable match and table cards
  5. 05World Cup market signals and team data

Use cases

  1. 01Check live scores during a match
  2. 02Find a team's upcoming fixture
  3. 03Review competition tables or the World Cup bracket
  4. 04Create a text card to share a match

MCP support

Runs as a local stdio MCP server, exposing read-only football tools, resources and prompts to MCP clients. The bundled World Cup schedule also supports offline data lookups.

Configuration

Local server config is the same for every client. Copy it into your client’s MCP config file.

mcp.json · Universal config
{
"mcpServers": {
"claudinho": {
"command": "npx",
"args": [
"-y",
"@claudinho/mcp"
],
"env": {
"CLAUDINHO_LANG": "<CLAUDINHO_LANG>",
"CLAUDINHO_TZ": "<CLAUDINHO_TZ>",
"CLAUDINHO_FLAVOR": "<CLAUDINHO_FLAVOR>",
"CLAUDINHO_MARKETS": "<CLAUDINHO_MARKETS>",
"CLAUDINHO_COMPETITION": "<CLAUDINHO_COMPETITION>",
"CLAUDINHO_TEAM": "<CLAUDINHO_TEAM>"
}
}
}
}
Run commandnpx -y @claudinho/mcp
Environment variables to set
CLAUDINHO_LANGLocale for dates, attribution, and commentary: en, es, pt, or fr (optional; default en)
CLAUDINHO_TZIANA timezone for kickoff times, e.g. America/Mexico_City (optional; default system)
CLAUDINHO_FLAVORCommentary flair: off, subtle, or full (optional; default full)
CLAUDINHO_MARKETSSet to 'off' to hide read-only prediction-market signals (optional; informational only)
CLAUDINHO_COMPETITIONThe competition the server answers for, by alias or ESPN slug, e.g. premier-league or eng.1 (optional; a tool call's competition argument wins, else the choice saved with claudinho follow)
CLAUDINHO_TEAMThe team get_next_fixture answers for when a call names none, by name or code, e.g. Arsenal or ARS (optional; else the team pinned with claudinho follow --team, under its own competition)

Local servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.

Packages
npm@claudinho/mcp0.13.0

Tools

9

Saved tool list · updated 3w ago

ParameterTypeRequiredDescription
datestringNoDate as YYYY-MM-DD (default: today)
tzstringNoIANA timezone for kickoff times, e.g. America/Mexico_City
langstringNoLocale for dates, provider attribution, and commentary: en, es, pt, fr (the summary scaffold stays English; other locales fall back to en)
flavorenumNoCommentary flair: off, subtle, full (default: full)off | subtle | full

Details

From the project README

The Claudinho logo: a yellow C around a football, above the word claudinho

@claudinho/mcp ⚽

An MCP server that lets your coding agent answer football questions: live scores, fixtures, standings and paste-ready match cards for the competition you follow: the World Cup, the Premier League, LALIGA, the Champions League and 12 more. It works in Claude Code, Cursor, Codex, Claude Desktop, Windsurf, Zed, VS Code and any MCP client that runs a local (stdio) server. No API key, no signup, no account.

Cursor CLI asked mid-task how Manchester City are doing against Paris Saint-Germain; it calls the Claudinho MCP server and answers with the live score from the 24th minute

Install

The server runs with npx, so it needs Node.js 22 or later. That is the oldest line it runs on, not a security level: run a patched release of the Node 22 or 24 line.

Claude Code

claude mcp add claudinho -- npx -y @claudinho/mcp

Codex CLI

codex mcp add claudinho -- npx -y @claudinho/mcp

Cursor, Claude Desktop, Windsurf, Zed, VS Code: add this to the client's MCP config (for Cursor, ~/.cursor/mcp.json or a project's .cursor/mcp.json; for Claude Desktop, Settings → Developer → Edit Config, then restart). Some clients (VS Code, Zed) put the same command and args under a key of their own: see your client's MCP docs.

{ "mcpServers": { "claudinho": { "command": "npx", "args": ["-y", "@claudinho/mcp"] } } }

Using Cursor CLI too? claudinho init cursor (from @claudinho/cli) puts the live score in its statusline and prints this config for you to paste.

Ask your first question

The server answers for one competition at a time. Either name it in your question:

"What Champions League matches are on today?" · "Show me the Premier League table" · "When does Arsenal play next in the Champions League?"

or choose it once with the CLI, and then just ask:

npx @claudinho/cli follow champions-league --team Arsenal

"What matches are on today?" · "Show me the live scores" · "When's our next game?" · "Make me a shareable card for today"

Without a competition, the tools that answer for one say how to choose it.

Tools

Every tool is read-only, and two of them never touch the network.

ToolWhat it does
get_todaythe fixtures for a date (default: today) in the caller's timezone, with live scores
get_livethe matches in play right now
get_matchone match by id, with the goals and cards the provider sent for a match in play or finished
get_next_fixturea team's next match, by name or code (Arsenal, ARS, Mexico, MEX); with no team, the server's CLAUDINHO_TEAM, else the team the user pinned (claudinho follow <alias> --team <name>) when the request is for its competition
get_standingsthe standings: every table, or one by its key (a group letter, or A1, A-B, LEAGUE)
get_bracketthe knockout bracket, World Cup only, from the Round of 32 to the final; an optional stage (R32, R16, QF, SF, 3P, F) keeps one round
get_share_snippeta plain-text card for a match, a team's next match, a table, the bracket (bracket: true, with an optional knockoutStage), a date or live; hand it to the user as it is
get_market_signalWorld Cup prediction-market odds for a match (matchId), a team's current or next match (team, a 3-letter code such as MEX), or a date; informational only
get_teama World Cup nation's name or code to its FIFA code, flag and group (offline)
list_competitionsthe supported competitions, the alias each takes and what each offers, and the one in effect (offline)

Every tool but get_team takes an optional competition (an alias such as champions-league), and most take tz, lang (en, es, pt, fr) and flavor (off, subtle, full).

Resources: standings://{group}, and fixtures://{date} (the bundled World Cup schedule). Prompts: my_team (your team's next match and its standing, in the competition you follow) and tournament_today.

Prediction-market odds (World Cup)

For World Cup matches, get_today, get_match and a get_share_snippet card for a match, a team's next match or a date add a short "who's favored" line when a reliable Polymarket market exists, and get_market_signal reads one on its own. Informational only, not betting advice: market-implied percentages with Polymarket's attribution, never links or trade calls. Finished matches never show one. CLAUDINHO_MARKETS=off in the server's env turns the short line off; get_market_signal still answers.

Commentary

A match line in a tool's text ends with a short line of commentary in the reader's language (— ¡GOOOOL!), or a team's own rally cry when it has one (Mexico's ¿Y si sí?, Pumas' ¡Goya!, Arsenal's COYG!). A postponed or cancelled match gets neither. The commentary never appears in the structured data. Turn it down with CLAUDINHO_FLAVOR=subtle or off in the server's env, or per call with flavor.

Details for agent builders

Choosing the competition. A request's competition is its competition argument, else the server's CLAUDINHO_COMPETITION, else the choice claudinho follow <alias> saved. An unknown value is a tool error that lists the aliases. With none of the three, every competition-answering tool answers noCompetition: true and competition: null beside its empty shape, with a sentence saying what to do; list_competitions answers current: null.

What every answer carries. Human-readable text and structured content, validated against each tool's declared outputSchema. The text starts with the competition it is for (a share card says it in its title), and the structured content carries it as competition. Two tools differ: get_team reads the World Cup's nations whatever the competition and carries no competition, and list_competitions names the one in effect last in its text and as current in its data.

Answers that are not whole. When the provider sent records that could not be read, get_today, get_live, get_match, get_next_fixture, get_bracket, get_market_signal and get_share_snippet say so before what they show and carry partial (with omitted, the count of records left out, when it is known). An empty answer then means nothing was read, not that nothing exists. In particular, a missing next match does not mean a team is out.

Club competitions. get_next_fixture and get_match search from yesterday to 14 days ahead: an empty answer carrying horizon or window is about that span. Several teams matching one name come back as candidates. Between two seasons, get_today, get_live, get_next_fixture and get_match carry betweenEditions. get_bracket answers inapplicable for a league season with no knockout tie (the Premier League, LALIGA), and unsupported for every other competition but the World Cup. A club has no flag. A match's stage is REGULAR for a league's season, LEAGUE for a cup's league phase, PO for play-offs, or OTHER with the provider's own words in stageLabel.

Markets. get_today, get_match and a get_share_snippet card for a match, a team's next match, a date or live matches carry marketComplete (a table or bracket card does not), and get_market_signal carries complete. false means the optional market read did not finish, which is not the same as "no signal"; the text, and a share card, say so too. CLAUDINHO_MARKETS_SOURCE=fake gives a clearly labelled, network-free preview.

The process. Stdout carries only the MCP protocol; diagnostics go to stderr. CLAUDINHO_DEBUG=1 in the server's env prints the data provider's failures there.

How it works

The World Cup's 104 fixtures ship with the package. Every other competition's schedule, and every live score, comes from ESPN's public scoreboard (an answer from it names ESPN). World Cup market odds come from Polymarket's public data. The server keeps its cache in memory only.

Privacy

No accounts, no telemetry, no analytics, no tracking, and no Claudinho server. The server asks ESPN (and Polymarket, for World Cup odds) for public data with nothing about you attached; those services still see standard request metadata, such as your IP address, like any web request. It writes nothing to disk. Full policy: PRIVACY.md.

License

MIT © 2026 Arturo Garrido · source and issues

Independent fan project. Not affiliated with FIFA, any confederation, league or club, or Anthropic.

Built while watching the games. #VibingLaVidaLoca ⚽

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.