项目简介

'iRacing Data MCP Server' 是一个基于 Node.js 实现的 Model Context Protocol (MCP) 服务器,它将著名的 iRacing 赛车模拟游戏的数据 API 封装成可供 AI 助手调用的服务。无论是需要查询车手资料、团队信息、职业生涯统计还是赛季回顾,这款服务器都能提供实时、类型安全的数据访问。它既可以作为独立的命令行工具使用,也能无缝集成到各种 AI 助手中,如 Claude Desktop 或 ChatGPT。

主要功能点

  • AI 助手集成: 允许 Claude, ChatGPT 等 AI 助手直接调用 iRacing 赛车数据。
  • 实时数据访问: 提供 iRacing 综合赛车数据的实时查询能力,确保获取最新信息。
  • 自动化认证: 自动处理 iRacing 账户的登录和会话管理,无需手动干预。
  • 类型安全操作: 基于 TypeScript 和 Zod 确保数据操作的类型安全和参数校验。
  • 丰富的查询能力: 支持查询成员档案、团队信息、职业生涯统计、赛季回顾、车手查找等多种数据。
  • 双重接口: 可作为 MCP 服务器供 AI 助手使用,也可作为命令行工具直接进行数据查询和自动化。

安装步骤

  1. 环境要求: 请确保您的系统安装了 Node.js (推荐 24+ 版本) 和 npm 包管理器。

  2. 获取代码: 首先,通过 Git 克隆该仓库到您的本地计算机,并进入项目目录:

    git clone https://github.com/emilioSp/iracing-data-mcp-server.git
    cd iracing-data-mcp-server
  3. 安装依赖: 在项目目录中,运行以下命令安装所有必需的 Node.js 依赖:

    npm install
  4. 配置认证信息: 在项目根目录创建一个名为 '.env' 的文件,并填入您的 iRacing 账户信息。这些信息用于服务器与 iRacing API 进行认证。

    # 必需: 存储认证 Cookie 的文件路径
    COOKIE_JAR=./cookies.txt
    
    # 必需: 您的 iRacing 账户邮箱
    [email protected]
    
    # 选项 1: 使用您的 iRacing 密码 (不推荐)
    # PASSWORD=your_password
    
    # 选项 2 (推荐): 使用预生成的 API 密钥 (安全性更高)
    API_KEY=your_api_key_here

    温馨提示: 为了提高安全性,强烈建议使用 API 密钥而非直接暴露密码。您可以通过以下 Node.js 代码生成 API 密钥:

    const crypto = require('crypto');
    const email = '[email protected]'; // 替换为您的 iRacing 账户邮箱
    const password = 'your_password'; // 替换为您的 iRacing 账户密码
    const apiKey = crypto.createHash('sha256')
      .update(password + email)
      .digest('base64');
    console.log(apiKey); // 将输出的 API 密钥粘贴到 .env 文件中
  5. 首次认证: 在您第一次使用前,需要运行一次登录命令以生成认证 Cookie 文件(由 'COOKIE_JAR' 指定的路径):

    npm run login

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

要将此 MCP 服务器与 LLM 客户端(如 Claude Desktop)集成,请将其配置信息添加到您的 MCP 客户端设置文件中。以下是一个示例(适用于 macOS 上的 Claude Desktop 的 '~/Library/Application Support/Claude/claude_desktop_config.json' 文件):

{
  "mcpServers": {
    "iracing-data-mcp-server": {
      "command": "npx",
      "args": [
        "iracing-data-mcp-server@latest",
        "@modelcontextprotocol/server-filesystem",
        "/path/to/your/cookie-jar-file"
      ],
      "env": {
        "COOKIE_JAR": "/path/to/your/cookie-jar-file",
        "EMAIL": "[email protected]",
        "API_KEY": "your_api_key_here"
      }
    }
  }
}

请注意:

  • '"iracing-data-mcp-server"' 是您为这个 MCP 服务器定义的名称。
  • '"command"' 指令指定了启动服务器的方式,这里是使用 'npx' 运行。
  • '"args"' 数组包含了传递给启动命令的参数,其中 '/path/to/your/cookie-jar-file' 应替换为您实际存储认证 Cookie 的文件路径。
  • '"env"' 对象用于设置 MCP 服务器运行所需的环境变量。请确保 'EMAIL' 和 'API_KEY'(或 'PASSWORD')替换为您自己的 iRacing 账户凭据,并且 'COOKIE_JAR' 路径与您在 '.env' 文件中设置的路径一致。

基本使用方法 (AI 助手通过工具调用)

一旦服务器配置好并连接到您的 AI 助手,AI 助手将能够调用以下工具来获取 iRacing 数据:

  • 'login': 用于重新认证 iRacing 账户,确保会话有效。
  • 'get_members_profile': 获取一个或多个 iRacing 车手的详细档案,包括执照信息和等级。
    • 参数: 'member_ids' (数字数组,必需)
  • 'get_team': 检索指定团队的详细信息和统计数据。
    • 参数: 'team_id' (字符串,必需)
  • 'get_member_recap': 获取车手特定年份或赛季的比赛回顾数据。
    • 参数: 'member_id' (数字,必需), 'year' (数字,可选), 'season' (数字,可选)
  • 'get_member_career': 获取车手的完整职业生涯统计数据和成就。
    • 参数: 'member_id' (数字,必需)
  • 'driver_lookup': 根据车手姓名搜索并查找 iRacing 车手信息。
    • 参数: 'driver_name' (字符串,必需)

信息

分类

网页与API