はじめに
Playwright MCPは、ブラウザ操作を Model Context Protocol(MCP)経由で行うための MCP サーバです。
公式リポジトリでは npx を用いた実行方法が紹介されていますが、公式から Docker イメージが提供されており、今回はその Docker コンテナを利用して Playwright MCP を動かす方法を紹介します。
なぜDockerコンテナを使用するのか
Playwright MCP は Node.js がインストールされていれば npx で簡単に実行できます。しかし、nvm で Node.js を管理している環境では、Node.js のパスが正しく認識されず、MCP サーバを起動できないケースが報告されています。
実際に、この問題は GitHub Issue でも議論されています:
https://github.com/modelcontextprotocol/servers/issues/64
この問題を回避するため、今回は Docker コンテナで Playwright MCP を動かす構成を試してみました。
MCPの設定方法
公式が Docker イメージを提供しているので、Docker が動作する環境であれば以下の設定を追加するだけで動作します。
{
"mcpServers": {
"playwright": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"--init",
"mcr.microsoft.com/playwright/mcp"
]
}
}
}
Playwright の起動オプションを指定したい場合
Playwright の CLI オプションを渡したい場合は、Docker イメージ名の後ろに連結して記述します。
また、出力ファイルをホスト側に保存するため、-v オプションでディレクトリをマウントしています。
{
"mcpServers": {
"playwright": {
"command": "docker",
"args": [
"run",
"-i",
"-v",
"ホストのディレクトリパス:/app/tmp",
"--rm",
"--init",
"mcr.microsoft.com/playwright/mcp",
"--output-dir",
"/app/tmp"
]
}
}
}
コンテナ使用時の注意(出力パス)
Docker コンテナ内で Playwright を動かすため、スクリーンショットなどの出力ファイルはコンテナ内部に作成されます。
そのため、
- Playwright の --output-dir は コンテナ内のパスで指定する
- そのパスを docker run -v でホストにマウントする
という設定が必要になります。
Dockerコンテナ版の制約
Docker コンテナ版 Playwright MCP は、Chromium のヘッドレスモードのみ対応しています。ブラウザの変更はできない点に注意してください。
さいごに
nvm を利用していない場合は、公式の npx playwright-mcp を利用する方が簡単です。
一方 Docker で起動すれば、ブラウザ環境を完全に固定できるなどの利点もあります。
「nvm との相性問題を避けたい」「環境を汚したくない」といった場合には、Docker を利用した Playwright MCP の実行方法が非常に有効です。興味を持たれた方はぜひ試してみてください。
KIYOラーニング株式会社について
当社のビジョンは『世界一「学びやすく、分かりやすく、続けやすい」学習手段を提供する』ことです。革新的な教育サービスを作り成長させていく事で、オンライン教育分野でナンバーワンの存在となり、世界に展開していくことを目指しています。
プロダクト
- スタディング:「学びやすく・わかりやすく・続けやすい」オンライン資格対策講座
- スタディングキャリア:資格取得者の仕事探しやキャリア形成を支援する転職サービス
- AirCourse:受け放題の動画研修がついたeラーニングシステム(LMS)
KIYOラーニング株式会社では一緒に働く仲間を募集しています