@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.
Files changed (3) hide show
  1. package/README.md +52 -9
  2. package/dist/index.js +1060 -154
  3. 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, and group standings — in Claude Code, Cursor, Codex, and
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) and `lang` (`en`/`es`/`pt`/`fr`) arguments. Each response
46
- includes both human-readable text and structured JSON.
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
- (via a swappable data provider). The server writes nothing to stdout
64
- except the MCP protocol; diagnostics go to stderr.
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** ⚽