Skip to main content
Glama
chrishayuk

MCP Code Sandbox Server

by chrishayuk

MCP 代码沙盒服务器

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

特征

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

  • 安全地执行 Python 代码

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

  • 在沙盒中安装 Python 包

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

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

Related MCP server: ClaudeKeep

建筑学

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

核心组件

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

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

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

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

项目结构

├── 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