Daytona MCP Python Interpreter

by nkkko
Verified

remote-capable server

The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.

Intérprete de MCP de Daytona

Un servidor de protocolo de contexto de modelo que proporciona capacidades de ejecución de código Python en entornos sandbox efímeros de Daytona.

Descripción general

El intérprete MCP de Daytona permite a los asistentes de IA como Claude ejecutar código Python y comandos de shell en entornos seguros y aislados. Implementa el estándar del Protocolo de Contexto de Modelo (MCP) para proporcionar herramientas para:

  • Ejecución de código Python en entornos aislados
  • Ejecución de comandos de shell
  • Gestión de archivos (carga/descarga)
  • Clonación de repositorios Git
  • Generación de vista previa web para servidores en ejecución

Toda la ejecución ocurre en espacios de trabajo efímeros de Daytona que se limpian automáticamente después de su uso.

Instalación

  1. Instale uv si aún no lo ha hecho:
curl -LsSf https://astral.sh/uv/install.sh | sh
  1. Crear y activar entorno virtual.

Si tiene un entorno existente, desactívelo y elimínelo primero:

deactivate rm -rf .venv

Crear y activar un nuevo entorno virtual:

uv venv source .venv/bin/activate

(En Windows: .venv\Scripts\activate )

  1. Instalar dependencias:
uv add "mcp[cli]" pydantic python-dotenv "daytona-sdk>=0.10.5"

Nota: Este proyecto requiere la versión 0.10.5 o superior de daytona-sdk. Las versiones anteriores tienen una API de sistema de archivos incompatible.

Variables de entorno

Configure estas variables de entorno para un funcionamiento correcto:

  • MCP_DAYTONA_API_KEY : Clave API requerida para la autenticación de Daytona
  • MCP_DAYTONA_SERVER_URL : URL del servidor (predeterminado: https://app.daytona.io/api )
  • MCP_DAYTONA_TIMEOUT : Tiempo de espera de solicitud en segundos (valor predeterminado: 180,0)
  • MCP_DAYTONA_TARGET : Región de destino (predeterminado: eu)
  • MCP_VERIFY_SSL : Habilitar la verificación SSL (predeterminado: falso)

Desarrollo

Ejecute el servidor directamente:

uv run src/daytona_mcp_interpreter/server.py

O si uv no está en tu camino:

/Users/USER/.local/bin/uv run ~LOCATION/daytona-mcp-interpreter/src/daytona_mcp_interpreter/server.py

Utilice MCP Inspector para probar el servidor:

npx @modelcontextprotocol/inspector \ uv \ --directory . \ run \ src/daytona_mcp_interpreter/server.py

Ver registros:

tail -f /tmp/daytona-interpreter.log

Integración con Claude Desktop

  1. Configurar en Claude Desktop (u otros clientes compatibles con MCP):

En MacOS, edite: ~/Library/Application Support/Claude/claude_desktop_config.json En Windows, edite: %APPDATA%\Claude\claude_desktop_config.json

{ "mcpServers": { "daytona-interpreter": { "command": "/Users/USER/.local/bin/uv", "args": [ "--directory", "/Users/USER/dev/daytona-mcp-interpreter", "run", "src/daytona_mcp_interpreter/server.py" ], "env": { "PYTHONUNBUFFERED": "1", "MCP_DAYTONA_API_KEY": "api_key", "MCP_DAYTONA_SERVER_URL": "api_server_url", "MCP_DAYTONA_TIMEOUT": "30.0", "MCP_VERIFY_SSL": "false", "PATH": "/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin" } } } }
  1. Reiniciar Claude Desktop
  2. Las herramientas del intérprete de Python de Daytona estarán disponibles en Claude

Herramientas disponibles

Ejecución de Shell

Ejecuta comandos de shell en el espacio de trabajo de Daytona.

# Example: List files ls -la # Example: Install a package pip install pandas

Descarga de archivos

Descarga archivos del espacio de trabajo de Daytona con manejo inteligente para archivos grandes.

Uso básico:

file_download(file_path="/path/to/file.txt")

Uso avanzado:

# Set custom file size limit file_download(file_path="/path/to/large_file.csv", max_size_mb=10.0) # Download partial content for large files file_download(file_path="/path/to/large_file.csv", download_option="download_partial", chunk_size_kb=200) # Convert large file to text file_download(file_path="/path/to/large_file.pdf", download_option="convert_to_text") # Compress file before downloading file_download(file_path="/path/to/large_file.bin", download_option="compress_file") # Force download despite size file_download(file_path="/path/to/large_file.zip", download_option="force_download")

Carga de archivos

Sube archivos al espacio de trabajo de Daytona. Admite archivos de texto y binarios.

Uso básico:

# Upload a text file file_upload(file_path="/workspace/example.txt", content="Hello, World!")

Uso avanzado:

# Upload a text file with specific path file_upload( file_path="/workspace/data/config.json", content='{"setting": "value", "enabled": true}' ) # Upload a binary file using base64 encoding import base64 with open("local_image.png", "rb") as f: base64_content = base64.b64encode(f.read()).decode('utf-8') file_upload( file_path="/workspace/images/uploaded.png", content=base64_content, encoding="base64" ) # Upload without overwriting existing files file_upload( file_path="/workspace/important.txt", content="New content", overwrite=False )

Clon de Git

Clona un repositorio Git en el espacio de trabajo de Daytona para análisis y ejecución de código.

Uso básico:

git_clone(repo_url="https://github.com/username/repository.git")

Uso avanzado:

# Clone a specific branch git_clone( repo_url="https://github.com/username/repository.git", branch="develop" ) # Clone to a specific directory with full history git_clone( repo_url="https://github.com/username/repository.git", target_path="my_project", depth=0 # 0 means full history ) # Clone with Git LFS support for repositories with large files git_clone( repo_url="https://github.com/username/large-files-repo.git", lfs=True )

Vista previa web

Genera una URL de vista previa para los servidores web que se ejecutan dentro del espacio de trabajo de Daytona.

Uso básico:

# Generate a preview link for a web server running on port 3000 web_preview(port=3000)

Uso avanzado:

# Generate a preview link with a descriptive name web_preview( port=8080, description="React Development Server" ) # Generate a link without checking if server is running web_preview( port=5000, check_server=False )

Ejemplo:

# First run a simple web server using Python via the shell shell_exec(command="python -m http.server 8000 &") # Then generate a preview link for the server web_preview(port=8000, description="Python HTTP Server")

-
security - not tested
A
license - permissive license
-
quality - not tested

Un servidor de protocolo de contexto de modelo que permite la ejecución de código Python dentro de los espacios de trabajo de Daytona, proporcionando un entorno seguro y aislado para ejecutar y administrar scripts de Python.

  1. Overview
    1. Installation
      1. Environment Variables
        1. Development
          1. Integration with Claude Desktop
            1. Available Tools
              1. Shell Exec
              2. File Download
              3. File Upload
              4. Git Clone
              5. Web Preview
            ID: hj7jlxkxpk