MCP Code Sandbox Server

MCP Code Sandbox Server

一个可扩展的消息通信协议服务器,可在隔离的沙箱环境中提供安全的代码执行能力,并与 Claude for Desktop 和其他 MCP 客户端兼容。

Category
访问服务器

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

安装

  1. 克隆此存储库:

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

    # 使用 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
    
  3. 安装所需的包:

    # 使用 pip
    pip install fastmcp python-dotenv e2b-code-interpreter
    
    # 或者使用 uv
    uv add fastmcp python-dotenv e2b-code-interpreter
    
  4. 配置环境变量:

    # 创建一个包含以下变量的 .env 文件
    E2B_API_KEY=your_e2b_api_key_here
    INTERPRETER_TYPE=e2b  # 默认,可以更改为其他已实现的解释器
    

用法

独立运行服务器

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

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: 检查沙箱的状态

代码执行

  • execute_code: 在沙箱中运行 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):
    # 实现所需的方法
    
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 配置了脚本的正确路径

安全注意事项

  • 代码执行发生在沙箱环境中以确保安全
  • 请勿使用此服务器在生产环境中执行不受信任的代码
  • 该服务器目前未实现身份验证 - 仅应在受信任的环境中使用

许可证

MIT 许可证

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选