项目简介

Impect MCP 服务器是一个基于 Model Context Protocol (MCP) 的后端服务,旨在将 Impect 体育分析平台的数据和功能暴露给大型语言模型 (LLM) 客户端。它通过一系列工具(Tools)封装了对 Impect API 的访问,包括获取赛事信息、队伍数据、球员表现指标以及触发数据更新等,使得 LLM 能够理解并利用这些专业的体育数据进行智能交互。

主要功能点

  • 赛事数据查询: 获取特定赛季(Iteration)的比赛列表、队伍信息、球员列表、队伍和球员的 KPI 指标。
  • 单场比赛详情: 查询特定比赛的详细信息、事件、事件 KPI、球员 KPI、球员得分、定位球数据、SkillCorner 帧映射等。
  • 数据概览: 获取所有可用的 KPI、事件 KPI、球员档案、球员得分、队伍得分以及国家信息。
  • 数据更新触发: 支持触发迭代数据、比赛数据、球员数据、帧映射和队伍数据的更新操作,可选择指定更新时间。
  • OAuth2 认证: 安全地通过 OAuth2 协议与 Impect API 进行认证。
  • 请求限流与重试: 内置了简单的请求限流机制和自动重试功能,确保 API 调用的稳定性和可靠性。
  • 多种传输协议: 支持通过标准输入输出 (Stdio) 和服务器发送事件 (SSE/HTTP) 两种方式与 MCP 客户端通信。

安装步骤

  1. 克隆仓库: 将项目代码克隆到您的本地机器。
    git clone https://github.com/tarekmartin/impect-mcp-server.git
    cd impect-mcp-server
  2. 创建虚拟环境并安装依赖:
    python3 -m venv venv
    source venv/bin/activate
    pip install fastmcp httpx
  3. 配置环境变量: 在运行服务器之前,您需要设置 Impect API 的认证凭据。请将 '您的Impect用户名' 和 '您的Impect密码' 替换为您的实际凭据。
    export IMPECT_USERNAME="您的Impect用户名"
    export IMPECT_PASSWORD="您的Impect密码"
    这些环境变量将用于服务器获取 OAuth2 访问令牌。

服务器配置 (供MCP客户端使用)

MCP 客户端(例如 Anthropic Claude 客户端)需要以下 JSON 格式的配置信息来连接并使用 Impect MCP 服务器:

{
  "name": "Impect 体育数据",
  "command": ["python3", "/path/to/impect-mcp-server/src/impect_server.py"],
  "args": [],
  "description": "连接 Impect 体育分析 API 的 MCP 服务器,提供赛事、队伍、球员数据查询及更新功能。",
  "icon": "https://github.com/tarekmartin/impect-mcp-server/raw/main/icon.png",
  "transport": "stdio",
  "host": "0.0.0.0",
  "port": 8000
}

配置参数注释:

  • 'name': 服务器在 MCP 客户端界面上显示友好的名称。
  • 'command': 启动 MCP 服务器的命令和脚本路径。请将 '/path/to/impect-mcp-server/src/impect_server.py' 替换为您本地 'impect_server.py' 文件的实际绝对路径。
  • 'args': 传递给服务器启动脚本的额外命令行参数列表(通常留空)。
  • 'description': 服务器功能的简短描述,帮助用户了解其用途。
  • 'icon': 可选的图标 URL,用于在客户端界面显示此服务器的视觉标识。
  • 'transport': 服务器与客户端通信的协议。
    • '"stdio"':标准输入输出模式,适合本地运行或作为桌面客户端的子进程。
    • '"sse"':服务器发送事件模式,适合部署为 HTTP 服务,允许远程连接。
  • 'host': 仅当 'transport' 设置为 '"sse"' 时需要配置。 MCP 服务器监听的 IP 地址(例如 '0.0.0.0' 表示监听所有可用网络接口)。
  • 'port': 仅当 'transport' 设置为 '"sse"' 时需要配置。 MCP 服务器监听的端口号。

基本使用方法

  1. 启动服务器:

    • Stdio 模式 (本地运行):

      source venv/bin/activate
      python3 src/impect_server.py

      服务器将在标准输入输出上等待 MCP 客户端的连接。适用于本地开发或桌面应用集成。

    • SSE 模式 (作为 HTTP 服务):

      source venv/bin/activate
      export MCP_TRANSPORT="sse"
      export MCP_HOST="0.0.0.0"
      export MCP_PORT="8000"
      python3 src/impect_server.py

      服务器将在 'http://0.0.0.0:8000' 监听。如果部署到公共网络,请确保防火墙允许该端口的入站连接。

  2. 连接 MCP 客户端: 在您的 MCP 兼容客户端(如 Anthropic Claude)中,使用上述提供的 JSON 配置信息添加此服务器。

  3. 通过 LLM 交互: 一旦连接成功,您就可以通过与 LLM 对话来调用这些工具。例如,您可以询问 LLM:“获取所有赛季(iterations)的信息。” LLM 将识别并调用 'get_iterations' 工具来获取数据并提供给您。您还可以提出更具体的问题,如“获取 ID 为 1234 的比赛的球员 KPI”等。

信息

分类

网页与API