项目简介
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://' 资源。
安装步骤
- 安装 Prerequisites: 确保已安装 Python 3.9+、Docker 和 uv。
- 克隆仓库:
git clone https://github.com/tomconte/codebox-ai.git cd codebox-ai - 安装依赖: 使用 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 可以通过容器内的相同路径访问主机文件。
注意: 配置文件中的路径必须使用绝对路径。
基本使用方法
-
启动 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
- 独立 MCP 服务器 (用于 MCP 客户端或 Claude Desktop):
-
配置 MCP 客户端: 根据 MCP 客户端(例如 Claude Desktop)的要求,配置服务器连接信息,通常需要提供服务器启动命令和参数,参考上面的 服务器配置 部分。
-
在 MCP 客户端中使用: 配置完成后,MCP 客户端应该能够检测到 CodeBox-AI MCP 服务器,并允许用户通过客户端调用 'execute_code' 工具执行 Python 代码,以及访问 'session://' 和 'sessions://' 资源获取会话信息。
信息
分类
AI与计算