项目简介

本项目是一个基于 Model Context Protocol (MCP) 实现的服务器应用,专为大语言模型 (LLM) 客户端设计。它充当 LLM 与基石智算云平台之间的桥梁,通过标准化的 MCP 接口,允许 LLM 访问用户在基石智算平台上的各种资源(如容器、文件系统、训练任务、推理服务)并执行相关操作(通过工具调用)。

主要功能点

  • 云资源信息查询: LLM 可以通过调用预设的工具,查询用户在基石智算平台上的容器实例、EPFS 文件系统、分布式训练任务和推理服务等信息。
  • 服务日志获取: LLM 可以获取特定分布式训练任务或推理服务的详细日志。
  • 工具调用: 封装了对基石智算平台 API 的访问,LLM 可以直接调用这些工具来获取或处理云资源信息。
  • MCP 标准通信: 使用 JSON-RPC 协议,并通过 Stdio 等传输方式与 LLM 客户端进行通信,符合 MCP 规范。
  • 插件式架构: 易于扩展,可以通过添加新的插件来集成更多基石智算平台的功能或第三方服务。

安装步骤

本项目推荐使用 'uv' 包管理器进行安装和运行。请确保您的系统已安装 Python 和 'uv'。

  1. 从 GitHub 克隆仓库 (可选,如果不在Cherry Studio中使用 uvx):

    git clone https://github.com/coreshub/mcp-server-coreshub.git
    cd mcp-server-coreshub
  2. 安装依赖: 本项目没有提供 'requirements.txt',但依赖于 'uv' 的特性以及导入的项目内部模块和第三方库(如 'requests', 'mcp')。通常在 Cherry Studio 等 MCP 客户端中,会使用 'uvx' 命令自动处理依赖。如果在本地命令行运行,可能需要先安装 uv 和 mcp 库。

服务器配置

MCP 服务器通常由 MCP 客户端(如 Cherry Studio)启动和管理。客户端需要配置如何启动这个服务器进程。以下是 MCP 客户端中常见的配置方式(通常是 JSON 格式),您需要根据您使用的 MCP 客户端进行调整:

{
  "mcpServers": {
    "my-coreshub-server": { // 您为该服务器配置取的名字
      "type": "stdio",     // 通信协议类型,这里使用标准输入输出
      // 以下是启动服务器进程的命令和参数
      "command": "uvx",    // 或根据您的uv安装方式填写uv可执行文件路径或sh/cmd
      "args": [
        "--from", "git+https://github.com/coreshub/mcp-server-coreshub", // 使用 uvx 从 git 仓库安装并运行
        "coreshub-mcp-server" // 项目的入口点名称,uvx会查找并运行
        // 如果是从本地路径运行,args可能是:
        // "-c", "cd /path/to/your/local/repo && uv run src/coreshub_mcp_server" // 使用 sh/cmd 切换目录并运行
      ],
      // 必需的环境变量配置,用于认证基石智算平台API
      "env": {
        "QY_ACCESS_KEY_ID": "您的基石智算Access Key ID",
        "QY_SECRET_ACCESS_KEY": "您的基石智算Secret Access Key",
        "CORESHUB_USER_ID": "您的基石智算账户ID"
      }
    }
  }
}

注意: 请将 '您的基石智算Access Key ID', '您的基石智算Secret Access Key', '您的基石智算账户ID' 替换为您在基石智算平台获取的真实凭证信息。

基本使用方法

配置完成后,启动您的 MCP 客户端。客户端会自动根据配置启动该 MCP 服务器。

一旦服务器成功启动,LLM 客户端即可:

  1. 发现能力: LLM 客户端会向服务器请求可用的工具 ('mcp/list_tools') 和提示 ('mcp/list_prompts') 列表及其描述。
  2. 调用工具: LLM 可以根据用户需求,选择合适的工具 ('mcp/call_tool'),构建调用参数,并发送给服务器执行。服务器会调用对应的后端逻辑(如查询基石智算 API),并将结果返回给 LLM 客户端。
  3. 获取提示: LLM 可以获取预定义的提示模板 ('mcp/get_prompt'),这些模板可能包含用于特定交互模式的结构化信息。

例如,用户可以通过 LLM 提问“我的容器列表有哪些?”,LLM 客户端可能会调用服务器提供的 'get_container_info' 工具,服务器执行后返回容器列表信息,再由 LLM 总结后呈现给用户。

信息

分类

AI与计算