使用说明

项目简介

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 工作空间,无需手动管理资源。
  • 日志记录: 提供详细的日志记录,方便调试和问题排查。

安装步骤

  1. 安装 uv: 如果尚未安装 uv,请先安装 uv 包管理器。uv 是一个快速的 Python 包安装和管理工具。

    curl -LsSf https://astral.sh/uv/install.sh | sh
  2. 创建并激活虚拟环境: 为了隔离项目依赖,建议在虚拟环境中安装。

    uv venv
    source .venv/bin/activate  # Linux/macOS
    # .venv\Scripts\activate  # Windows
  3. 安装依赖: 使用 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 客户端才能使配置生效。

基本使用方法

  1. 配置 MCP 客户端: 根据上述 "服务器配置" 部分,将 Daytona Python Interpreter MCP 服务器添加到您的 MCP 客户端配置中。确保配置中的 'MCP_DAYTONA_API_KEY' 已替换为您的实际 API Key。
  2. 重启 MCP 客户端: 重启您的 MCP 客户端,例如 Claude Desktop,使配置生效。
  3. 在 LLM 中使用工具: 在您的 LLM 应用中,您应该能够看到名为 'python_interpreter' 和 'command_executor' 的工具。您可以指示 LLM 使用这些工具来执行 Python 代码或 shell 命令。例如,您可以指示 Claude 执行 Python 代码来分析数据,或者执行 shell 命令来获取系统信息。
  4. 查看日志 (可选): 服务器的日志文件位于 '/tmp/daytona-interpreter.log'。您可以查看此日志文件来了解服务器的运行状态和调试信息。

通过以上步骤,您就可以成功安装、配置和使用 Daytona Python Interpreter MCP 服务器,为您的 LLM 应用提供强大的代码执行能力。

信息

分类

开发者工具