Skip to main content
Glama
sanketjoshi2012

FIFA World Cup 2026 MCP Server

FIFA World Cup 2026 AI Assistant

A conversational AI assistant for FIFA World Cup 2026 built with Claude and the Model Context Protocol (MCP). Ask about today's matches, group standings, results, and get journalist-style match summaries.

Live demo: https://worldcup-mcp-gjg7.onrender.com

What is MCP?

Model Context Protocol (MCP) is a standard that lets AI models like Claude connect to external data sources and tools. Instead of Claude only knowing what's in its training data, MCP lets it fetch live data and take actions — like reading today's World Cup scores.

Related MCP server: mcp-claudinho

Features

  • Live match scores and fixtures for today

  • Group stage standings (calculated from results)

  • Match results with goalscorers and times

  • Filter results by round (e.g. Quarter-final, Group A)

  • Journalist-style match summaries powered by Claude

  • Web chat UI with FIFA-themed design

Project Structure

worldcup-mcp/
├── mcp_server.py     # MCP server — tools and prompts
├── api.py            # FastAPI backend + WebSocket chat
├── main.py           # Terminal chat client
├── static/
│   └── index.html    # Web UI (navy + gold FIFA theme)
├── render.yaml       # Render deployment config
└── pyproject.toml    # Python dependencies

MCP Primitives Used

Primitive

Name

Description

Tool

get_todays_matches

Fetch today's World Cup matches with scores

Tool

get_standings

Calculate group stage standings from results

Tool

get_match_result

Get result and goals for a specific match

Tool

get_all_results

Get all results, optionally filtered by round

Prompt

summarize_match

Write an exciting journalist-style match summary

Data Source

Match data comes from openfootball/world-cup.json — a free, open-source dataset with no API key required.

Setup

Prerequisites

Run locally

  1. Clone the repo:

git clone https://github.com/sanketjoshi2012/worldcup-mcp.git
cd worldcup-mcp
  1. Install dependencies:

uv sync
  1. Create a .env file:

ANTHROPIC_API_KEY="your-api-key-here"
  1. Run the web app:

uv run uvicorn api:app --port 8000 --reload

Then open http://localhost:8000 in your browser.

Or run the terminal version:

uv run main.py

Deployment

This project is configured for deployment on Render via render.yaml.

  1. Push to GitHub

  2. Connect repo on Render

  3. Add ANTHROPIC_API_KEY as an environment variable

  4. Deploy

Built With

Available Tools

4 tools
get_all_resultsA

Get all World Cup 2026 results. Optionally filter by round like 'Quarter-final' or 'Group A'.

ParametersJSON Schema
NameRequiredDescriptionDefault
round_nameNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are present, so the description must carry the full burden. It only mentions 'get all results' and an optional filter, with no disclosure of behavioral traits like sorting, pagination, error handling, or idempotency. This is minimal.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise at two sentences, with the purpose front-loaded in the first sentence. Every word is necessary; no wasted text.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (one optional parameter) and the presence of an output schema, the description covers the essential functionality. However, it could mention return value structure or ordering, but it's mostly complete for a get-all tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description compensates by providing examples of valid round_name values like 'Quarter-final' or 'Group A'. This adds meaning beyond the raw schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Get all World Cup 2026 results' with an optional filter, which specifies the verb, resource, and scope. This distinguishes it from siblings like get_match_result (specific match) and get_standings (standings).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives. The description only states what it does, not when to prefer it over get_match_result, get_standings, or get_todays_matches.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_match_resultA

Get the result and goals for a specific World Cup match between two teams.

ParametersJSON Schema
NameRequiredDescriptionDefault
team1Yes
team2Yes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the burden. It clearly indicates the tool returns result and goals, implying read-only behavior. No side effects or limitations are mentioned, but for a simple data retrieval tool, this is sufficiently transparent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, clear sentence of 15 words. It is front-loaded with the action ('Get') and directly conveys the purpose without extraneous information. Every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the presence of an output schema, the description need not detail return values. It covers the core functionality and distinguishes the tool from siblings. However, it lacks guidance on error handling or valid team names, which would improve completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, meaning no parameter descriptions exist. The tool description only adds that parameters are team names, without specifying format (e.g., full name, code) or any constraints. This minimal addition does not sufficiently compensate for the lack of schema descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool retrieves the result and goals for a specific World Cup match identified by two teams. It distinguishes itself from sibling tools like get_all_results (all matches) and get_standings (standings) by focusing on a single match.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies use when you need a result for a specific pair of teams, but it does not explicitly tell the agent when to choose this tool over siblings like get_all_results or get_todays_matches. The usage context is inferred but not directly stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_standingsA

Get FIFA World Cup 2026 group stage standings.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description carries full burden, but it only says 'get' without disclosing any behavioral details like data freshness, caching, or restrictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence that clearly conveys the tool's purpose with no wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the low complexity and existence of output schema, the description sufficiently informs the agent what the tool does.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Input schema has zero parameters with 100% coverage. Description adds no additional parameter meaning, but baseline is 4 for no parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states verb 'Get' and resource 'FIFA World Cup 2026 group stage standings', which is specific and distinct from sibling tools like get_all_results, get_match_result, and get_todays_matches.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool versus alternatives. Lacks any when/when-not or context indications.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_todays_matchesA

Get all FIFA World Cup 2026 matches happening today with scores and goals.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It does not disclose behavioral traits such as timezone handling, whether it includes only completed matches, rate limits, or behavior when no matches are scheduled today. This leaves significant unknowns for an agent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, no wasted words, front-loaded with key information. Perfectly concise for a zero-parameter tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given zero parameters and an output schema (present but not shown), the description is mostly complete. However, it could mention timezone or data freshness; still, it is adequate for a simple tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Tool has no parameters, so schema coverage is 100% by default. The description adds useful context about return data (scores and goals), justifying a score above baseline 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool retrieves all FIFA World Cup 2026 matches happening today with scores and goals, specifying the resource, filter, and data. It distinguishes from siblings like get_all_results and get_match_result.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for today's matches but does not explicitly state when to use this tool versus alternatives like get_all_results (all matches) or get_match_result (single match). No exclusions or when-not-to-use guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 4 tool updatesv0.1.0
    • First observedget_all_results
    • First observedget_match_result
    • First observedget_standings
    • First observedget_todays_matches

TDQS

A3.7/5.0
Disambiguation5/5

Each tool has a clearly distinct purpose: all results, specific match, standings, today's matches. No overlap or ambiguity.

Naming Consistency5/5

All tools follow a consistent 'get_' prefix with descriptive nouns using snake_case, e.g., get_all_results, get_match_result.

Tool Count3/5

With only 4 tools, the server is relatively sparse but still covers basic querying needs for a focused domain. Slightly under-scoped but reasonable.

Completeness2/5

Missing key operations like team-specific schedules, group details, or upcoming match queries beyond today. The surface has notable gaps for comprehensive coverage.

Maintenance

ActivityStale
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    C
    maintenance
    MCP server for FIFA World Cup 2026 data: matches, teams, venues, city guides, fan zones, visa info, injuries, odds, standings, bracket, and historical matchups. 18 tools, zero external API dependencies.
    18
    529
    34
    MIT
  • A
    license
    A
    quality
    A
    maintenance
    Claudinho gives any MCP client live 2026 World Cup scores, fixtures, group standings, read-only prediction-market signals (Polymarket, informational only), and ready-to-paste match cards. Key-free; the schedule is bundled offline — only live state hits ESPN. Independent fan project — not affiliated with FIFA or Anthropic.
    9
    28
    MIT
  • F
    license
    A
    quality
    D
    maintenance
    Provides live football data through MCP tools, enabling users to fetch today's matches and top scorers for competitions like the Premier League or World Cup.
    2
    -
  • F
    license
    Not graded
    quality
    B
    maintenance
    MCP server for a World Cup 2026 prediction game assistant, providing tools for live game data via PostgreSQL and semantic search over football articles via RAG.
    -

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/sanketjoshi2012/worldcup-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server