项目简介

这是一个基于Model Context Protocol (MCP) 构建的专业级足球数据服务器,旨在为LLM客户端(如Claude Desktop)提供全面、结构化的足球运动员数据及球探分析能力。它集成了球员数据搜索、高级球探报告生成、多球员数据对比、联赛数据统计和潜力人才发现等功能,赋能AI在足球领域的深度应用。

主要功能点

  • 高级球员搜索: 可根据联赛、位置、年龄、国籍、球队及各项统计数据进行多维度筛选,支持按指定统计数据排序,并可选择仅显示最新赛季数据。
  • 专业球探报告: 为单个球员生成包含基础信息、各类详细统计数据(进攻、防守、传球等)、精英同行对比、整体评分及球探总结的深度报告。
  • 多球员对比: 支持对多个指定球员在关键统计数据上进行横向比较,并智能对齐赛季数据以确保公平性,可自定义比较的统计项。
  • 联赛数据领先者: 查找特定联赛、位置和赛季中各项统计数据的佼佼者。
  • 潜力人才发现: 根据球员角色(如边后卫、中场)、球队风格(如控球、高位逼抢)和年龄等条件,发现符合要求的高潜力人才,并提供详细的匹配度分析和理由。
  • 角色适应性分析: 评估单个球员对特定战术角色和比赛风格的适应程度,提供量化分数和能力细分。
  • 相似球员推荐: 基于统计数据百分位数向量,为目标球员推荐最相似的K个球员。
  • 表现趋势观察: 识别球员在最近几个赛季中表现提升或下降的趋势。
  • 被低估的创造者: 发现那些传球和带球推进能力强,但进球助攻数据不显眼的潜力创造型球员。
  • 纯风格适配搜索: 仅根据球员与特定比赛风格(控球、攻防转换、高位逼抢、直接进攻)的匹配度进行排名。
  • 多角色候选: 寻找能同时适应两种战术角色的球员。
  • 位置转换潜力: 发现当前位置不符,但其能力模型适合特定新角色的球员。
  • 阵容构建助理: 根据指定的比赛风格和年龄策略,构建一支推荐阵容。
  • 球员职业生涯概览: 提供球员最近赛季、最佳赛季、职业生涯平均或所有赛季的统计数据及表现趋势分析。
  • 资源访问: 提供对球探角色配置文件、战术风格倍率、数据字典等背景知识资源的访问,帮助LLM更好地理解数据和生成报告。

安装步骤

  1. 克隆仓库: 打开您的终端或命令行工具,执行以下命令克隆项目仓库:
    git clone https://github.com/subbylad/mcp-soccer.git
    cd mcp-soccer
  2. 安装Python依赖: 项目依赖于 'pandas' 和 'soccerdata' 等Python库。请确保您的Python环境已安装 'pip',然后执行:
    pip install -r requirements.txt
  3. 收集足球数据: 首次运行服务器前,您需要收集足球数据。执行数据收集脚本以下载并处理来自FBref的球员数据。这一步可能需要一些时间,因为它会从多个欧洲联赛和赛季抓取大量数据。
    python fbref_data_collector.py
    您可以通过设置环境变量 'SOCCER_COLLECTOR_LOG_LEVEL' (例如 'DEBUG', 'INFO') 或在命令中添加 '--log-level INFO' 来调整数据收集脚本的日志级别。
  4. 启动MCP服务器: 数据收集完成后,您就可以启动MCP服务器了。执行:
    python soccer_server.py
    服务器启动后,会通过标准输入/输出 (Stdio) 接口等待MCP客户端的连接。您可以设置环境变量 'SOCCER_MCP_LOG_LEVEL' (例如 'DEBUG', 'INFO', 'WARNING', 'ERROR') 来调整服务器的日志输出级别。

服务器配置(为MCP客户端准备)

要将此MCP服务器与您的MCP客户端(例如Claude Desktop)连接,您需要将以下配置添加到客户端的配置文件(通常是 'claude_desktop_config.json')中。请根据您的实际安装路径调整 'command' 和 'cwd' 字段。

{
  "mcpServers": {
    "soccer-data": {  // 为您的MCP服务器起一个唯一的名称,例如 "soccer-data"
      "command": "python", // 启动服务器的命令,这里是Python解释器
      "args": ["/path/to/mcp-soccer/soccer_server.py"], // 传递给Python解释器的脚本路径,请替换为您的实际路径
      "cwd": "/path/to/mcp-soccer/" // 服务器的工作目录,确保脚本能找到数据文件,请替换为您的实际路径
    }
  }
}

基本使用方法

一旦MCP客户端配置并成功连接到服务器,您可以通过客户端向服务器发送自然语言请求,服务器将调用其内部工具来处理您的请求。以下是一些示例查询,您可以尝试在LLM客户端中提出:

  • 查找球员: "查找所有英超20-25岁的防守型中场,每90分钟铲抢次数超过2次的球员。"
  • 比较球员: "对比Pedri、Bellingham和Gavi的关键数据。"
  • 生成报告: "为Erling Haaland生成一份详细的球探报告。"
  • 查看联赛榜首: "显示西甲联赛排名前10的射手。"
  • 发现人才: "发现适合‘控球’风格的‘左后卫’角色,年龄不超过24岁的潜力球员。"

信息

分类

AI与计算