mcpField
M
mcp-cdp

mcp-cdp

ローカル
github.com/dockndevaiブラウザ自動化13 日前に更新

mcp-cdp について

mcp-cdpは、Chrome DevTools Protocol経由でElectronやChrome/Chromiumアプリを操作するMCP サーバーです。アプリを調査・操作するエージェント向けにDOM、コンソール、ネットワーク情報を提供し、既定の読み取り専用設定と権限段階で操作を制限します。

主な機能

  1. 01DOMと要素HTMLの取得
  2. 02コンソールとネットワークリクエストの確認
  3. 03ビューポートのスクリーンショット取得
  4. 04クリック、入力、ナビゲーション
  5. 05制限付きのページJavaScript実行

活用シーン

  1. 01アプリのページ構造の確認
  2. 02コンソールエラーや失敗リクエストの調査
  3. 03ページ操作の自動化
  4. 04並行エージェントごとのデバッグ対象の分離

MCP 対応

MCP サーバーとして、CDP経由でアプリの対象、DOM、コンソール、ネットワークリクエスト、入力操作を調べるツールをMCPクライアントに提供します。既定では読み取り専用で、上位ツールはモードに応じて登録され、JavaScript実行には有効化設定と確認も必要です。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"dockndevai-mcp-cdp": {
"command": "npx",
"args": [
"-y",
"@dockndevai/mcp-cdp"
],
"env": {
"CDP_PORT": "<CDP_PORT>",
"CDP_HOST": "<CDP_HOST>",
"CDP_MODE": "<CDP_MODE>",
"CDP_ALLOW_EVAL": "<CDP_ALLOW_EVAL>",
"CDP_TARGET_ALLOWLIST": "<CDP_TARGET_ALLOWLIST>",
"CDP_DRY_RUN": "<CDP_DRY_RUN>"
}
}
}
}
起動コマンドnpx -y @dockndevai/mcp-cdp
設定が必要な環境変数
CDP_PORTThe --remote-debugging-port your app/browser exposes (default 9222).
CDP_HOSTHost serving the DevTools endpoint (default 127.0.0.1; non-loopback needs CDP_ALLOW_REMOTE).
CDP_MODEAccess mode: read-only | read-write | admin. Starts read-only; interactions need read-write.
CDP_ALLOW_EVALSet true to allow the evaluate tool (arbitrary JS) — admin mode only. Default false.
CDP_TARGET_ALLOWLISTComma-separated URL patterns; interactions are confined to matching targets. Empty = all.
CDP_DRY_RUNSet true to log interactions without dispatching them to the browser.

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npm@dockndevai/mcp-cdp0.2.3

ツール

6

掲載時のツール一覧 · 2 日前に更新

このツールにパラメーターはありません。

詳細

mcp-cdp

npm CI licence

安全をデフォルトとする Model Context Protocol サーバーです。ピクセル単位の GUI 自動化ではなく、Chrome DevTools Protocol(CDP)を通じて Electron または Chrome/Chromium アプリを操作します。アプリの --remote-debugging-port を指定すると、エージェントは DOM、コンソール、ネットワークリクエスト、実際の入力(クリック/入力/移動)、そして有効化した場合に限り JavaScript の評価を利用できます。

デスクトップ/ウェブアプリでは、コンピューター操作よりも優れている理由:

  • スクリーンショットではなく DOM。 エージェントはレンダリング済みの HTML を正確に読み取り、あらゆる要素をクエリできます。より多くの情報を得られ、画面に表示されていない内容も確認できます。
  • コンソールとネットワーク。 テストが失敗すると、捕捉されなかった例外や失敗したリクエストをすぐに確認できます。画像から推測する必要はありません。
  • 競合なし。 各エージェントは専用のデバッグポートに接続するため、並行して実行するエージェント(たとえば、Git worktree ごとに 1 つ)が同じデスクトップを奪い合うことはありません。
  • OS を問わず利用可能。 CDP は macOS、Linux、Windows で同じように動作し、ヘッドレス VPS でも同じ手順を実行できます。

dockndevai MCP サーバースイートの一部であり、すべてのサーバーで共通のガバナンスモデルを採用しています。

エージェントに提供する機能

読み取り専用で起動します(デフォルトで安全を参照)。より高い権限を持つツールは、モードを引き上げた場合にのみ登録されます。

ツール用途必要なモード
list_targetsページ/ウェブビュー/Electron ウィンドウを一覧表示します(ID、種類、タイトル、URL)読み取り専用
dom_snapshotページまたはセレクターのサブツリーのレンダリング済み HTML読み取り専用
query_domCSS セレクターに一致するすべての要素の outer HTML読み取り専用
console_logs最近のコンソール出力と捕捉されなかった例外読み取り専用
network_requests最近のリクエスト(メソッド、URL、ステータス、MIME。ヘッダーは取得されません)読み取り専用
screenshotビューポートの PNG 画像読み取り専用
clickセレクターに一致する最初の要素をクリックします読み書き
type_textページにテキストを入力します(先にセレクターにフォーカスします)読み書き
press_keyEnter/Tab/Escape/Backspace/Delete/矢印キー読み書き
navigate確認後に、対象を URL に移動します読み書き
evaluateページ内で JavaScript 式を実行します管理者 + CDP_ALLOW_EVAL

インストール

npx -y @dockndevai/mcp-cdp

デバッグポートを公開する

アプリ(または worktree の開発ビルド)を、エージェントごとに異なる明示的なポートで起動します。

  • Electron アプリ: your-app --remote-debugging-port=9222、またはメインプロセスのコードで app.whenReady() より前に app.commandLine.appendSwitch('remote-debugging-port', '9222') を実行します。
  • 通常の Chrome/Chromium: chrome --headless=new --remote-debugging-port=9222 --user-data-dir=/tmp/p1 <url>。

起動を確認します:curl http://127.0.0.1:9222/json/version。

設定

{
  "mcpServers": {
    "cdp": {
      "command": "npx",
      "args": ["-y", "@dockndevai/mcp-cdp"],
      "env": {
        "CDP_PORT": "9222",
        "CDP_MODE": "read-only"
      }
    }
  }
}

Claude Code/Cursor/Codex/VS Code/Windsurf については docs/CLIENTS.md を、すべての変数については .env.example を参照してください。

デフォルトで安全

src/security.ts で強制されます。実際の境界となるのはブラウザプロセスです。これにより、エージェントは意図した対象と操作の範囲内に保たれます。

  • CDP_MODE — read-only(デフォルト)→ read-write → admin。設定されたモードより上位のツールは登録されないため、read-only ではエージェントはクリック、入力、ページ移動を一切できません。
  • CDP_TARGET_ALLOWLIST — URL が指定したパターンに一致する対象に操作を限定します(空の場合はすべて)。読み取り(調査)は常に許可されます。
  • CDP_PROTECTED_TARGETS — 調査はできても、操作はできない対象です。デフォルトでは、サインインページ(accounts.google.com、login.microsoftonline.com、…)とブラウザー内部(chrome://、devtools://、拡張機能)が保護されます。
  • CDP_ALLOW_EVAL — evaluate はレンダラー内で任意のコードを実行します。admin モードに加えてこのフラグが必要で、保護された対象では拒否され、人間の確認も必要です。
  • CDP_DRY_RUN — 操作の意図をログに記録し、実際には実行せずに戻ります。
  • シークレット — リクエスト/レスポンスのヘッダーは一切取得されず(Cookie/認証情報)、機密性の高い URL クエリ値はマスキングされます。また、evaluate と navigate では MCP elicitation を通じて人間に確認を求めます。
  • ループバックのみ — CDP_ALLOW_REMOTE=true でない限り、エンドポイントは 127.0.0.1 である必要があります。

オプションの AI リスクガード。 CDP_GUARD_MODE=monitor|enforce を設定すると、evaluate ツールはローカルの laya-guard デーモン(pipx install laya-guard && laya-guard)に問い合わせ、JS 式の実行前に許可/確認/ブロックを判定します。eval のゲートを通過した後に実行され、制限を厳しくすることはできますが、許可を与えることはありません。失敗時は安全側に倒して拒否します。

エージェントにポートの公開方法、スクリーンショットではなく DOM/コンソール/ネットワークの読み取り方法、安全規則、および「なぜ失敗したのか?」を確認するワークフローを教える、同梱スキル cdp-safe-operations があります。SECURITY.md も参照してください。

開発

npm install
npm run build
# list the tools:
echo '{"jsonrpc":"2.0","id":1,"method":"tools/list","params":{}}' | CDP_PORT=9222 node dist/index.js
npm test

ライセンス

MIT

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。