mcpField
C
Cat Burglar

Cat Burglar

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

Cat Burglar について

Cat Burglarは、3種類のブラウザーエンジンとローカル・リモートのCDPセッションをまとめた、エージェント向けブラウザーMCPサーバーです。ブラウザー操作、差分中心の観察、サイト別ワークフローの記憶、プロキシプール、DevTools診断、人によるCAPTCHA対応をガードレール付きで提供します。

主な機能

  1. 011つのサーバーで3種類のブラウザーエンジン
  2. 02スナップショット、安定した参照、変更の観察
  3. 03サイト別ヒントと学習済みワークフロー
  4. 04HTTP、HTTPS、SOCKS5プロキシプール
  5. 05リモートCDPとクラウドブラウザーへの接続
  6. 06DevTools診断と人によるCAPTCHA対応

活用シーン

  1. 01ウェブページを調査しリンク、表、構造化データを抽出
  2. 02ローカルアプリをテストしコンソールエラーを確認
  3. 03パフォーマンストレースやネットワーク活動を記録
  4. 04人がCAPTCHAを完了した後にブラウザーセッションを継続

MCP 対応

Cat Burglarは、ブラウザーのライフサイクル、閲覧、操作、状態管理、診断のツールをMCPクライアントに公開します。stdioクライアントに対応し、CDP経由でローカルまたはリモートのブラウザーに接続できます。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"drmkdaddy-cat-burglar": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"BROWSER_MCP_ALLOW_PRIVATE_NETWORK",
"-e",
"BROWSER_MCP_OBSCURA_PATH",
"-e",
"BROWSER_MCP_PROFILE",
"-e",
"BROWSER_MCP_PROXY_POOL",
"-e",
"BROWSER_MCP_CDP_URL",
"-e",
"BROWSER_MCP_AUDIT",
"ghcr.io/drmkdaddy/cat-burglar:v0.5.2"
],
"env": {
"BROWSER_MCP_ALLOW_PRIVATE_NETWORK": "<BROWSER_MCP_ALLOW_PRIVATE_NETWORK>",
"BROWSER_MCP_OBSCURA_PATH": "<BROWSER_MCP_OBSCURA_PATH>",
"BROWSER_MCP_PROFILE": "<BROWSER_MCP_PROFILE>",
"BROWSER_MCP_PROXY_POOL": "<BROWSER_MCP_PROXY_POOL>",
"BROWSER_MCP_CDP_URL": "<BROWSER_MCP_CDP_URL>",
"BROWSER_MCP_AUDIT": "<BROWSER_MCP_AUDIT>"
}
}
}
}
起動コマンドdocker run -i --rm -e BROWSER_MCP_ALLOW_PRIVATE_NETWORK -e BROWSER_MCP_OBSCURA_PATH -e BROWSER_MCP_PROFILE -e BROWSER_MCP_PROXY_POOL -e BROWSER_MCP_CDP_URL -e BROWSER_MCP_AUDIT ghcr.io/drmkdaddy/cat-burglar:v0.5.2
設定が必要な環境変数
BROWSER_MCP_ALLOW_PRIVATE_NETWORKSet to 1 to allow localhost and private-network pages.
BROWSER_MCP_OBSCURA_PATHPath to the Obscura binary when it is not on PATH.
BROWSER_MCP_PROFILEObservation profile: local, flash, frontier, or auto.
BROWSER_MCP_PROXY_POOLJSON array or newline-separated HTTP/HTTPS/SOCKS5 proxy URLs.
BROWSER_MCP_CDP_URLシークレットRemote Chrome DevTools Protocol endpoint for the remote engine.
BROWSER_MCP_AUDITSet to 0 to disable the local audit log.

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

パッケージ
ocighcr.io/drmkdaddy/cat-burglar:v0.5.2

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

Cat Burglar

3つのブラウザー。1つのMCP。変更点だけを取得。

License: MIT Node MCP MCP Registry Glama Benchmark

Cat Burglar は、実際のブラウザーをエージェントに接続します。パッチ適用済みのステルス Chromium、DevTools 用の標準 Chromium、または Obscura の 43 MB の Rust エンジンを、1つのセッションで実行できます。完全な DOM ダンプではなく差分を送信し、サイトごとのワークフローを記憶し、影響の大きい操作には確認を求めます。CAPTCHA が表示されると、ページをブラウザーウィンドウで開いて、人が CAPTCHA を解くまで待機し、その後処理を続行します。

Architecture

利用できる機能

機能メリット
3つのエンジン、1つのサーバータスクに応じて、ステルス性、DevTools の忠実度、または 43 MB の軽量構成を選べます。クライアントを変更せずに切り替えられます。
ダンプではなく差分安定した参照、差分スナップショット、各操作後に取得する変更範囲を制限した観測を利用できます。コンテキストを減らし、往復回数を抑えます。
サイトの記憶実行に成功した後、オリジンごとのヒントとワークフローを学習します。繰り返し行うタスクを短縮できます。
あらゆる住宅用プロキシ認証、固定またはローテーションセッション、地域マッチング、オンデマンドのヘルスチェックに対応した HTTP、HTTPS、SOCKS5 のプールを利用できます。
リモート CDP とクラウドBrowserbase、Steel、Browserless、Obscura Cloud、またはログイン済みのローカル Chrome に接続できます。ローカルのブラウザープロセスは不要です。
必要に応じた詳細な DevTools必要なときに限り、HAR、CPU プロファイル、ヒープスナップショット、カバレッジ、ネットワーク/CPU スロットリングを取得します。
人による CAPTCHA の引き継ぎエージェントが一時停止してページをブラウザーウィンドウで開き、待機します。ユーザーが CAPTCHA を解くと、同じセッションで処理を続行します。
デフォルトで有効なガードレールSSRF 保護、オリジンリスト、信頼できないコンテンツのマーカー、トラッカーのブロック、破壊的な操作に対する確認ゲートを備えています。
エージェントを選ばず利用可能Claude Desktop、Claude Code、Cursor、Codex、Gemini CLI、VS Code、Windsurf、Cline、OpenCode、Docker、およびあらゆる stdio クライアントで動作します。
測定済み状態検証を含む、ローカルで実行する12タスクのテストスイートを用意しています。同じ成功率を保ちながら、適応型観測によりテキスト量を29.9%、呼び出し回数を15%削減します。

対応範囲

領域利用できる機能
操作クリック、フォーム、文字入力、選択、アップロード、ドラッグ不要のスクロール、タブ、待機
読み取りスナップショット、差分、Markdown、リンク、テーブル、JSON-LD、メタデータ、CSS マップ
DevToolsHAR、CPU プロファイル、ヒープスナップショット、JS カバレッジ、ネットワーク/CPU スロットリング
ステルスPatchright、フィンガープリントの自己チェック、トラッカーのブロック、WebRTC の漏えいフラグ、プロキシの地域マッチング
ログイン済み環境とリモート環境永続プロファイル、ストレージ状態、ローカル Chrome CDP、Browserbase、Steel、Browserless
プロキシHTTP、HTTPS、SOCKS5、認証、プール、固定/ランダム/ラウンドロビン、ヘルスチェックと地域チェック
メモリオリジンごとのヒントとワークフロー。成功後に学習し、エージェントが作成したものに限定
セキュリティSSRF ガード、オリジンリスト、信頼できないコンテンツのマーカー、リスクゲート、監査ログ
評価12タスクのベンチマーク、完全観測と適応型観測の比較、サーバー横断型 LLM ランナー
OpenCodeCode Mode 名前空間、35個のツール、14個のツールを使うスリムモード、サーバーの指示

インストール

ワンライナー:

curl -fsSL https://raw.githubusercontent.com/DrMkdaddy/cat-burglar/main/scripts/install.sh | bash

公式 MCP Registry から:io.github.DrMkdaddy/cat-burglar(OCI イメージ)。
GHCR から:docker run -i --rm ghcr.io/drmkdaddy/cat-burglar:latest。

インストーラーは cat-burglar バイナリを PATH に追加します。必要に応じて、pnpm でグローバルにインストールできます:

pnpm add -g https://github.com/DrMkdaddy/cat-burglar/releases/download/v0.5.2/cat-burglar-mcp-0.5.2.tgz
cat-burglar doctor

install コマンドは、claude-code、claude-desktop、cursor、codex、gemini、vscode、windsurf、cline、opencode、generic 向けのすぐに使える設定を出力します。

対応クライアント

クライアントセットアップ
Claude Codeclaude mcp add catburglar -- cat-burglar
Claude Desktop、Cursor、Windsurf、Clinedocs/install.md の mcpServers JSON を貼り付けます
Codexcodex mcp add catburglar -- cat-burglar
Gemini CLI~/.gemini/settings.json に mcpServers エントリーを追加します
VS Code.vscode/mcp.json に servers エントリーを追加します
OpenCodemcp.servers の下に catburglar を追加します
Dockerdocker run -i --rm ghcr.io/drmkdaddy/cat-burglar:latest

サーバー名に browser を使わないでください。OpenCode にはその名前の組み込みブラウザツールセットがあり、Code Mode では重複するツールが非表示になります。

このプロンプトをエージェントにコピー

簡易版:

Install Cat Burglar from https://github.com/DrMkdaddy/cat-burglar as a local MCP server named catburglar.

Run:
curl -fsSL https://raw.githubusercontent.com/DrMkdaddy/cat-burglar/main/scripts/install.sh | bash

Then run `cat-burglar doctor`.

Add the server with command `cat-burglar` (add `--slim` if the client loads every tool schema), restart or reconnect the client, and verify by navigating to https://example.com and taking a snapshot. Report the tool count, engine, and page title.

クライアント別の手順、検証、セキュリティルールを含む完全な基本プロンプト:docs/agent-prompt.md。

<system_context>
You are installing Cat Burglar, a local browser MCP server, for this project.
</system_context>

<goal>
Add Cat Burglar to the current MCP client and verify that it can drive a browser.
</goal>

<install_steps>
1. Run:
   curl -fsSL https://raw.githubusercontent.com/DrMkdaddy/cat-burglar/main/scripts/install.sh | bash
   Then run `cat-burglar doctor` and report the output.
2. Add a local stdio MCP server named `catburglar` that runs `cat-burglar`.
   If the client loads every tool schema into context, add `--slim`.
3. Do not use the name `browser`. It collides with OpenCode's built-in browser tools.
4. Enable `BROWSER_MCP_ALLOW_PRIVATE_NETWORK=1` only if the user needs localhost.
5. Restart or reconnect the MCP client.
6. Verify with `navigate` to https://example.com, then `snapshot`, then `close`.
</install_steps>

<verification>
Report the server name, the tool count, the engine, and the title returned by the test page.
</verification>

<constraints>
Do not commit secrets. Do not enable private-network access without asking. Use the measured
12-task local numbers if numbers are needed. Do not invent a head-to-head result.
</constraints>

<user_prompt>
Install and verify Cat Burglar for my agent.
</user_prompt>

プロンプト例

調査:

Use catburglar. Open https://news.ycombinator.com, take a snapshot, read the top five stories with markdown, and give me the titles and links.

フォームとワークフロー:

Use catburglar. Open the staging signup page, fill the form with test data, submit it, and tell me exactly what changed on the page.

ローカルアプリのテスト:

Use catburglar with engine chromium. Open http://localhost:3000, log in with the seeded test user, open the billing page, capture a screenshot, and report console errors.

パフォーマンス:

Use catburglar with engine chromium. Open the product page, start a performance trace, reload, stop the trace, and summarize the long tasks and the three slowest scripts.

3 種類のブラウザ

エンジン最適な用途フットプリント
patchright保護されたサイト、ログイン、ボット対策が必要な作業Chromium 全体
chromiumDevTools、コンソール、トレース、PDF、ローカルアプリのテストChromium 全体
obscura大量の読み取り、メモリ使用量を抑えたい作業約 43 MB
{ "engine": "obscura", "restart": true }

実行中のブラウザのエンジンは、その場で変更できません。restart: true を指定して open を呼び出してください。

リモート CDP とクラウドブラウザ

ローカルブラウザを起動する代わりに、Chrome DevTools Protocol エンドポイントに接続します:

{
  "engine": "remote",
  "cdp_url": "wss://connect.browserbase.com?apiKey=YOUR_KEY"
}

これは Browserbase、Steel、Browserless、Obscura Cloud、その他の CDP プロバイダーに対応します。ログイン済みのローカル Chrome を使う場合は、別のプロファイルを指定して起動してください:

google-chrome --remote-debugging-port=9222 --user-data-dir=/tmp/cat-burglar-chrome

その後、open({ "engine": "remote", "cdp_url": "http://127.0.0.1:9222" }) を呼び出します。ローカルのブラウザプロセスは複製されないため、この方法ではブラウザのメモリを追加で消費しません。

レジデンシャルプロキシ

Cat Burglar は、認証の有無を問わず、HTTP、HTTPS、または SOCKS5 プロキシを使用できます。プールはローテーション、スティッキー接続、セッションごとの選択に対応します。

{
  "proxyPool": [
    { "id": "us-1", "url": "http://user:[email protected]:8000", "geo": { "timezone": "America/New_York", "locale": "en-US" } },
    { "id": "de-1", "url": "socks5://user:[email protected]:1080", "geo": { "timezone": "Europe/Berlin", "locale": "de-DE" } }
  ],
  "proxyOptions": {
    "mode": "sticky",
    "matchGeo": true,
    "testOnLaunch": false,
    "rotateOnError": true
  }
}

host:port:user:pass の形式で渡すこともでき、Cat Burglar が正規化します。プロキシツールを使って、エントリーの確認、テスト、ローテーション、追加、削除を行えます:

{ "action": "test", "force": true }
{ "action": "rotate" }
{ "action": "add", "url": "http://user:[email protected]:8000", "label": "us-residential" }

プロキシ URL は出力と監査ログで伏せられます。プロキシが有効な場合、Chromium には WebRTC の漏えい防止フラグが設定され、matchGeo によってブラウザのタイムゾーンとロケールがプロキシの出口に合わせられます。ヘルスチェックは必要に応じて curl 経由で実行されるため、ブラウザプロセスは追加されません。

操作の流れ

  1. navigate でページに移動します。
  2. snapshot で URL、タイトル、コントロール、安定した参照を取得します。
  3. 参照を使って click、fill、または select を実行します。
  4. アクションから返される変更の観測結果を読み取ります。
  5. 読み取りには markdown、構造化データの取得には extract、トレースには perf を使います。
  6. 繰り返し実行できるワークフローが成功したら、memory learn を実行します。

要素が DOM に残っている間は、参照を有効に使えます。要素がページからなくなると、複製された要素をクリックする代わりに、古い参照エラーでアクションが失敗します。

必要に応じて使う DevTools

devtools ツールは、アクションの実行中に限り Chrome の内部情報を取得します。バックグラウンドで記録されることはありません。

アクション結果
har_start / har_stopリクエストとレスポンスのメタデータ、および任意の本文を含む HAR 1.2 ファイル
cpu_start / cpu_stop.cpuprofile と、実行時間が最も長い関数
heap.heapsnapshot ファイル
coverage_start / coverage_stopURL ごとの未使用 JavaScript
throttleネットワーク遅延、帯域幅、オフラインモード、CPU スロットリング
{ "action": "cpu_start" }
{ "action": "cpu_stop" }

CAPTCHA の引き継ぎ

captcha ツールは、reCAPTCHA、hCaptcha、Turnstile、DataDome、PerimeterX、Arkose、および一般的なテキストチャレンジを検出します。チャレンジを解決することはありません。

チャレンジが表示されたら、次を呼び出します。

{ "action": "handoff" }

ローカルのデスクトップでは、Cat Burglar が同じプロファイルをヘッドモードで再起動し、現在のページに戻って実際のブラウザーウィンドウを開きます。そのウィンドウでチャレンジを直接解決したら、action: "wait" を指定して captcha を呼び出すと、エージェントは同じセッションで処理を続けます。切り替え後も、Cookie、ストレージ、現在の URL は維持されます。

navigate https://accounts.hcaptcha.com/demo
  captcha: hcaptcha

captcha action=handoff
  mode: window
  url: https://accounts.hcaptcha.com/demo

[a real Chromium window opens on that page]

# you solve the widget

captcha action=wait
  detected: false

snapshot
  [e4] button "Submit"

サーバーにはソルバーとの連携機能はありません。チャレンジが消えるまでページをポーリングします。

ディスプレイがない場合、またはエンジンが Obscura の場合、handoff はループバックのライブビューページにフォールバックします。次のコマンドでこのフォールバックを強制できます。

{ "action": "stream", "open_window": false, "timeout_ms": 300000 }

リモート CDP プロバイダーの場合は、開くときにプロバイダーのライブビュー URL を渡します。

{
  "engine": "remote",
  "cdp_url": "wss://connect.browserbase.com?apiKey=YOUR_KEY",
  "live_view_url": "https://browserbase.com/sessions/YOUR_SESSION"
}

captcha handoff はローカルウィンドウを開かず、代わりにその URL を返します。ストリームの引き継ぎはトークンで保護され、127.0.0.1 のみにバインドされます。また、Done、タイムアウト、または close によって停止します。

ベンチマーク

ベンチマーク

モード成功ツール呼び出し観測文字数所要時間
完全なスナップショット12/128030,02915.37 s
差分+変更の観測12/126821,05713.86 s

サーバー側の状態チェックを含む、12 タスクのローカルスイートで測定しました。プロファイルは flash、エンジンは chromium、Node は 26 です。生の JSON:bench/results/2026-11-09-flash.json。

pnpm bench
pnpm bench:compare

ツール

デフォルトでは 35 個のツールがあり、--slim モードでは 14 個です。

グループツール
ライフサイクルopen、close、navigate、back、forward、reload、status、tabs
読み取りsnapshot、markdown、extract、evaluate、screenshot、pdf
操作click、fill、type、press、select、hover、scroll、upload、wait、captcha
状態cookies、storage、stealth、memory、proxy
診断network、console、perf、devtools、resources、audit

extract は、リンク、テーブル、JSON-LD、メタタグ、テキスト、CSS フィールドマップに対応します。perf は、ウェブバイタル、CDP メトリクス、低速リソース、Chrome の完全なトレースに対応します。

安全性

  • ナビゲーションとすべてのリクエストに対して、DNS チェックとリダイレクトの追跡を含む SSRF 保護を行います。
  • プライベート、ループバック、リンクローカル、CGNAT、マルチキャスト、予約済みの各範囲は、明示的に許可されない限りブロックされます。
  • プライベートネットワークへのアクセスを有効にしても、クラウドメタデータのエンドポイントはブロックされます。
  • ワイルドカードホストに対応した、オリジンの許可リストとブロックリストがあります。
  • ページ由来の出力には、信頼できないコンテンツを示すマーカーが付きます。
  • delete、pay、transfer、send、publish、deactivate など、影響の大きい対象にはフラグが付きます。明示的な確認を必須にするには、BROWSER_MCP_RISKY_ACTION_POLICY=ask を設定します。
  • サイトメモリに記録できるのはエージェントが作成した内容のみです。ページのテキストは取り込まれず、参照は破棄され、入力値はプレースホルダーに置き換えられます。
  • トラッカーのブロックには、Obscura の 3,520 ドメインの PGL リストに加え、一般的な分析ホストが使用されます。

これらを多層防御の一部として使用してください。機密性の高いアカウントでは、ask ポリシーで実行し、承認前に確認内容を確認してください。

リソース効率

デフォルトでは、忠実度を優先してフル Chromium を使用します。明示的に要求されない限り、サーバーはブラウザーを重ねて起動せず、バックグラウンドで記録せず、プロキシチェックも実行しません。

選択肢メモリへの影響
obscura エンジン約 43 MB。Chromium の約 1 GB と比べて少なくなります
remote エンジンローカルのブラウザープロセスは使用せず、リモート CDP プロバイダーを使用します
--slimツール数が 35 個から 14 個に減り、スキーマのコストも低くなります
オンデマンドの DevToolsHAR、CPU、ヒープ、カバレッジの計測は、アクションの実行中にのみ行われます
プロキシテストcurl のみを使用し、ブラウザープロセスは使用しません
idleTimeoutMs設定すると、非アクティブ状態が続いた後にブラウザーを閉じます
Flash プロファイルスナップショット、Markdown、変更の観測のサイズを小さくします

resources ツールを使うと、プロセスツリーの RSS、プロセス数、開いているページ数、バッファーサイズを確認できます。バックグラウンドネットワーク、コンポーネントの更新、同期、ping、メトリクスは、起動時に無効化されています。

リサーチ

設計にあたって、2023年から2026年までのウェブエージェントに関する研究を調査し、評価エラー、観測の整合性、変更の観測、メモリ、計画、プロンプトインジェクションを検討しました。40件の出典を含む調査の全文はこちらです:docs/research/2026-11-browser-agent-research.md。

LLM ハーネスでは、同じ12個のタスクを ours、playwright、chrome-devtools、obscura に対して実行できます:

pnpm bench:llm -- --server ours

開発

pnpm install
pnpm build
pnpm test
pnpm smoke
pnpm bench
pnpm bench:compare
node dist/index.js doctor
node dist/index.js install --client claude-desktop

設定ファイル:~/.config/browser-mcp/config.json。例:cat-burglar.config.example.json。環境変数で設定を上書きできます。

クレジット

出典ライセンス使用した内容
ObscuraApache-2.0Ref-token スナップショットのアイデア、Markdown と抽出のセマンティクス、SSRF 対策、トラッカーリストのデータ
Playwright MCPApache-2.0アクセシビリティ優先のスナップショット、永続プロファイル、オリジンとファイルのポリシー
Chrome DevTools MCPApache-2.0パフォーマンス指標とトレース、ネットワークとコンソールの調査
PatchrightApache-2.0ステルス対応の Playwright ドライバー
browser-useMITエージェントのアクション語彙と、人間らしい操作のアイデア

コピーしたデータ資産はトラッカーリストのみです。NOTICE をご覧ください。

ステータス

バージョン 0.5.2。12タスクのローカルスイートでベンチマークを実施し、未加工の JSON をリポジトリに含めています。LLM ハーネスでは、4つのサーバーに対して同じタスクを実行できます。問題や反例を歓迎します。

ライセンス

MIT。詳細は LICENSE をご覧ください。

コメント

MCP は初めてですか?

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

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