Skip to main content
Glama
chrishayuk

MCP Code Sandbox Server

by chrishayuk

MCP 代码沙盒服务器

一个可扩展的消息通信协议 (MCP) 服务器,可在隔离的沙盒环境中提供安全的代码执行功能。此服务器遵循 MCP 标准,因此与 Claude for Desktop 和其他 MCP 客户端兼容。

特征

  • 为代码执行创建隔离的沙盒环境

  • 安全地执行 Python 代码

  • 执行文件操作(列出、读取、写入)

  • 在沙盒中安装 Python 包

  • 具有抽象代码解释器接口的可扩展架构

  • 模块化设计,关注点清晰分离

Related MCP server: Discord MCP Server

建筑学

该服务器采用模块化、可扩展的架构构建:

核心组件

  • 抽象解释器接口:允许集成不同的代码执行后端

  • 沙盒管理:用于创建和管理沙盒环境的工具

  • 代码执行:运行代码和安装包的工具

  • 文件操作:用于管理沙箱内文件的工具

项目结构

├── 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 解释器)

安装

  1. 克隆此存储库:

    git clone https://github.com/yourusername/mcp-code-sandbox.git cd mcp-code-sandbox
  2. 设置虚拟环境:

    # Using venv python -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate # Or using uv (recommended) uv init uv venv source .venv/bin/activate # On Windows: .venv\Scripts\activate
  3. 安装所需的软件包:

    # Using pip pip install fastmcp python-dotenv e2b-code-interpreter # Or using uv uv add fastmcp python-dotenv e2b-code-interpreter
  4. 配置环境变量:

    # Create a .env file with the following variables E2B_API_KEY=your_e2b_api_key_here INTERPRETER_TYPE=e2b # Default, can be changed to other implemented interpreters

用法

独立运行服务器

您可以直接从命令行运行服务器:

python main.py

这将使用 stdio 传输启动服务器,使其与 Claude for Desktop 兼容。

与 Claude for Desktop 一起使用

  1. 确保您安装了最新版本的 Claude for Desktop

  2. 打开您的 Claude for Desktop 配置文件:

    • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

    • Windows: %APPDATA%\Claude\claude_desktop_config.json

  3. 添加您的代码沙盒服务器配置:

    { "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" ] } } }
  4. 保存文件并重新启动 Claude for Desktop

可用工具

该服务器提供以下工具:

沙盒管理

  • create_sandbox :创建一个新的沙盒环境

  • close_sandbox :关闭并清理沙盒

  • get_sandbox_status :检查沙箱的状态

代码执行

  • 执行代码:在沙箱中运行 Python 代码

  • install_package :安装 Python 包

  • create_run_close :创建沙盒、运行代码和清理的一体化工具

文件操作

  • list_files :列出沙盒中的文件

  • read_file :读取文件的内容

  • write_file :将内容写入文件

  • upload_file :将文件上传到沙盒

使用新的解释器进行扩展

该系统设计为可扩展的。要添加新的代码解释器:

  1. src/sandbox/下为您的解释器实现创建一个新目录

  2. 实现src/sandbox/code_interpreter.pysrc/sandbox/file_interface.py中定义的接口

  3. 将新的解释器类型添加到src/sandbox/interpreter_factory.py

  4. 将环境变量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): # Implement the required methods class MyInterpreter(CodeInterpreter): # Implement the required methods # Update src/sandbox/interpreter_factory.py to include your new interpreter

模块描述

沙盒核心( 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 配置了正确的脚本路径

安全注意事项

  • 为了安全起见,代码执行在沙盒环境中进行

  • 不要使用此服务器在生产环境中执行不受信任的代码

  • 该服务器目前未实现身份验证 - 它只能在受信任的环境中使用它

执照

MIT 许可证

-
security - not tested
F
license - not found
-
quality - not tested

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/chrishayuk/mcp-code-sandbox'

If you have feedback or need assistance with the MCP directory API, please join our Discord server