使用说明

项目简介

opendota-mcp-server 是一个基于 Model Context Protocol (MCP) 的服务器实现,它允许大型语言模型 (LLM) 和 AI 助手通过标准化的接口访问 OpenDota API 的数据。通过此服务器,LLM 可以获取 Dota 2 游戏的实时统计数据、比赛信息、选手资料等,从而增强 LLM 在 Dota 2 领域的应用能力,例如辅助玩家分析战况、查询选手信息、定制游戏策略等。

主要功能点

  • 玩家数据查询: 获取玩家个人资料、比赛历史、胜负记录、英雄数据、队友信息、总 статистика、排名等。
  • 比赛数据查询: 检索详细的比赛数据,包括比赛时长、参与玩家、队伍得分、胜负结果、英雄选择、选手 KDA 等。
  • 英雄数据查询: 查询 Dota 2 英雄的各项统计数据,包括胜率、出场率、禁用率,以及不同分段的英雄表现。
  • 职业选手和比赛: 获取职业选手列表、职业比赛信息,追踪赛事动态。
  • 队伍信息: 查询 Dota 2 战队信息,包括战队成员、战绩等。
  • 关键词搜索: 支持通过关键词搜索玩家信息。

安装步骤

  1. 克隆仓库

    git clone https://github.com/asusevski/opendota-mcp-server.git
    cd opendota-mcp-server
  2. 安装依赖 推荐使用 'uv' 包管理器进行安装,根据仓库 'README.md' 描述,可以提高安装速度和效率。

    uv add pyproject.toml
    uv pip install -e ".[dev]" # 安装开发依赖,如果仅运行server可以跳过 ".[dev]"

    如果您的环境没有 'uv',也可以使用 'pip' (不推荐):

    pip install -r requirements_dev.txt # 安装开发依赖,如果仅运行server可以替换为 requirements.txt
  3. 配置 OpenDota API Key (可选但推荐) 为了避免API请求频率限制,建议在 OpenDota 官网 申请 API Key,并将其设置为环境变量。

    export OPENDOTA_API_KEY=YOUR_API_KEY

服务器配置

MCP 客户端 (例如 Claude Desktop) 需要配置 MCP 服务器的启动命令才能连接。以下是 'claude_desktop_config.json' 的配置示例,请根据您的实际环境进行调整。

{
  "mcpServers": {
    "opendota": {
      "command": "python",
      "args": [
        "-m",
        "src.opendota_server.server"
      ]
    }
  }
}

配置参数说明:

  • '"opendota"': 服务器名称,可以自定义,在客户端中用于标识该服务器。
  • '"command"': 运行 MCP 服务器的命令。 这里设置为 '"python"',假设您的 Python 环境已配置到系统 PATH 环境变量中。如果您的 Python 解释器路径不同,请替换为 Python 解释器的完整路径。
  • '"args"': 传递给 'command' 的参数列表
    • '"-m"': Python 的 '-m' 参数用于将模块作为脚本运行。
    • '"src.opendota_server.server"': 指定要运行的模块为 'src.opendota_server.server',即 MCP 服务器的入口文件。

如果您在 WSL (Windows Subsystem for Linux) 环境中使用 Claude Desktop,可以参考以下配置:

{
  "mcpServers": {
    "opendota": {
      "command": "wsl.exe",
      "args": [
        "--",
        "bash",
        "-c",
        "cd ~/opendota-mcp-server && source .venv/bin/activate && python src/opendota_server/server.py"
      ]
    }
  }
}

WSL 配置参数说明:

  • '"command"': 设置为 '"wsl.exe"',表示在 WSL 环境中执行命令。
  • '"args"': 参数列表,用于在 WSL Bash shell 中启动服务器。
    • '"--"': 分隔 'wsl.exe' 命令和 Bash 命令。
    • '"bash"': 指定在 WSL 中使用的 shell 为 Bash。
    • '"-c"': Bash 的 '-c' 参数用于执行字符串命令。
    • '"cd ~/opendota-mcp-server && source .venv/bin/activate && python src/opendota_server/server.py"': 在 WSL Bash 中执行的完整命令字符串
      • '"cd ~/opendota-mcp-server"': 切换到仓库根目录(假设您已将仓库克隆到 WSL 的 '~' 目录下)。请根据您的实际仓库路径进行调整。
      • '"source .venv/bin/activate"': 激活 Python 虚拟环境 (如果使用虚拟环境)。请确保您已在 WSL 环境中创建并配置了虚拟环境。如果未使用虚拟环境,请移除此部分。
      • '"python src/opendota_server/server.py"': 运行 MCP 服务器脚本。

基本使用方法

  1. 启动 MCP 服务器 在仓库根目录下,使用以下命令启动服务器:

    python -m src.opendota_server.server

    uv run src.opendota_server.server # 如果使用 uv

    服务器默认使用 'stdio' 传输协议,并在终端输出日志信息。

  2. 配置 MCP 客户端 根据您使用的 MCP 客户端 (例如 Claude Desktop) 的文档,配置 MCP 服务器连接信息,主要是指定服务器名称和启动命令 (command) 及其参数 (args),参考 服务器配置 章节。

  3. 在 MCP 客户端中使用工具 成功连接 MCP 服务器后,您可以在 MCP 客户端中调用服务器提供的工具来查询 Dota 2 数据。例如,在 Claude 中,您可以指示 Claude 使用 'opendota' 服务器提供的 'get_player_by_id' 工具来查询玩家信息。

    示例工具调用 (非代码,仅为演示):

    @opendota/get_player_by_id(account_id=123456789)

    具体的工具调用方式和参数请参考 MCP 客户端的文档,并结合仓库 'src/opendota_server/server.py' 文件中定义的工具函数签名和参数说明进行使用。

客户端示例

仓库 'src/client.py' 提供了一个简单的 Python 客户端示例,演示了如何连接到 MCP 服务器并调用工具。您可以参考该示例了解如何通过代码与 MCP 服务器交互。

运行客户端示例:

python -m src.client

注意: 客户端示例需要服务器先运行起来。

信息

分类

网页与API