Skip to main content
Glama

Chrome MCP

Chrome MCP は、ブラウザセッションを別のエンジンにコピーすることなく、実際の Chrome タブを Model Context Protocol クライアントに公開します。Chrome 拡張機能は chrome.debugger を介してユーザーの既存プロファイルのタブを制御し、永続的なローカルデーモンが1つ以上の Chrome プロファイルと MCP プロセスを調整します。

アーキテクチャ

MCP client ──stdio── MCP bridge ──authenticated HTTP── persistent daemon
                                                        │
                                                        ├── WebSocket ── Chrome extension/profile A ── tabs
                                                        └── WebSocket ── Chrome extension/profile B ── tabs
  • タブはブラウザセッションです。セッションを閉じると、その Chrome タブも閉じます。

  • 各拡張機能インストールは、1つの Chrome プロファイル/インスタンスを表します。

  • デーモンは、接続されているすべてのインスタンスにわたって、グローバルな数値 session_id を割り当てます。

  • デーモンは MCP クライアントの再起動とは独立して永続し、トレイアイコンはありません。

  • アクションは chrome.debugger を介して Chrome DevTools Protocol を使用するため、評価された JavaScript はページの CSP によってブロックされません。

  • 認証状態、クッキー、IndexedDB、サビスワーカー、証明書、拡張機能、ブラウザフィンガープリントは、セッションの移行が不要なため、元の Chrome プロファイルに残ります。

Related MCP server: monkeysee

インストール

Chrome 116 以降が必要です。

bun install

利用可能にしたいすべての Chrome プロファイルで拡張機能を読み込みます:

  1. chrome://extensions を開きます。

  2. デベロッパーモードを有効にします。

  3. パッケージ化されていない拡張機能を読み込むを選択します。

  4. このリポジトリの extension ディレクトリを選択します。

  5. 拡張機能のポップアップを開き、インスタンスにわかりやすい名前を付け、必要に応じて デフォルトとして使用 を選択します。

Chrome は ws://127.0.0.1:55333 に到達できる必要があります。デーモンは、chrome-extension:// オリジンからの拡張機能 WebSocket のみを受け入れ、localhost のみにバインドします。

MCP クライアント設定

{
  "mcpServers": {
    "chrome": {
      "command": "bunx",
      "args": ["-y", "@cypherpotato/chrome-mcp", "--mcp"]
    }
  }
}

bun link 後のローカルチェックアウトでは、bunx を使用せず、リンクされた実行可能ファイルを MCP 設定で直接指定します:

{
  "command": "C:\\Users\\<user>\\.bun\\bin\\chrome-mcp-electron",
  "args": ["--mcp"]
}

CLI

chrome-mcp-electron --mcp
chrome-mcp-electron --daemon
chrome-mcp-electron --status
chrome-mcp-electron --stop-daemon
chrome-mcp-electron --help

--mcp は、必要に応じてデーモンをバックグラウンドで起動し、その後 stdio 経由で MCP を提供します。MCP プロセスを閉じても、デーモンは停止せず、Chrome 拡張機能も切断されません。

ツール

公開されているツール名と入力スキーマは Browser MCP と一致しています:

  • browser_toggle_session

  • browser_import_session

  • browser_run_actions

  • browser_get_context

browser_toggle_session({ "action": "start" }) は、デフォルトの Chrome インスタンスにタブを開きます。複数のインスタンスが接続されている場合は、拡張機能のポップアップでデフォルトを選択します。拡張機能によって報告された既存のタブにも session_id が割り当てられ、直接制御できます。

browser_get_context は、接続されているすべてのインスタンスとそのタブを一覧表示します。URL はクエリ文字列なしで返されます。

複数の Chrome インスタンスとプロファイル

パッケージ化されていない拡張機能を、各プロファイルに個別にインストールします。各インストールでは、そのプロファイルに保存される安定したランダムなインスタンス ID が作成され、デーモンに自動的に再接続します。インスタンス名は一意である必要はありませんが、区別可能な名前を推奨します。

デーモンは、拡張機能またはサービスワーカーの再起動後、タブを再調整します。セッションは、それを所有する拡張機能が接続されており、かつタブが存在する限り、アドレス指定可能なままです。

機能

browser_run_actions は、Browser MCP と同じブラウザヘルパーサーフェスをサポートしています:

  • スナップショットと JavaScript の評価;

  • クリック、右クリック、ホーバー、ドラッグ、スクロール、入力;

  • ナビゲーション;

  • スクリーンショット;

  • コンソールとネットワークのログ;

  • ネットワークリクエストの詳細と、Chrome がまだ保持している場合のレスポンスボデイ;

  • レスポンシブビューポートのエミュレーションとカラースキームのエミュレーション;

  • JavaScript の alert、confirm、prompt の処理。

制限事項

  • Chrome はタブごとに1つのデバッガー接続のみ許可します。そのタブを制御する前に DevTools を閉じてください。DevTools を開くと拡張機能がデタッチされる可能性があります。

  • Chrome 内部ページ、拡張機能ページ、Chrome Web Store、その他の制限されたスキームは、制御したり、エージェントセッションとして公開したりすることはできません。

  • 拡張機能は各プロファイルにインストールする必要があります。あるプロファイルが別のプロファイルのタブを検査することはできません。

  • デバッガー権限により、タブがアタッチされている間、Chrome の警告が表示されます。

  • レスポンスボデイは、Chrome のネットワークバッファから期限切れになる可能性があります。

  • ネイティブタッチ入力とブラウザ内部のダウンロード CDP API は、chrome.debugger を介しては公開されません。

開発

bun run check
bun run test

テストスイートは、モックの拡張機能 WebSocket クライアントを使用して、Chrome を起動せずに、永続的なデーモンのライフサイクル、認証、タブ/セッションの再調整、複数インスタンス、デフォルトインスタンスの選択、アクションのルーティング、再接続動作を検証します。

内部プロトコルは docs/protocol.md に文書化されています。

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables MCP clients to drive a real, logged-in Chrome browser for web automation tasks like navigation, clicking, typing, and screenshotting.
    9 npm
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables local control of existing Chrome/Chromium browser tabs through MCP, including tab management, navigation, content reading, screenshots, and page interaction.
    Apache 2.0
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables MCP clients to directly operate your existing logged-in Chrome profiles, including cookies and extensions, without re-authentication or a headless browser. It provides tools for managing tabs, navigating, reading pages, clicking, typing, and launching profiles.
    7 npm
    MIT