Daytona Playwright MCP Server
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
Regístrate en daytona.io
Ve a tu panel de control y genera una clave API
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
Iniciar el navegador: Claude llamará a
browser_startpara crear un sandbox de Daytona con ChromiumNavegar e interactuar: Usa las herramientas de navegación, clic, escritura y otras
Tomar capturas de pantalla: Mira lo que hay en la página con
browser_screenshotLimpiar: Llama a
browser_stopcuando termines para eliminar el sandbox
Herramientas disponibles
Ciclo de vida del navegador
Herramienta | Descripción |
| Iniciar una nueva sesión de navegador en un sandbox de Daytona |
| Detener el navegador y limpiar el sandbox |
| Comprobar si el navegador se está ejecutando |
Navegación
Herramienta | Descripción |
| Navegar a una URL |
| Volver atrás en el historial |
| Ir adelante en el historial |
| Actualizar la página actual |
Interacción
Herramienta | Descripción |
| Hacer clic en un elemento (selector CSS, XPath o de texto) |
| Escribir texto en un campo de entrada |
| Pulsar teclas del teclado (Enter, Tab, etc.) |
| Pasar el ratón sobre un elemento |
| Seleccionar de un menú desplegable |
| Desplazarse por la página o un elemento |
Extracción de contenido
Herramienta | Descripción |
| Tomar una captura de pantalla (página completa o elemento) |
| Obtener contenido de texto de la página |
| Obtener contenido HTML |
| Obtener el atributo de un elemento |
| Ejecutar JavaScript y obtener resultados |
Espera
Herramienta | Descripción |
| Esperar a que un elemento aparezca/desaparezca |
| Esperar a que la navegación se complete |
Gestión de pestañas
Herramienta | Descripción |
| Abrir una nueva pestaña |
| Listar todas las pestañas abiertas |
| Cambiar a una pestaña diferente |
| Cerrar una pestaña |
Operaciones de archivo
Herramienta | Descripción |
| 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-mcpTransporte HTTP (para conexiones remotas)
daytona-playwright-mcp --transport http --host 0.0.0.0 --port 8765Luego conéctate a través de: http://localhost:8765/mcp
Transporte SSE (legado)
daytona-playwright-mcp --transport sse --host 0.0.0.0 --port 8765Variables de entorno
Variable | Descripción | Predeterminado |
| Tu clave API de Daytona (requerido) | - |
| URL del servidor API de Daytona |
|
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-mcpEjecutar pruebas
uv run pytestCómo funciona
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
Todos los comandos del navegador se ejecutan a través de la API de Playwright conectada al navegador remoto
Las capturas de pantalla se capturan como imágenes PNG y se devuelven a través del tipo de contenido de imagen de MCP
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
timeoutsi 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_screenshotdevuelve 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
Basado en el patrón de navegador en sandbox de Daytona por synacktraa
Utiliza Patchright para la conectividad CDP de Playwright
Construido con FastMCP para el servidor MCP
Impulsado por los sandboxes en la nube de Daytona
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