wc26-mcp 0.3.0 → 0.3.1
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 +71 -27
- package/dist/data/city-guides.js +0 -1
- package/dist/data/fan-zones.js +0 -1
- package/dist/data/groups.js +0 -1
- package/dist/data/historical-matchups.js +60 -1
- package/dist/data/injuries.d.ts +2 -0
- package/dist/data/injuries.js +197 -0
- package/dist/data/matches.js +48 -48
- package/dist/data/news.d.ts +2 -0
- package/dist/data/news.js +171 -0
- package/dist/data/odds.d.ts +2 -0
- package/dist/data/odds.js +53 -0
- package/dist/data/team-profiles.js +0 -1
- package/dist/data/teams.js +0 -1
- package/dist/data/venues.js +0 -1
- package/dist/data/visa-info.js +0 -1
- package/dist/index.js +685 -23
- package/dist/types/index.d.ts +49 -0
- package/dist/types/index.js +0 -1
- package/package.json +14 -1
- package/dist/data/city-guides.js.map +0 -1
- package/dist/data/fan-zones.js.map +0 -1
- package/dist/data/groups.js.map +0 -1
- package/dist/data/historical-matchups.js.map +0 -1
- package/dist/data/matches.js.map +0 -1
- package/dist/data/team-profiles.js.map +0 -1
- package/dist/data/teams.js.map +0 -1
- package/dist/data/venues.js.map +0 -1
- package/dist/data/visa-info.js.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/types/index.js.map +0 -1
package/README.md
CHANGED
|
@@ -2,10 +2,18 @@
|
|
|
2
2
|
|
|
3
3
|
[](https://www.npmjs.com/package/wc26-mcp)
|
|
4
4
|
[](https://opensource.org/licenses/MIT)
|
|
5
|
+
[](https://www.typescriptlang.org/)
|
|
6
|
+
[](https://modelcontextprotocol.io)
|
|
5
7
|
|
|
6
|
-
|
|
8
|
+
<p align="center">
|
|
9
|
+
<img src="website/og-image.png" alt="WC26 MCP — World Cup 2026 data for AI" width="600">
|
|
10
|
+
</p>
|
|
7
11
|
|
|
8
|
-
|
|
12
|
+
Ask your AI anything about the 2026 World Cup and get real answers. 18 tools covering matches, teams, venues, city guides, fan zones, head-to-head records, visa info, news, injuries, odds, standings, knockout bracket, and more. All data ships with the package. Zero API keys, zero external dependencies.
|
|
13
|
+
|
|
14
|
+
Works with **Claude Desktop** · **Claude Code** · **Cursor** · **Windsurf** · **ChatGPT** · **Telegram** · any MCP client
|
|
15
|
+
|
|
16
|
+
**[Website](https://wc26.ai)** | **[npm](https://www.npmjs.com/package/wc26-mcp)** | **[ChatGPT GPT](https://chatgpt.com/g/g-698d038f171481919ada44947304a196-world-cup-2026-companion)** | **[Telegram Bot](https://t.me/wc26ai_bot)** | **[MCP Registry](https://registry.modelcontextprotocol.io)**
|
|
9
17
|
|
|
10
18
|
## Quick Start
|
|
11
19
|
|
|
@@ -60,6 +68,20 @@ Add to `~/.codeium/windsurf/mcp_config.json`:
|
|
|
60
68
|
}
|
|
61
69
|
```
|
|
62
70
|
|
|
71
|
+
### ChatGPT
|
|
72
|
+
|
|
73
|
+
No setup needed — use the GPT directly:
|
|
74
|
+
|
|
75
|
+
**[Open World Cup 2026 Companion](https://chatgpt.com/g/g-698d038f171481919ada44947304a196-world-cup-2026-companion)**
|
|
76
|
+
|
|
77
|
+
### Telegram
|
|
78
|
+
|
|
79
|
+
No setup needed — message the bot directly:
|
|
80
|
+
|
|
81
|
+
**[Open @wc26ai_bot on Telegram](https://t.me/wc26ai_bot)**
|
|
82
|
+
|
|
83
|
+
17 slash commands: `/brief`, `/team`, `/matches`, `/group`, `/city`, `/venue`, `/history`, `/visa`, `/fanzones`, `/schedule`, `/news`, `/injuries`, `/odds`, `/standings`, `/bracket`, and more.
|
|
84
|
+
|
|
63
85
|
### Other MCP Clients
|
|
64
86
|
|
|
65
87
|
The server communicates over stdio using the [Model Context Protocol](https://modelcontextprotocol.io):
|
|
@@ -84,34 +106,56 @@ npx -y wc26-mcp
|
|
|
84
106
|
| `get_schedule` | Tournament schedule organized by date with timezone conversion | `date_from`, `date_to`, `timezone` |
|
|
85
107
|
| `get_visa_info` | Entry requirements (visa, ESTA, eTA) for any team's nationals entering host countries | `team`, `host_country` |
|
|
86
108
|
| `get_fan_zones` | Official FIFA Fan Festival locations across all 16 host cities with capacity, hours, activities, and transit tips | `city`, `country`, `venue_id` |
|
|
109
|
+
| `get_news` | Latest World Cup news headlines sourced by the Scout Agent daily | `topic`, `limit` |
|
|
110
|
+
| `get_injuries` | Key player availability tracker — injury status, expected return dates, and impact assessment | `team`, `status` |
|
|
111
|
+
| `get_odds` | Tournament favorites, golden boot predictions, group previews, and dark horse picks | `category`, `group` |
|
|
112
|
+
| `compare_teams` | Side-by-side comparison of any two teams — rankings, odds, key players, group difficulty, injuries, and head-to-head | `team_a`, `team_b` |
|
|
113
|
+
| `get_standings` | Group power rankings based on FIFA rankings, betting odds, and predictions | `group` |
|
|
114
|
+
| `get_bracket` | Knockout bracket visualization — R32 through Final with venues, dates, and group entry points | `round` |
|
|
87
115
|
|
|
88
116
|
## Example Prompts
|
|
89
117
|
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
118
|
+
> "Brief me on the World Cup"
|
|
119
|
+
|
|
120
|
+
> "Tell me about Argentina's squad and playing style"
|
|
121
|
+
|
|
122
|
+
> "When does the USA play their first match?"
|
|
123
|
+
|
|
124
|
+
> "Show me tomorrow's matches in my timezone (America/New_York)"
|
|
125
|
+
|
|
126
|
+
> "What's the World Cup history between Argentina and England?"
|
|
127
|
+
|
|
128
|
+
> "Give me a city guide for Dallas"
|
|
129
|
+
|
|
130
|
+
> "Where are the fan zones in New York?"
|
|
131
|
+
|
|
132
|
+
> "What's the latest World Cup news?"
|
|
133
|
+
|
|
134
|
+
> "Do Iranian fans need a visa to attend matches in the US?"
|
|
135
|
+
|
|
136
|
+
> "What venues are closest to MetLife Stadium?"
|
|
137
|
+
|
|
138
|
+
## Data
|
|
139
|
+
|
|
140
|
+
| | Count | Details |
|
|
141
|
+
|---|---|---|
|
|
142
|
+
| Matches | 104 | Group stage + knockout, all in UTC (timezone conversion supported) |
|
|
143
|
+
| Teams | 48 | 42 confirmed, 6 TBD (playoffs March 26 & 31) |
|
|
144
|
+
| Venues | 16 | USA (11), Mexico (3), Canada (2) with weather data |
|
|
145
|
+
| Team profiles | 48 | Coach, key players, style, WC history |
|
|
146
|
+
| City guides | 16 | Transit, food, attractions, local tips |
|
|
147
|
+
| Historical matchups | 34 | Head-to-head WC records with narrative |
|
|
148
|
+
| Fan zones | 18 | All host cities, capacity, hours, transport |
|
|
149
|
+
| Visa entries | 42 | All confirmed nationalities across 3 host countries |
|
|
150
|
+
| News | Daily | Scout Agent curates latest World Cup headlines |
|
|
151
|
+
| Injuries | 6+ | Key player availability with status and expected return |
|
|
152
|
+
| Odds | 16+ | Tournament winner, golden boot, group predictions, dark horses |
|
|
153
|
+
|
|
154
|
+
Tournament: **June 11 - July 19, 2026**
|
|
155
|
+
|
|
156
|
+
## Contributing
|
|
157
|
+
|
|
158
|
+
This is an open source project under the MIT license. Issues and PRs welcome at [github.com/jordanlyall/wc26-mcp](https://github.com/jordanlyall/wc26-mcp).
|
|
115
159
|
|
|
116
160
|
## License
|
|
117
161
|
|
package/dist/data/city-guides.js
CHANGED
package/dist/data/fan-zones.js
CHANGED
package/dist/data/groups.js
CHANGED
|
@@ -168,6 +168,66 @@ export const historicalMatchups = [
|
|
|
168
168
|
{ year: 2010, host_country: "South Africa", round: "Group Stage", score: "1-1", result: "draw", venue_city: "Johannesburg" },
|
|
169
169
|
],
|
|
170
170
|
},
|
|
171
|
+
// Group J: Algeria vs Austria
|
|
172
|
+
{
|
|
173
|
+
team_a: "alg",
|
|
174
|
+
team_b: "aut",
|
|
175
|
+
total_matches: 1,
|
|
176
|
+
team_a_wins: 1,
|
|
177
|
+
draws: 0,
|
|
178
|
+
team_b_wins: 0,
|
|
179
|
+
total_goals_team_a: 2,
|
|
180
|
+
total_goals_team_b: 0,
|
|
181
|
+
summary: "Algeria stunned Austria 2-0 in the 1982 group stage, part of an incredible Algerian debut that also saw them beat West Germany — before the infamous 'Disgrace of Gijón' eliminated them.",
|
|
182
|
+
meetings: [
|
|
183
|
+
{ year: 1982, host_country: "Spain", round: "Group Stage", score: "2-0", result: "team_a", venue_city: "Oviedo" },
|
|
184
|
+
],
|
|
185
|
+
},
|
|
186
|
+
// Group F: Japan vs Tunisia
|
|
187
|
+
{
|
|
188
|
+
team_a: "jpn",
|
|
189
|
+
team_b: "tun",
|
|
190
|
+
total_matches: 1,
|
|
191
|
+
team_a_wins: 1,
|
|
192
|
+
draws: 0,
|
|
193
|
+
team_b_wins: 0,
|
|
194
|
+
total_goals_team_a: 2,
|
|
195
|
+
total_goals_team_b: 0,
|
|
196
|
+
summary: "Japan beat Tunisia 2-0 in the 2002 group stage on home soil in Osaka, securing their first-ever World Cup knockout round berth.",
|
|
197
|
+
meetings: [
|
|
198
|
+
{ year: 2002, host_country: "South Korea / Japan", round: "Group Stage", score: "2-0", result: "team_a", venue_city: "Osaka" },
|
|
199
|
+
],
|
|
200
|
+
},
|
|
201
|
+
// Group H: Saudi Arabia vs Uruguay
|
|
202
|
+
{
|
|
203
|
+
team_a: "ksa",
|
|
204
|
+
team_b: "uru",
|
|
205
|
+
total_matches: 1,
|
|
206
|
+
team_a_wins: 0,
|
|
207
|
+
draws: 0,
|
|
208
|
+
team_b_wins: 1,
|
|
209
|
+
total_goals_team_a: 0,
|
|
210
|
+
total_goals_team_b: 1,
|
|
211
|
+
summary: "Uruguay edged Saudi Arabia 1-0 in the 2018 group stage, with Luis Suárez scoring the only goal to seal qualification from Group A.",
|
|
212
|
+
meetings: [
|
|
213
|
+
{ year: 2018, host_country: "Russia", round: "Group Stage", score: "0-1", result: "team_b", venue_city: "Rostov-on-Don" },
|
|
214
|
+
],
|
|
215
|
+
},
|
|
216
|
+
// Group C: Morocco vs Scotland
|
|
217
|
+
{
|
|
218
|
+
team_a: "mar",
|
|
219
|
+
team_b: "sco",
|
|
220
|
+
total_matches: 1,
|
|
221
|
+
team_a_wins: 1,
|
|
222
|
+
draws: 0,
|
|
223
|
+
team_b_wins: 0,
|
|
224
|
+
total_goals_team_a: 3,
|
|
225
|
+
total_goals_team_b: 0,
|
|
226
|
+
summary: "Morocco routed Scotland 3-0 in the 1998 group stage, condemning the Scots to a last-place finish and early elimination.",
|
|
227
|
+
meetings: [
|
|
228
|
+
{ year: 1998, host_country: "France", round: "Group Stage", score: "3-0", result: "team_a", venue_city: "Saint-Étienne" },
|
|
229
|
+
],
|
|
230
|
+
},
|
|
171
231
|
// ── Tier 2: Major historical rivalries ───────────────────────────
|
|
172
232
|
// Argentina vs Brazil
|
|
173
233
|
{
|
|
@@ -494,4 +554,3 @@ export const historicalMatchups = [
|
|
|
494
554
|
],
|
|
495
555
|
},
|
|
496
556
|
];
|
|
497
|
-
//# sourceMappingURL=historical-matchups.js.map
|
|
@@ -0,0 +1,197 @@
|
|
|
1
|
+
export const injuries = [
|
|
2
|
+
// ── Argentina ──
|
|
3
|
+
{
|
|
4
|
+
player: "Lionel Messi",
|
|
5
|
+
team_id: "arg",
|
|
6
|
+
position: "Forward",
|
|
7
|
+
injury: "Undisclosed injury announced by Inter Miami",
|
|
8
|
+
status: "doubtful",
|
|
9
|
+
expected_return: "TBD",
|
|
10
|
+
last_updated: "2026-02-11",
|
|
11
|
+
source: "Marca",
|
|
12
|
+
},
|
|
13
|
+
// ── Brazil ──
|
|
14
|
+
{
|
|
15
|
+
player: "Neymar",
|
|
16
|
+
team_id: "bra",
|
|
17
|
+
position: "Forward",
|
|
18
|
+
injury: "Long-term fitness concerns — future in Carlo Ancelotti's hands",
|
|
19
|
+
status: "doubtful",
|
|
20
|
+
expected_return: "Unknown",
|
|
21
|
+
last_updated: "2026-02-08",
|
|
22
|
+
source: "Marca",
|
|
23
|
+
},
|
|
24
|
+
// ── England ──
|
|
25
|
+
{
|
|
26
|
+
player: "Jude Bellingham",
|
|
27
|
+
team_id: "eng",
|
|
28
|
+
position: "Midfielder",
|
|
29
|
+
injury: "Injury concern — Real Madrid and England monitoring",
|
|
30
|
+
status: "recovering",
|
|
31
|
+
expected_return: "Before tournament",
|
|
32
|
+
last_updated: "2026-02-01",
|
|
33
|
+
source: "BBC Sport",
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
player: "Luke Shaw",
|
|
37
|
+
team_id: "eng",
|
|
38
|
+
position: "Defender",
|
|
39
|
+
injury: "Recurring hamstring issues — fitness management ongoing",
|
|
40
|
+
status: "recovering",
|
|
41
|
+
expected_return: "Before tournament",
|
|
42
|
+
last_updated: "2026-02-06",
|
|
43
|
+
source: "The Guardian",
|
|
44
|
+
},
|
|
45
|
+
// ── France ──
|
|
46
|
+
{
|
|
47
|
+
player: "N'Golo Kante",
|
|
48
|
+
team_id: "fra",
|
|
49
|
+
position: "Midfielder",
|
|
50
|
+
injury: "Hamstring injury sustained in Saudi Pro League — racing to be fit",
|
|
51
|
+
status: "doubtful",
|
|
52
|
+
expected_return: "May 2026",
|
|
53
|
+
last_updated: "2026-02-09",
|
|
54
|
+
source: "L'Equipe",
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
player: "Lucas Hernandez",
|
|
58
|
+
team_id: "fra",
|
|
59
|
+
position: "Defender",
|
|
60
|
+
injury: "ACL tear — second major knee injury in career",
|
|
61
|
+
status: "out",
|
|
62
|
+
expected_return: "Unlikely for tournament",
|
|
63
|
+
last_updated: "2026-01-28",
|
|
64
|
+
source: "L'Equipe",
|
|
65
|
+
},
|
|
66
|
+
// ── Spain ──
|
|
67
|
+
{
|
|
68
|
+
player: "Gavi",
|
|
69
|
+
team_id: "esp",
|
|
70
|
+
position: "Midfielder",
|
|
71
|
+
injury: "ACL recovery — long road back from November 2023 injury",
|
|
72
|
+
status: "recovering",
|
|
73
|
+
expected_return: "Before tournament",
|
|
74
|
+
last_updated: "2026-02-03",
|
|
75
|
+
source: "Marca",
|
|
76
|
+
},
|
|
77
|
+
// ── Germany ──
|
|
78
|
+
{
|
|
79
|
+
player: "Leroy Sane",
|
|
80
|
+
team_id: "ger",
|
|
81
|
+
position: "Forward",
|
|
82
|
+
injury: "Groin surgery recovery — Bayern managing his return",
|
|
83
|
+
status: "recovering",
|
|
84
|
+
expected_return: "April 2026",
|
|
85
|
+
last_updated: "2026-02-07",
|
|
86
|
+
source: "Kicker",
|
|
87
|
+
},
|
|
88
|
+
// ── Belgium ──
|
|
89
|
+
{
|
|
90
|
+
player: "Thibaut Courtois",
|
|
91
|
+
team_id: "bel",
|
|
92
|
+
position: "Goalkeeper",
|
|
93
|
+
injury: "ACL recovery — returned to action but managing workload",
|
|
94
|
+
status: "recovering",
|
|
95
|
+
expected_return: "Fit for tournament",
|
|
96
|
+
last_updated: "2026-02-05",
|
|
97
|
+
source: "ESPN",
|
|
98
|
+
},
|
|
99
|
+
{
|
|
100
|
+
player: "Romelu Lukaku",
|
|
101
|
+
team_id: "bel",
|
|
102
|
+
position: "Forward",
|
|
103
|
+
injury: "Recurring thigh muscle issues — managing fitness carefully",
|
|
104
|
+
status: "recovering",
|
|
105
|
+
expected_return: "Before tournament",
|
|
106
|
+
last_updated: "2026-02-04",
|
|
107
|
+
source: "BBC Sport",
|
|
108
|
+
},
|
|
109
|
+
// ── Portugal ──
|
|
110
|
+
{
|
|
111
|
+
player: "Diogo Jota",
|
|
112
|
+
team_id: "por",
|
|
113
|
+
position: "Forward",
|
|
114
|
+
injury: "Knee ligament damage — extended rehabilitation",
|
|
115
|
+
status: "doubtful",
|
|
116
|
+
expected_return: "May 2026",
|
|
117
|
+
last_updated: "2026-02-10",
|
|
118
|
+
source: "ESPN",
|
|
119
|
+
},
|
|
120
|
+
// ── Netherlands ──
|
|
121
|
+
{
|
|
122
|
+
player: "Frenkie de Jong",
|
|
123
|
+
team_id: "ned",
|
|
124
|
+
position: "Midfielder",
|
|
125
|
+
injury: "Ankle injury — persistent issue from Euro 2024",
|
|
126
|
+
status: "recovering",
|
|
127
|
+
expected_return: "Before tournament",
|
|
128
|
+
last_updated: "2026-02-02",
|
|
129
|
+
source: "De Telegraaf",
|
|
130
|
+
},
|
|
131
|
+
// ── Norway ──
|
|
132
|
+
{
|
|
133
|
+
player: "Erling Haaland",
|
|
134
|
+
team_id: "nor",
|
|
135
|
+
position: "Forward",
|
|
136
|
+
injury: "No current injury — form and confidence being monitored",
|
|
137
|
+
status: "fit",
|
|
138
|
+
expected_return: "N/A",
|
|
139
|
+
last_updated: "2026-02-10",
|
|
140
|
+
source: "The Guardian",
|
|
141
|
+
},
|
|
142
|
+
// ── USA ──
|
|
143
|
+
{
|
|
144
|
+
player: "Gio Reyna",
|
|
145
|
+
team_id: "usa",
|
|
146
|
+
position: "Midfielder",
|
|
147
|
+
injury: "Hamstring strain — out of Borussia Dortmund training",
|
|
148
|
+
status: "recovering",
|
|
149
|
+
expected_return: "March 2026",
|
|
150
|
+
last_updated: "2026-02-08",
|
|
151
|
+
source: "ESPN",
|
|
152
|
+
},
|
|
153
|
+
// ── South Korea ──
|
|
154
|
+
{
|
|
155
|
+
player: "Son Heung-min",
|
|
156
|
+
team_id: "kor",
|
|
157
|
+
position: "Forward",
|
|
158
|
+
injury: "Calf muscle fatigue — Tottenham managing minutes",
|
|
159
|
+
status: "fit",
|
|
160
|
+
expected_return: "N/A",
|
|
161
|
+
last_updated: "2026-02-11",
|
|
162
|
+
source: "BBC Sport",
|
|
163
|
+
},
|
|
164
|
+
// ── Croatia ──
|
|
165
|
+
{
|
|
166
|
+
player: "Luka Modric",
|
|
167
|
+
team_id: "cro",
|
|
168
|
+
position: "Midfielder",
|
|
169
|
+
injury: "Age-related fitness management — Real Madrid reducing minutes",
|
|
170
|
+
status: "fit",
|
|
171
|
+
expected_return: "N/A",
|
|
172
|
+
last_updated: "2026-02-09",
|
|
173
|
+
source: "Marca",
|
|
174
|
+
},
|
|
175
|
+
// ── Senegal ──
|
|
176
|
+
{
|
|
177
|
+
player: "Sadio Mane",
|
|
178
|
+
team_id: "sen",
|
|
179
|
+
position: "Forward",
|
|
180
|
+
injury: "Knee soreness — Al-Nassr managing workload ahead of World Cup",
|
|
181
|
+
status: "recovering",
|
|
182
|
+
expected_return: "Before tournament",
|
|
183
|
+
last_updated: "2026-02-06",
|
|
184
|
+
source: "ESPN",
|
|
185
|
+
},
|
|
186
|
+
// ── Colombia ──
|
|
187
|
+
{
|
|
188
|
+
player: "Luis Diaz",
|
|
189
|
+
team_id: "col",
|
|
190
|
+
position: "Forward",
|
|
191
|
+
injury: "Knee ligament sprain — Liverpool monitoring recovery timeline",
|
|
192
|
+
status: "recovering",
|
|
193
|
+
expected_return: "April 2026",
|
|
194
|
+
last_updated: "2026-02-05",
|
|
195
|
+
source: "ESPN",
|
|
196
|
+
},
|
|
197
|
+
];
|