API-足球MCP服务器
模型上下文协议(MCP)服务器,通过API-football服务提供对足球/足球数据的访问。 这为语言模型与此API交互创建了一种标准化的方式,并为用户提供了一种用自然语言进行查询的方式。
建筑
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 server1.克隆和设置
克隆存储库:
git clone https://github.com/danknight/api-football-mcp-server.git
cd api-football-mcp-server安装依赖项:
pip install -r requirements.txt2.获取API密钥并设置环境
创建一个 .env 使用您的凭据文件:
API_FOOTBALL_KEY=your_api_key_here注册 API-足球 以获取API密钥。
3.配置MCP客户端
在您的MCP客户端中注册此服务器(例如Cursor、Claude for Desktop)。
{
"mcpServers": {
"api-football": {
"command": "python",
"args": ["absolute/path/to/server.py"],
"env": {
"API_FOOTBALL_KEY": "YOUR_API_KEY"
}
}
}
}
或者直接从命令行运行并使用 检查员:
python server.py工具
MCP客户端可以使用以下工具:
联盟信息
| 工具名称 | 描述 | 参数 |
|---|---|---|
get_leagues | 获取可用联赛 | country (str,可选), season (int,可选) |
get_league_info | 获取详细的联盟信息 | league_id (int) |
get_countries | 获取可用国家/地区 | 无 |
get_standings | 获取联赛排名 | league_id (int), season (int) |
团队信息
| 工具名称 | 描述 | 参数 |
|---|---|---|
get_teams | 让球队加入联盟 | league_id (int), season (int,可选) |
get_team_stats | 获取团队的统计数据 | team_id (int), league_id (int), season (int,可选) |
get_team_id_by_name | 按团队名称获取团队ID | team_name (str), league_id (int,可选), season (int,可选) |
get_team_transfers | 获取团队的转会信息 | team_id (int) |
玩家信息
| 工具名称 | 描述 | 参数 |
|---|---|---|
get_players | 让球员加入团队 | team_id (int), season (int) |
get_player_stats | 获取玩家的统计数据 | player_id (int), season (int) |
比赛/赛程信息
| 工具名称 | 描述 | 参数 |
|---|---|---|
get_fixtures | 获取赛程/比赛 | league_id (int,可选), team_id (int,可选), season (int,可选), date (str,可选), next (int,可选), last (int,可选) |
get_fixture_stats | 获取夹具的统计数据 | fixture_id (int) |
get_predictions | 获取赛程预测 | fixture_id (int) |
get_head_to_head | 获取团队之间的直接统计数据 | team1_id (int), team2_id (int) |
球员统计
| 工具名称 | 描述 | 参数 |
|---|---|---|
get_top_scorers | 在联盟中获得最高得分者 | league_id (int), season (int) |
get_top_assists | 获得联盟中的顶级助理 | league_id (int), season (int) |
其他信息
| 工具名称 | 描述 | 参数 |
|---|---|---|
get_venue | 获取会场信息 | venue_id (int) |
get_injuries | 获取受伤信息 | team_id (int), player_id (int), season (int) |
使用示例
获取特定国家的联赛
get_leagues(country="England")在特定联赛中组建球队
get_teams(league_id=39, season=2023) # Premier League 2023获取团队统计数据
get_team_stats(team_id=42, league_id=39, season=2023) # Arsenal stats为团队获取固定装置
get_fixtures(team_id=42, next=5) # Next 5 Arsenal matches在联盟中获得最高得分者
get_top_scorers(league_id=39, season=2023) # Premier League top scorers发展
运行测试
目前,尚未实施任何测试。要添加测试,请执行以下操作:
- 创建一个
tests/目录 - 按照命名约定添加测试文件
test_*.py - 使用运行测试
python -m pytest
添加新工具
要添加新工具,请执行以下操作:
- 在中添加新功能
main.py装饰有@mcp.tool() - 使用实现API调用
make_api_request() - 用新的工具信息更新此README
- 使用MCP检查器测试工具
