Skip to main content
Glama
jamesmurdza

Daytona Playwright MCP Server

by jamesmurdza

Servidor MCP de Daytona Playwright

Un servidor MCP (Model Context Protocol) que te permite controlar un navegador Chrome completo ejecutándose dentro de un sandbox en la nube de Daytona. Úsalo con Claude Code, Claude Desktop o cualquier cliente compatible con MCP para navegar por la web, tomar capturas de pantalla, rellenar formularios y más.

Características

  • Navegador Chromium completo: Ejecuta una instancia real de Chromium (no headless) en una pantalla virtual

  • Sandbox en la nube: El navegador se ejecuta de forma segura en un sandbox de Daytona, aislado de tu máquina local

  • Conjunto de herramientas enriquecido: Navegar, hacer clic, escribir, desplazarse, tomar capturas de pantalla, extraer contenido, gestionar pestañas

  • Soporte para capturas de pantalla: Devuelve capturas de pantalla como imágenes que Claude puede ver y analizar

  • Múltiples transportes: Funciona con stdio (predeterminado), SSE o HTTP

Inicio rápido

1. Instalar el paquete

# Using uv (recommended)
uv pip install git+https://github.com/YOUR_USERNAME/daytona-playwright-mcp.git

# Or with pip
pip install git+https://github.com/YOUR_USERNAME/daytona-playwright-mcp.git

# Or install from source
git clone https://github.com/YOUR_USERNAME/daytona-playwright-mcp.git
cd daytona-playwright-mcp
uv pip install -e .

2. Obtener una clave API de Daytona

  1. Regístrate en daytona.io

  2. Ve a tu panel de control y genera una clave API

  3. Configúrala como una variable de entorno:

export DAYTONA_API_KEY="your-api-key-here"

3. Configurar Claude Code

Añádelo a tus ajustes de MCP de Claude Code (~/.claude/claude_desktop_config.json o a través de los ajustes de Claude Code):

{
  "mcpServers": {
    "daytona-playwright": {
      "command": "daytona-playwright-mcp",
      "env": {
        "DAYTONA_API_KEY": "your-api-key-here"
      }
    }
  }
}

O si ejecutas desde el código fuente con uv:

{
  "mcpServers": {
    "daytona-playwright": {
      "command": "uv",
      "args": ["run", "--directory", "/path/to/daytona-playwright-mcp", "daytona-playwright-mcp"],
      "env": {
        "DAYTONA_API_KEY": "your-api-key-here"
      }
    }
  }
}

4. Configurar Claude Desktop

Para Claude Desktop, añádelo a tu archivo de configuración:

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json Windows: %APPDATA%\Claude\claude_desktop_config.json Linux: ~/.config/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "daytona-playwright": {
      "command": "daytona-playwright-mcp",
      "env": {
        "DAYTONA_API_KEY": "your-api-key-here"
      }
    }
  }
}

Uso

Una vez configurado, puedes pedirle a Claude que navegue por la web:

"Start a browser and go to https://news.ycombinator.com"

"Take a screenshot of the page"

"Click on the first article link"

"Search for 'AI news' on Google and show me the results"

"Fill out the contact form on example.com with test data"

Flujo de trabajo

  1. Iniciar el navegador: Claude llamará a browser_start para crear un sandbox de Daytona con Chromium

  2. Navegar e interactuar: Usa las herramientas de navegación, clic, escritura y otras

  3. Tomar capturas de pantalla: Mira lo que hay en la página con browser_screenshot

  4. Limpiar: Llama a browser_stop cuando termines para eliminar el sandbox

Herramientas disponibles

Ciclo de vida del navegador

Herramienta

Descripción

browser_start

Iniciar una nueva sesión de navegador en un sandbox de Daytona

browser_stop

Detener el navegador y limpiar el sandbox

browser_status

Comprobar si el navegador se está ejecutando

Navegación

Herramienta

Descripción

browser_navigate

Navegar a una URL

browser_back

Volver atrás en el historial

browser_forward

Ir adelante en el historial

browser_refresh

Actualizar la página actual

Interacción

Herramienta

Descripción

browser_click

Hacer clic en un elemento (selector CSS, XPath o de texto)

browser_type

Escribir texto en un campo de entrada

browser_press

Pulsar teclas del teclado (Enter, Tab, etc.)

browser_hover

Pasar el ratón sobre un elemento

browser_select

Seleccionar de un menú desplegable

browser_scroll

Desplazarse por la página o un elemento

Extracción de contenido

Herramienta

Descripción

browser_screenshot

Tomar una captura de pantalla (página completa o elemento)

browser_get_text

Obtener contenido de texto de la página

browser_get_html

Obtener contenido HTML

browser_get_attribute

Obtener el atributo de un elemento

browser_evaluate

Ejecutar JavaScript y obtener resultados

Espera

Herramienta

Descripción

browser_wait_for_selector

Esperar a que un elemento aparezca/desaparezca

browser_wait_for_navigation

Esperar a que la navegación se complete

Gestión de pestañas

Herramienta

Descripción

browser_new_tab

Abrir una nueva pestaña

browser_list_tabs

Listar todas las pestañas abiertas

browser_switch_tab

Cambiar a una pestaña diferente

browser_close_tab

Cerrar una pestaña

Operaciones de archivo

Herramienta

Descripción

browser_upload_file

Subir un archivo a una entrada de archivo

Ejecución con diferentes transportes

Stdio (Predeterminado - para Claude Code/Desktop)

daytona-playwright-mcp
# or
uv run daytona-playwright-mcp

Transporte HTTP (para conexiones remotas)

daytona-playwright-mcp --transport http --host 0.0.0.0 --port 8765

Luego conéctate a través de: http://localhost:8765/mcp

Transporte SSE (legado)

daytona-playwright-mcp --transport sse --host 0.0.0.0 --port 8765

Variables de entorno

Variable

Descripción

Predeterminado

DAYTONA_API_KEY

Tu clave API de Daytona (requerido)

-

DAYTONA_API_URL

URL del servidor API de Daytona

https://app.daytona.io/api

Desarrollo

Ejecutar desde el código fuente

# Clone the repository
git clone https://github.com/YOUR_USERNAME/daytona-playwright-mcp.git
cd daytona-playwright-mcp

# Install dependencies
uv sync

# Run the server
uv run daytona-playwright-mcp

Ejecutar pruebas

uv run pytest

Cómo funciona

  1. Cuando llamas a browser_start, el servidor:

    • Crea un sandbox de Daytona (el sandbox de Python predeterminado tiene Chromium + Xvfb preinstalados)

    • Inicia Chromium con la depuración remota habilitada

    • Inicia un proxy TCP para exponer el puerto CDP externamente

    • Se conecta a Chromium a través de CDP (Chrome DevTools Protocol) mediante las URLs firmadas seguras de Daytona

  2. Todos los comandos del navegador se ejecutan a través de la API de Playwright conectada al navegador remoto

  3. Las capturas de pantalla se capturan como imágenes PNG y se devuelven a través del tipo de contenido de imagen de MCP

  4. Cuando llamas a browser_stop, el sandbox se elimina y todos los recursos se liberan

Solución de problemas

"DAYTONA_API_KEY environment variable is not set"

Asegúrate de que tu clave API esté configurada en los ajustes del servidor MCP, no solo en tu shell.

El navegador no se inicia

  • Comprueba que tu clave API de Daytona sea válida

  • La imagen del navegador puede tardar de 1 a 2 minutos en aprovisionarse en el primer uso

  • Aumenta el parámetro timeout si es necesario

Las capturas de pantalla no aparecen

  • Asegúrate de estar usando una versión reciente de Claude Code/Desktop que admita imágenes MCP

  • La herramienta browser_screenshot devuelve un tipo de imagen que debería renderizarse automáticamente

Tiempos de espera de conexión

El tiempo de espera predeterminado es de 60 segundos. Para conexiones más lentas o compilaciones de imágenes por primera vez, auméntalo:

"Start a browser with a 120 second timeout"

Licencia

MIT

Créditos

Install Server
A
security – no known vulnerabilities
F
license - not found
A
quality - A tier

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/jamesmurdza/playwright-daytona-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server