要点
- ツール自身が Chrome を起動した場合、両サーバーともすべての入力欄を埋め、ファイルをアップロードし、同一オリジンとクロスサイトの iframe の中でも操作できました。どちらも5回中5回です。
- 人がすでに開いていた Chrome に接続した場合、Playwright MCP は開いているフォームにそのまま入力できました。Chrome DevTools MCP 1.10.1 はクリックはできたものの、入力欄を埋められたのはページを1回再読み込みした後だけで、これはすべての実行で同じでした。
- Chrome DevTools MCP が起動した Chrome は navigator.webdriver = true を返し、Playwright MCP が起動した Chrome は false を返しました。自分で起動した Chrome では、どちらも false でした。
- クリーンで再現性のある実行と短いツール一覧を求めるなら Playwright MCP を選んでください。自分の Web アプリをデバッグしたい(トレース、Lighthouse、ネットワーク)場合や、普段使っている Chrome をエージェントと共有したい場合は Chrome DevTools MCP が向いています。
テスト結果
各セルは 5 回中の成功回数です。テスト日 2026年9月30日、Google Chrome 154.0.8037.92、@playwright/mcp 0.0.83、chrome-devtools-mcp 1.10.1、3列目として agent-browser 0.38.1。
モード1:ツールが自分で Chrome を起動する
各ツールは新しいプロファイルフォルダでヘッドレスの Chrome を起動し、テストページを開いてページにログインし、フォームを埋め、人が行うステップにはチェックを入れずに送信ボタンを押しました。
| テーマ | Playwright MCP | Chrome DevTools MCP | agent-browser |
|---|---|---|---|
| スナップショットから両方の iframe に到達できた | 5 回中 5 回 | 5 回中 5 回 | 5 回中 5 回 |
| テキスト、メール、セレクト、ラジオ、チェックボックス、テキストエリアを入力できた | 5 回中 5 回 | 5 回中 5 回 | 5 回中 5 回 |
| 許可フォルダ外からのアップロードを拒否した(デフォルト) | 5 回中 5 回 | 5 回中 5 回 | 未測定 |
| アップロードしたファイルが欠けずに届いた(名前、サイズ、SHA-256) | 5 回中 5 回 | 5 回中 5 回 | 5 回中 5 回 |
| 同一オリジンの iframe で入力とクリックができた | 5 回中 5 回 | 5 回中 5 回 | 5 回中 5 回 |
| クロスサイトの iframe で入力とクリックができた | 5 回中 5 回 | 5 回中 5 回 | 5 回中 5 回 |
| フォームが人のステップ以外をすべて受け付けた | 5 回中 5 回 | 5 回中 5 回 | 5 回中 2 回 |
| 同じプロファイルで再起動してもログインが保持された | 5 回中 0 回 | 5 回中 5 回 | 5 回中 5 回 |
| browser_close と再起動の後もログインが保持された | 5 回中 5 回 | 未測定 | 未測定 |
| 分離モードが以前のログインなしで起動した | 5 回中 5 回 | 5 回中 5 回 | 5 回中 5 回 |
| navigator.webdriver が false を返した | 5 回中 5 回 | 5 回中 0 回 | 5 回中 0 回 |
モード2:人がすでに使っている Chrome にツールが接続する
Chrome は私たちが専用のプロファイルとローカルのデバッグポート付きで起動しました。人の代役がページを開き、ログインし、プロダクト名を入力しました。次にツールが接続して残りを埋めて停止し、代役が人のステップにチェックを入れて送信し、最後にツールが結果を読み取りました。
| テーマ | Playwright MCP | Chrome DevTools MCP | agent-browser |
|---|---|---|---|
| 人のタブとそのログイン状態を見つけた | 5 回中 5 回 | 5 回中 5 回 | 5 回中 5 回 |
| ページをそのままの状態で入力できた | 5 回中 5 回 | 5 回中 0 回 | 5 回中 5 回 |
| 1回の再読み込み後に入力できた | 未測定 | 5 回中 5 回 | 未測定 |
| アップロードしたファイルが欠けずに届いた(名前、サイズ、SHA-256) | 5 回中 5 回 | 5 回中 5 回 | 5 回中 5 回 |
| 同一オリジンの iframe で入力とクリックができた | 5 回中 5 回 | 5 回中 5 回 | 5 回中 5 回 |
| クロスサイトの iframe で入力とクリックができた | 5 回中 5 回 | 5 回中 5 回 | 5 回中 0 回 |
| 人がステップにチェックを入れて送信した | 5 回中 5 回 | 5 回中 5 回 | 5 回中 0 回 |
| エージェントが送信結果を読み取った | 5 回中 5 回 | 5 回中 5 回 | 5 回中 0 回 |
| エージェントのネットワークログにフォームの POST が記録された | 5 回中 5 回 | 5 回中 5 回 | 5 回中 0 回 |
| サーバーの再起動後に同じタブへ再接続できた | 5 回中 5 回 | 5 回中 5 回 | 未測定 |
| navigator.webdriver が false を返した | 5 回中 5 回 | 5 回中 5 回 | 5 回中 5 回 |
実行時のスクリーンショット


テスト方法
- 2026年9月30日に macOS 上の Google Chrome 154.0.8037.92 で実施しました。バージョンは固定しています:@playwright/mcp 0.0.83、chrome-devtools-mcp 1.10.1、agent-browser 0.38.1。
- フォームは 127.0.0.1 上のローカルのテストページで、クロスサイトの iframe は別ポートの localhost から読み込まれます。実在の Web サイト、アカウント、個人のブラウザプロファイル、支払いは一切使っていません。
- 小さなスクリプトが、エージェントのクライアントとまったく同じように MCP で各サーバーとやり取りしました。スナップショット、フォーム入力、アップロード、クリック、コンソールとネットワークの読み取りです。要素の参照は各ツール自身のスナップショットから取得しました。判断を下す言語モデルは使っていないため、すべての実行が同じ手順をたどりました。
- 各シナリオはツールごとに 5 回実行しました。表は成功した回数を示しています。
- モード2の「人」は、タブに素の DevTools Protocol コマンドを送るスクリプトです。代役であり、実在の人ではありません。これが Chrome DevTools MCP の入力失敗の原因でないことを確かめるため、スクリプトを使わずにテスト URL を指定して Chrome を直接起動する方法も試しましたが、結果は同じでした。
- agent-browser は MCP モードではなく、主なインターフェースであるコマンドラインから操作しました。
このテストの対象外
- 実際の CAPTCHA、ボット検出、第三者サイトでの実際のログイン。
- Firefox と WebKit、両プロジェクトのブラウザ拡張機能、Chrome の自動接続ダイアログ。
- パフォーマンストレース、Lighthouse、メモリツール。
- 言語モデルが手順を選ぶ場合:実際のエージェントが必要とするトークン数やターン数はモデルによって変わります。
- Windows と Linux。
目立った点
どちらも許可フォルダ外からのアップロードを拒否する
最初のアップロードはプロジェクトフォルダから行いましたが、両サーバーともデフォルトで拒否しました。Playwright MCP はワークスペースのルート、またはクライアントがルートを指定しない場合は作業ディレクトリを許可します。Chrome DevTools MCP はクライアントがルートを指定しない場合、システムの一時フォルダを許可します。許可されたフォルダからなら、ファイルはすべての実行で欠けることなく届きました。名前、サイズ、SHA-256 も一致しています。どちらのプロジェクトも、この制限を広げるフラグをドキュメントに記載しています。
Chrome DevTools MCP は接続前から開いていたページに入力できなかった
モード2では、Chrome DevTools MCP はタブとそのログイン状態を見つけ、ボタンをクリックし、両方の iframe の中で入力もできました。しかしページ本体の入力欄への入力は、すべての実行で「did not become interactive」というエラーで失敗しました。エージェントがページを1回再読み込みすると入力できるようになり、残りのテストも成功しました。再読み込みすると、ページが保存していない内容は失われます。私たちのテストページは下書きを復元しますが、実際のフォームの多くは復元しません。Playwright MCP には再読み込みは不要でした。
navigator.webdriver は誰が Chrome を起動したかで変わる
Chrome DevTools MCP が Chrome を起動した場合、ページからは navigator.webdriver = true が見えました。これは同プロジェクトのドキュメントが、一部のログインが失敗する理由として挙げているものです。Playwright MCP が起動した Chrome は false を返しました。私たちが起動した Chrome にツールが接続した場合は、どのツールも false でした。実際のボット検出はテストしていません。
Playwright MCP がプロファイルを保持するのは browser_close の後だけ
永続プロファイルフォルダを使っていても、クライアントが単に切断しただけだと、サーバーの再起動後にログイン状態は消えていました。エージェントが先に browser_close を呼んだ場合は、すべての実行で保持されました。Chrome DevTools MCP は close を呼ばなくても、すべての実行でプロファイルを保持しました。
agent-browser は接続時にクロスサイトの iframe を見落とした
3列目の agent-browser は、自分でブラウザを起動した場合、すべての入力欄、ファイル、両方の iframe を埋めました。送信クリックは毎回完了と報告されましたが、ページ側で受け付けられたのは一部の実行だけでした。起動中の Chrome に接続した場合、スナップショットには同一オリジンの iframe は現れたものの、クロスサイトの iframe は待機して2回目のスナップショットを取っても現れず、フォームを完了できませんでした。
| テーマ | 公式の記述 | 実務上の意味 |
|---|---|---|
| Playwright MCP のファイルアクセス | By default access to file system is restricted to workspace root directories (or cwd if no roots are configured) only, and navigation to file:// URLs is blocked. | ファイルはプロジェクトのワークスペースからアップロードするか、--allow-unrestricted-file-access を付けてサーバーを起動してください。 |
| Chrome DevTools MCP のファイルアクセス | By default, file-writing tools are restricted to the OS temp directory when no roots are configured. | クライアントから MCP のルートが渡されない場合は、アップロードするファイルを一時フォルダに置くか、--filesystem-root を追加してください。 |
| Chrome DevTools MCP でのログイン | Some accounts may prevent sign-in when the browser is controlled via WebDriver (the default launch mechanism for the Chrome DevTools MCP server). | ログインが必要なサイトでは、サーバーに Chrome を起動させず、自分で起動した Chrome に接続してください。 |
| Playwright MCP のプロファイル | A persistent profile can only be used by one browser instance at a time | 1つのワークスペースで2つのエージェントを動かすには、--isolated か別々のプロファイルフォルダが必要です。 |
| Playwright CLI | CLI invocations are more token-efficient: they avoid loading large tool schemas and verbose accessibility trees into the model context | コンテキストに余裕のないコーディングエージェントには、Microsoft 自身が MCP サーバーではなく CLI とスキルの組み合わせを勧めています。 |
| Chrome DevTools MCP の利用統計 | Google collects usage statistics (such as tool invocation success rates, latency, and environment information) to improve the reliability and performance of Chrome DevTools MCP. | デフォルトで有効です。不要なら --no-usage-statistics を追加してください。 |
ドキュメント記載(未テスト)
以下の違いは、確認日時点の各プロジェクトの README とドキュメントに基づくもので、私たちは測定していません。
| テーマ | Playwright MCP | Chrome DevTools MCP |
|---|---|---|
| ブラウザ | --browser で Chrome、Firefox、WebKit、Edge に対応。 | 公式には Google Chrome と Chrome for Testing。その他の Chromium 系ブラウザでも動く可能性があります。 |
| 起動中のブラウザ | --cdp-endpoint でデバッグポートに接続、またはタブ選択と承認を備えた Playwright Extension。 | --browser-url でデバッグポートに接続、または Chrome 144 以降で --autoConnect(セッションごとに許可ダイアログ)。 |
| プロファイル | デフォルトは永続プロファイル。--isolated ではメモリ上に保持し、--storage-state で Cookie とストレージを読み込みます。 | デフォルトは永続プロファイル。--isolated では終了後に削除される一時プロファイルを使います。 |
| デバッグ | コンソールとネットワークリクエスト。トレース、動画、ストレージのツールは必要に応じて有効化。 | インサイト付きパフォーマンストレース、Lighthouse 監査、メモリスナップショット、ソースマップ対応スタックトレース付きのコンソール、ネットワークリクエスト。 |
| 提供元へ送信されるデータ | README には利用統計の記載はありません。 | 利用統計はデフォルトで有効(--no-usage-statistics)。パフォーマンスツールはトレースの URL を CrUX API で照会することがあります(--no-performance-crux)。 |
| MCP なしでの利用 | Microsoft はコーディングエージェント向けに、スキル付きの Playwright CLI を推奨しています。 | MCP なしで使える CLI が同梱されています。 |
| ライセンス | Apache-2.0 | Apache-2.0 |
ツール一覧の重さ
ページを開く前の時点で、Playwright MCP は 25 個のツールと 20.3 KB のツール説明を、Chrome DevTools MCP は 30 個のツールと 25.7 KB を提示しました(デフォルト設定、tools/list で測定)。エージェントはこのテキストをセッション中ずっとコンテキストに抱えます。Chrome DevTools MCP には3つのツールだけにする --slim があり、Playwright MCP は --caps でツール群を追加します。
どちらを選ぶか
Playwright MCP が向いているのは
- タスクごとにクリーンなブラウザを起動させたいとき(ヘッドレスや CI を含む)、
- Firefox や WebKit も必要なとき、
- 人が途中まで入力したフォームをエージェントに引き継がせたいとき(開いているページに再読み込みなしで入力できたため)、
- エージェントのコンテキスト内のツール一覧を短くしたいときです。
Chrome DevTools MCP が向いているのは
- 自分の Web アプリをデバッグしていて、トレース、Lighthouse、ネットワーク、コンソールを1か所で使いたいとき、
- 自動接続で、普段使っている Chrome をエージェントと共有したいとき、
- Chrome だけで作業し、Chrome DevTools チームが保守するツールを好むとき、
- エージェントが自分で開いていないページを、入力前に再読み込みしても構わないときです。
agent-browser は?
agent-browser は、オプションで MCP モードも備えたエージェント向けのコマンドライン型ブラウザツールです。自分でブラウザを起動した場合は同じフォームを埋めましたが、起動中の Chrome に接続した場合はクロスサイトの iframe を見落としました。エージェントが MCP ツールより短いシェルコマンドのほうをうまく扱えるなら、検討する価値があります。
自分でテストする
テストページは依存関係のない Node.js ファイル1つです。自分のマシン上でのみ待ち受けます。
- ファイルをダウンロードし、Node.js 18 以降で実行します。
- http://127.0.0.1:4461/ を一度開いてページを確認します。クロスサイトの iframe の読み込み元は http://localhost:4462/ です。
- 下の MCP 設定のいずれかをエージェントに追加し、フォームを埋め、任意の小さな PNG をアップロードし、両方の iframe を埋めて、人のステップの手前で止まるよう指示します。
- 人のステップに自分でチェックを入れて送信し、ページに今何が表示されているかをエージェントに尋ねます。
このファイルはフォーム、iframe、ローカルのエコーエンドポイントを提供します。それ以外の場所には何も送信しません。
ツールが自分で Chrome を起動する
Playwright MCP
{
"mcpServers": {
"playwright": {
"command": "npx",
"args": [
"-y",
"@playwright/mcp@0.0.83"
]
}
}
}Chrome DevTools MCP
{
"mcpServers": {
"chrome-devtools": {
"command": "npx",
"args": [
"-y",
"chrome-devtools-mcp@1.10.1",
"--no-usage-statistics"
]
}
}
}ポート 9222 で自分が起動した Chrome にツールが接続する
Playwright MCP
{
"mcpServers": {
"playwright": {
"command": "npx",
"args": [
"-y",
"@playwright/mcp@0.0.83",
"--cdp-endpoint",
"http://127.0.0.1:9222"
]
}
}
}Chrome DevTools MCP
{
"mcpServers": {
"chrome-devtools": {
"command": "npx",
"args": [
"-y",
"chrome-devtools-mcp@1.10.1",
"--browser-url=http://127.0.0.1:9222",
"--no-usage-statistics"
]
}
}
}LaunchRepo の構成
- LaunchRepo のプレイブックは、あなた自身の Chrome に接続した Chrome DevTools MCP 向けに書かれ、テストされています。ディレクトリへの登録には実際のログインが必要で、すべてのステップをあなたが見られるべきだからです。
- 自分で起動した Chrome では、このテストのどのツールでも navigator.webdriver は false のままで、引き継ぎも機能しました。あなたが同じタブでステップを終え、エージェントが結果を読み取ります。
- エージェントの接続時にディレクトリのフォームがすでに開いている場合は、何か入力する前にページを再読み込みさせてください。入力した内容が失われずに済みます。
出典
公式ページとリポジトリを2026年9月30日に確認しました。引用は原文どおりに転記しています。テスト結果は私たち自身の測定です。
よくある質問
- コーディングエージェントには Playwright MCP と Chrome DevTools MCP のどちらが良いですか?
- どんな場面でも勝つ方はありません。私たちのテストでは、自分で Chrome を起動した場合、両方ともフォームのチェックをすべて通過しました。Playwright MCP は人がすでに開いていたページにも入力でき、ツール一覧も短めでした。Chrome DevTools MCP は、自分のアプリをデバッグするためのパフォーマンストレース、Lighthouse、より詳しいネットワークとコンソールのツールを備えています。
- Chrome DevTools MCP は、ログイン済みの自分の Chrome を使えますか?
- はい。--autoConnect を使うと、リモートデバッグを許可してダイアログで承認した後、起動中の Chrome 144 以降に接続します。または、リモートデバッグポートと別のプロファイルフォルダを指定して Chrome を起動し、--browser-url でそこを指定します。Chrome 136 以降、デフォルトプロファイルではこのポートは無視されます。
- 両方とも iframe を扱えますか?
- はい。私たちの実行では、両方とも両モードで同一オリジンとクロスサイトの iframe に5回中5回到達し、その中で入力とクリックができました。
- ファイルのアップロードが失敗したのはなぜですか?
- 両サーバーとも、デフォルトでは許可されたフォルダからしかファイルを読み込みません。Playwright MCP はワークスペースのルートまたは作業ディレクトリから、Chrome DevTools MCP はクライアントがルートを指定しない場合はシステムの一時フォルダからです。ファイルをそこへ移すか、ドキュメントに記載されたフラグで制限を広げてください。
- これらのツールで CAPTCHA を解けますか?
- どちらも CAPTCHA 機能をドキュメントに記載しておらず、私たちも実際の CAPTCHA はテストしていません。代わりに引き継ぎを設計してください。エージェントが止まり、あなたが同じ表示中のウィンドウでそのステップを解き、エージェントが続行します。私たちの接続テストでは、この引き継ぎは両サーバーで機能しました。
- navigator.webdriver でエージェントだと見破られますか?
- 私たちのテストでは、true になったのは Chrome DevTools MCP が自分で Chrome を起動したときだけでした。Playwright MCP が起動した Chrome も、私たちが自分で起動した Chrome も false を返しました。サイトがこれに反応するかどうかはそのサイト次第で、実際のボット検出はテストしていません。
ディレクトリへのローンチをエージェントに任せる
LaunchRepo は、ローンチプラットフォームとディレクトリ向けのテスト済みプレイブックをあなたのコーディングエージェントに提供します。Chrome DevTools MCP を通じてあなた自身の Chrome で動き、登録を自分で送信するか、先にあなたに確認するかはあなたが決めます。
料金を見る