项目简介

CodeBox-AI 是一个基于 FastAPI 和 IPython kernel 构建的安全 Python 代码执行服务,它实现了 Model Context Protocol (MCP) 服务器,可以作为 OpenAI Code Interpreter 或 Anthropic Claude analysis tool 的自托管替代方案。通过 MCP 协议,CodeBox-AI 可以与支持 MCP 协议的 LLM 客户端(如 Claude Desktop)无缝集成,为 LLM 应用提供安全、可扩展的代码执行能力。

主要功能点

  • 安全的代码执行环境: 使用 Docker 容器隔离执行 Python 代码,保障主机安全。
  • 会话管理: 支持基于会话的代码执行,保持会话状态,变量和导入在多次执行之间持久化。
  • 动态包安装: 允许在会话中动态安装 Python 包,并提供白名单/黑名单机制进行安全控制。
  • 文件系统访问控制: 支持将主机目录挂载到容器中,并可配置只读或读写权限,安全地访问外部数据。
  • MCP 协议支持: 实现了 MCP 服务器,可以通过标准化的 MCP 协议与 LLM 客户端交互,提供 'execute_code' 工具和 'session://'、'sessions://' 资源。

安装步骤

  1. 安装 Prerequisites: 确保已安装 Python 3.9+、Docker 和 uv
  2. 克隆仓库:
    git clone https://github.com/tomconte/codebox-ai.git
    cd codebox-ai
  3. 安装依赖: 使用 uv 安装项目依赖。
    uv sync

服务器配置

对于支持 MCP 协议的客户端(例如 Claude Desktop),需要配置 MCP 服务器的连接信息。以下是 Claude Desktop 的 'claude_desktop_config.json' 配置文件示例,展示了如何配置 CodeBox-AI MCP 服务器:

{
  "mcpServers": {
    "CodeBox-AI": {
      "command": "uv",
      "args": [
        "run",
        "--project",
        "/path/to/codebox-ai",  // 请替换为 codebox-ai 仓库的绝对路径
        "/path/to/codebox-ai/mcp_server.py", // 请替换为 mcp_server.py 文件的绝对路径
        "--mount",
        "/path/to/your/downloads" // 可选:挂载主机目录到容器,请替换为主机目录的绝对路径
      ]
    }
  }
}

配置参数说明:

  • server name: 服务器名称,例如 "CodeBox-AI",在客户端中用于标识服务器。
  • command: 启动服务器的命令,这里使用 'uv' 运行 'mcp_server.py' 文件。
  • args: 启动命令的参数列表:
    • '"run"': 'uv run' 命令。
    • '"--project"': 指定项目路径,指向 'codebox-ai' 仓库的根目录。请务必替换为实际的绝对路径。
    • '"/path/to/codebox-ai/mcp_server.py"': 指定 MCP 服务器入口文件。请务必替换为 'mcp_server.py' 文件的绝对路径。
    • '"--mount"' (可选): 挂载主机目录到 Docker 容器中,例如挂载 Downloads 目录。请务必替换为主机上需要挂载的目录的绝对路径,如果不需要挂载可以移除此参数。 挂载目录后,LLM 可以通过容器内的相同路径访问主机文件。

注意: 配置文件中的路径必须使用绝对路径

基本使用方法

  1. 启动 MCP 服务器: 在仓库根目录下,根据需要选择以下命令启动 MCP 服务器:

    • 独立 MCP 服务器 (用于 MCP 客户端或 Claude Desktop):
      uv run mcp dev mcp_server.py
    • 注册到 Claude Desktop:
      uv run mcp install mcp_server.py --name "CodeBox-AI"
    • 组合 FastAPI + MCP 服务器:
      python run.py
    • 仅 MCP 服务器:
      python run.py --mode mcp
  2. 配置 MCP 客户端: 根据 MCP 客户端(例如 Claude Desktop)的要求,配置服务器连接信息,通常需要提供服务器启动命令和参数,参考上面的 服务器配置 部分。

  3. 在 MCP 客户端中使用: 配置完成后,MCP 客户端应该能够检测到 CodeBox-AI MCP 服务器,并允许用户通过客户端调用 'execute_code' 工具执行 Python 代码,以及访问 'session://' 和 'sessions://' 资源获取会话信息。

信息

分类

AI与计算