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

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

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