Code Sandbox MCP 使用说明
项目简介
Code Sandbox MCP 是一个基于 Model Context Protocol (MCP) 构建的代码沙箱服务器,旨在为 AI 应用程序提供安全、隔离的代码执行环境。它利用 Docker 容器技术,支持多种编程语言,并能自动处理代码依赖,使得 AI 应用可以安全地执行用户提供的代码或项目,扩展其功能。
主要功能点
- 安全的代码执行环境: 使用 Docker 容器隔离代码执行过程,保障系统安全。
- 多语言支持: 支持 Python, Go, Node.js 等多种常用编程语言。
- 自动依赖管理: 能够自动检测并安装 Python (pip), Go (go mod), Node.js (npm/bun) 项目的依赖包。
- 灵活的代码执行模式: 支持执行单个代码片段('run_code' 工具)和完整的项目目录('run_project' 工具)。
- 实时日志输出: 可以实时获取容器的日志输出,方便监控代码执行状态。
- MCP 服务器: 遵循 MCP 协议,可以与支持 MCP 协议的客户端(如 Claude Desktop 等 AI 应用)集成。
安装步骤
-
安装 Docker: 确保您的系统已安装并运行 Docker。根据您的操作系统,参考以下 Docker 官方文档进行安装:
-
安装 Code Sandbox MCP: 您可以选择以下安装方式:
-
一键安装 (Linux, MacOS): 在终端中运行以下命令:
curl -fsSL https://raw.githubusercontent.com/Automata-Labs-team/code-sandbox-mcp/main/install.sh | bash此脚本会自动下载最新版本的 Code Sandbox MCP 并添加到 Claude Desktop 的配置中(如果检测到 Claude Desktop)。
-
一键安装 (Windows): 在 PowerShell 中运行以下命令:
irm https://raw.githubusercontent.com/Automata-Labs-team/code-sandbox-mcp/main/install.ps1 | iex此脚本同样会自动完成下载和 Claude Desktop 配置。
-
手动安装:
- 访问 Releases 页面 下载适合您平台的最新版本二进制文件。
- 将下载的二进制文件放置到您系统 'PATH' 环境变量包含的目录中。
- (Linux/MacOS) 在终端中使用 'chmod +x code-sandbox-mcp' 命令赋予该文件执行权限。
-
服务器配置
Code Sandbox MCP 作为 MCP 服务器,需要配置到 MCP 客户端中使用。以 Claude Desktop 为例,配置信息通常在 'claude_desktop_config.json' 文件中。安装脚本会自动完成配置,如果您手动安装或需要手动配置,请参考以下示例:
- Linux: '~/.config/Claude/claude_desktop_config.json'
- macOS: '~/Library/Application Support/Claude/claude_desktop_config.json'
- Windows: '%APPDATA%\Claude\claude_desktop_config.json'
在配置文件中,添加或修改 'mcpServers' 部分,加入 'code-sandbox-mcp' 的配置:
{ "mcpServers": { "code-sandbox-mcp": { "command": "/path/to/code-sandbox-mcp", // 请替换为 code-sandbox-mcp 可执行文件的实际路径,如果已加入 PATH,则直接使用 "code-sandbox-mcp" "args": [], // 启动参数,默认为空,如有需要可添加,例如 ["--port", "9520"] "env": {} // 环境变量,默认为空,如有需要可添加 } } }
- 'command': 必填。指向 'code-sandbox-mcp' 可执行文件的路径。如果您手动安装并将其放到了 'PATH' 环境变量中,可以直接填写 '"code-sandbox-mcp"'。否则,需要填写可执行文件的绝对路径,例如 '"/usr/local/bin/code-sandbox-mcp"' 或 '"C:\path\to\code-sandbox-mcp.exe"'。
- 'args': 可选。启动参数,以数组形式提供。常用的参数包括:
- '--port <端口号>': 指定服务器监听的端口号,默认为 '9520' (仅当使用 'sse' 传输协议时有效)。
- '--transport <传输协议>': 指定传输协议,可选值为 '"stdio"' 或 '"sse"',默认为 '"stdio"'。'stdio' 适用于本地客户端,'sse' 适用于需要通过网络访问的客户端。
- 'env': 可选。环境变量,以 JSON 对象形式提供。您可以设置服务器运行所需的环境变量。
基本使用方法
Code Sandbox MCP 服务器启动后,会监听 MCP 客户端的请求。客户端可以通过 JSON-RPC 协议调用服务器提供的工具和资源。
-
工具 (Tools):
- 'run_code': 执行代码片段。客户端需要提供 'code' 参数 (代码内容) 和 'language' 参数 (编程语言,如 "python", "go", "nodejs")。
- 'run_project': 执行项目。客户端需要提供 'projectDir' 参数 (项目目录路径), 'language' 参数 (编程语言), 和 'entrypointCmd' 参数 (项目启动命令,例如 '"python main.py"')。
-
资源 (Resources):
- 'containers://{id}/logs': 动态资源 URI,用于获取指定容器 ID 的日志输出。服务器在执行 'run_project' 工具后会返回容器日志的资源 URI。客户端可以使用该 URI 读取容器日志。
具体使用方法请参考您的 MCP 客户端 (如 Claude Desktop) 的文档,通常客户端会在界面中提供配置 MCP 服务器和调用工具的选项。
注意
- 确保 Docker 服务已正确安装并运行。
- 首次运行 'run_code' 或 'run_project' 工具时,服务器可能会需要下载 Docker 镜像,请耐心等待。
- 代码沙箱环境旨在提供安全隔离,但仍建议您谨慎处理来自不可信来源的代码。
信息
分类
AI与计算