MCP.so
ログイン
C

Chrome DevTools MCP Server (Official)

@ChromeDevTools

基本情報

カテゴリ

ブラウザ自動化

バージョン

1.11.0

ライセンス

Apache-2.0

トランスポート

stdio

認証方式

none

作者

ChromeDevTools

Chrome DevTools MCP Server について

コーディングエージェントが実際に動いている Chrome ブラウザーを操作、デバッグ、プロファイリングできる、Google 公式の Chrome DevTools MCP サーバー。

Chrome DevTools MCP Server の設定

以下の設定を使って、このサーバーを MCP 対応クライアントに追加してください。

{
  "mcpServers": {
    "chrome-devtools": {
      "command": "npx",
      "args": [
        "-y",
        "chrome-devtools-mcp@latest"
      ]
    }
  }
}

Chrome DevTools MCP Server のツール

59

Clicks on the provided element

Drag an element onto another element

Type text into an input, text area or select an option from a <select> element.

Fill out multiple form elements (inputs, selects, checkboxes, radios) at once. ALWAYS prefer this tool over multiple individual 'fill' or 'click' calls when interacting with forms. It is significantly faster, more reliable, and reduces turn count. Example: Fill username, password, and check "Remember Me" in one call.

If a browser dialog was opened, use this command to handle it

Hover over the provided element

Press a key or key combination. Use this when other input methods like fill() cannot be used (e.g., keyboard shortcuts, navigation keys, or special key combinations).

Type text using keyboard into a previously focused input

Upload a file through a provided element.

Clicks at the provided coordinates (requires flag: --experimentalVision=true)

Closes the page by its index. The last open page cannot be closed.

Get a list of pages including extension service workers open in the browser.

Go to a URL, or back, forward, or reload. Use project URL if not specified otherwise.

Open a new tab and load a URL. Use project URL if not specified otherwise.

Select a page as a context for future tool calls.

Wait for the specified text to appear on the selected page.

Emulates various features on the target page. Each call replaces all emulation settings (except extraHttpHeaders), so pass all desired settings in a single call.

Resizes the page's window so that the page has specified dimension

Provides more detailed information on a specific Performance Insight of an insight set that was highlighted in the results of a trace recording.

Start a performance trace on the target webpage. Use to find frontend performance issues, Core Web Vitals (LCP, INP, CLS), and improve page load speed.

Stop the active performance trace recording on the target webpage.

Gets a network request by an optional reqid, if omitted returns the currently selected request in the DevTools Network panel. Useful for inspecting request headers (including 'Cookie') and response headers (including 'Set-Cookie' and directives).

Lists the most recent requests for the target page since the last navigation.

Evaluate JavaScript inside the target page or service worker. The source can be provided inline or loaded from a local file. Returns the response as JSON, so returned values have to be JSON-serializable.

Gets a console message by its ID. You can get all messages by calling list_console_messages.

Retrieve matched CSS rules, inline styles (element.style), inherited styles, custom properties, and cascade wrappers (@layer, @media, @container, @scope) for an element identified by its UID.

Get Lighthouse scores, failing audits, and the DOM nodes they flag for accessibility, SEO, best practices, and agentic browsing. Full reports are saved to disk. This excludes performance. For performance audits, run performance_start_trace

List all console messages for the target page since the last navigation. This includes console messages originating from extensions content scripts.

Starts recording a screencast (video) of the target page.

Stops the active screencast recording on the target page.

Take a screenshot of the page or element.

Take a text snapshot of the target page based on the a11y tree. The snapshot lists page elements along with a unique

Capture a heap snapshot of the target page. Use to analyze the memory distribution of JavaScript objects and debug memory leaks.

Loads and caches a memory heapsnapshot to identify and rank closure contexts holding dead captured fields—variables no remaining live closure can read. Scopes are ranked globally by the retained size of these dead values to provide a prioritizing heuristic, rather than an exact measure of reclaimable bytes. (requires flag: --memoryDebugging=true)

Closes a previously loaded and cached memory heapsnapshot, freeing its memory. (requires flag: --memoryDebugging=true)

Loads and caches two memory heapsnapshots and returns the comparison. If classIndex is provided, returns detailed diff for that class, otherwise returns summary diff. (requires flag: --memoryDebugging=true)

Loads and caches a memory heapsnapshot and returns instances of a specific class with their IDs. (requires flag: --memoryDebugging=true)

Loads and caches a memory heapsnapshot and returns all available information including statistics, static data, and aggregated node information. Supports pagination for aggregates. (requires flag: --memoryDebugging=true)

Loads and caches a memory heapsnapshot and returns the dominator chain for a specific node ID. This helps to identify which objects are keeping the target node alive. (requires flag: --memoryDebugging=true)

Loads and caches a memory heapsnapshot and returns duplicate strings grouped by their value. (requires flag: --memoryDebugging=true)

Loads and caches a memory heapsnapshot and returns outgoing edges (references) for a specific node ID. (requires flag: --memoryDebugging=true)

Loads and caches a memory heapsnapshot and returns detailed information about a specific object by its node ID, including size, type, distance, and DOM detachedness. (requires flag: --memoryDebugging=true)

Loads and caches a memory heapsnapshot and returns retainers for a specific node ID. (requires flag: --memoryDebugging=true)

Loads and caches a memory heapsnapshot and returns retaining paths for a specific node ID. This helps to understand why a node is not being garbage collected. (requires flag: --memoryDebugging=true)

Loads and caches a memory heapsnapshot and returns snapshot summary stats, including native contexts and their sizes, and retained by context summary. (requires flag: --memoryDebugging=true)

Loads and caches a memory heapsnapshot and queries objects matching specific filters (className, propertyName, nodeType, retainedSize, selfSize, isDetached, sortBy). (requires flag: --memoryDebugging=true)

Installs a Chrome extension from the given path. (requires flag: --categoryExtensions=true)

Lists all the Chrome extensions installed in the browser. This includes their name, ID, version, and enabled status. (requires flag: --categoryExtensions=true)

Reloads an unpacked Chrome extension by its ID. (requires flag: --categoryExtensions=true)

Triggers the default action of an extension by its ID. (requires flag: --categoryExtensions=true)

Uninstalls a Chrome extension by its ID. (requires flag: --categoryExtensions=true)

Executes a third-party developer tool exposed by the page. (requires flag: --categoryExperimentalThirdParty=true)

Lists all third-party developer tools the page exposes for providing runtime information (including debugging WebMCP tools and tools exposed via the 'devtoolstooldiscovery' event).

Executes a WebMCP tool exposed by the page (for debugging tools, use 'execute_3p_developer_tool'). (requires flag: --categoryExperimentalWebmcp=true)

Lists all WebMCP tools the page exposes (excluding debugging tools, which are exposed via 'list_3p_developer_tools'). (requires flag: --categoryExperimentalWebmcp=true)

Returns the OS integration state (badge count and registered file handlers) for an installed web app, identified by its manifest ID. (requires flag: --categoryPwa=true)

Installs a Progressive Web App (PWA) identified by its manifest ID. This installs through the PWA CDP domain without a user gesture or install dialog. DevTools installs default to browser display mode. (requires flag: --categoryPwa=true)

Launches an installed Progressive Web App using its saved display mode. Optionally opens a specific URL within the same app instead of the default start URL. (requires flag: --categoryPwa=true)

Uninstalls a Progressive Web App identified by its manifest ID and closes any open app windows. (requires flag: --categoryPwa=true)

概要

Chrome DevTools MCP Server (Official) とは?

Chrome DevTools MCP は Google 公式の MCP サーバー(chrome-devtools-mcp)で、Claude、Cursor、Copilot、Gemini などのコーディングエージェントが実際に動いている Chrome ブラウザーを操作・検査し、自動化、デバッグ、パフォーマンス分析を行えるようにします。

このプロジェクトは Chrome DevTools チームが ChromeDevTools/chrome-devtools-mcp リポジトリで Apache-2.0 ライセンスのもとメンテナンスしています。Chrome の操作には Puppeteer を、トレースの記録とパフォーマンスインサイトの抽出には DevTools フロントエンドを使います。stdio でローカル実行され、無料で、API キーも不要です。MCP なしで使える CLI も提供されています。

Chrome DevTools MCP Server (Official) の使い方

前提条件:

  • Node.js LTS(npm パッケージの宣言は ^20.19.0 || ^22.12.0 || >=23)
  • Google Chrome の現行安定版以降(Chrome for Testing もサポート)
  • npm

MCP クライアントに標準設定を追加します:

{
  "mcpServers": {
    "chrome-devtools": {
      "command": "npx",
      "args": ["-y", "chrome-devtools-mcp@latest"]
    }
  }
}

基本的なブラウザー操作だけでよい場合は、3 つのツール(ナビゲーション、スクリプト実行、スクリーンショット)だけを公開する slim モードを使えます:

"args": ["-y", "chrome-devtools-mcp@latest", "--slim", "--headless"]

ブラウザーを必要とするツールが初めて呼ばれたときに、サーバーが Chrome を自動で起動します。動作確認には「Check the performance of https://developers.chrome.com」というプロンプトを試してください。

Claude Code

MCP サーバーのみをインストールする場合:

claude mcp add chrome-devtools --scope user npx chrome-devtools-mcp@latest

MCP サーバーと skills をまとめたプラグインとしてインストールする場合:

/plugin marketplace add ChromeDevTools/chrome-devtools-mcp
/plugin install chrome-devtools-mcp@chrome-devtools-plugins

インストール後に Claude Code を再起動します。以前に手動でインストールしていた場合は、先に削除してください。

Claude Desktop

公式のクライアントガイドには Claude Desktop の個別手順はありません。claude_desktop_config.json は同じ mcpServers 形式なので、上記の標準設定を貼り付けてアプリを再起動します。

Cursor

README のワンクリックインストールボタンを使うか、Cursor Settings -> MCP -> New MCP Server を開いて標準設定を入力します。

VS Code

推奨はエージェントプラグインとしての導入です。コマンドパレットで Chat: Install Plugin From Source を実行し、ChromeDevTools/chrome-devtools-mcp を貼り付けます。macOS または Linux で MCP サーバーのみを追加する場合:

code --add-mcp '{"name":"io.github.ChromeDevTools/chrome-devtools-mcp","command":"npx","args":["-y","chrome-devtools-mcp"],"env":{}}'

Codex

codex mcp add chrome-devtools -- npx chrome-devtools-mcp@latest

公式クライアントガイドでは、Gemini CLI(gemini mcp add chrome-devtools npx chrome-devtools-mcp@latest)、Windsurf、Cline、JetBrains、Kiro、Warp、OpenCode なども扱っています。

自分の Chrome に接続する

デフォルトでは、専用プロファイルで新しい Chrome インスタンスが起動します。すでにログイン済みのブラウザーを使いたい場合は、chrome://inspect/#remote-debugging でリモートデバッグを有効にして(Chrome 144 以降)--autoConnect を追加するか、デバッグポート付きで Chrome を起動して --browser-url=http://127.0.0.1:9222 を渡します。

Chrome DevTools MCP Server (Official) の主な機能

  • パフォーマンスインサイト:DevTools のトレースを記録し、Core Web Vitals(LCP、INP、CLS)を含む具体的な改善点を返します。
  • 実ブラウザーでのデバッグ:ネットワークリクエスト、ソースマップ済みスタックトレース付きのコンソールメッセージ、スクリーンショット、アクセシビリティツリーのスナップショット。
  • 信頼性の高い自動化:Puppeteer ベースのクリック、入力、フォーム入力で、操作結果を自動的に待機します。
  • Lighthouse 監査:アクセシビリティ、SEO、ベストプラクティスのスコアと、不合格の DOM ノード。
  • メモリデバッグ:ヒープスナップショットでメモリリークを調査します。
  • デバイスエミュレーション:ネットワークと CPU のスロットリング、モバイルビューポート、ダークモード、位置情報、ユーザーエージェントのエミュレーション。
  • 柔軟な構成:--slim、--headless、--isolated、カテゴリ単位のツール切り替え、URL の許可・ブロックリスト。
  • 公式かつ継続的にメンテナンス:Chrome DevTools チームが開発し、頻繁にリリースされています。

Chrome DevTools MCP Server (Official) のツール

  • 入力の自動化:click、fill、fill_form、type_text、press_key、hover、drag、upload_file、handle_dialog が、ページスナップショットで識別された要素を操作します。
  • ナビゲーション:new_page、navigate_page、list_pages、select_page、close_page、wait_for でタブとページ読み込みを管理します。
  • パフォーマンス:performance_start_trace、performance_stop_trace、performance_analyze_insight でトレースを記録し、個々のインサイトを掘り下げます。
  • ネットワークとデバッグ:list_network_requests、get_network_request、list_console_messages、evaluate_script、get_css_styles、lighthouse_audit、take_screenshot、take_snapshot。
  • エミュレーション:emulate と resize_page。
  • メモリ:take_heapsnapshot。より詳しいヒープ分析ツールには --memoryDebugging=true が必要です。
  • オプトインのカテゴリ:Chrome 拡張機能ツール(--categoryExtensions=true)、プログレッシブウェブアプリのツール(--categoryPwa=true)、実験的な WebMCP ツール。

Chrome DevTools MCP Server (Official) のユースケース

  • 実ブラウザーでコード変更を確認:「localhost:3000 を開いてサインアップフォームを送信し、コンソールに何が出たか教えて。」
  • 遅いページの診断:「このページのパフォーマンストレースを記録して、LCP が遅い理由を説明して。」
  • 失敗する API 呼び出しのデバッグ:「ログイン後のネットワークリクエストを一覧にして、500 を返したリクエストのレスポンスを見せて。」
  • レイアウト崩れの修正:「幅 375px でスクリーンショットを撮って、ヘッダーがはみ出す原因を調べて。」
  • 監査の実行:「アクセシビリティと SEO の Lighthouse 監査を実行して、不合格の要素を一覧にして。」
  • ヒープスナップショットを取得・比較してメモリリークを探します。

Chrome DevTools MCP Server (Official) と代替ツールの比較

  • Playwright MCP Server は Microsoft のブラウザー自動化サーバーで、Chromium、Firefox、WebKit に対応し、アクセシビリティスナップショットによる自動化に重点を置いています。Chrome DevTools MCP は Chrome 専用ですが、DevTools レベルのパフォーマンストレース、Lighthouse 監査、ヒープスナップショットが加わります。
  • Puppeteer MCP Server は基本的な Puppeteer 自動化のための以前からあるリファレンスサーバーです。Chrome DevTools MCP も Puppeteer をベースにしており、Chrome チームが積極的にメンテナンスしている選択肢です。
  • BrowserTools MCP Server は Chrome 拡張機能を通じてブラウザーのログを読み取るコミュニティプロジェクトです。Chrome DevTools MCP は拡張機能が不要で、--autoConnect で自分の Chrome に接続できます。

Chrome DevTools MCP Server (Official) のトラブルシューティング

  • サーバーが起動しない:ターミナルで npx chrome-devtools-mcp@latest --help を実行し、クライアントがターミナルと同じ Node と npm のバージョンを使っているか確認します。
  • ERR_MODULE_NOT_FOUND:多くの場合、サポート外の Node バージョンか npx キャッシュの破損が原因です。rm -rf ~/.npm/_npx と npm cache clean --force でキャッシュを消去して再インストールします。
  • Target closed エラー:ブラウザーを起動できませんでした。実行中の Chrome インスタンスを閉じ、最新の安定版 Chrome をインストールします。
  • Windows 10 で「MCP error -32000: Connection closed」:"command": "cmd" と "args": ["/c", "npx", "-y", "chrome-devtools-mcp@latest"] を使うか、npx の絶対パスを指定します。
  • コンテナと CI:Chrome は root では起動しません。サーバーは非 root ユーザーで実行してください。

よくある質問

1

Chrome DevTools MCP は公式ですか?

はい。Google の Chrome DevTools チームが ChromeDevTools GitHub 組織で公開しており、npm パッケージ名は `chrome-devtools-mcp` です。

2

Chrome DevTools MCP は無料ですか?

はい。Apache-2.0 のオープンソースで、アカウントも API キーも不要です。必要なのは Node.js と Chrome だけです。

3

Chrome DevTools MCP は Claude Code、Cursor、VS Code で使えますか?

はい。公式クライアントガイドには Claude Code、Cursor、VS Code/Copilot、Codex、Gemini CLI、Windsurf をはじめ多くのクライアントの手順があります。

4

既存の Chrome プロファイルやログイン状態を使えますか?

はい。`chrome://inspect/#remote-debugging` でリモートデバッグを有効にし(Chrome 144 以降)、`--autoConnect` でサーバーを起動するか、`--browser-url` でデバッグポートに接続します。

5

データを収集しますか?

Google はデフォルトで利用統計を収集します。`--no-usage-statistics` でオプトアウトできます。パフォーマンスツールはフィールドデータ取得のためにトレースの URL を CrUX API に送ることがあり、`--no-performance-crux` で無効にできます。

6

エージェントにブラウザーを任せても安全ですか?

サーバーはブラウザーの内容を MCP クライアントに公開するため、機密情報は避けてください。一時プロファイルを使う `--isolated`、アクセス先を制限する URL の許可・ブロックパターン、スクリプト評価ツールを無効にする `--javascriptEvaluation=false` を活用できます。

7

Chrome 以外のブラウザーに対応していますか?

公式にサポートしているのは Google Chrome と Chrome for Testing です。その他の Chromium 系ブラウザーでも動く場合がありますが、保証はありません。

8

ヘッドレスで実行できますか?

はい。args に `--headless` を追加し、必要に応じて `--viewport` でウィンドウサイズを指定します。

コメント

「ブラウザ自動化」の他のコンテンツ