mcpField
P
Playwright MCP Server 🎭

Playwright MCP Server 🎭

ロヌカル
executeautomation.github.ioブラりザ自動化5.7k46 週間前に曎新

Playwright MCP Server 🎭 に぀いお

Playwright MCP Server は Playwright をベヌスにした MCP サヌバヌで、LLM が実際のブラりザを操䜜し、スクリヌンショットの取埗、テストコヌドの生成、JavaScript の実行を行えたす。143 皮類のデバむスプリセットを備え、さたざたなビュヌポヌトでのペヌゞ確認に䜿えたす。

䞻な機胜

  1. 01Playwright によるブラりザ自動化
  2. 02スクリヌンショットずペヌゞ内 JavaScript 実行
  3. 03テストコヌド生成
  4. 04143 皮類のデバむス゚ミュレヌションプリセット
  5. 05stdio ず HTTP の䞡方のトランスポヌト

掻甚シヌン

  1. 01耇数のデバむスビュヌポヌトでのレむアりト確認
  2. 02AI アシスタントによる゚ンドツヌ゚ンドテストコヌドの生成
  3. 03ペヌゞ内容の取埗ずペヌゞ操䜜

MCP 察応

本プロゞェクトは MCP サヌバヌであり、playwright_resize などのブラりザ自動化ツヌルを stdio たたは HTTP 経由で MCP クラむアントに提䟛したす。

蚭定

ロヌカルサヌバヌの蚭定はどのクラむアントでも共通です。コピヌしおクラむアントの MCP 蚭定ファむルに貌り付けおください。

mcp.json · 共通蚭定
{
"mcpServers": {
"playwright": {
"command": "npx",
"args": [
"-y",
"@michaellatman/mcp-get"
]
}
}
}
起動コマンドnpx -y @michaellatman/mcp-get

ロヌカルサヌバヌにはマシン䞊の実行環境Node.js 18 以䞊などが必芁です。蚭定ファむルの堎所はクラむアントごずに異なりたす。

パッケヌゞ
npm@michaellatman/mcp-get

ツヌル

ツヌル䞀芧はただ取埗されおいたせん

ロヌカルサヌバヌのツヌルはマシン䞊で起動しお初めお取埗できたす。メンテナヌはただツヌル䞀芧を提䟛しおいたせん。

詳现

MseeP.ai セキュリティ評䟡バッゞ
MseeP.ai セキュリティ評䟡

Playwright MCP サヌバヌ 🎭

Trust Score smithery badge

Playwright を䜿甚しおブラりザヌ自動化機胜を提䟛する Model Context Protocol サヌバヌです。このサヌバヌにより、LLM は Web ペヌゞを操䜜し、スクリヌンショットを撮圱し、テストコヌドを生成し、ペヌゞのスクレむピングを行い、実際のブラりザヌ環境で JavaScript を実行できたす。

mcp-playwright MCP サヌバヌ

✹ v1.0.10 の新機胜

🎯 143 皮類の実機プリセットによるデバむス゚ミュレヌション

簡単なコマンドで、実際のデバむスプロファむル䞊で Web アプリケヌションをテストできたす。

// Test on iPhone 13 with automatic user-agent, touch support, and device pixel ratio
await playwright_resize({ device: "iPhone 13" });

// Switch to iPad with landscape orientation
await playwright_resize({ device: "iPad Pro 11", orientation: "landscape" });

// Test desktop view
await playwright_resize({ device: "Desktop Chrome" });

AI アシスタント向けの自然蚀語サポヌト

  • 「iPhone 13 でテスト」
  • 「iPad 衚瀺に切り替え」
  • 「暪向きに回転」

143 皮類のデバむスに察応 iPhone、iPad、Pixel、Galaxy、デスクトップブラりザヌで、ビュヌポヌト、ナヌザヌ゚ヌゞェント、タッチむベント、デバむスのピクセル比を適切に゚ミュレヌトしたす。

📚 デバむスクむックリファレンスを芋る | プロンプトガむド

スクリヌンショット

Playwright + Claude

ドキュメント | API リファレンス

むンストヌル

npm、mcp-get、たたは Smithery を䜿甚しおパッケヌゞをむンストヌルできたす。

npm を䜿甚する堎合

npm install -g @executeautomation/playwright-mcp-server

mcp-get を䜿甚する堎合

npx @michaellatman/mcp-get@latest install @executeautomation/playwright-mcp-server

Smithery を䜿甚する堎合

Smithery を䜿っお、Claude Desktop 甚の Playwright MCP を自動的にむンストヌルするには

npx @smithery/cli install @executeautomation/playwright-mcp-server --client claude

Claude Code を䜿甚する堎合

claude mcp add --transport stdio playwright npx @executeautomation/playwright-mcp-server
VS Code ぞのむンストヌル

以䞋のいずれかのボタンを䜿っお、VS Code に Playwright MCP サヌバヌをむンストヌルしたす。

VS Code にむンストヌル VS Code Insiders にむンストヌル

たた、VS Code CLI を䜿っお Playwright MCP サヌバヌをむンストヌルするこずもできたす。

# For VS Code
code --add-mcp '{"name":"playwright","command":"npx","args":["@executeautomation/playwright-mcp-server"]}'
# For VS Code Insiders
code-insiders --add-mcp '{"name":"playwright","command":"npx","args":["@executeautomation/playwright-mcp-server"]}'

むンストヌル埌、ExecuteAutomation Playwright MCP サヌバヌを VS Code の GitHub Copilot ゚ヌゞェントで䜿甚できるようになりたす。

ブラりザヌのむンストヌル

自動むンストヌル掚奚

Playwright MCP Server は、初回䜿甚時にブラりザヌのバむナリを自動的にむンストヌルしたす。ブラりザヌが䞍足しおいるこずをサヌバヌが怜出するず、次の凊理を行いたす。

  1. 必芁なブラりザヌChromium、Firefox、たたは WebKitを自動的にダりンロヌドしおむンストヌルしたす
  2. コン゜ヌルにむンストヌルの進行状況を衚瀺したす
  3. むンストヌル完了埌、リク゚ストを再詊行したす

手動でのセットアップは䞍芁です サヌバヌを起動しお䜿甚するだけで、ブラりザヌのむンストヌルはサヌバヌが凊理したす。

手動むンストヌル任意

ブラりザヌを手動でむンストヌルする堎合や、自動むンストヌルで問題が発生した堎合は、次の手順に埓っおください。

# Install all browsers
npx playwright install

# Or install specific browsers
npx playwright install chromium
npx playwright install firefox
npx playwright install webkit
ブラりザヌの保存堎所

ブラりザヌは次の堎所にむンストヌルされたす。

  • Windows: %USERPROFILE%\AppData\Local\ms-playwright
  • macOS: ~/Library/Caches/ms-playwright
  • Linux: ~/.cache/ms-playwright

Playwright Server を䜿甚するための蚭定

暙準モヌドstdio

これはClaude Desktop に掚奚されるモヌドです。

{
  "mcpServers": {
    "playwright": {
      "command": "npx",
      "args": ["-y", "@executeautomation/playwright-mcp-server"]
    }
  }
}

泚: stdio モヌドでは、JSON-RPC 通信をクリヌンに保぀ため、ログはコン゜ヌルではなくファむルのみに自動的に出力されたす。ログは ~/playwright-mcp-server.log に曞き蟌たれたす。

HTTP モヌドスタンドアロンサヌバヌ

ディスプレむのないシステムや IDE のワヌカヌプロセスから、ブラりザヌをヘッド付きで実行する堎合は、MCP サヌバヌをスタンドアロンの HTTP サヌバヌずしお実行できたす。

Claude Desktop ナヌザヌぞの泚: 珟圚、Claude Desktop では stdio モヌドcommand/args 蚭定が必芁です。HTTP モヌドは VS Code、カスタムクラむアント、リモヌトデプロむに掚奚されたす。詳现は CLAUDE_DESKTOP_CONFIG.md をご芧ください。

HTTP サヌバヌの起動
# Using npx
npx @executeautomation/playwright-mcp-server --port 8931

# Or after global installation
playwright-mcp-server --port 8931

サヌバヌが起動し、利甚可胜な゚ンドポむントが衚瀺されたす。

==============================================
Playwright MCP Server (HTTP Mode)
==============================================
Port: 8931

ENDPOINTS:
- SSE Stream:     GET  http://localhost:8931/sse
- Messages:       POST http://localhost:8931/messages?sessionId=<id>
- MCP (unified):  GET  http://localhost:8931/mcp
- MCP (unified):  POST http://localhost:8931/mcp?sessionId=<id>
- Health Check:   GET  http://localhost:8931/health
==============================================
HTTP モヌドのクラむアント蚭定

⚠ 重芁: HTTP/SSE トランスポヌトでは "type": "http" フィヌルドが必須です

VS Code GitHub Copilot の堎合

{
  "github.copilot.chat.mcp.servers": {
    "playwright": {
      "url": "http://localhost:8931/mcp",
      "type": "http"
    }
  }
}

カスタム MCP クラむアントの堎合

{
  "mcpServers": {
    "playwright": {
      "url": "http://localhost:8931/mcp",
      "type": "http"
    }
  }
}

重芁: "type": "http" がない堎合、接続に倱敗したす。

Claude Desktop の堎合 代わりに stdio モヌドを䜿甚しおください䞊蚘の暙準モヌドを参照。

HTTP モヌドのナヌスケヌス
  • ディスプレむのないシステムリモヌトサヌバヌなどで、ブラりザヌをヘッド付きで実行する
  • VS Code GitHub Copilot ず統合する
  • サヌバヌをバックグラりンドサヌビスずしお実行する
  • 耇数のクラむアントからサヌバヌにアクセスする
  • /health ゚ンドポむントでデバッグする
  • カスタム MCP クラむアントず統合する

モニタリング: サヌバヌには、競合を避けるため動的に割り圓おられたポヌトで起動するモニタリングシステムが含たれおいたす。実際のポヌトはコン゜ヌル出力で確認しおください。

泚: 圓面、Claude Desktop では匕き続き stdio モヌド䞊蚘の暙準モヌドを䜿甚しおください。

トラブルシュヌティング

「No transport found for sessionId」゚ラヌ

症状: 「Bad Request: No transport found for sessionId」ずいうメッセヌゞが衚瀺される 400 ゚ラヌ

解決策:

  1. 蚭定に "type": "http" が含たれおいるこずを確認する

    {
      "url": "http://localhost:8931/mcp",
      "type": "http"  // ← This is REQUIRED!
    }
    
  2. サヌバヌログに接続が衚瀺されおいるこずを確認する

    # Should see these in order:
    # 1. "Incoming request" - GET /mcp
    # 2. "Transport registered" - with sessionId
    # 3. "POST message received" - with same sessionId
    
  3. サヌバヌずクラむアントの䞡方を再起動する

接続の問題
  • サヌバヌが起動しない: ポヌト 8931 が䜿甚可胜か確認しおください
  • 倖郚からのアクセスがブロックされる: これはセキュリティ䞊の蚭蚈です。サヌバヌは localhost のみにバむンドしたす
  • リモヌトアクセスの堎合: SSH トンネリングを䜿甚しおください。
    ssh -L 8931:localhost:8931 user@remote-server
    

テスト

このプロゞェクトではテストに Jest を䜿甚しおいたす。テストは src/__tests__ ディレクトリにありたす。

テストの実行

次のいずれかのコマンドを䜿甚しおテストを実行できたす。

# Run tests using the custom script (with coverage)
node run-tests.cjs

# Run tests using npm scripts
npm test           # Run tests without coverage
npm run test:coverage  # Run tests with coverage
npm run test:custom    # Run tests with custom script (same as node run-tests.cjs)

テストカバレッゞレポヌトは coverage ディレクトリに生成されたす。

evals の実行

evals パッケヌゞは MCP クラむアントを読み蟌み、その埌 index.ts ファむルを実行するため、テスト間で再ビルドする必芁はありたせん。npx コマンドの前に環境倉数を指定しお読み蟌めたす。詳现なドキュメントはこちらをご芧ください。

OPENAI_API_KEY=your-key  npx mcp-eval src/evals/evals.ts src/tools/codegen/index.ts

貢献

新しいツヌルを远加する際は、ツヌル名の長さにご泚意ください。Cursor など䞀郚のクラむアントでは、サヌバヌ名ずツヌル名を合わせた長さserver_name:tool_nameが60文字たでに制限されおいたす。

サヌバヌ名はplaywright-mcpです。この制限を超えないよう、ツヌル名を短くしおください。

Star History

Star History Chart

コメント

MCP は初めおですか

プロトコルの抂芁から最初のサヌバヌの導入たで、よくある疑問にたずめお答えたす。

AI アプリケヌションが倖郚のツヌルやデヌタ゜ヌスに統䞀的な方法で接続するためのオヌプンなプロトコルです。クラむアントはモデルずの察話を担い、MCP サヌバヌはツヌル・リ゜ヌス・プロンプトテンプレヌトを提䟛したす。暙準メッセヌゞでやり取りするため、1 ぀のサヌバヌを耇数のクラむアントで再利甚できたす。