项目简介

'mle_kit_mcp' 是一个基于Model Context Protocol (MCP) 构建的服务器,旨在为大型语言模型(LLM)提供丰富的环境交互能力。它通过标准化接口,允许LLM执行多种操作,包括文件管理、系统命令执行、远程GPU资源交互以及集成外部LLM代理服务,从而扩展LLM的应用场景。

主要功能点

  • 本地与远程Bash执行: LLM可以执行沙盒化的本地Bash命令,或在远程GPU实例上执行命令。
  • 文本编辑器: 提供文件查看、创建、写入、追加、插入、字符串替换和撤销编辑等功能。
  • 远程GPU资源管理: 支持启动、管理Vast.ai上的远程GPU实例,并在其上执行命令和传输文件。
  • LLM代理服务: 能够在本地Docker容器或远程GPU实例上启动OpenRouter LLM代理,使LLM能够调用其他外部语言模型。
  • 文件系统操作: 提供文件查找('glob')和内容搜索('grep')功能。

安装步骤

  1. 克隆仓库: 首先,将 'mle_kit_mcp' 仓库克隆到本地。
    git clone https://github.com/IlyaGusev/mle_kit_mcp.git
    cd mle_kit_mcp
  2. 安装依赖: 进入项目目录,使用 'pip' 或 'uv' (推荐) 安装所需的Python依赖。如果未安装 'uv',请先使用 'pip install uv' 安装。
    uv pip install -e .
  3. Docker环境: 本地Bash工具依赖Docker,请确保您的系统已安装并运行Docker服务。
  4. Vast.ai API密钥 (可选): 如果您计划使用远程GPU或远程LLM代理功能,需要在运行服务器的环境变量中设置 'VAST_AI_KEY'。例如,在项目根目录下创建一个 '.env' 文件,并添加 'VAST_AI_KEY=your_vast_ai_api_key'。
  5. OpenRouter API密钥 (可选): 如果您计划使用LLM代理功能,需要在环境变量中设置 'OPENROUTER_API_KEY'。例如,在 '.env' 文件中添加 'OPENROUTER_API_KEY=your_openrouter_api_key'。

服务器配置

该MCP服务器启动后,会监听一个HTTP端口,并通过 'streamable-http' 协议提供服务。MCP客户端(如Claude Desktop或其他兼容的LLM客户端)需要配置以下信息才能连接并使用此服务器提供的功能。请注意,以下配置信息应在您的MCP客户端的设置界面中进行配置,而非直接在代码或命令行中执行。

一个典型的MCP客户端配置示例可能包含以下结构:

{
  "mcpServers": {
      "my_mle_server": { // 自定义的服务器名称,例如 "my_mle_server"
          "url": "http://127.0.0.1:5056/mcp", // MCP服务器的访问地址和路径
          "transport": "streamable-http" // 服务器使用的传输协议
          // 如果您的MCP客户端支持自动启动服务器进程,
          // 您可能还需要提供以下启动参数:
          // "command": "uv",
          // "args": [
          //     "run",
          //     "python",
          //     "-m",
          //     "mle_kit_mcp",
          //     "--host", "127.0.0.1",
          //     "--port", "5056",
          //     "--workspace", "workdir"
          // ]
      }
  }
}
  • 服务器名称 (e.g., 'my_mle_server'): 这是您在MCP客户端中为此服务器指定的唯一标识符,可以根据您的偏好命名。
  • URL ('http://127.0.0.1:5056/mcp'): 这是MCP服务器监听的完整HTTP URL。其中 '127.0.0.1' 是服务器所在的主机IP地址(本地运行则为localhost),'5056' 是服务器监听的端口,'/mcp' 是服务器提供MCP服务的路径。
  • 传输协议 ('streamable-http'): 服务器与客户端通信使用的协议类型。此服务器支持 'streamable-http'。
  • 启动命令和参数 (可选): 如果您的MCP客户端具备在本地自动启动MCP服务器进程的功能,它会需要知道如何执行 'mle_kit_mcp'。'command' 指定了执行器(例如 'uv'),而 'args' 提供了启动脚本及其所需的参数,包括 '--host'(绑定地址)、'--port'(监听端口)和 '--workspace'(工作目录)。

基本使用方法

  1. 启动MCP服务器: 在项目根目录运行以下命令来启动服务器:
    uv run python -m mle_kit_mcp --host 127.0.0.1 --port 5056 --workspace workdir
    这将在 '127.0.0.1:5056' 端口启动服务器,并将 './workdir' 目录作为其工作空间。
  2. 连接MCP客户端: 根据上述“服务器配置”部分,在您的MCP客户端(例如Claude Desktop)中配置 'mle_kit_mcp' 服务器。
  3. LLM交互: 一旦客户端连接成功,您的LLM就可以通过MCP协议调用此服务器提供的工具。例如,LLM可以请求执行Bash命令、编辑文件、启动远程GPU实例或使用LLM代理。
    • 示例 (LLM调用Bash工具): LLM可以调用 'bash' 工具来列出工作目录下的文件: 'bash(command="ls -l")'
    • 示例 (LLM调用文本编辑器): LLM可以调用 'text_editor' 工具来查看 'file.txt' 的内容: 'text_editor(command="view", path="file.txt", show_lines=True)'
    • 示例 (LLM调用远程GPU工具): LLM可以调用 'remote_bash' 工具在远程GPU上执行命令: 'remote_bash(command="nvidia-smi", timeout=120)'

信息

分类

AI与计算