Skip to main content
Glama
jamesmurdza

Daytona Playwright MCP Server

by jamesmurdza

Daytona Playwright MCPサーバー

Daytonaクラウドサンドボックス内で実行されるフル機能のChromeブラウザを制御できるMCP(Model Context Protocol)サーバーです。Claude Code、Claude Desktop、またはMCP互換クライアントで使用して、Webブラウジング、スクリーンショット撮影、フォーム入力などを行うことができます。

機能

  • フルChromiumブラウザ: 仮想ディスプレイ上で(ヘッドレスではない)実際のChromiumインスタンスを実行

  • クラウドサンドボックス: ブラウザはローカルマシンから隔離されたDaytonaサンドボックス内で安全に実行

  • 豊富なツールセット: ナビゲーション、クリック、入力、スクロール、スクリーンショット撮影、コンテンツ抽出、タブ管理

  • スクリーンショット対応: Claudeが確認・分析できる画像としてスクリーンショットを返却

  • 複数のトランスポート: stdio(デフォルト)、SSE、HTTPに対応

クイックスタート

1. パッケージのインストール

# 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. Daytona APIキーの取得

  1. daytona.ioでサインアップ

  2. ダッシュボードに移動してAPIキーを生成

  3. 環境変数として設定:

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

3. Claude Codeの設定

Claude CodeのMCP設定(~/.claude/claude_desktop_config.json またはClaude Codeの設定経由)に追加します:

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

または、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. Claude Desktopの設定

Claude Desktopの場合、設定ファイルに追加します:

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

使用方法

設定が完了したら、Claudeに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"

ワークフロー

  1. ブラウザの起動: Claudeが browser_start を呼び出し、Chromiumを含むDaytonaサンドボックスを作成します

  2. ナビゲーションと操作: ナビゲーション、クリック、入力などのツールを使用します

  3. スクリーンショット撮影: browser_screenshot でページの内容を確認します

  4. クリーンアップ: 完了したら browser_stop を呼び出してサンドボックスを削除します

利用可能なツール

ブラウザのライフサイクル

ツール

説明

browser_start

Daytonaサンドボックスで新しいブラウザセッションを開始

browser_stop

ブラウザを停止し、サンドボックスをクリーンアップ

browser_status

ブラウザが実行中か確認

ナビゲーション

ツール

説明

browser_navigate

URLへ移動

browser_back

履歴を戻る

browser_forward

履歴を進む

browser_refresh

現在のページを更新

操作

ツール

説明

browser_click

要素をクリック(CSS、XPath、またはテキストセレクタ)

browser_type

入力フィールドにテキストを入力

browser_press

キーボードキーを押す(Enter、Tabなど)

browser_hover

要素にホバー

browser_select

ドロップダウンから選択

browser_scroll

ページまたは要素をスクロール

コンテンツ抽出

ツール

説明

browser_screenshot

スクリーンショットを撮影(ページ全体または要素)

browser_get_text

ページからテキストコンテンツを取得

browser_get_html

HTMLコンテンツを取得

browser_get_attribute

要素の属性を取得

browser_evaluate

JavaScriptを実行して結果を取得

待機

ツール

説明

browser_wait_for_selector

要素が表示/非表示になるのを待機

browser_wait_for_navigation

ナビゲーションの完了を待機

タブ管理

ツール

説明

browser_new_tab

新しいタブを開く

browser_list_tabs

開いているすべてのタブを一覧表示

browser_switch_tab

別のタブに切り替え

browser_close_tab

タブを閉じる

ファイル操作

ツール

説明

browser_upload_file

ファイル入力にファイルをアップロード

異なるトランスポートでの実行

Stdio(デフォルト - Claude Code/Desktop用)

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

HTTPトランスポート(リモート接続用)

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

その後、以下から接続: http://localhost:8765/mcp

SSEトランスポート(レガシー)

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

環境変数

変数

説明

デフォルト

DAYTONA_API_KEY

Daytona APIキー(必須)

-

DAYTONA_API_URL

Daytona APIサーバーURL

https://app.daytona.io/api

開発

ソースから実行

# 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

テストの実行

uv run pytest

仕組み

  1. browser_start を呼び出すと、サーバーは以下の処理を行います:

    • Daytonaサンドボックスを作成(デフォルトのPythonサンドボックスにはChromium + Xvfbがプリインストールされています)

    • リモートデバッグを有効にしてChromiumを起動

    • TCPプロキシを開始してCDPポートを外部に公開

    • Daytonaの安全な署名付きURLを通じてCDP(Chrome DevTools Protocol)経由でChromiumに接続

  2. すべてのブラウザコマンドは、リモートブラウザに接続されたPlaywright APIを通じて実行されます

  3. スクリーンショットはPNG画像としてキャプチャされ、MCPの画像コンテンツタイプを通じて返却されます

  4. browser_stop を呼び出すと、サンドボックスが削除され、すべてのリソースが解放されます

トラブルシューティング

"DAYTONA_API_KEY environment variable is not set"

APIキーがシェルだけでなく、MCPサーバーの設定にも構成されていることを確認してください。

ブラウザが起動しない

  • Daytona APIキーが有効であることを確認してください

  • 初回使用時はブラウザイメージのプロビジョニングに1〜2分かかる場合があります

  • 必要に応じて timeout パラメータを増やしてください

スクリーンショットが表示されない

  • MCP画像をサポートする最新バージョンのClaude Code/Desktopを使用していることを確認してください

  • browser_screenshot ツールは自動的にレンダリングされるはずのImageタイプを返します

接続タイムアウト

デフォルトのタイムアウトは60秒です。接続が遅い場合や初回イメージビルド時は、以下のように増やしてください:

"Start a browser with a 120 second timeout"

ライセンス

MIT

クレジット

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