Chrome Tools MCP Server

local-only server

The server can only run on the client’s local machine because it depends on local resources.

Integrations

  • Supports interaction with web page elements through CSS selectors, enabling precise targeting of DOM elements for querying and interaction.

  • Provides configuration support for connecting to Chrome running in Docker containers, with specific setup instructions for containerized environments.

  • Integrates with Google Chrome browser, allowing remote control of tabs, executing JavaScript, capturing screenshots, monitoring network traffic, navigating to URLs, querying DOM elements, and interacting with page elements.

Chrome ツール MCP サーバー

DevToolsプロトコルを介してChromeを操作するためのツールを提供するMCPサーバー。このサーバーは、JavaScriptの実行、スクリーンショットのキャプチャ、ネットワークトラフィックの監視など、Chromeタブのリモート制御を可能にします。

なぜこのような MCP サーバーを使用するのでしょうか?

このタイプのMCPサーバーは、ClineのようなAIツールにブラウザを操作させる前に、ブラウザを特定の状態に手動で設定する必要がある場合に便利です。また、このツールを使ってネットワークイベントをリッスンし、コンテキストに取り込むこともできます。

特徴

  • Chromeタブを一覧表示する
  • タブでJavaScriptを実行する
  • スクリーンショットをキャプチャする
  • ネットワークトラフィックを監視する
  • タブからURLへ移動する
  • DOM要素のクエリ
  • コンソール出力キャプチャで要素をクリックする

インストール

npm install @nicholmikey/chrome-tools

構成

サーバーは、MCP 設定の環境変数を通じて構成できます。

{ "chrome-tools": { "command": "node", "args": ["path/to/chrome-tools/dist/index.js"], "env": { "CHROME_DEBUG_URL": "http://localhost:9222", "CHROME_CONNECTION_TYPE": "direct", "CHROME_ERROR_HELP": "custom error message" } } }

環境変数

  • CHROME_DEBUG_URL : Chromeのリモートデバッグインターフェースが利用できるURL(デフォルト: http://localhost:9222
  • CHROME_CONNECTION_TYPE : ログ記録の接続タイプ識別子(例:「direct」、「ssh-tunnel」、「docker」)
  • CHROME_ERROR_HELP : 接続に失敗したときに表示されるカスタムエラーメッセージ

セットアップガイド

ネイティブセットアップ(Windows/Mac/Linux)

  1. リモート デバッグを有効にして Chrome を起動します。
    # Windows "C:\Program Files\Google\Chrome\Application\chrome.exe" --remote-debugging-port=9222 # Mac /Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --remote-debugging-port=9222 # Linux google-chrome --remote-debugging-port=9222
  2. MCP 設定を構成します。
    { "env": { "CHROME_DEBUG_URL": "http://localhost:9222", "CHROME_CONNECTION_TYPE": "direct" } }

WSL セットアップ

WSL で実行する場合は、Windows で実行されている Chrome に接続するための SSH トンネルを設定する必要があります。

  1. リモートデバッグを有効にして Windows で Chrome を起動する
  2. SSH トンネルを作成します。
    ssh -N -L 9222:localhost:9222 windowsuser@host
  3. MCP 設定を構成します。
    { "env": { "CHROME_DEBUG_URL": "http://localhost:9222", "CHROME_CONNECTION_TYPE": "ssh-tunnel", "CHROME_ERROR_HELP": "Make sure the SSH tunnel is running: ssh -N -L 9222:localhost:9222 windowsuser@host" } }

Dockerのセットアップ

Docker で Chrome を実行する場合:

  1. Chrome コンテナを起動します。
    docker run -d --name chrome -p 9222:9222 chromedp/headless-shell
  2. MCP 設定を構成します。
    { "env": { "CHROME_DEBUG_URL": "http://localhost:9222", "CHROME_CONNECTION_TYPE": "docker" } }

ツール

リストタブ

利用可能なすべての Chrome タブを一覧表示します。

スクリプト実行

指定されたタブで JavaScript コードを実行します。パラメータ:

  • tabId : ChromeタブのID
  • script : 実行するJavaScriptコード

キャプチャスクリーンショット

指定されたタブのスクリーンショットをキャプチャし、AI モデルでの使用に合わせて自動的に最適化します。パラメータ:

  • tabId : ChromeタブのID
  • format : 画像フォーマット (jpeg/png) - 注: これは最初のキャプチャのみに使用されます。最終出力ではWebPとPNGフォールバックが使用されます。
  • quality : JPEG品質 (1-100) - 注: 最初のキャプチャのみ
  • fullPage : スクロール可能なページ全体をキャプチャする

画像処理:

  1. WebP 最適化 (プライマリ フォーマット):
    • 最初の試み: 品質80、高圧縮のWebP
    • 2 回目の試行: 1 回目の試行が 1 MB を超える場合は、品質 60 の WebP とほぼロスレス圧縮
  2. PNGフォールバック:
    • WebP処理が失敗した場合にのみ使用される
    • 最大限の圧縮とカラーパレットの最適化が含まれています
  3. サイズ制約:
    • 最大サイズ: 900x600 (アスペクト比を維持)
    • 最大ファイルサイズ: 1MB
    • 必要に応じて段階的にサイズを縮小

ネットワークイベントのキャプチャ

指定されたタブからのネットワーク イベントを監視およびキャプチャします。パラメータ:

  • tabId : ChromeタブのID
  • duration : キャプチャする秒数
  • filters : オプションのタイプとURLパターンのフィルター

ロードURL

指定された URL にタブを移動します。パラメータ:

  • tabId : ChromeタブのID
  • url : 読み込むURL

クエリDOM要素

CSSセレクタに一致するDOM要素に関する詳細情報を照会して取得します。パラメータ:

  • tabId : ChromeタブのID
  • selector : 要素を見つけるためのCSSセレクター 戻り値:
  • 次のプロパティを含む DOM 要素の配列:
    • nodeId : ノードの一意の識別子
    • tagName : HTMLタグ名
    • textContent : 要素のテキストコンテンツ
    • attributes : すべての要素属性を含むオブジェクト
    • boundingBox : 要素の位置と寸法
    • isVisible : 要素が表示されているかどうか
    • ariaAttributes : アクセシビリティのためのARIA属性

クリック要素

DOM 要素をクリックし、クリックによってトリガーされたコンソール出力をキャプチャします。パラメータ:

  • tabId : ChromeタブのID
  • selector : クリックする要素を見つけるための CSS セレクター 戻り値:
  • 以下を含むオブジェクト:
    • message : 成功/失敗メッセージ
    • consoleOutput : クリックによってトリガーされるコンソールメッセージの配列

ライセンス

マサチューセッツ工科大学

You must be authenticated.

A
security – no known vulnerabilities
A
license - permissive license
A
quality - confirmed to work

DevTools プロトコルを通じて Chrome と対話するためのツールを提供する MCP サーバー。Chrome タブをリモート制御して JavaScript を実行したり、スクリーンショットをキャプチャしたり、ネットワーク トラフィックを監視したりできるようになります。

  1. Why use an MCP server like this?
    1. Features
      1. Installation
        1. Configuration
          1. Environment Variables
        2. Setup Guide
          1. Native Setup (Windows/Mac/Linux)
          2. WSL Setup
          3. Docker Setup
        3. Tools
          1. list_tabs
          2. execute_script
          3. capture_screenshot
          4. capture_network_events
          5. load_url
          6. query_dom_elements
          7. click_element
        4. License
          ID: rhq74imjee