io.github.arturogarrido/claudinho
NPM · @CLAUDINHO/MCP
Live football scores, fixtures and standings for 16 supported competitions. Unofficial fan project.
Available components
Last scanned (5 hours ago)
Scores higher than 94% of npm servers
Category Entertainment and Games
How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →
Supply Chain Security98
- No malware found by supply-chain analysis.Pass
- No known CVEs affecting this package version or its production dependencies.Pass
- No install/post-install scripts declared.Pass
- 30 of 92 dependencies flagged as unhealthy. View diagnostics → Partial
Provenance & Transparency100
- Source repository is publicly reachable at the declared URL. View diagnostics → Pass
- Cryptographically verified build provenance (signed, bound to arturogarrido/claudinho). View diagnostics → Pass
- Clear OSI-approved license (MIT).Pass
- Actively maintained (last published 7 days ago).Pass
- Publishes a security disclosure policy (SECURITY.md).Pass
Schema Quality & AI Usability72
- 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
- AI-judged instruction clarity (excellent).Pass
- Context-footprint check failed: tool/resource definitions use about 4775 tokens (~477/item across 10 items; 10 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management73
- Stability observed for 22 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage100
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 100% of tool parameters carry a description.Pass
- Structured output schemas are declared (100% of tools); any adoption earns full credit.Pass
Tool Safety100
- No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
- We read all 10 captured tool definition(s), and no name or description among them implies an irreversible operation.Pass
- An AI judge read all 11 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
- Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 5 Nov 26 −3
- Stability: pass → 0.73 functional
- 30 Oct 26 0
- Stability: 0.97 → pass security
- 29 Oct 26 0
- Stability: pass → unverified ▼ security
- Tool safety: pass → unverified ▼ security
- Capabilities: pass → unverified ▼ functional
- Tool coverage: 100 → unverified ▼ functional
- Schema quality: 100 → unverified ▼ functional
- Stability: pass → 0.97 functional
- Package version: 0.13.0 → 0.13.1 functional
- 24 Oct 26 +15
- Malware scan: unverified → pass ▲ security
- 23 Oct 26 −15
- Malware scan: pass → unverified ▼ security
- Stability: 0.97 → pass security
- Package version: 0.12.0 → 0.13.0 functional
- 22 Oct 26 0
- Stability: pass → 0.97 functional
- 18 Oct 26 0
- Package version: 0.11.2 → 0.12.0 functional
- 16 Oct 26 0
- Stability: 0.97 → pass security
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 5 Nov 2026 · Analysed npm/@claudinho/mcp@0.13.1
Provenance Verified
A signed build attestation was found and verified, binding this exact artifact to the source repository it claims to come from.
| Result | Verified |
|---|---|
| Ecosystem | npm |
| Reason | Verified |
| Discovered via | Registry attestation endpoint |
| Source repo | arturogarrido/claudinho |
| Certificate issuer | https://token.actions.githubusercontent.com |
| Certificate SAN | https://github.com/arturogarrido/claudinho/.github/workflows/publish.yml@refs/tags/v0.13.1 |
| Rekor log index | 3560105839 |
| Predicate type | SLSA build provenance https://slsa.dev/provenance/v1 |
| Subject digest | sha512:01c7c941a85b82ab7b8d075fc860267b6a2834b257041f168abc80ee3ad60b8ded34cd5fd409e662d22222e22fcb5e336ca67e8b61c288bbf0aea6be0 |
Background: How many MCP packages publish verified provenance →
Dependencies 92 packages
| Packages resolved | 92 |
|---|---|
| Stale | 30 |
| Tree resolution | Complete |
Background: SBOMs and build attestations, explained →
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →
get_bracket Knockout bracket ~381
Knockout bracket from the Round of 32 through the final, with live scores overlaid. Group slots project from live standings once a group has started; winner slots need a confirmed FT result. Pass an optional stage (R32, R16, QF, SF, 3P, F) to filter one round. partial means the provider sent records that could not be used: the ties shown are the ones read, and may not be all of them. Falls back to structure-only when live data is unavailable. A league season with no knockout tie of its own (the Premier League, LaLiga) answers inapplicable: there is none to show; other club competitions answer unsupported (not offered yet).
| Name | Type | Req | Description |
|---|---|---|---|
| competition | string | – | The competition: an alias such as premier-league, or an ESPN slug such as eng.1 (list_competitions lists the aliases). Without it: the server's CLAUDINHO_COMPETITION, else the user's saved choice (cl… |
| flavor | string | – | Commentary flair: off, subtle, full (default: full) |
| lang | string | – | Locale for dates, list titles, match status and stage words, a match timeline's kind words (Goal, Yellow card…), the empty and outage sentences, provider attribution, and commentary: en, es, pt or fr… |
| stage | string | – | Knockout round to show (omit for the full bracket) |
| tz | string | – | IANA timezone for kickoff times, e.g. America/Mexico_City |
| Name | Type | Req | Description |
|---|---|---|---|
| betweenEditions | object | – | Present when the competition is between editions: the edition named by label ended on ended (the provider's calendar day, YYYY-MM-DD, the season end it states), and nothing in the read is scheduled o… |
| competition | – | – | The competition this answer is for: its ESPN slug, its alias, its name, where the choice came from (flag: the competition argument; env: the server's CLAUDINHO_COMPETITION; saved: the user's saved ch… |
| degraded | boolean | – | – |
| inapplicable | boolean | – | Present (true) when this competition has no such thing at all (a league season with no knockout tie has no knockout tree) |
| noCompetition | boolean | – | Present (true) when no competition is chosen (no competition argument, no server CLAUDINHO_COMPETITION, no saved choice): nothing was read, competition is null, and the text says what to do (pass com… |
| partial | object | – | Present when the provider sent records that could not be used: what is returned is what was read, and may not be the whole answer (absence is not elimination). omitted is how many provider records we… |
| responseTruncated | boolean | – | – |
| responseTruncation | string | – | – |
| rosterEvidence | string | – | With unknownTeam: the evidence it rests on, the competition's table and span (table) or the World Cup's bundled nations (bundle) |
| rosterIncomplete | boolean | – | Present (true) when the competition's roster could not be read whole and the name could not be resolved without it (no match, or only by a code or a partial name); not an outage: ask with the club's… |
| source | string|null | – | – |
| standingsDegraded | boolean | – | – |
| unknownTeam | boolean | – | Present (true) when the roster the competition has holds no team by that name: the bundled nations on the World Cup; the table read whole and the next 14 days' fixtures elsewhere (a claim about that… |
| unsupported | boolean | – | Present (true) when this is not available for this competition yet; an empty result then means "unsupported", not "none found" |
| view | – | yes | – |
No examples provided.
get_live Live matches ~337
Only matches in play right now, each with current score and minute; an empty list means nothing is in play only when the read was whole (neither partial nor degraded says otherwise). Off the World Cup, betweenEditions means the competition's edition has ended and the next has not started. partial means the provider sent records that could not be used: an empty list then means no match in play could be read, not that none is. Use during matches for in-play state; for a full day's schedule including upcoming and finished, use get_today. tz/lang/flavor affect formatting only.
| Name | Type | Req | Description |
|---|---|---|---|
| competition | string | – | The competition: an alias such as premier-league, or an ESPN slug such as eng.1 (list_competitions lists the aliases). Without it: the server's CLAUDINHO_COMPETITION, else the user's saved choice (cl… |
| flavor | string | – | Commentary flair: off, subtle, full (default: full) |
| lang | string | – | Locale for dates, list titles, match status and stage words, a match timeline's kind words (Goal, Yellow card…), the empty and outage sentences, provider attribution, and commentary: en, es, pt or fr… |
| tz | string | – | IANA timezone for kickoff times, e.g. America/Mexico_City |
| Name | Type | Req | Description |
|---|---|---|---|
| betweenEditions | object | – | Present when the competition is between editions: the edition named by label ended on ended (the provider's calendar day, YYYY-MM-DD, the season end it states), and nothing in the read is scheduled o… |
| competition | – | – | The competition this answer is for: its ESPN slug, its alias, its name, where the choice came from (flag: the competition argument; env: the server's CLAUDINHO_COMPETITION; saved: the user's saved ch… |
| count | number | yes | – |
| degraded | boolean | yes | – |
| inapplicable | boolean | – | Present (true) when this competition has no such thing at all (a league season with no knockout tie has no knockout tree) |
| matches | array | yes | – |
| noCompetition | boolean | – | Present (true) when no competition is chosen (no competition argument, no server CLAUDINHO_COMPETITION, no saved choice): nothing was read, competition is null, and the text says what to do (pass com… |
| partial | object | – | Present when the provider sent records that could not be used: what is returned is what was read, and may not be the whole answer (absence is not elimination). omitted is how many provider records we… |
| responseTruncated | boolean | – | – |
| responseTruncation | string | – | – |
| rosterEvidence | string | – | With unknownTeam: the evidence it rests on, the competition's table and span (table) or the World Cup's bundled nations (bundle) |
| rosterIncomplete | boolean | – | Present (true) when the competition's roster could not be read whole and the name could not be resolved without it (no match, or only by a code or a partial name); not an outage: ask with the club's… |
| source | string|null | yes | – |
| truncated | boolean | yes | – |
| unknownTeam | boolean | – | Present (true) when the roster the competition has holds no team by that name: the bundled nations on the World Cup; the table read whole and the next 14 days' fixtures elsewhere (a claim about that… |
| unsupported | boolean | – | Present (true) when this is not available for this competition yet; an empty result then means "unsupported", not "none found" |
No examples provided.
get_market_signal Prediction-market signal ~407
Read-only prediction-market signals for a match (by id), a team's current-or-next fixture, or a date (default: today). Returns market-implied percentages with attribution; complete:false means the provider read was incomplete, not that no signal exists; partial says the same of the fixture read behind the answer (the provider sent fixture records that could not be used). Shown only before and during a match: finished matches have no market read. Informational only: relay the numbers factually; do not add betting, trading, or 'value' advice, and do not invent links.
| Name | Type | Req | Description |
|---|---|---|---|
| competition | string | – | The competition: an alias such as premier-league, or an ESPN slug such as eng.1 (list_competitions lists the aliases). Without it: the server's CLAUDINHO_COMPETITION, else the user's saved choice (cl… |
| date | string | – | Date as YYYY-MM-DD (default: today) for all that day's signals |
| flavor | string | – | Commentary flair: off, subtle, full (default: full) |
| lang | string | – | Locale for dates, list titles, match status and stage words, a match timeline's kind words (Goal, Yellow card…), the empty and outage sentences, provider attribution, and commentary: en, es, pt or fr… |
| matchId | string | – | Match id (most specific) |
| team | string | – | 3-letter team code, e.g. MEX; resolves to the team's in-play match when one is live, else their next fixture |
| tz | string | – | IANA timezone for kickoff times, e.g. America/Mexico_City |
| Name | Type | Req | Description |
|---|---|---|---|
| betweenEditions | object | – | Present when the competition is between editions: the edition named by label ended on ended (the provider's calendar day, YYYY-MM-DD, the season end it states), and nothing in the read is scheduled o… |
| competition | – | – | The competition this answer is for: its ESPN slug, its alias, its name, where the choice came from (flag: the competition argument; env: the server's CLAUDINHO_COMPETITION; saved: the user's saved ch… |
| complete | boolean | – | False when the market provider did not complete every relevant read |
| count | number | – | – |
| date | string | – | – |
| degraded | boolean | – | – |
| inapplicable | boolean | – | Present (true) when this competition has no such thing at all (a league season with no knockout tie has no knockout tree) |
| informationalOnly | boolean | yes | – |
| matchId | string|null | – | – |
| noCompetition | boolean | – | Present (true) when no competition is chosen (no competition argument, no server CLAUDINHO_COMPETITION, no saved choice): nothing was read, competition is null, and the text says what to do (pass com… |
| partial | object | – | Present when the provider sent records that could not be used: what is returned is what was read, and may not be the whole answer (absence is not elimination). omitted is how many provider records we… |
| responseTruncated | boolean | – | – |
| responseTruncation | string | – | – |
| rosterEvidence | string | – | With unknownTeam: the evidence it rests on, the competition's table and span (table) or the World Cup's bundled nations (bundle) |
| rosterIncomplete | boolean | – | Present (true) when the competition's roster could not be read whole and the name could not be resolved without it (no match, or only by a code or a partial name); not an outage: ask with the club's… |
| signal | – | – | – |
| signals | array | – | – |
| team | string | – | – |
| truncated | boolean | – | – |
| unknownTeam | boolean | – | Present (true) when the roster the competition has holds no team by that name: the bundled nations on the World Cup; the table read whole and the next 14 days' fixtures elsewhere (a claim about that… |
| unsupported | boolean | – | Present (true) when this is not available for this competition yet; an empty result then means "unsupported", not "none found" |
No examples provided.
get_match Match detail ~397
One match by its id, with live score/minute overlaid when it's in play, and, for a match in play or finished, the provider's goals and cards it could read (minute, kind, side, the player when named; match.events in data), never a claim that the list is every goal. Off the World Cup the id is looked for from yesterday to 14 days ahead: window names the provider days searched when it was not there (not found in that span, not "no such match"), and degraded with a match means its state could not be refreshed. Optional prediction-market enrichment carries marketComplete; false means the read was incomplete, not that no signal exists. Get the id from get_today or get_live; to find a team's match without an id, use get_next_fixture. tz/lang/flavor affect formatting.
| Name | Type | Req | Description |
|---|---|---|---|
| competition | string | – | The competition: an alias such as premier-league, or an ESPN slug such as eng.1 (list_competitions lists the aliases). Without it: the server's CLAUDINHO_COMPETITION, else the user's saved choice (cl… |
| flavor | string | – | Commentary flair: off, subtle, full (default: full) |
| id | string | yes | Match id |
| lang | string | – | Locale for dates, list titles, match status and stage words, a match timeline's kind words (Goal, Yellow card…), the empty and outage sentences, provider attribution, and commentary: en, es, pt or fr… |
| tz | string | – | IANA timezone for kickoff times, e.g. America/Mexico_City |
| Name | Type | Req | Description |
|---|---|---|---|
| betweenEditions | object | – | Present when the competition is between editions: the edition named by label ended on ended (the provider's calendar day, YYYY-MM-DD, the season end it states), and nothing in the read is scheduled o… |
| competition | – | – | The competition this answer is for: its ESPN slug, its alias, its name, where the choice came from (flag: the competition argument; env: the server's CLAUDINHO_COMPETITION; saved: the user's saved ch… |
| degraded | boolean | – | – |
| inapplicable | boolean | – | Present (true) when this competition has no such thing at all (a league season with no knockout tie has no knockout tree) |
| marketComplete | boolean | – | False when optional market enrichment did not check this fixture |
| marketSignal | – | – | – |
| match | – | yes | – |
| noCompetition | boolean | – | Present (true) when no competition is chosen (no competition argument, no server CLAUDINHO_COMPETITION, no saved choice): nothing was read, competition is null, and the text says what to do (pass com… |
| partial | object | – | Present when the provider sent records that could not be used: what is returned is what was read, and may not be the whole answer (absence is not elimination). omitted is how many provider records we… |
| responseTruncated | boolean | – | – |
| responseTruncation | string | – | – |
| rosterEvidence | string | – | With unknownTeam: the evidence it rests on, the competition's table and span (table) or the World Cup's bundled nations (bundle) |
| rosterIncomplete | boolean | – | Present (true) when the competition's roster could not be read whole and the name could not be resolved without it (no match, or only by a code or a partial name); not an outage: ask with the club's… |
| served | array | – | The shown fixtures whose record the provider's window held; a shown fixture not among them is the bundled schedule's row, its live state unconfirmed |
| source | string|null | – | – |
| unknownTeam | boolean | – | Present (true) when the roster the competition has holds no team by that name: the bundled nations on the World Cup; the table read whole and the next 14 days' fixtures elsewhere (a claim about that… |
| unsupported | boolean | – | Present (true) when this is not available for this competition yet; an empty result then means "unsupported", not "none found" |
| window | object | – | Off the World Cup: a whole read of these provider days (YYYY-MM-DD, inclusive) did not hold the match |
No examples provided.
get_next_fixture Next fixture for a team ~514
A team's next match. World Cup: a nation's code or name (MEX, Mexico); a confirmed knockout tie is read from the live overlay, group fixtures from the bundled schedule. A club competition: a club's name or code (Arsenal, ARS), resolved against the competition's roster; its earliest match not yet finished in the 14 days ahead (in play included), with team (the club resolved), candidates when several teams match (no fixture is picked), horizon when none falls in that span, unknownTeam when neither the competition's table (read whole) nor its fixtures over those 14 days hold such a team, rosterIncomplete when the roster could not be read whole and the name (a code or a partial name) could not be resolved without it: ask again with the club's full name. partial means the provider sent records that could not be used: the answer is what was read, and no fixture then does not mean the team is out. With no team: the server's CLAUDINHO_TEAM, else the team the user pinned (claudinho follow <alias> --team <name>) when the request is for that team's competition; a tool error when there is neither.
| Name | Type | Req | Description |
|---|---|---|---|
| competition | string | – | The competition: an alias such as premier-league, or an ESPN slug such as eng.1 (list_competitions lists the aliases). Without it: the server's CLAUDINHO_COMPETITION, else the user's saved choice (cl… |
| flavor | string | – | Commentary flair: off, subtle, full (default: full) |
| lang | string | – | Locale for dates, list titles, match status and stage words, a match timeline's kind words (Goal, Yellow card…), the empty and outage sentences, provider attribution, and commentary: en, es, pt or fr… |
| team | string | – | A team name or code: a club (Arsenal, ARS) or a nation (Mexico, MEX). Omit for the server's CLAUDINHO_TEAM, else the team the user pinned |
| tz | string | – | IANA timezone for kickoff times, e.g. America/Mexico_City |
| Name | Type | Req | Description |
|---|---|---|---|
| betweenEditions | object | – | Present when the competition is between editions: the edition named by label ended on ended (the provider's calendar day, YYYY-MM-DD, the season end it states), and nothing in the read is scheduled o… |
| candidates | array | – | Two or more teams matched the name: no fixture is picked; ask which one |
| competition | – | – | The competition this answer is for: its ESPN slug, its alias, its name, where the choice came from (flag: the competition argument; env: the server's CLAUDINHO_COMPETITION; saved: the user's saved ch… |
| degraded | boolean | yes | – |
| fixture | – | yes | – |
| horizon | object | – | Off the World Cup: a whole read of this many provider days ahead held no fixture for the team |
| inapplicable | boolean | – | Present (true) when this competition has no such thing at all (a league season with no knockout tie has no knockout tree) |
| noCompetition | boolean | – | Present (true) when no competition is chosen (no competition argument, no server CLAUDINHO_COMPETITION, no saved choice): nothing was read, competition is null, and the text says what to do (pass com… |
| partial | object | – | Present when the provider sent records that could not be used: what is returned is what was read, and may not be the whole answer (absence is not elimination). omitted is how many provider records we… |
| responseTruncated | boolean | – | – |
| responseTruncation | string | – | – |
| rosterEvidence | string | – | With unknownTeam: the evidence it rests on, the competition's table and span (table) or the World Cup's bundled nations (bundle) |
| rosterIncomplete | boolean | – | Present (true) when the competition's roster could not be read whole and the name could not be resolved without it (no match, or only by a code or a partial name); not an outage: ask with the club's… |
| season | object | – | – |
| source | string|null | yes | – |
| team | – | yes | – |
| unknownTeam | boolean | – | Present (true) when the roster the competition has holds no team by that name: the bundled nations on the World Cup; the table read whole and the next 14 days' fixtures elsewhere (a claim about that… |
| unsupported | boolean | – | Present (true) when this is not available for this competition yet; an empty result then means "unsupported", not "none found" |
No examples provided.
get_share_snippet Shareable match snippet ~636
A polished, copy-pasteable card (plain text) for a match (matchId), a team's next fixture (team), one standings table (group: a table key, e.g. "A", "A1", "A-B" or "LEAGUE"), the knockout bracket (bracket: true), a date (default: today), or live matches (live: true). Returns the ready-to-paste snippet plus structured data: hand the snippet text to the user verbatim. marketComplete:false is stated inside the card as an incomplete optional read; partial (on any match card, live and date included) is stated inside the card too: the provider sent records that could not be used. Off the World Cup a next card names the club resolved, and an empty card says the span searched (horizon, window) or that the competition is between editions. No links; it carries a non-affiliation disclaimer, and any market line stays informational only.
| Name | Type | Req | Description |
|---|---|---|---|
| bracket | boolean | – | Knockout bracket card (use with optional knockoutStage) |
| competition | string | – | The competition: an alias such as premier-league, or an ESPN slug such as eng.1 (list_competitions lists the aliases). Without it: the server's CLAUDINHO_COMPETITION, else the user's saved choice (cl… |
| date | string | – | Date as YYYY-MM-DD (default: today) |
| flavor | string | – | Commentary flair: off, subtle, full (default: full) |
| group | string | – | Table key for a standings card: a group letter (A), or A1, A-B, LEAGUE |
| includeHashtag | boolean | – | Include the #VibingLaVidaLoca tag (default true) |
| includeInstallLine | boolean | – | Include the "Try it: …" run cue (default true) |
| includeMarkets | boolean | – | Include the reliable market line when available (default true) |
| knockoutStage | string | – | Filter the bracket card to one round |
| lang | string | – | Locale for dates, list titles, match status and stage words, a match timeline's kind words (Goal, Yellow card…), the empty and outage sentences, provider attribution, and commentary: en, es, pt or fr… |
| live | boolean | – | Snapshot of matches in play right now |
| matchId | string | – | Match id (most specific) |
| style | string | – | social (default, full card) or compact (one line per match) |
| team | string | – | A team name or code for that team's next fixture: a club (Arsenal) or a nation (MEX) |
| tz | string | – | IANA timezone for kickoff times, e.g. America/Mexico_City |
| Name | Type | Req | Description |
|---|---|---|---|
| betweenEditions | object | – | Present when the competition is between editions: the edition named by label ended on ended (the provider's calendar day, YYYY-MM-DD, the season end it states), and nothing in the read is scheduled o… |
| candidates | array | – | A next card for a name two or more teams match: them, and no fixture is picked |
| competition | – | – | The competition this answer is for: its ESPN slug, its alias, its name, where the choice came from (flag: the competition argument; env: the server's CLAUDINHO_COMPETITION; saved: the user's saved ch… |
| count | number | – | – |
| degraded | boolean | – | – |
| group | string | – | – |
| horizon | object | – | Off the World Cup: a whole read of this many provider days ahead held no fixture for the team |
| inapplicable | boolean | – | Present (true) when this competition has no such thing at all (a league season with no knockout tie has no knockout tree) |
| informationalOnly | boolean | – | – |
| kind | string | yes | – |
| marketComplete | boolean | – | False when optional market enrichment did not check every relevant fixture |
| marketSignals | object | – | – |
| matches | array | – | – |
| noCompetition | boolean | – | Present (true) when no competition is chosen (no competition argument, no server CLAUDINHO_COMPETITION, no saved choice): nothing was read, competition is null, and the text says what to do (pass com… |
| partial | object | – | Present when the provider sent records that could not be used: what is returned is what was read, and may not be the whole answer (absence is not elimination). omitted is how many provider records we… |
| responseTruncated | boolean | – | – |
| responseTruncation | string | – | – |
| rosterEvidence | string | – | With unknownTeam: the evidence it rests on, the competition's table and span (table) or the World Cup's bundled nations (bundle) |
| rosterIncomplete | boolean | – | Present (true) when the competition's roster could not be read whole and the name could not be resolved without it (no match, or only by a code or a partial name); not an outage: ask with the club's… |
| served | array | – | The shown fixtures whose record the provider's window held; a shown fixture not among them is the bundled schedule's row, its live state unconfirmed |
| snippet | string | – | – |
| source | string|null | – | – |
| stage | string | – | – |
| style | string | – | – |
| tables | – | – | – |
| target | string | – | – |
| team | – | – | – |
| truncated | boolean | – | – |
| unknownTeam | boolean | – | Present (true) when the roster the competition has holds no team by that name: the bundled nations on the World Cup; the table read whole and the next 14 days' fixtures elsewhere (a claim about that… |
| unsupported | boolean | – | Present (true) when this is not available for this competition yet; an empty result then means "unsupported", not "none found" |
| view | – | – | – |
| window | object | – | Off the World Cup: a whole read of these provider days (YYYY-MM-DD, inclusive) did not hold the match |
No examples provided.
get_standings Standings ~418
Live cumulative standings: omit group for every table, or pass one table's key: a group letter (A–L in the World Cup), A1 for a numbered group, A-B for group B of league A, LEAGUE for a league's single table. Each table that is not a lettered group carries a label (the provider's name) and its title shows the key in parentheses. Returns ranked rows (team, played, W/D/L, goal difference, points). incomplete:true means a table could not be read and the tables returned are not the whole competition; a table with partial is missing rows. Use get_today for fixtures/scores and get_next_fixture for one team. If unavailable, the World Cup returns its roster at zero; competitions without a compatible bundled roster return no tables. Both are flagged degraded.
| Name | Type | Req | Description |
|---|---|---|---|
| competition | string | – | The competition: an alias such as premier-league, or an ESPN slug such as eng.1 (list_competitions lists the aliases). Without it: the server's CLAUDINHO_COMPETITION, else the user's saved choice (cl… |
| flavor | string | – | Commentary flair: off, subtle, full (default: full) |
| group | string | – | Table key: a group letter (A), or A1, A-B, LEAGUE (omit for all) |
| lang | string | – | Locale for dates, list titles, match status and stage words, a match timeline's kind words (Goal, Yellow card…), the empty and outage sentences, provider attribution, and commentary: en, es, pt or fr… |
| tz | string | – | IANA timezone for kickoff times, e.g. America/Mexico_City |
| Name | Type | Req | Description |
|---|---|---|---|
| competition | – | – | The competition this answer is for: its ESPN slug, its alias, its name, where the choice came from (flag: the competition argument; env: the server's CLAUDINHO_COMPETITION; saved: the user's saved ch… |
| degraded | boolean | yes | – |
| incomplete | boolean | – | Present (true) when the provider sent a table that could not be read: the tables returned are not the whole competition |
| noCompetition | boolean | – | Present (true) when no competition is chosen (no competition argument, no server CLAUDINHO_COMPETITION, no saved choice): nothing was read, competition is null, and the text says what to do (pass com… |
| responseTruncated | boolean | – | – |
| responseTruncation | string | – | – |
| source | string|null | yes | – |
| tables | – | yes | – |
No examples provided.
get_team Resolve a team ~166
The World Cup roster: resolve a nation name or 3-letter code to its FIFA code, flag, and group. Fuzzy and forgiving: accepts "Mexico", "mex", "USA", "DR Congo", "Türkiye"/"Turkey", "Holland", etc. Useful for the 3-letter code get_market_signal needs. It knows no clubs: get_next_fixture and get_share_snippet resolve a club's name themselves. Returns the single confident match (team), plus candidates (matches) when the query is ambiguous (e.g. "south" → South Africa, South Korea). Offline: reads the bundled roster, never the network.
| Name | Type | Req | Description |
|---|---|---|---|
| query | string | yes | Team name or 3-letter code, e.g. "Mexico", "MEX", "DR Congo" |
| Name | Type | Req | Description |
|---|---|---|---|
| count | number | yes | – |
| matches | array | yes | – |
| query | string | yes | – |
| responseTruncated | boolean | – | – |
| responseTruncation | string | – | – |
| team | – | yes | – |
No examples provided.
get_today Today's matches ~444
All fixtures for a date (default: today), with live score and minute overlaid on any match in play. Optional prediction-market enrichment carries marketComplete; false means the read was incomplete, not that no signal exists. Off the World Cup, betweenEditions means the competition's edition ended before that date. partial means the provider sent records that could not be used: on the World Cup a fixture may then show from the bundled schedule without its live state (the text counts them, and names no provider when none shown was served), and where no bundled schedule was merged, an empty day means no fixture could be read for it, not that none is scheduled. Use this for a whole day's card; for only in-play matches use get_live, for one team's match use get_next_fixture, for a single match's detail use get_match. Kickoffs render in tz; lang localizes the title, dates, status and stage words, the empty and outage sentences, attribution, and commentary (en/es/pt/fr); flavor sets commentary tone.
| Name | Type | Req | Description |
|---|---|---|---|
| competition | string | – | The competition: an alias such as premier-league, or an ESPN slug such as eng.1 (list_competitions lists the aliases). Without it: the server's CLAUDINHO_COMPETITION, else the user's saved choice (cl… |
| date | string | – | Date as YYYY-MM-DD (default: today) |
| flavor | string | – | Commentary flair: off, subtle, full (default: full) |
| lang | string | – | Locale for dates, list titles, match status and stage words, a match timeline's kind words (Goal, Yellow card…), the empty and outage sentences, provider attribution, and commentary: en, es, pt or fr… |
| tz | string | – | IANA timezone for kickoff times, e.g. America/Mexico_City |
| Name | Type | Req | Description |
|---|---|---|---|
| betweenEditions | object | – | Present when the competition is between editions: the edition named by label ended on ended (the provider's calendar day, YYYY-MM-DD, the season end it states), and nothing in the read is scheduled o… |
| competition | – | – | The competition this answer is for: its ESPN slug, its alias, its name, where the choice came from (flag: the competition argument; env: the server's CLAUDINHO_COMPETITION; saved: the user's saved ch… |
| count | number | yes | – |
| date | string | yes | – |
| degraded | boolean | yes | – |
| inapplicable | boolean | – | Present (true) when this competition has no such thing at all (a league season with no knockout tie has no knockout tree) |
| marketComplete | boolean | – | False when optional market enrichment did not check every relevant fixture |
| marketSignals | object | – | – |
| matches | array | yes | – |
| noCompetition | boolean | – | Present (true) when no competition is chosen (no competition argument, no server CLAUDINHO_COMPETITION, no saved choice): nothing was read, competition is null, and the text says what to do (pass com… |
| partial | object | – | Present when the provider sent records that could not be used: what is returned is what was read, and may not be the whole answer (absence is not elimination). omitted is how many provider records we… |
| responseTruncated | boolean | – | – |
| responseTruncation | string | – | – |
| rosterEvidence | string | – | With unknownTeam: the evidence it rests on, the competition's table and span (table) or the World Cup's bundled nations (bundle) |
| rosterIncomplete | boolean | – | Present (true) when the competition's roster could not be read whole and the name could not be resolved without it (no match, or only by a code or a partial name); not an outage: ask with the club's… |
| served | array | – | The shown fixtures whose record the provider's window held; a shown fixture not among them is the bundled schedule's row, its live state unconfirmed |
| source | string|null | yes | – |
| truncated | boolean | yes | – |
| unknownTeam | boolean | – | Present (true) when the roster the competition has holds no team by that name: the bundled nations on the World Cup; the table read whole and the next 14 days' fixtures elsewhere (a claim about that… |
| unsupported | boolean | – | Present (true) when this is not available for this competition yet; an empty result then means "unsupported", not "none found" |
No examples provided.
list_competitions Supported competitions ~287
The competitions Claudinho answers for, one per row: the alias every other tool's competition argument takes, the name, the teams (nation or club), the kind (league or cup), and what each surface is (scores, next, standings, bracket, markets: offered, not-offered-yet, or not-applicable), plus current: the competition this request is for. Offline: reads the supported table, never the network. Whether an edition is in season is not listed here; the reads say so (betweenEditions).
| Name | Type | Req | Description |
|---|---|---|---|
| competition | string | – | The competition: an alias such as premier-league, or an ESPN slug such as eng.1 (list_competitions lists the aliases). Without it: the server's CLAUDINHO_COMPETITION, else the user's saved choice (cl… |
| lang | string | – | Locale for dates, list titles, match status and stage words, a match timeline's kind words (Goal, Yellow card…), the empty and outage sentences, provider attribution, and commentary: en, es, pt or fr… |
| Name | Type | Req | Description |
|---|---|---|---|
| competitions | array | yes | – |
| current | – | yes | The competition this request is for (its competition argument, else the server's, else the user's saved choice), as every other tool's data carries it; null when nothing is chosen |
| responseTruncated | boolean | – | – |
| responseTruncation | string | – | – |
No examples provided.
How do I install the io.github.arturogarrido/claudinho MCP server?
io.github.arturogarrido/claudinho runs locally as an npm package, launched with npx -y @claudinho/mcp. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.
npm · @claudinho/mcp
claude mcp add arturogarrido-claudinho -- npx -y @claudinho/mcp
What is the io.github.arturogarrido/claudinho MCP server?
io.github.arturogarrido/claudinho is an MCP server listed in the public MCP registry as io.github.arturogarrido/claudinho. Live football scores, fixtures and standings for 16 supported competitions. Unofficial fan project. This page covers its npm package (@claudinho/mcp).
Is the io.github.arturogarrido/claudinho MCP server safe to use?
io.github.arturogarrido/claudinho scores 91 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 5 November 2026. It declares no install or post-install scripts. Its build provenance is signed and verified. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.
What tools does the io.github.arturogarrido/claudinho MCP server expose?
io.github.arturogarrido/claudinho exposes 10 tools: get_today, get_live, get_match, get_standings, get_bracket, and 5 more. Their descriptions and schemas cost roughly 3,987 tokens of context every time the server is loaded.
Is the io.github.arturogarrido/claudinho MCP server still maintained?
io.github.arturogarrido/claudinho is still listed as active in the MCP registry. We last reached this channel on 5 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.
What licence is the io.github.arturogarrido/claudinho MCP server under?
io.github.arturogarrido/claudinho declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.