Browser MCP over CDP について
Browser MCP over CDPは、Chrome DevTools Protocolを通じてChromeを操作するMCPサーバーです。ページ全体のスクリーンショットや詳細なDOM情報を提供し、ブラウザー自動化に利用できます。
主な機能
- 01ページ全体のスクリーンショット
- 02アクセシビリティツリーの取得
- 03詳細なDOMの調査
- 04クリック、キー、入力の操作
- 05URL移動と履歴操作
活用シーン
- 01表示領域外も含めたページの確認
- 02iframeやShadow DOMの調査
- 03クリックやフォーム入力の自動化
MCP 対応
Chromeの移動、調査、操作ツールをMCPクライアントに公開します。ローカルChromeまたはSelenium Hub経由のリモートブラウザーに接続します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
CDP を使用した Browser MCP
Chrome DevTools Protocol(CDP)を使用して Chrome ブラウザーを管理する MCP サーバーです
このプロジェクトでは、ブラウザーのタブを操作し、アクセスするためのツールを提供します。ブラウザーは CDP を使用して制御されるため、次のことが可能です。
- ページを、全体の高さを含むスクリーンショット、アクセシビリティツリー、拡張された詳細な DOM としてエクスポートします
- スクリーンショットには、スクロールして表示されている範囲だけでなく、ページ全体が含まれます
- アクセシビリティツリーには、関連性の高い部分がほとんど含まれます
- 拡張された詳細な DOM には次のものが含まれます
- ネストされた iframe、shadow DOM、疑似要素など
- 要素ごとに付与されたリスナー(例:onClick、onKeyDown など)。コールバック関数のコードも含まれます(良くも悪くも)
- 要素ごとに関連する解決済みスタイル
- クリック、キー入力、入力値の更新関数を使用してページを操作できます
- URL を開く、戻る、進む、再読み込みといった基本的な機能でページを移動できます

前提条件
- NodeJS
ローカルの Chrome で使用する
- npm install
- config-example.json の設定を Cloude、VS Code、Cursor など、任意の場所に配置します。
- Cloude については https://modelcontextprotocol.io/quickstart/user を参照してください
- Cursor については https://docs.cursor.com/context/model-context-protocol#configuring-mcp-servers を参照してください
リモートの Chrome で使用する
- 「selenoid」ディレクトリ内で次のコマンドを実行し、Selenoid Selenium Hub を起動します。
docker pull selenoid/vnc_chrome:128.0 docker pull selenoid/hub docker pull aerokube/selenoid-ui docker-compose up -d - config-example.json/mcpServers/browser 内に次の設定を追加して、SELENIUM_HUB_URL env var で Selenium HUB のアドレスを指定します。
"env": { "SELENIUM_HUB_URL": "http://localhost:4444/wd/hub" } - ライブブラウザーを確認するには、http://localhost:8080/ にアクセスします
警告
Selenoid Selenium Hub の設定ではホストの docker.sock を使用するため、Docker を完全に制御できます。
トラブルシューティング
npx @modelcontextprotocol/inspector npx tsx /Users/bogdan/devel/browser-mcp-over-cdp/src/MCP.ts
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。