Skip to main content
Glama
jamesmurdza

Daytona Playwright MCP Server

by jamesmurdza

Daytona Playwright MCP-Server

Ein MCP-Server (Model Context Protocol), mit dem Sie einen vollständigen Chrome-Browser steuern können, der in einer Daytona-Cloud-Sandbox läuft. Verwenden Sie ihn mit Claude Code, Claude Desktop oder einem beliebigen MCP-kompatiblen Client, um im Web zu surfen, Screenshots zu erstellen, Formulare auszufüllen und mehr.

Funktionen

  • Vollständiger Chromium-Browser: Führt eine echte Chromium-Instanz (nicht headless) in einer virtuellen Anzeige aus

  • Cloud-Sandbox: Der Browser läuft sicher in einer Daytona-Sandbox, isoliert von Ihrem lokalen Computer

  • Umfangreiches Tool-Set: Navigieren, klicken, tippen, scrollen, Screenshots erstellen, Inhalte extrahieren, Tabs verwalten

  • Screenshot-Unterstützung: Gibt Screenshots als Bilder zurück, die Claude sehen und analysieren kann

  • Mehrere Transporte: Funktioniert mit stdio (Standard), SSE oder HTTP

Schnellstart

1. Installieren Sie das Paket

# 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. Holen Sie sich einen Daytona-API-Schlüssel

  1. Registrieren Sie sich unter daytona.io

  2. Gehen Sie zu Ihrem Dashboard und generieren Sie einen API-Schlüssel

  3. Setzen Sie ihn als Umgebungsvariable:

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

3. Konfigurieren Sie Claude Code

Fügen Sie dies zu Ihren Claude Code MCP-Einstellungen hinzu (~/.claude/claude_desktop_config.json oder über die Claude Code-Einstellungen):

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

Oder wenn Sie es aus dem Quellcode mit uv ausführen:

{
  "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. Konfigurieren Sie Claude Desktop

Für Claude Desktop fügen Sie dies zu Ihrer Konfigurationsdatei hinzu:

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"
      }
    }
  }
}

Verwendung

Sobald die Konfiguration abgeschlossen ist, können Sie Claude bitten, im Web zu surfen:

"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"

Arbeitsablauf

  1. Browser starten: Claude ruft browser_start auf, um eine Daytona-Sandbox mit Chromium zu erstellen

  2. Navigieren und interagieren: Verwenden Sie Navigation, Klicken, Tippen und andere Tools

  3. Screenshots erstellen: Sehen Sie mit browser_screenshot, was auf der Seite zu sehen ist

  4. Aufräumen: Rufen Sie browser_stop auf, wenn Sie fertig sind, um die Sandbox zu löschen

Verfügbare Tools

Browser-Lebenszyklus

Tool

Beschreibung

browser_start

Startet eine neue Browsersitzung in einer Daytona-Sandbox

browser_stop

Stoppt den Browser und bereinigt die Sandbox

browser_status

Überprüft, ob der Browser läuft

Navigation

Tool

Beschreibung

browser_navigate

Navigiert zu einer URL

browser_back

Geht in der Historie zurück

browser_forward

Geht in der Historie vorwärts

browser_refresh

Aktualisiert die aktuelle Seite

Interaktion

Tool

Beschreibung

browser_click

Klickt auf ein Element (CSS-, XPath- oder Text-Selektor)

browser_type

Gibt Text in ein Eingabefeld ein

browser_press

Drückt Tastaturtasten (Enter, Tab, etc.)

browser_hover

Fährt mit der Maus über ein Element

browser_select

Wählt aus einem Dropdown-Menü aus

browser_scroll

Scrollt die Seite oder ein Element

Inhaltsextraktion

Tool

Beschreibung

browser_screenshot

Erstellt einen Screenshot (ganze Seite oder Element)

browser_get_text

Ruft Textinhalte von der Seite ab

browser_get_html

Ruft HTML-Inhalte ab

browser_get_attribute

Ruft das Attribut eines Elements ab

browser_evaluate

Führt JavaScript aus und erhält Ergebnisse

Warten

Tool

Beschreibung

browser_wait_for_selector

Wartet darauf, dass ein Element erscheint/verschwindet

browser_wait_for_navigation

Wartet auf den Abschluss der Navigation

Tab-Verwaltung

Tool

Beschreibung

browser_new_tab

Öffnet einen neuen Tab

browser_list_tabs

Listet alle offenen Tabs auf

browser_switch_tab

Wechselt zu einem anderen Tab

browser_close_tab

Schließt einen Tab

Dateivorgänge

Tool

Beschreibung

browser_upload_file

Lädt eine Datei in ein Datei-Eingabefeld hoch

Ausführung mit verschiedenen Transporten

Stdio (Standard - für Claude Code/Desktop)

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

HTTP-Transport (für Remote-Verbindungen)

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

Verbinden Sie sich dann über: http://localhost:8765/mcp

SSE-Transport (veraltet)

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

Umgebungsvariablen

Variable

Beschreibung

Standard

DAYTONA_API_KEY

Ihr Daytona-API-Schlüssel (erforderlich)

-

DAYTONA_API_URL

Daytona-API-Server-URL

https://app.daytona.io/api

Entwicklung

Aus dem Quellcode ausführen

# 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

Tests ausführen

uv run pytest

Funktionsweise

  1. Wenn Sie browser_start aufrufen, führt der Server folgende Schritte aus:

    • Erstellt eine Daytona-Sandbox (die Standard-Python-Sandbox hat Chromium + Xvfb vorinstalliert)

    • Startet Chromium mit aktiviertem Remote-Debugging

    • Startet einen TCP-Proxy, um den CDP-Port extern verfügbar zu machen

    • Verbindet sich über CDP (Chrome DevTools Protocol) durch die sicheren signierten URLs von Daytona mit Chromium

  2. Alle Browser-Befehle werden über die Playwright-API ausgeführt, die mit dem Remote-Browser verbunden ist

  3. Screenshots werden als PNG-Bilder aufgenommen und über den Bild-Inhaltstyp von MCP zurückgegeben

  4. Wenn Sie browser_stop aufrufen, wird die Sandbox gelöscht und alle Ressourcen werden freigegeben

Fehlerbehebung

"DAYTONA_API_KEY environment variable is not set"

Stellen Sie sicher, dass Ihr API-Schlüssel in den MCP-Servereinstellungen konfiguriert ist, nicht nur in Ihrer Shell.

Browser startet nicht

  • Überprüfen Sie, ob Ihr Daytona-API-Schlüssel gültig ist

  • Das Browser-Image kann bei der ersten Verwendung 1-2 Minuten zur Bereitstellung benötigen

  • Erhöhen Sie bei Bedarf den timeout-Parameter

Screenshots erscheinen nicht

  • Stellen Sie sicher, dass Sie eine aktuelle Version von Claude Code/Desktop verwenden, die MCP-Bilder unterstützt

  • Das Tool browser_screenshot gibt einen Bildtyp zurück, der automatisch gerendert werden sollte

Verbindungs-Timeouts

Das Standard-Timeout beträgt 60 Sekunden. Bei langsameren Verbindungen oder beim ersten Erstellen des Images erhöhen Sie es:

"Start a browser with a 120 second timeout"

Lizenz

MIT

Credits

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