browser-mcp-cdp について
browser-mcp-cdpは、Chrome DevTools Protocol経由でローカルのChromeを操作するMCPサーバーです。ログイン状態を保つ使い捨てのプロファイルコピーで元のプロファイルを変更せず、複数のクライアントでブラウザーを共有できます。
主な機能
- 01ローカルChromeの操作
- 02分離されたプロファイルコピー
- 03複数クライアントでの共有
- 04ページ移動とJavaScript実行
- 05クリック、入力、撮影、ページ読取
- 06タブ管理とページスクロール
活用シーン
- 01ログイン状態でGmailや社内ダッシュボードを確認
- 02元のChromeプロファイルを変えずにエージェントでページ操作
- 03複数のMCPクライアントでブラウザーセッションを共有
MCP 対応
MCPクライアントにブラウザー操作ツールを提供し、共有ブローカーで複数クライアントの接続を管理します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
13掲載時のツール一覧 · 2 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| url | string | はい | 移動先の URL |
詳細
browser-mcp-cdp
Chrome DevTools Protocol を介して実際のローカル Chromeを操作する Model Context Protocol(MCP)サーバーです。クラウドサービスに認証情報をアップロードせずに、ログイン済みセッション(Gmail、社内ダッシュボード、銀行など)へのアクセスを必要とするエージェント向けに設計されています。
なぜ別のブラウザー MCP が必要なのですか?
他の選択肢とはトレードオフが異なります。
| browser-mcp-cdp | Playwright MCP | Chrome DevTools MCP | |
|---|---|---|---|
| ブラウザー | ローカルの Chrome | 管理対象の Playwright Chromium | ローカルの Chrome |
| ログイン状態 | ✅ プロファイルのスナップショット(Cookie、ログイン情報、IndexedDB) | ❌ 新しいプロファイル | ✅ 実際のプロファイル(変更されます) |
| プロファイルの分離 | ✅ 起動時にコピーし、実際のプロファイルには触れません | 該当なし | ⚠️ 直接接続 |
| 複数クライアント | ✅ MCP クライアント間でブローカーを共有 | ❌ クライアントごと | ❌ クライアントごと |
| 依存関係 | Node のみ(Playwright のダウンロード不要) | Playwright + ブラウザー | Node のみ |
プロファイルのスナップショット方式により、エージェントに「メールを確認して」と頼むと、ログイン済みの Gmail を見ることができますが、エージェントの操作によって実際の Chrome プロファイルが変更されることはありません。各セッションでは、破棄可能なコピーが使われます。
インストール
claude mcp add browser -- npx -y browser-mcp-cdp
または、~/.claude.json / Claude Desktop の設定に手動で追加します。
{
"mcpServers": {
"browser": {
"command": "npx",
"args": ["-y", "browser-mcp-cdp"]
}
}
}
Node 18+ と Google Chrome のインストールが必要です。
ツール
| ツール | 用途 |
|---|---|
browser_navigate | URL を読み込み、最終 URL とタイトルを返します |
browser_evaluate | ページ内で JS を実行し、結果を返します |
browser_screenshot | 現在のページの PNG |
browser_click | CSS セレクターを使ってクリックします |
browser_click_at | ピクセル座標を指定してクリックします(iframe / オーバーレイを貫通) |
browser_fill | input/textarea/select の値を設定します |
browser_wait_for | セレクターが表示されるまで待機します |
browser_get_url | 現在の URL |
browser_get_text | ページまたは要素の表示テキスト |
browser_get_html | ページまたは要素の outerHTML |
browser_scroll | (x, y) ピクセル分スクロールします |
browser_tabs | 開いているタブの一覧 |
browser_new_tab | 新しいタブを開きます |
環境変数
| 変数 | デフォルト |
|---|---|
BROWSER_MCP_CHROME_PATH | OS ごとに自動検出 |
BROWSER_MCP_CHROME_PROFILE_ROOT | OS 標準の Chrome プロファイルディレクトリ |
BROWSER_MCP_BROKER_SOCKET_PATH | ~/.browser-mcp/broker.sock |
BROWSER_MCP_BROKER_LOCK_PATH | ~/.browser-mcp/broker.lock |
BROWSER_MCP_BROKER_IDLE_TIMEOUT_MS | 600000(10 分) |
仕組み
- 最初の MCP クライアント接続時に、ブローカーのサブプロセスが起動します(デタッチ)。
- ブローカーは、Chrome プロファイルの Cookie/ローカルストレージ/ログインデータを一時ディレクトリにコピーします。
- ブローカーは
--user-data-dir=<temp>と--remote-debugging-portを指定して Chrome を起動します。 - 以降の MCP クライアントは Unix ソケット経由で同じブローカーに接続し、1 つの Chrome を共有します。
- アクティビティがない状態が
BROKER_IDLE_TIMEOUT_MS続くと、ブローカーは終了し、一時プロファイルが削除されます。
セキュリティ
このサーバーを使うと、LLM はアカウントにログイン済みのブラウザーで任意の JavaScript を実行できます。信頼できるモデルとプロンプトのみを使用してください。プロファイルのスナップショットによって被害は制限されます(実際の Chrome に永続的な変更は加えられません)が、セッション中、エージェントは Cookie、セッショントークン、およびログイン中のあなたに表示されるあらゆるデータを読み取ることができます。
ライセンス
MIT
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。