mcpField
P
pilot-mcp — Fast Browser Automation MCP Server

pilot-mcp — Fast Browser Automation MCP Server

ローカル
github.com/TacosyHorchataブラウザ自動化3217 週間前に更新

pilot-mcp — Fast Browser Automation MCP Server について

AI エージェント向けのブラウザー自動化 MCP サーバーです。既定ではプロセス内の Playwright による隔離されたセッションを使用します。QA 自動化やスクリーンショットによる証跡取得に向き、スナップショットを小さく保つことでコンテキストの量を抑えます。

主な機能

  1. 01既定で使用する隔離された Playwright ブラウザーセッション
  2. 029、40、69 個のツールを選べるプロファイル
  3. 03変更箇所のみを返すスナップショット差分
  4. 04ローカルブラウザーからの Cookie インポート
  5. 05iframe 対応と CAPTCHA 用のハンドオフ

活用シーン

  1. 01スクリーンショット付きの並列 QA 自動化
  2. 02AI エージェントによるページ閲覧と要約
  3. 03ログイン状態が必要な場合の拡張機能モードによる実 Chrome プロファイルの利用

MCP 対応

MCP サーバーとして動作し、ナビゲート、クリック、入力、スクリーンショット、スナップショット差分などのブラウザー操作を、stdio 経由で Claude Code や Cursor などの MCP クライアントにツールとして公開します。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"Pilot": {
"command": "npx",
"args": [
"-y",
"pilot-mcp"
]
}
}
}
起動コマンドnpx -y pilot-mcp

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

パッケージ
npmpilot-mcp

ツール

30

掲載時のツール一覧 · 3 週間前に更新

パラメーター型必須説明
urlstringはい移動先の URL(例:「https://example.com」)

詳細

pilot — AI エージェント向けブラウザー自動化 MCP

npm license stars

デフォルトでは、ネイティブの Playwright ベースのブラウザーセッションを使用します。QA 自動化に Chrome 拡張機能は不要です。

pilot demo

Pilot には、2 つのブラウザーバックエンドがあります。

  • ネイティブモード(デフォルト):分離された Playwright ブラウザーコンテキストです。並列 QA 自動化と信頼性の高いスクリーンショットに対応する、推奨される方法です。
  • 拡張機能モード(レガシー/オプトイン):既存の Cookie とログイン済みセッションが必要な場合に、実際の Chrome プロファイルに接続します。

ネイティブモードでは chrome.tabs.captureVisibleTab() を一切使用しないため、スクリーンショットの取得に Chrome が前面に表示されていること、タブがアクティブで表示されていること、拡張機能のサービスワーカーが新しい状態であることは必要ありません。


仕組み

AI Agent → MCP Server → Broker on 127.0.0.1:3131 → Native browser session
         (stdio)       (first process owns broker)  (Playwright context/page)
  1. Pilot は MCP サーバーとして動作します — Claude Code、Cursor、または任意の MCP クライアントが stdio 経由で接続します
  2. 最初に起動した Pilot プロセスが localhost 上のブローカーになります
  3. 後から起動した Pilot プロセスはブローカーのクライアントとして接続します
  4. 各セッションには、分離されたネイティブのブラウザーコンテキスト/ページが割り当てられます
  5. スクリーンショットは Chrome 拡張機能のキャプチャ API ではなく、Playwright から取得します

クイックスタート

1. MCP サーバーを追加する
codex mcp add pilot \
  --env PILOT_BROWSER_MODE=native \
  --env PILOT_PROFILE=full \
  -- npx -y pilot-mcp

ローカルのチェックアウトを使用する場合:

npm install
npm run build
codex mcp add pilot \
  --env PILOT_BROWSER_MODE=native \
  --env PILOT_PROFILE=full \
  -- node /absolute/path/to/pilot/dist/index.js
2. 使用する

「https://example.com を開いて、スクリーンショットを撮り、ページの概要をまとめてください。」

拡張機能のインストールは不要です。Chrome を前面に表示する必要もありません。

ネイティブモードでの全操作、ストレスコマンド、クリーンアップの確認については、docs/native-mode.md をご覧ください。


コンパクトなスナップショット

ほかのツールは、ページごとに 50K 文字以上をコンテキストウィンドウに出力します。Pilot は出力を小さく抑えます。

Other tools:   navigate(58K) → navigate(58K) → answer        = 116K chars
Pilot:         navigate(2K)  → navigate(2K)  → snapshot(9K)  =  13K chars

snapshot_diff は、操作間で変更された部分のみを表示し、冗長な再読み込みは行いません。

コンテキストが少ないほど、応答が速くなり、API 呼び出しの費用が抑えられ、幻覚も減ります。


Pilot と @playwright/mcp の比較

Pilot@playwright/mcp
ブラウザーデフォルトではネイティブの Playwright コンテキスト、レガシー拡張機能では実際の Chrome新しい Chromium インスタンス
認証状態デフォルトではネイティブで分離。拡張機能モードでは実際の Chrome Cookie を使用可能匿名 — 手動でのセットアップが必要
ボット検出自動化にはネイティブ、実際のプロファイルへの引き継ぎには拡張機能モードCloudflare にブロックされる
スナップショットのサイズナビゲーション時は約 2K、全体では約 9K約 50~60K
スナップショット差分pilot_snapshot_diff❌
Cookie のインポートChrome、Arc、Brave、Edge、Comet手動で JSON を指定
iframe✅❌
ツールプロファイルcore(9)/standard(40)/full(69)--caps グループ
トランスポートstdiostdio、HTTP、SSE

3 つのプロファイルに 69 個のツール

ツールリストが大きくなるにつれて、LLM の性能は低下します。必要なものだけを読み込んでください。

プロファイルツール数含まれるもの
core9navigate、snapshot、click、fill、type、press_key、wait、screenshot、snapshot_diff
standard40Core に加え、pilot_act、pilot_guide、evidence、doctor/reset、tabs、scroll、hover、drag、iframes、auth、block、find
full69Standard に加え、ネットワークインターセプト、アサーション、クリップボード、位置情報、CDP、evaluate、PDF、レスポンシブ、詳細な検査
{
  "mcpServers": {
    "pilot": {
      "command": "npx",
      "args": ["-y", "pilot-mcp"],
      "env": { "PILOT_PROFILE": "standard" }
    }
  }
}

デフォルトは standard です。ツールの完全なリファレンス →


ネイティブモード

ネイティブモードがデフォルトです。

PILOT_BROWSER_MODE=native

QA 自動化、並列 MCP セッション、スクリーンショットによる証跡には、このモードを使用してください。

QA の実行前に確認してください。

PILOT_HEADLESS=1 npm run stress:screenshots
npm run stress:codex

期待される結果:どちらも 6/6 passed と報告します。

Extension モード

Extension モードはレガシー機能で、オプトイン方式です。

PILOT_BROWSER_MODE=extension

ユーザーがすでに認証済みの実際の Chrome プロファイルが必要な場合にのみ使用してください。

実際のブラウザーから Cookie をインポートします:pilot_import_cookies({ browser: "chrome", domains: [".github.com"] })

macOS Keychain / Linux libsecret を介して Chrome、Arc、Brave、Edge、Comet に対応しています。CAPTCHA の場合:pilot_handoff → ユーザーが操作 → pilot_resume。


要件

  • Node.js >= 18
  • Playwright Chromium
  • macOS または Linux
  • Extension モードのみ:Chrome + Pilot 拡張機能

Chromium が見つからない場合:

npx playwright install chromium

セキュリティ

  • 拡張機能は localhost のみ(127.0.0.1)で通信します
  • ネイティブブローカーは localhost のみ(127.0.0.1)で通信します
  • ネイティブセッションでは、MCP セッションごとに分離されたブラウザーコンテキストを使用します
  • 出力パスの検証により、PILOT_OUTPUT_DIR の外部への書き込みを防ぎます
  • すべてのファイル操作でパストラバーサルを防止します
  • PILOT_PROFILE により、公開するツールを制御します(core / standard / full)

クレジット

コアアーキテクチャ — ref ベースの要素選択、スナップショット差分、注釈付きスクリーンショット — は、Garry Tan による gstack から移植しました。Playwright と MCP SDK を基盤に構築されています。


Pilot が役に立ったら、リポジトリにスターを付けてください。ほかの人が見つけやすくなります。

コメント

MCP は初めてですか?

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

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