@claudinho/mcp 0.1.1 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +52 -9
- package/dist/index.js +1060 -154
- package/package.json +14 -13
package/README.md
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
# @claudinho/mcp ⚽
|
|
2
2
|
|
|
3
3
|
**An MCP server for the 2026 men's football tournament.** Ask your agent about
|
|
4
|
-
live scores, fixtures,
|
|
5
|
-
any other MCP client.
|
|
4
|
+
live scores, fixtures, group standings, and prediction-market odds — in Claude
|
|
5
|
+
Code, Cursor, Codex, and any other MCP client.
|
|
6
6
|
|
|
7
7
|
> ⚠️ **Not affiliated with, endorsed by, or connected to FIFA or Anthropic.**
|
|
8
8
|
> Claudinho is an independent, open-source fan project. Factual match data with
|
|
@@ -28,6 +28,14 @@ args = ["-y", "@claudinho/mcp"]
|
|
|
28
28
|
```
|
|
29
29
|
(or `codex mcp add claudinho -- npx -y @claudinho/mcp`)
|
|
30
30
|
|
|
31
|
+
**Claude Desktop** — edit `claude_desktop_config.json` (Settings → Developer →
|
|
32
|
+
Edit Config), then restart Claude Desktop:
|
|
33
|
+
```json
|
|
34
|
+
{ "mcpServers": { "claudinho": { "command": "npx", "args": ["-y", "@claudinho/mcp"] } } }
|
|
35
|
+
```
|
|
36
|
+
Config location: macOS `~/Library/Application Support/Claude/claude_desktop_config.json`,
|
|
37
|
+
Windows `%APPDATA%\Claude\claude_desktop_config.json`.
|
|
38
|
+
|
|
31
39
|
Transport is stdio, so the same package works in Windsurf, Zed, VS Code, and
|
|
32
40
|
any other MCP client with no changes.
|
|
33
41
|
|
|
@@ -35,21 +43,51 @@ any other MCP client with no changes.
|
|
|
35
43
|
|
|
36
44
|
| Tool | What it does |
|
|
37
45
|
|---|---|
|
|
38
|
-
| `get_today` | fixtures for a date (default: today), live scores overlaid |
|
|
46
|
+
| `get_today` | fixtures for a date (default: today), grouped in the caller's `tz`, live scores overlaid |
|
|
39
47
|
| `get_live` | matches in play right now |
|
|
40
48
|
| `get_match` | a single match by id |
|
|
41
49
|
| `get_standings` | group table(s) — one group `A`–`L`, or all |
|
|
42
50
|
| `get_next_fixture` | a team's next match (3-letter code, e.g. `MEX`) |
|
|
51
|
+
| `get_market_signal` | read-only prediction-market odds for a match, a team's next fixture, or a date — informational only |
|
|
43
52
|
|
|
44
53
|
All tools are **read-only** (annotated `readOnlyHint`) and accept optional
|
|
45
|
-
`tz` (IANA timezone)
|
|
46
|
-
includes both human-readable
|
|
54
|
+
`tz` (IANA timezone), `lang` (`en`/`es`/`pt`/`fr`), and `flavor`
|
|
55
|
+
(`off`/`subtle`/`full`) arguments. Each response includes both human-readable
|
|
56
|
+
text and structured JSON.
|
|
57
|
+
|
|
58
|
+
`get_today` and `get_match` also include reliable prediction-market context when a
|
|
59
|
+
market is available. Match→market event slugs are derived automatically, so no
|
|
60
|
+
mapping is needed. Market data is **read-only and informational only — not betting
|
|
61
|
+
advice** (market-implied percentages with attribution, never links or trade
|
|
62
|
+
calls), sourced from Polymarket public data and shown only when a market maps
|
|
63
|
+
cleanly to the result. Disable it with `CLAUDINHO_MARKETS=off`; set
|
|
64
|
+
`CLAUDINHO_MARKETS_SOURCE=fake` (in the server `env`) for a network-free synthetic
|
|
65
|
+
preview.
|
|
47
66
|
|
|
48
67
|
## Resources & prompts
|
|
49
68
|
|
|
50
|
-
- Resources: `standings://{group}` (e.g. `standings://A`), `fixtures://{date}` (e.g. `fixtures://2026-06-11`)
|
|
69
|
+
- Resources: `standings://{group}` (e.g. `standings://A`), `fixtures://{date}` (UTC date, e.g. `fixtures://2026-06-11`)
|
|
51
70
|
- Prompts: `tournament_today`, `my_team`
|
|
52
71
|
|
|
72
|
+
## Commentary flair
|
|
73
|
+
|
|
74
|
+
By default the server adds a light, localized football-commentary voice: each
|
|
75
|
+
match line in the text ends with a short genre-style exclamation (`— ¡GOOOOL!`),
|
|
76
|
+
and the server instructions nudge the model to narrate scores with matching
|
|
77
|
+
energy. The phrases are generic — no real commentator is quoted or impersonated —
|
|
78
|
+
and they never touch the structured JSON, so the facts stay clean.
|
|
79
|
+
|
|
80
|
+
Control it with `CLAUDINHO_FLAVOR` (`off` | `subtle` | `full`, default `full`),
|
|
81
|
+
or per call via the `flavor` tool argument. In Claude Code, add it to the `env`
|
|
82
|
+
block of your server entry:
|
|
83
|
+
|
|
84
|
+
```json
|
|
85
|
+
{ "mcpServers": { "claudinho": {
|
|
86
|
+
"command": "npx", "args": ["-y", "@claudinho/mcp"],
|
|
87
|
+
"env": { "CLAUDINHO_FLAVOR": "subtle" }
|
|
88
|
+
} } }
|
|
89
|
+
```
|
|
90
|
+
|
|
53
91
|
## Other competitions
|
|
54
92
|
|
|
55
93
|
By default the server follows the 2026 World Cup. Set the `CLAUDINHO_COMPETITION`
|
|
@@ -59,10 +97,15 @@ to the `env` block of your MCP server entry.
|
|
|
59
97
|
|
|
60
98
|
## How it works
|
|
61
99
|
|
|
62
|
-
The fixture list ships bundled in the package; only live state hits the network
|
|
63
|
-
|
|
64
|
-
|
|
100
|
+
The fixture list ships bundled in the package; only live state hits the network —
|
|
101
|
+
live scores from **ESPN's** public scoreboard (a swappable provider, attributed
|
|
102
|
+
in the `source` field and text) and market odds from Polymarket. The server writes
|
|
103
|
+
nothing to stdout except the MCP protocol; diagnostics go to stderr.
|
|
65
104
|
|
|
66
105
|
## License
|
|
67
106
|
|
|
68
107
|
MIT © 2026 Arturo Garrido · [source & issues](https://github.com/arturogarrido/claudinho)
|
|
108
|
+
|
|
109
|
+
---
|
|
110
|
+
|
|
111
|
+
_Built while watching the games._ **#VibingLaVidaLoca** ⚽
|