使用说明
项目简介
Daytona Python Interpreter 是一个基于 Model Context Protocol (MCP) 构建的服务器,它充当大型语言模型(LLM)的后端,提供在隔离的 Daytona 沙箱环境中执行 Python 代码和 shell 命令的功能。通过集成此 MCP 服务器,LLM 应用可以安全地执行代码,获取执行结果,从而扩展其能力,例如进行数据分析、系统操作等。
主要功能点
- Python 代码执行: 允许 LLM 客户端发送 Python 代码到服务器执行,并返回代码的 stdout、stderr 和退出码。
- Shell 命令执行: 允许 LLM 客户端发送 shell 命令到服务器执行,并返回命令的 stdout、stderr 和退出码。
- 隔离的沙箱环境: 使用 Daytona 提供的临时工作空间来执行代码,确保安全性和隔离性,避免对本地系统造成影响。
- 自动工作空间清理: 在会话结束后自动清理 Daytona 工作空间,无需手动管理资源。
- 日志记录: 提供详细的日志记录,方便调试和问题排查。
安装步骤
-
安装 uv: 如果尚未安装 uv,请先安装 uv 包管理器。uv 是一个快速的 Python 包安装和管理工具。
curl -LsSf https://astral.sh/uv/install.sh | sh -
创建并激活虚拟环境: 为了隔离项目依赖,建议在虚拟环境中安装。
uv venv source .venv/bin/activate # Linux/macOS # .venv\Scripts\activate # Windows -
安装依赖: 使用 uv 安装项目所需的 Python 依赖包,包括 'mcp[cli]' (MCP 协议库), 'pydantic' (数据验证), 'python-dotenv' (环境变量加载), 和 'daytona-sdk' (Daytona SDK)。
uv add "mcp[cli]" pydantic python-dotenv daytona-sdk
服务器配置
要将 Daytona Python Interpreter MCP 服务器配置到 MCP 客户端(例如 Claude Desktop),您需要提供服务器的启动命令和参数。以下是一个配置示例,适用于 'claude_desktop_config.json' 文件。
配置示例 (JSON 格式):
{ "mcpServers": { "daytona-interpreter": { "command": "/Users/USER/.local/bin/uv", // uv 命令的路径,根据实际安装路径修改 "args": [ "--directory", "/Users/USER/dev/daytona-mcp-interpreter", // Daytona Python Interpreter 项目的根目录,根据实际路径修改 "run", "src/daytona_mcp_interpreter/server.py" // 服务器启动脚本的路径 ], "env": { "PYTHONUNBUFFERED": "1", // 确保 Python 输出不被缓存,实时显示 "MCP_DAYTONA_API_KEY": "YOUR_DAYTONA_API_KEY", // 您的 Daytona API Key,**请替换为实际的 API Key** "MCP_DAYTONA_API_URL": "https://daytona.work/api", // Daytona API 服务器 URL,默认值,通常无需修改 "MCP_DAYTONA_TIMEOUT": "30.0", // 请求超时时间,单位秒,可根据需要调整 "MCP_VERIFY_SSL": "false", // 是否验证 SSL 证书,开发环境可设置为 false,生产环境建议设置为 true "PATH": "/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin" // 确保 uv 和其他必要的命令在 PATH 环境变量中 } } } }
配置参数说明:
- '"command"': 启动服务器的命令,通常是 uv 包管理器的路径。
- '"args"': 传递给 'command' 的参数列表,包括:
- '"--directory"': 指定项目根目录,让 uv 在该目录下运行。
- '"run"': uv 的 'run' 命令,用于执行 Python 脚本。
- '"src/daytona_mcp_interpreter/server.py"': 服务器启动脚本的路径。
- '"env"': 设置服务器运行时的环境变量:
- '"MCP_DAYTONA_API_KEY"': 必填,您的 Daytona API Key,用于访问 Daytona 服务。请务必替换为您的实际 API Key。
- '"MCP_DAYTONA_API_URL"': Daytona API 服务器的 URL,默认值为 'https://daytona.work/api',通常无需修改。
- '"MCP_DAYTONA_TIMEOUT"': 请求超时时间,单位为秒。
- '"MCP_VERIFY_SSL"': 是否验证 SSL 证书,'"false"' 表示不验证,'"true"' 表示验证。
- '"PATH"': 环境变量 'PATH',确保包含 uv 和其他必要的命令路径。
配置文件路径:
- MacOS (Claude Desktop): '~/Library/Application Support/Claude/claude_desktop_config.json'
- Windows (Claude Desktop): '%APPDATA%\Claude\claude_desktop_config.json'
请根据您的操作系统和 MCP 客户端的配置文件路径进行相应的配置。修改配置文件后,通常需要重启 MCP 客户端才能使配置生效。
基本使用方法
- 配置 MCP 客户端: 根据上述 "服务器配置" 部分,将 Daytona Python Interpreter MCP 服务器添加到您的 MCP 客户端配置中。确保配置中的 'MCP_DAYTONA_API_KEY' 已替换为您的实际 API Key。
- 重启 MCP 客户端: 重启您的 MCP 客户端,例如 Claude Desktop,使配置生效。
- 在 LLM 中使用工具: 在您的 LLM 应用中,您应该能够看到名为 'python_interpreter' 和 'command_executor' 的工具。您可以指示 LLM 使用这些工具来执行 Python 代码或 shell 命令。例如,您可以指示 Claude 执行 Python 代码来分析数据,或者执行 shell 命令来获取系统信息。
- 查看日志 (可选): 服务器的日志文件位于 '/tmp/daytona-interpreter.log'。您可以查看此日志文件来了解服务器的运行状态和调试信息。
通过以上步骤,您就可以成功安装、配置和使用 Daytona Python Interpreter MCP 服务器,为您的 LLM 应用提供强大的代码执行能力。
信息
分类
开发者工具