项目简介

这是一个基于 Model Context Protocol (MCP) 和 FastMCP 框架构建的 MCP 服务器,专注于提供美国职业篮球联赛 (NBA) 的相关数据。它集成了官方的 NBA API,能够为大型语言模型 (LLM) 客户端提供丰富的上下文信息和功能调用能力,包括获取实时比分、查询球员生涯数据、查看联盟排行榜、获取比赛 Play-by-Play 等。

主要功能点

  • 实时数据: 提供当前进行中或即将开始的比赛的实时比分、状态和简要信息。
  • 历史数据: 访问过去比赛的详细数据、球员和球队的生涯统计信息以及历史赛季的联盟排行榜。
  • 比赛详情: 获取特定比赛的详细 Play-by-Play 记录和赛况快照。
  • 灵活查询: 支持按球员姓名、球队名称、日期、赛季等多种条件进行数据查询。
  • 标准化接口: 通过 MCP 标准协议 (JSON-RPC over Stdio/SSE/WebSocket) 与 LLM 客户端集成。

安装步骤

  1. 安装 Python 环境: 确保你的系统安装了 Python 3.10 或更高版本。推荐使用虚拟环境。
  2. 克隆仓库:
    git clone https://github.com/ghadfield32/nba_mcp.git
    cd nba_mcp
  3. 安装依赖: 推荐使用 'uv' 工具进行安装(如果未安装 'uv',请先 'pip install uv')。
    # 创建并激活虚拟环境 (可选,但强烈推荐)
    uv venv .venv
    source .venv/bin/activate  # macOS/Linux
    # 或 .\ .venv\Scripts\activate # Windows
    
    # 安装项目依赖
    uv pip install -r requirements.txt

服务器配置

MCP 服务器通常由 MCP 客户端负责启动和管理。你需要将 NBA MCP 服务器的启动命令配置到你的 MCP 客户端中(例如,配置文件的 'mcpServers' 部分)。

以下是一个示例配置结构(具体的键名和格式取决于你的 MCP 客户端实现):

配置项名称: 'nba_mcp_local_sse' (这是一个自定义的名称,你可以根据需要修改)

  • 'command': 'python' (指定用于运行服务器的程序)
  • 'args': (传递给 'command' 的参数列表)
    • '-m': 'nba_mcp' (将 'nba_mcp' 作为模块运行)
    • '--mode': 'local' (设置服务器运行模式为 'local',通常绑定到本地的 8001 端口。你也可以使用 'claude' 模式绑定到 8000 端口)
    • '--transport': 'sse' (指定服务器与客户端通信使用的传输协议,这里使用 Server-Sent Events。其他选项包括 'stdio' 或 'websocket')

请参考你的 MCP 客户端文档,将上述信息填入相应的配置位置。

基本使用方法

成功安装并配置到你的 MCP 客户端后,连接到该客户端的 LLM 将能够感知并调用 NBA MCP 服务器提供的工具(Tools)。

LLM 可以通过发起工具调用请求来获取 NBA 数据,例如:

  • 询问联盟助攻王:LLM 可能调用 'get_league_leaders_info' 工具,参数为 'season='current', stat_category='AST', per_mode='PerGame''。
  • 查询特定球员生涯数据:LLM 可能调用 'get_player_career_information' 工具,参数为 'player_name='LeBron James', season='all''。
  • 获取今天的比赛比分:LLM 可能调用 'get_live_scores' 工具,无需参数或参数为 'target_date='today''。
  • 获取特定比赛的 Play-by-Play:LLM 可能调用 'play_by_play' 工具,参数可能包含 'game_date='YYYY-MM-DD', team='TeamName''。

LLM 客户端会解析你的自然语言请求,并根据可用的 MCP 工具定义(服务器在连接时会向客户端声明这些能力)自动生成工具调用请求。服务器执行工具并将结果返回给 LLM 客户端,LLM 再根据结果生成最终回复。

信息

分类

数据库与文件