MCP Code Sandbox Server
一个可扩展的消息通信协议服务器,可在隔离的沙箱环境中提供安全的代码执行能力,并与 Claude for Desktop 和其他 MCP 客户端兼容。
README
MCP 代码沙箱服务器
一个可扩展的消息通信协议 (MCP) 服务器,可在隔离的沙箱环境中提供安全的代码执行能力。此服务器遵循 MCP 标准,使其与 Claude for Desktop 和其他 MCP 客户端兼容。
特性
- 为代码执行创建隔离的沙箱环境
- 安全地执行 Python 代码
- 执行文件操作(列出、读取、写入)
- 在沙箱中安装 Python 包
- 具有抽象代码解释器接口的可扩展架构
- 具有清晰关注点分离的模块化设计
架构
该服务器采用模块化、可扩展的架构构建:
核心组件
- 抽象解释器接口:允许集成不同的代码执行后端
- 沙箱管理:用于创建和管理沙箱环境的工具
- 代码执行:用于运行代码和安装包的工具
- 文件操作:用于管理沙箱内文件的工具
项目结构
├── src/
│ └── sandbox/
│ ├── __pycache__/
│ ├── e2b/
│ │ ├── __pycache__/
│ │ ├── __init__.py
│ │ ├── e2b_file_interface.py
│ │ └── e2b_interpreter.py
│ ├── __init__.py
│ ├── code_interpreter.py
│ ├── file_interface.py
│ └── interpreter_factory.py
├── tools/
│ ├── __pycache__/
│ ├── __init__.py
│ ├── code_execution_tools.py
│ ├── file_tools.py
│ └── sandbox_tools.py
├── main.py
├── .env
├── .gitignore
├── .python-version
├── pyproject.toml
├── README.md
└── uv.lock
前提条件
- Python 3.10 或更高版本
- E2B API 密钥(对于默认的 E2B 解释器)
安装
-
克隆此存储库:
git clone https://github.com/yourusername/mcp-code-sandbox.git cd mcp-code-sandbox -
设置虚拟环境:
# 使用 venv python -m venv venv source venv/bin/activate # 在 Windows 上:venv\Scripts\activate # 或者使用 uv (推荐) uv init uv venv source .venv/bin/activate # 在 Windows 上:.venv\Scripts\activate -
安装所需的包:
# 使用 pip pip install fastmcp python-dotenv e2b-code-interpreter # 或者使用 uv uv add fastmcp python-dotenv e2b-code-interpreter -
配置环境变量:
# 创建一个包含以下变量的 .env 文件 E2B_API_KEY=your_e2b_api_key_here INTERPRETER_TYPE=e2b # 默认,可以更改为其他已实现的解释器
用法
独立运行服务器
您可以直接从命令行运行服务器:
python main.py
这将使用 stdio 传输启动服务器,使其与 Claude for Desktop 兼容。
与 Claude for Desktop 一起使用
-
确保您已安装最新版本的 Claude for Desktop
-
打开您的 Claude for Desktop 配置文件:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
- macOS:
-
添加您的代码沙箱服务器配置:
{ "mcpServers": { "code-sandbox": { "command": "python", "args": [ "/ABSOLUTE/PATH/TO/main.py" ] } } }或者,如果您使用
uv:{ "mcpServers": { "code-sandbox": { "command": "uv", "args": [ "--directory", "/ABSOLUTE/PATH/TO/PROJECT_DIRECTORY", "run", "main.py" ] } } } -
保存文件并重启 Claude for Desktop
可用工具
服务器提供以下工具:
沙箱管理
- create_sandbox: 创建一个新的沙箱环境
- close_sandbox: 关闭并清理沙箱
- get_sandbox_status: 检查沙箱的状态
代码执行
- execute_code: 在沙箱中运行 Python 代码
- install_package: 安装一个 Python 包
- create_run_close: 一体化工具,用于创建沙箱、运行代码和清理
文件操作
- list_files: 列出沙箱中的文件
- read_file: 读取文件的内容
- write_file: 将内容写入文件
- upload_file: 将文件上传到沙箱
使用新解释器扩展
该系统设计为可扩展的。要添加新的代码解释器:
- 在
src/sandbox/下为您的解释器实现创建一个新目录 - 实现
src/sandbox/code_interpreter.py和src/sandbox/file_interface.py中定义的接口 - 将新的解释器类型添加到
src/sandbox/interpreter_factory.py - 将环境变量
INTERPRETER_TYPE配置为您的新解释器
实现新解释器的示例:
# src/sandbox/my_backend/my_interpreter.py
from src.sandbox.code_interpreter import CodeInterpreter, ExecutionResult
from src.sandbox.file_interface import FileInterface
class MyFileInterface(FileInterface):
# 实现所需的方法
class MyInterpreter(CodeInterpreter):
# 实现所需的方法
# 更新 src/sandbox/interpreter_factory.py 以包含您的新解释器
模块描述
沙箱核心 (src/sandbox/)
code_interpreter.py: 代码解释器的抽象基类file_interface.py: 文件操作的抽象接口interpreter_factory.py: 用于创建代码解释器实例的工厂
E2B 实现 (src/sandbox/e2b/)
e2b_interpreter.py: 代码解释器的 E2B 实现e2b_file_interface.py: 文件操作的 E2B 实现
工具 (tools/)
sandbox_tools.py: 用于沙箱管理的工具code_execution_tools.py: 用于代码执行的工具file_tools.py: 用于文件操作的工具
主应用程序
main.py: 主应用程序入口点
故障排除
如果您遇到问题:
- 确保您拥有所选解释器的正确 API 密钥
- 检查日志以获取详细的错误消息
- 验证是否已安装所有必需的包
- 确保 Claude for Desktop 配置了脚本的正确路径
安全注意事项
- 代码执行发生在沙箱环境中以确保安全
- 请勿使用此服务器在生产环境中执行不受信任的代码
- 该服务器目前未实现身份验证 - 仅应在受信任的环境中使用
许可证
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。