项目简介

HPCGPT 是一个基于 Opencode 代理构建的命令行工具 (CLI),它集成了多个 Model Context Protocol (MCP) 服务器,旨在为高性能计算 (HPC) 环境提供智能化的辅助功能。这些服务器通过 MCP 协议向大型语言模型 (LLM) 客户端提供特定领域的上下文信息和工具,例如查询 Slurm 集群状态、管理作业,以及从Delta/Delta AI文档中获取信息。

主要功能点

HPCGPT 集成了多个 MCP 服务器,提供以下核心功能:

  • Slurm 集成 (通过 'slurm-mcp-server'):
    • 账户查询: 获取当前用户的 Slurm 账户信息。
    • 节点/分区状态: 检查 Slurm 计算节点的可用性和分区详情。
    • 作业管理: 查询用户当前正在运行的 Slurm 作业及其详细信息。
  • 文档智能问答 (通过 'illinois-chat-server'):
    • Delta 文档查询: 从 Delta HPC 系统的官方文档中回答相关问题。
    • Delta AI 文档查询: 从 Delta AI 系统的官方文档中回答相关问题。
  • Atlassian 集成 (通过 'atlassian-mcp-server',容器化):
    • 与 Jira 和 Confluence 进行交互,实现工单管理和文档操作。(注意:此功能依赖于独立的 Atlassian MCP 项目,并需要特定的容器化环境。)
  • 支持报告 (通过 'report-server'):
    • 生成并发送包含会话上下文和系统信息的精简支持报告给 Delta 支持团队。

安装步骤

HPCGPT 是一个 Opencode 代理的扩展,因此首先需要安装 Opencode 客户端。

  1. 安装 Opencode 客户端: 在您的终端中运行以下命令:

    curl -fsSL https://opencode.ai/install | bash
  2. 克隆 HPCGPT 仓库:

    git clone https://github.com/Center-for-AI-Innovation/hpcgpt-cli.git
    cd hpcgpt-cli
  3. 配置 Opencode 使用 HPCGPT 仓库的配置: 设置 'OPENCODE_CONFIG' 环境变量指向本仓库的 'opencode.jsonc' 文件(请将 '/absolute/path/to/this/repo' 替换为实际路径):

    export OPENCODE_CONFIG=/absolute/path/to/this/repo/opencode.jsonc
  4. 运行 Opencode:

    opencode

    Opencode 客户端将根据 'opencode.jsonc' 中的配置自动启动 MCP 服务器。

  5. 可选:手动设置本地 MCP 服务器 (如果 Opencode 未自动启动或需调试): 对于 'mcp_servers' 目录下的每个 MCP 服务器(例如 'slurm_mcp_server' 或 'illinois_chat_server'),您需要先安装 Bun 或 Node.js 环境。然后进入对应的服务器目录,执行:

    cd hpcgpt/mcp_servers/slurm_mcp_server # 或 illinois_chat_server
    bun install
    bun run build
    bun run start

    请注意,'illinois-chat-server' 还需要一个环境变量 'ILLINOIS_CHAT_API_KEY' 才能正常工作。

服务器配置

MCP 客户端(如 Opencode)通过 JSON 格式配置来启动和连接 MCP 服务器。以下是 'hpcgpt-cli' 中 'opencode.jsonc' 文件中 MCP 服务器配置的关键部分,您可以参考此格式来配置任何兼容的 MCP 客户端:

{
  // ... 其他 Opencode 配置
  "mcp": [
    {
      "name": "slurm-mcp-server", // MCP 服务器的名称,用于客户端识别和调用
      "command": "bun",             // 启动 MCP 服务器的可执行命令
      "args": ["run", "start"],     // 传递给启动命令的参数
      "cwd": "hpcgpt/mcp_servers/slurm_mcp_server" // MCP 服务器的运行目录
    },
    {
      "name": "illinois-chat-server", // Illinois Chat MCP 服务器的名称
      "command": "bun",                // 启动命令
      "args": ["run", "start"],        // 启动参数
      "cwd": "hpcgpt/mcp_servers/illinois_chat_server" // Illinois Chat 服务器的运行目录
    }
    // ... 其他 MCP 服务器配置,如 report-server, atlassian-mcp-server
  ]
}

环境变量:

  • 'ILLINOIS_CHAT_API_KEY': 运行 'illinois-chat-server' 必需,用于访问 Illinois Chat API。请在运行 'opencode' 之前设置此环境变量。
    export ILLINOIS_CHAT_API_KEY="您的API密钥"
  • 其他环境变量请参考仓库中的 'example.env' 和 'example.env.atlassian' 文件。

基本使用方法

启动 'opencode' 后,您将进入一个交互式终端用户界面 (TUI)。选择一个模型(例如 'ncsahosted/Qwen/Qwen3-VL-32B-Instruct'),然后向助手提问,它将利用配置好的 MCP 服务器提供的工具来回答或执行操作。

  • 查询 Slurm 状态: 提问:“检查 Delta GPU 分区和我的运行作业。” 助手将通过 'slurm-mcp-server' 调用 'sinfo' 和 'squeue' 工具来获取信息。

  • 查询 Delta/Delta AI 文档: 提问:“如何在 Delta 上提交 Slurm 作业?” 助手将通过 'illinois-chat-server' 调用 'delta-docs' 工具,并返回 Delta 文档中相关问题的答案。

  • 发送支持报告: 在 Opencode TUI 中运行 'report' 命令。 这将使用 'report-server' 提供的 'send_support_report' 工具,向 Delta 支持团队发送一份简洁的支持报告。

信息

分类

AI与计算