Skip to main content
Glama

cdpilot

ターミナルからブラウザを自動化。依存関係ゼロ。1つのコマンドで、完全な制御を。

npm version npm downloads License: MIT Node.js MCP Compatible cdpilot MCP server

クイックスタート

npx cdpilot launch    # Start browser with CDP
npx cdpilot go https://example.com
npx cdpilot shot      # Take screenshot

設定ファイルは不要。ボイラープレートも不要。npxを実行するだけです。

Related MCP server: Scout

なぜcdpilotなのか?

AIエージェントや開発者には、確実に動作するブラウザ制御が必要です:

  • 設定不要npx cdpilot launchで隔離されたブラウザセッションを開始

  • 依存関係ゼロ — Puppeteer、Playwright、Seleniumは不要。HTTP経由の純粋なCDP

  • 40以上のコマンド — ナビゲーション、クリック、入力、スクリーンショット、ネットワーク、コンソール、アクセシビリティなど

  • AIエージェントフレンドリー — Claude、GPT、Gemini、およびあらゆるLLMツール使用ワークフロー向けに設計

  • セッションの隔離 — 個人のブラウザには影響を与えません。cdpilotは独自のプロファイルで実行されます

  • 視覚的なフィードバック — 緑色の光のオーバーレイ、カーソルの可視化、クリックの波紋、キーストローク表示により、自動化中も状況を把握可能

  • プロジェクトごとの隔離 — 各プロジェクトは自動的に独自のブラウザインスタンスとポートを取得し、競合を防ぎます

  • AI制御の警告 — 自動化中に操作を行うと、赤いトースト通知が表示されます

  • プライバシー重視 — すべてローカルで実行されます。データがマシンから外部へ送信されることはありません

ブラウザの選択(ワークロードに応じた自動選択)

cdpilotは、実行内容に応じて最適なブラウザを選択します。auto(デフォルト)は、拡張機能のワークロードとプラットフォームの安定性という2つの軸に基づいたポリシーです:

ワークロード

自動選択の優先順位

拡張機能が登録されている (ext-install)

vivaldi → brave → edge → chromium → chrome

拡張機能なし(純粋な自動化)

chrome → vivaldi → edge → chromium → brave

いつでも上書き可能です:

cdpilot browser            # show current pick + reason
cdpilot browser vivaldi    # pin to Vivaldi
cdpilot browser auto       # restore smart default

なぜ分かれているのか?

  • Chrome 147以降は、展開された拡張機能に対する--load-extensionを警告なしで無視します(エラーも警告も出ません)。確認済み — chrome://extensionsには0個と表示されます。

  • Vivaldi、Brave、Edge、Chromium--load-extensionを尊重します(テスト済み)。

  • **macOS 26 (Tahoe)**上のBrave 1.89は、起動から約7分で確実にクラッシュします(ThreadPoolForegroundWorkerでのSIGTRAP)。cdpilotはOSを検出し、修正版のBraveがリリースされるまで自動的にBraveの優先度を下げます。

各ブラウザは独自の隔離されたプロファイル(~/.cdpilot/.../profile-vivaldiなど)を取得するため、切り替えによって設定が破損することはありません。

インストール

# Use directly (no install needed)
npx cdpilot <command>

# Or install globally
npm i -g cdpilot

要件: Node.js 18以上、およびBrave Browser、Google Chrome、Chromiumのいずれか。

初回セットアップ

npx cdpilot setup     # Auto-detect browser, create isolated profile
npx cdpilot launch    # Start browser with CDP enabled
npx cdpilot status    # Check connection

コマンド

ナビゲーションとコンテンツ

cdpilot go <url>              # Navigate to URL
cdpilot content               # Get page text content
cdpilot html                  # Get page HTML
cdpilot shot [file]           # Take screenshot (PNG)
cdpilot pdf [file]            # Save page as PDF

インタラクション

cdpilot click <selector>      # Click element
cdpilot type <selector> <text># Type into input
cdpilot fill <selector> <val> # Set input value (React-compatible)
cdpilot submit <form>         # Submit form
cdpilot hover <selector>      # Hover element
cdpilot keys <combo>          # Keyboard shortcut (ctrl+a, enter, etc.)
cdpilot scroll-to <selector>  # Scroll element into view
cdpilot drag <from> <to>      # Drag and drop

デバッグ

cdpilot console [url]         # Capture console logs
cdpilot network [url]         # Monitor network requests
cdpilot debug [url]           # Full diagnostic (console+network+perf+shot)
cdpilot perf                  # Performance metrics
cdpilot eval <js>             # Execute JavaScript

タブ管理

cdpilot tabs                  # List open tabs
cdpilot new-tab [url]         # Open new tab
cdpilot switch-tab <id>       # Switch to tab
cdpilot close-tab [id]        # Close tab
cdpilot close                 # Close active tab

ネットワーク制御

cdpilot throttle slow3g       # Simulate slow 3G
cdpilot throttle fast3g       # Simulate fast 3G
cdpilot throttle offline      # Go offline
cdpilot throttle off          # Back to normal
cdpilot proxy <url>           # Set proxy
cdpilot proxy off             # Remove proxy

リクエストのインターセプト

cdpilot intercept block <pattern>                    # Block requests
cdpilot intercept mock <pattern> <json-file>         # Mock responses
cdpilot intercept headers <pattern> <header:value>   # Add headers
cdpilot intercept list                               # List active rules
cdpilot intercept clear                              # Clear all rules

デバイスエミュレーション

cdpilot emulate iphone        # iPhone emulation
cdpilot emulate ipad          # iPad emulation
cdpilot emulate android       # Android emulation
cdpilot emulate reset         # Back to desktop

位置情報

cdpilot geo istanbul          # Set location to Istanbul
cdpilot geo london            # Set location to London
cdpilot geo 41.01 28.97       # Custom coordinates
cdpilot geo off               # Remove override

アクセシビリティ

cdpilot a11y                  # Full accessibility tree
cdpilot a11y summary          # Quick summary
cdpilot a11y find <role>      # Find elements by ARIA role

セッション管理

cdpilot session               # Current session info
cdpilot sessions              # List all sessions
cdpilot session-close [id]    # Close session

高度な機能

cdpilot cookies [domain]      # List cookies
cdpilot storage               # localStorage contents
cdpilot upload <sel> <file>   # Upload file to input
cdpilot multi-eval <js>       # Execute JS in all tabs
cdpilot headless [on|off]     # Toggle headless mode
cdpilot frame list            # List iframes
cdpilot dialog auto-accept    # Auto-accept dialogs
cdpilot permission grant geo  # Grant geolocation

ステルスとCAPTCHA

依存関係ゼロのアンチフィンガープリント層 — navigator.webdriverchrome.runtime、プラグイン(適切なPluginArray継承)、WebGLベンダー/レンダラー、権限、ハードウェア同時実行数、およびWorkerコンストラクターをパッチします。ページスクリプトが実行される前にPage.addScriptToEvaluateOnNewDocumentを介して注入されます。デフォルトでは無効ですが、オプトイン可能です。

cdpilot stealth on            # enable fingerprint patches (opt-in)
cdpilot stealth off           # disable (default)
cdpilot stealth status        # show which patches are applied

cdpilot captcha-check         # JSON detection of Turnstile/hCaptcha/reCAPTCHA/
                              # DataDome/PerimeterX/Arkose/GeeTest. Exit 0/3
cdpilot captcha-wait [sec]    # block until user solves (interactive)
                              # or poll with JSON stream (non-interactive)

公開されているボット検出パネルで検証済み:

  • bot.sannysoft.com: 24/24 PASS (WebDriver, Chrome obj, Plugins as PluginArray, WebGL, PHANTOM_, HEADCHR_, SELENIUM_DRIVER)

  • bot.incolumitas.com intoli: 6/6 OK — new-tests: 6/7 OK (1つのFAILは純粋なCDPの存在によるもので、JSパッチでは回避不可)

  • nowsecure.nl (Cloudflareの完全なチャレンジ): 合格

  • arh.antoinevastel.com/areyouheadless: "You are not Chrome headless"

信頼性

cdpilot browser [name|auto]   # workload-aware browser selection
cdpilot health                # JSON: alive, port, tabs, browser, today's crashes

cdpilot healthはシェル監視ツール向けに設計されています:

until cdpilot health >/dev/null; do cdpilot launch; sleep 2; done

macOSの~/Library/Logs/DiagnosticReports/から今日のBraveのクラッシュ回数を表示します — 自動化が静かに停止する前に劣化を検知します。

AIエージェントでの利用

cdpilotは、AIエージェントからツールとして呼び出されるように設計されています:

Claude Code (MCP)

{
  "mcpServers": {
    "cdpilot": {
      "command": "npx",
      "args": ["cdpilot", "mcp"]
    }
  }
}

あらゆるLLM (ツール使用)

{
  "name": "browser",
  "description": "Control a browser via CDP",
  "parameters": {
    "command": "go https://example.com"
  }
}

Python (サブプロセス)

import subprocess
result = subprocess.run(["npx", "cdpilot", "go", url], capture_output=True, text=True)
print(result.stdout)

環境変数

変数

デフォルト

説明

CDP_PORT

9222

CDPデバッグポート

CHROME_BIN

自動検出

ブラウザバイナリのパス

CDPILOT_PROFILE

~/.cdpilot/profile

隔離されたブラウザプロファイル

BROWSER_SESSION

自動

セッション識別子

仕組み

┌─────────────┐     HTTP/WebSocket      ┌──────────────┐
│  cdpilot │ ◄──────────────────────► │ Brave/Chrome │
│   (CLI)     │    Chrome DevTools       │  (CDP mode)  │
└─────────────┘     Protocol             └──────────────┘
       │                                        │
       │  Zero dependencies                     │  Isolated profile
       │  Pure HTTP + WebSocket                 │  Separate from your
       │  ~2500 lines, single file              │  personal browser
       └────────────────────────────────────────┘

Puppeteerなし。Playwrightなし。Seleniumなし。 直接的なCDP通信のみです。

比較

機能

cdpilot

Puppeteer

Playwright

Selenium

インストールサイズ

~50KB

400MB+

200MB+

100MB+

依存関係

0

50+

30+

Java + ドライバー

セットアップ時間

一瞬

数分

数分

面倒

AIエージェント対応

はい

手動

手動

手動

ブラウザダウンロード

いいえ

はい (Chromium)

はい (3ブラウザ)

いいえ

CLIファースト

はい

いいえ (ライブラリ)

いいえ (ライブラリ)

いいえ

MCPサポート

はい

いいえ

いいえ

いいえ

マネタイズ / Pro (近日公開)

cdpilot CLIは、今後も常に無料かつオープンソース (MIT) です。

将来の有料サービス:

  • cdpilot cloud — リモートブラウザインスタンス、ローカルブラウザ不要

  • チームダッシュボード — 共有セッション、監査ログ、使用状況分析

  • 優先サポート — エンタープライズ統合のための直接的な支援

セキュリティ

  • 隔離されたブラウザプロファイル — cdpilotは~/.cdpilot/profileで実行され、日常のブラウザとは分離されます。Cookie、パスワード、履歴が露出することはありません。

  • 任意のファイルアクセス不可 — MCPのスクリーンショットファイル名はサニタイズされ、スクリーンショットディレクトリに制限されます。パストラバーサルはブロックされます。

  • 安全なCSSセレクターquerySelectorに渡されるすべてのセレクターはJSONエスケープされ、インジェクションを防ぎます。

  • ネットワーク露出なし — CDPは127.0.0.1でのみリッスンします。デフォルトではリモート接続は不可能です。

  • 依存関係なし — npm/Pythonのランタイム依存関係がゼロであるため、サプライチェーン攻撃の表面積がゼロです。

脆弱性を見つけた場合は、公開の問題として報告するのではなく、メンテナーに直接メールしてください。

ロードマップ

テストアサーションを内蔵した唯一のブラウザMCPです。これまでにリリースしたものと、今後の予定は以下の通りです:

リリース済み

  • [x] 60以上のCLIコマンド (ナビゲーション、クリック、入力、スクリーンショット、PDF、コンソール、ネットワーク...)

  • [x] AIエージェント統合用MCPサーバー (Claude Code, Cursorなど)

  • [x] 10個の組み込みテストアサーション — assert, assert-url, assert-title, assert-count, assert-value, assert-attr, assert-visible/hidden, wait-for, check (バッチ), screenshot-diff

  • [x] アクセシビリティツリーのスナップショット (a11y-snapshot) — @ref参照付きの構造化データ、スクリーンショットより500倍少ないトークン

  • [x] トークン効率の良いスクリーンショット — 要素レベルのクロップ (13倍小さい)、JPEG品質制御、フォーマット選択

  • [x] ビジョンフォールバック (describe) — 1回の呼び出しでa11y + スクリーンショット + テキストを取得

  • [x] 注釈付きスクリーンショット — インタラクティブ要素に@Nバッジをオーバーレイ

  • [x] 自動待機 — MutationObserverベース、5秒間の自動要素待機

  • [x] バッチコマンド — stdin経由でJSON配列をパイプし、多段階自動化を実行

  • [x] 視覚的フィードバックシステム (永続的な緑色の光、カーソル、波紋、キーストローク表示)

  • [x] AI制御警告トースト (自動化中にユーザーが操作すると赤い警告を表示)

  • [x] プロジェクトごとのブラウザ隔離 (各プロジェクトが独自のポートとプロファイルを取得)

  • [x] プリフライトウィザード (初回実行時に依存関係を自動インストール)

  • [x] 永続的なMCPグロー (Claudeのオレンジ色の光のように、AIセッション全体で表示)

  • [x] DevExtensionシステム (ブラウザストアなしでネイティブJSを注入)

  • [x] スマートコマンドsmart-click, smart-fill, smart-select — 表示テキストで操作、CSSセレクター不要、LLM不要

  • [x] データ抽出 (extract) — テキスト、JSON、またはリスト形式での構造化DOMデータ

  • [x] ページ観測 (observe) — 利用可能なアクションを含むすべてのインタラクティブ要素をリスト化

  • [x] スクリプトランナー (run) — 合否レポート付きで.cdpスクリプトファイルを実行

近日公開

  • [ ] iframe & Shadow DOM サポート — iframeやシャドウルート内の要素を操作

  • [ ] セッションの記録と再生 — ブラウザセッションを記録し、決定論的に再生

  • [ ] ステルスモード (Pro) — 人間のようなマウス操作/タイピング、アンチフィンガープリント、CAPTCHA解決

  • [ ] cdpilot Cloud — ホスト型ブラウザセッションAPI、REST + WebSocket MCPエンドポイント

  • [ ] Chrome拡張機能 — CLIなしで任意のブラウザからcdpilotを使用

  • [ ] パフォーマンス監査 — CDP Performanceドメインを介したCore Web Vitals (LCP, CLS, INP)

  • [ ] WCAGアクセシビリティ監査 — 自動化されたa11yコンプライアンスレポート

  • [ ] Claude Code Skillモード — MCPに加えて.claude/skills/スキルとして実行

アイデアがあれば、Issueを開くか、PRを送信してください!

貢献

git clone https://github.com/mehmetnadir/cdpilot.git
cd cdpilot
npm install
npm test

PRを歓迎します!最初にCONTRIBUTING.mdをお読みください。

ライセンス

MIT — 自由に使用してください。


Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    A
    maintenance
    Reliable, scalable browser infrastructure for AI agents. Route, pool, and failover across any browser provider. 8 built-in browser tools using raw Chrome CDP - navigate, screenshot, snapshot, interact, evaluate. Zero-config with auto Chrome detection & concurrent sessions support
    518 npm
    10
    MIT
  • A
    license
    Not graded
    quality
    A
    maintenance
    single-binary MCP server that gives AI agents a browser. 66 tools for navigation, form filling, data extraction, screenshots, and DOM diffing — built on pure Chrome DevTools Protocol.
    13
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Lightweight browser automation server for AI agents, enabling fast (10-25ms per action), structured observations and semantic selectors with zero token overhead.
    6
    Apache 2.0
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables AI agents to scrape web pages, fill forms, take screenshots, and extract structured data via Chrome DevTools Protocol with zero external dependencies.
    MIT