api-football-mcp-server
Enables natural language querying of football/soccer data via the API-Football service, providing access to leagues, teams, players, fixtures, standings, and statistics.
README
API-Football MCP Server
A Model Context Protocol (MCP) server that provides access to football/soccer data through the API-Football service. This creates a standardised way for language models to interact with this API, and users a way to query in natural language.

Architecture
graph TD
LLM["`**LLM with MCP Client**
Claude/GPT-4/etc.`"]
subgraph Server ["`**MCP Server**
Football Data Gateway`"]
direction TB
MCP["`**MCP Protocol Handler**
Request Router & Response Manager`"]
subgraph Functions ["`**Available Functions**`"]
direction LR
API1["`**get_leagues**
Fetch league data`"]
API2["`**get_teams**
Fetch team data`"]
API3["`**get_players**
Fetch player data`"]
API4["`**get_fixtures**
Fetch match data`"]
end
MCP --> Functions
end
ExtAPI["`**API-Football**
External Sports Data API`"]
%% Main connections
LLM <===> MCP
%% Function connections to external API
API1 <--> ExtAPI
API2 <--> ExtAPI
API3 <--> ExtAPI
API4 <--> ExtAPI
%% Styling with improved colors
classDef llm fill:#4CAF50,stroke:#2E7D32,stroke-width:3px,color:#fff
classDef mcp fill:#2196F3,stroke:#1565C0,stroke-width:2px,color:#fff
classDef functions fill:#FF9800,stroke:#F57C00,stroke-width:2px,color:#fff
classDef external fill:#9C27B0,stroke:#6A1B9A,stroke-width:3px,color:#fff
classDef server fill:#E3F2FD,stroke:#1976D2,stroke-width:2px,color:#1976D2
class LLM llm
class MCP mcp
class API1,API2,API3,API4 functions
class ExtAPI external
class Server server
1. Clone and Setup
Clone the repository:
git clone https://github.com/danknight/api-football-mcp-server.git
cd api-football-mcp-server
Install dependencies:
pip install -r requirements.txt
2. Get Your API Key and Set Environment
Create a .env file with your credentials:
API_FOOTBALL_KEY=your_api_key_here
Sign up on API-Football to get an API key.
3. Configure MCP Client
Register this server in your MCP client (e.g. Cursor, Claude for Desktop).
{
"mcpServers": {
"api-football": {
"command": "python",
"args": ["absolute/path/to/server.py"],
"env": {
"API_FOOTBALL_KEY": "YOUR_API_KEY"
}
}
}
}
Or run directly from the command line and explore with Inspector:
python server.py
Tools
The following tools are exposed to MCP clients:
League Information
| Tool Name | Description | Parameters |
|---|---|---|
get_leagues |
Get available leagues | country (str, optional), season (int, optional) |
get_league_info |
Get detailed league information | league_id (int) |
get_countries |
Get available countries | None |
get_standings |
Get league standings | league_id (int), season (int) |
Team Information
| Tool Name | Description | Parameters |
|---|---|---|
get_teams |
Get teams in a league | league_id (int), season (int, optional) |
get_team_stats |
Get statistics for a team | team_id (int), league_id (int), season (int, optional) |
get_team_id_by_name |
Get team ID by team name | team_name (str), league_id (int, optional), season (int, optional) |
get_team_transfers |
Get transfer information for a team | team_id (int) |
Player Information
| Tool Name | Description | Parameters |
|---|---|---|
get_players |
Get players in a team | team_id (int), season (int) |
get_player_stats |
Get statistics for a player | player_id (int), season (int) |
Match/Fixture Information
| Tool Name | Description | Parameters |
|---|---|---|
get_fixtures |
Get fixtures/matches | league_id (int, optional), team_id (int, optional), season (int, optional), date (str, optional), next (int, optional), last (int, optional) |
get_fixture_stats |
Get statistics for a fixture | fixture_id (int) |
get_predictions |
Get predictions for a fixture | fixture_id (int) |
get_head_to_head |
Get head-to-head statistics between teams | team1_id (int), team2_id (int) |
Player Statistics
| Tool Name | Description | Parameters |
|---|---|---|
get_top_scorers |
Get top scorers in a league | league_id (int), season (int) |
get_top_assists |
Get top assisters in a league | league_id (int), season (int) |
Other Information
| Tool Name | Description | Parameters |
|---|---|---|
get_venue |
Get venue information | venue_id (int) |
get_injuries |
Get injury information | team_id (int), player_id (int), season (int) |
Usage Examples
Get leagues in a specific country
get_leagues(country="England")
Get teams in a specific league
get_teams(league_id=39, season=2023) # Premier League 2023
Get team statistics
get_team_stats(team_id=42, league_id=39, season=2023) # Arsenal stats
Get fixtures for a team
get_fixtures(team_id=42, next=5) # Next 5 Arsenal matches
Get top scorers in a league
get_top_scorers(league_id=39, season=2023) # Premier League top scorers
Development
Running Tests
Currently, no tests are implemented. To add tests:
- Create a
tests/directory - Add test files following the naming convention
test_*.py - Run tests with
python -m pytest
Adding New Tools
To add a new tool:
- Add a new function in
main.pydecorated with@mcp.tool() - Implement the API call using
make_api_request() - Update this README with the new tool information
- Test the tool with the MCP Inspector
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.