AI

chrome-devtools-mcpでクラウド型アンチ検出ブラウザを制御する

chrome-devtools-mcpとBright DataのBrowser APIを組み合わせ、AIエージェントがクラウド型アンチ検出ブラウザをシームレスに制御できるようにします。
3 分読
Chrome Dev tools with Bright Data

この記事では、以下について学びます:

  • Chrome DevTools for Agents(chrome-devtools-mcp)がAI制御のブラウザ自動化にもたらすものとは。
  • その限界と、Bright DataのBrowser APIがどのようにそれらを解決するか。
  • お好みのAIエージェント(Gemini CLI、Claude Codeなど)をchrome-devtools-mcpに接続し、Browser API経由でリモートブラウザを制御する方法。

さっそく見ていきましょう!

Chrome DevTools for Agentsとは?

chrome-devtools-mcpは、「Chrome DevTools for agents」としても知られ、AIコーディングエージェントにCDP(Chrome DevTools Protocol)を通じてChromiumベースのブラウザの制御権を与えるオープンソースのMCPサーバーです。

具体的には、AIエージェントがページのナビゲート、Web要素とのインタラクション、ネットワークリクエストの検査、JavaScriptの実行、スクリーンショットの取得、ブラウザの問題のデバッグ、パフォーマンスの分析を行えるようにします。内部的には、Chrome DevToolsの機能をMCPツールとして公開しており、AIコーディングエージェントがブラウザセッションの自動化と検査に利用できます。

このプロジェクトはApache 2.0ライセンスの下でGitHubで公開されており、52,000以上のGitHubスターを獲得しています。

chrome-devtools-mcpの現状の制限とその解決方法

chrome-devtools-mcpはブラウザセッションを制御するための強力なツールであり、特にデバッグやパフォーマンス分析に適しています。一方で、ブラウザ自動化に共通する以下のような課題も依然として存在します:

  • ブロック:Webサイトは自動化されたブラウザセッションを検知し、CAPTCHAやエラー、その他の制限で応答することがあり、ワークフローが中断されます。これは、この技術がヘッドレスモードで新しいChromeセッションを起動するためです。このようなセッションはブラウザ履歴やユーザーコンテキストが限定的であり、Webサイトが自動化されたものと識別しやすくなります。さらに、一般ユーザーはGUIが有効なブラウザを使用しており、ヘッドレスモードではありません。
  • リソース消費:複数のタブやブラウザインスタンスをローカルで実行すると、システムリソースを大量に消費する可能性があります。1つのChromeタブだけで数百メガバイトのRAMを使用することがあり、大規模な並行自動化はローカルインフラに大きな負荷をかけます。

これらの制約は、特にエンタープライズ用途において、ブラウザ自動化の信頼性とスケーラビリティの両方に影響を及ぼします。理想的な構成は、chrome-devtools-mcpが、大規模な自動化向けに設計され、アンチボット機能を備えたクラウドブラウザを制御できるようにすることです。これはまさにBright DataのBrowser APIが提供するものです。

解決策としてのBright Data Browser API

Bright DataのBrowser APIは、ブラウザの実行をローカルマシンから、スケールに対応するために構築された完全管理型のクラウドインフラへと移行することで、chrome-devtools-mcpの制限に対処します。

ブラウザをローカルで実行・維持する代わりに、CDPエンドポイントを通じてChrome DevTools for agentsをBrowser APIに接続できます。Browser APIは、プロキシローテーション、CAPTCHAの解決、高度なフィンガープリント対策機能など、事前設定済みのクラウドブラウザセッションを提供します。

重要:Browser APIはBright Dataの無料プランでご利用いただけ、月間5,000の無料クレジットが含まれています。

このサービスの背後には、4億以上のIPを擁するレジデンシャルネットワークを備えたBright Dataのプロキシインフラがあります。これにより、グローバルなジオターゲティングと無制限の同時ブラウザセッションがサポートされ、99.99%のアップタイムと99.95%の成功率を実現しています。

Chrome DevTools for AgentsとBright DataのBrowser APIを連携させる方法

この章では、AIエージェントでchrome-devtools-mcpを設定する方法を紹介します。Bright DataのBrowser APIを介して、ステルス性が高く無限にスケール可能なクラウドブラウザセッションに接続するように設定します。

注意:このセクションはGemini CLIに焦点を当てています。同じ手順を、Claude Code、OpenAI Codex、OpenCodeなどの他のAIエージェントハーネスにも応用できます。

以下の手順に従ってください!

前提条件

始める前に、以下を用意してください:

MCPの仕組みと、Chrome DevTools for agentsが公開するツールについての基本的な知識があると役立ちます。

ステップ1:Bright Data Browser APIを設定する

まず、Bright Data Browser APIのCDPベースのリモート接続URLを取得します。

まだお持ちでない場合は、Bright Dataアカウントを作成してください。すでにアカウントをお持ちの場合は、ログインしてコントロールパネルにアクセスしてください。

次に、左側のメニューから「Web Access > Web Access API」オプションを選択します:

「Web Access API」ページへの移動

My APIsテーブルに既にBrowser APIのエントリ(下記に示す「browser_api」エントリ)がある場合は、APIページにアクセスします:

「browser_api」APIに注目

そうでない場合は、「Create API」ボタンのドロップダウンをクリックし、「Browser API」を選択します:

「Create API > Browser API」オプションのクリック”/></figure>
<p class=これによりBrowser APIのセットアップウィザードが開きます。Browser APIに名前を付け、必要に応じて設定します:

Browser APIの設定

完了したら、「Add API」をクリックしてBrowser APIを作成します。次に、その詳細ページを開きます:

Browser APIのCDP URLの取得

このページでは、「Puppeteer / Playwright」の下にCDPベースの連携のための接続詳細が記載されています。Browser APIのWebSocket CDP URLは次の形式に従います:

wss://<BROWSER_API_USERNAME>:<BROWSER_API_PASSWORD>@brd.superproxy.io:9222

Browser APIのパスワードを表示するには、パスワードの隣にある「Show」をクリックします。メールで受け取った多要素認証コードを入力してください。

これで、リモートブラウザ制御のためにchrome-devtools-mcpを設定するのに必要なCDP接続URLが手に入りました。素晴らしい!

ステップ2:chrome-devtools-mcp経由でGemini CLIにBrowser APIを設定する

chrome-devtools-mcpをAIエージェントに統合し、Bright DataのBrowser APIを通じてリモートのアンチ検出ブラウザセッションを制御するよう指示します。Gemini CLIでは、以下のコマンドでこれを実現できます:

gemini mcp add --scope project chrome-devtools npx chrome-devtools-mcp@latest -- --wsEndpoint='wss://<BROWSER_API_USERNAME>:<BROWSER_API_PASSWORD>@brd.superproxy.io:9222'

注意:wsEndpoint引数には、プレースホルダーを実際のBrowser API CDP接続URLに必ず置き換えてください。

ターミナルには、chrome-devtools MCPサーバーが追加されたことを示すメッセージが表示されます:

コマンドの実行結果

以下に注目してください:

  • --scope projectは、プロジェクト内でMCPサーバーをローカルに設定します。グローバルに設定したい場合は、このオプションを省略してください。
  • --wsEndpoint='wss://<BROWSER_API_USERNAME>:<BROWSER_API_PASSWORD>@brd.superproxy.io:9222'は、chrome-devtools-mcpにBright DataのBrowser APIエンドポイントへ接続するよう指示します。

注意:ここではwsEndpoint引数を使用することが重要です。chrome-devtools-mcpのドキュメントでは、wsEndpointはbrowserUrlの代替であると記載されています。しかし、Browser APIのCDP URLをbrowserUrlで指定すると、「Request cannot be constructed from a URL that includes credentials」というエラーで連携が失敗します。

このコマンドは、プロジェクトのフォルダ内に以下の設定を含む.gemini/settings.jsonファイルを生成します:

{
  "mcpServers": {
    "chrome-devtools": {
      "command": "npx",
      "args": [
        "-y",
        "chrome-devtools-mcp@latest",
        "--wsEndpoint=wss://<BROWSER_API_USERNAME>:<BROWSER_API_PASSWORD>@brd.superproxy.io:9222"
      ]
    }
  }
}

あるいは、このファイルを手動で作成することもできます。

補足:お好みのAIエージェントでもchrome-devtools-mcpを設定できます。例えば、Claude Codeでは次を実行します:

claude mcp add chrome-devtools --scope project -- npx -- -y chrome-devtools-mcp@latest --wsEndpoint='wss://<BROWSER_API_USERNAME>:<BROWSER_API_PASSWORD>@brd.superproxy.io:9222'

素晴らしい!これで、お使いのAIエージェントはMCPを通じてChrome DevToolsのツールにアクセスできるようになり、Browser APIが提供するリモートブラウザセッションに接続するよう設定されました。

ステップ3:連携が機能することを確認する

プロジェクトフォルダ内でGemini CLI(またはお好みのAIエージェント)を起動します:

gemini

次に、/mcpコマンドを実行して利用可能なMCPサーバーを表示します:

29個のchrome-devtools MCPツールに注目

chrome-devtools MCPサーバーと、その29個の利用可能なツールが表示されるはずです。これには以下が含まれます:

ツール 説明
navigate_page URLへのナビゲート、ページの再読み込み、またはブラウザ履歴の前後への移動を行います。
click ページスナップショットで識別された要素をクリックします。ダブルクリックのオプションにも対応しています。
fill 入力欄やテキストエリアにテキストを入力したり、ドロップダウンメニューからオプションを選択したりします。
fill_form 複数のフォームフィールド、チェックボックス、ラジオボタン、セレクトを一度の操作で入力します。
press_key 他の入力ツールでは利用できないショートカット、ナビゲーション、インタラクションのために、キーボードキーやその組み合わせを押します。
type_text キーボードシミュレーションを使用して、以前にフォーカスされた入力欄にテキストを入力します。
hover ページ要素の上にポインターを移動させます。ホバーベースのメニューやインタラクションをトリガーする際に便利です。
wait_for 後続のアクションに進む前に、指定したテキストがページに表示されるまで待機します。
list_pages 現在開いているすべてのブラウザページと、後続のインタラクションに使用する識別子を一覧表示します。
new_page 新しいブラウザタブを開き、指定されたURLにナビゲートします。
take_snapshot ページのアクセシビリティツリーをキャプチャし、要素と後続のインタラクションのための一意の識別子を公開します。
evaluate_script ページ内でJavaScriptを実行し、ブラウザコンテキストからJSONシリアライズ可能な結果を返します。
list_network_requests ページによる最近のネットワークリクエストを一覧表示し、リソースタイプでフィルタリングできます。
get_network_request 特定のネットワークリクエストを検査し、そのヘッダー、リクエストボディ、レスポンスデータを確認します。
take_screenshot 現在のページ、ビューポート、ページ全体、または特定の要素のスクリーンショットをキャプチャします。

素晴らしい!これにより、chrome-devtools-mcpが正しく設定されており、そのブラウザ自動化ツールがAIエージェントで利用可能であることが確認できました。

最後のステップは、Bright DataのBrowser APIを通じてリモートブラウザセッションとやり取りするために、これらのツールを使用できることを確認することです。

ステップ4:Chrome DevTools for Agents + Browser APIをテストする

Chrome DevTools for agentsが設定済みのBrowser APIセッションを制御できることを確認するために、Booking.comのようなアンチボット対策で保護された複雑なウェブサイトに対してテストします。

次のような実際のタスクで連携を試してみてください:

Open the Booking.com page in a browser and search for hotels in Barcelona for two people from September 23 to 24. Apply the "4-star" filter and sort the results by lowest price. Extract the first 10 results with the hotel name, nightly price, rating, and review count.

プロンプトを実行すると、以下のような結果が表示されるはずです:

プロンプトの実行

具体的には、Gemini CLIエージェントは以下のようにタスクを処理しました:

  1. Booking.comに到達するためにnavigate_pageを呼び出しました。
  2. list_pagesツールを使用して、利用可能なブラウザページを特定しました。
  3. clickとtake_snapshotツールの組み合わせを使用して、関連要素を見つけ、要求された日付を選択しました。
  4. evaluate_scriptを利用して、必要な追加のインタラクションを実行し、目的の結果ページに到達しました。
  5. 再びtake_snapshotを使用して、結果ページの構造を検査しました。
  6. evaluate_scriptを使用し、カスタムJavaScriptスクリプトで必要なデータを抽出しました。
  7. 抽出されたデータをテーブル形式で返しました。

以下はエージェントが生成した出力です:

エージェントが生成した結果

取得されたデータが、Booking.comに直接表示される結果と非常に近いことに注目してください:

エージェントが生成した結果はBooking.comで入手できる結果と一致します

このシンプルな例は、MCPを通じてGemini CLIに接続されたChrome DevTools for agentsが、リモートのBrowser APIセッションを通じてBooking.comとやり取りできることを示しています。

Booking.comは、アンチボット保護によりブラウザ自動化が困難であるため、有用なテストケースです。この構成では、Browser APIがブラウザセッションとサイトへのアクセスに必要なインフラを処理し、chrome-devtools-mcpはAIエージェントがブラウザとやり取りするために必要なツールを提供します。

その結果、ブラウザをローカルで実行・管理する必要なく、複雑なブラウザインタラクションを実行できるAIエージェントが実現します。ミッション完了です!

その他の活用例

chrome-devtools-mcpとBright DataのBrowser APIの組み合わせは、他にも多くのブラウザ自動化、デバッグ、データ抽出のユースケースをサポートできます。

さまざまなシナリオで試せるプロンプトを以下に示します:

  • インタラクション後にネットワークリクエストからデータを抽出:Open a website, search for "web scraping," inspect the network requests generated when the results load, identify the request returning the search results, and extract the first 20 results from its response.
  • APIレスポンスを検査:Open a product page, identify the network request returning its product data, inspect the request and response, and extract the product name, price, availability, and rating.
  • ページのパフォーマンスを分析:Open a website and analyze its performance. Report the page load time, largest contentful paint, cumulative layout shift, and other relevant performance metrics, then identify potential bottlenecks.
  • JavaScriptエラーをデバッグ:Open a website, inspect the console for JavaScript errors and warnings, identify the affected scripts or pages, and explain the most likely causes based on the available debugging information.

chrome-devtools-mcpを通じて、エージェントはリンクのクリックやページ内容の読み取りだけに限定されません。コンソールの検査、パフォーマンス分析、ネットワークの監視なども行えます。Playwright MCPのようなソリューションと比較すると、より深いブラウザの検査とデバッグを必要とするユースケースに適しています。

まとめ

この記事では、Chrome DevTools for agentsとは何か、そしてそれがCDPを通じてどのようにブラウザ自動化をサポートするかを学びました。具体的には、Bright DataのBrowser APIと組み合わせることで、AIエージェントが組み込みのアンチボット機能を備えたスケーラブルなクラウドベースのブラウザセッションを実行できるようにする方法を見てきました。

その結果、エンタープライズレベルのワークロードにスケールできるAI制御のブラウザ自動化構成が実現します。同じ連携により、クラウドブラウザインフラに支えられたエージェント型ブラウザワークフローを構築することもできます。

Bright Dataアカウントにサインアップし、AI対応のウェブデータスクレイピングおよびブラウザ自動化ソリューションをぜひお試しください!