ego (lite) はブラウザそのもの、ego は端末を横断して動くあなた専属のエージェントです。
順番待ちリストに参加する
MCPCLIブラウザ拡張機能AI エージェントツールの使用

MCP vs CLI vs ブラウザ拡張機能:エージェント制御の比較

2026年9月11日14 min read
AI エージェント ツール制御用に並べて表示される MCP アイコンと CLI アイコン

エージェント ホストが、機能と同意のためのプロトコル レベルの場所を備えた、検出可能な型指定されたツールを必要とする場合は、MCP を使用します。 タスクがすでにコマンド、ファイル、パイプ、終了コード、および制御されたシェルに適合している場合は、CLI を使用します。 ブラウザ拡張機能は通常、3 番目のピア オプションではありません。ブラウザ拡張機能は、エージェントが MCP または CLI を介して到達するツールの下でブラウザ アクセスを許可または接続できます。

AI エージェントは MCP または CLI を使用する必要がありますか?

勝者ではなく、運用境界からスタートします。 ホストがツールを列挙し、JSON 引数を検証し、ユーザーの承認を提示し、サーバー間を切り替える必要がある場合、MCP は共有コントラクトを提供します。 コーディング エージェントにすでに制限付きシェルがあり、操作が安定した stdout と終了コードを持つコマンドによって自然に表現される場合、通常は CLI がより単純なパスです。

必要MCP を優先しますCLI を優先します
ランタイム検出入力されたツールカタログヘルプテキストまたはロードされたスキルで十分です
組成ホストが構造化呼び出しを調整しますパイプ、ファイル、スクリプト、および終了コード
リモート境界プロトコルトランスポートとサーバーのライフサイクルSSH、コンテナ、ジョブ、またはローカル プロセス制御
出力制御スキーマとツール結果のコントラクトコマンド固有の生出力または JSON 出力

MCP、CLI、および拡張機能は同等ですか?

1つのレベルではありません。 MCP および CLI は呼び出しサーフェスです。これらはエージェント ホストに作業を依頼する方法を指示します。 ブラウザ拡張機能は、ブラウザ内の実行コンポーネントまたはアクセス コンポーネントです。 ユーザーのタブにアタッチしたり、ホストのアクセス許可を要求したり、コンテンツ スクリプトを挿入したり、ブラウザの状態を別のプロセスにブリッジしたりすることがあります。

この区別により、誤った比較が防止されます。 「MCP はスキーマをサポートしますが、拡張機能はページをクリックできます」は、プロトコル プロパティと実装機能を比較します。 設計上の公正な質問は、どの呼び出しルートが、どのようなアクセス許可とユーザー制御の境界の下で、どのブラウザ実装を公開する必要があるかということです。

MCP と CLI の違いは何ですか?

MCP クライアントはセッションを初期化し、機能をネゴシエートし、ツールをリストし、構造化呼び出しをサーバーに送信します。 現在のツール仕様では、サーバーは名前、説明、JSON 入力スキーマ、オプションの出力スキーマ、および注釈を公開できます。 ホストは引き続き適切な同意を提示する責任を負い、サーバーが信頼されない限りツールの注釈を信頼できないものとして扱う必要があります。

Complete desktop screenshot with Claude Code on the left and an ego (lite) Space showing the official Playwright MCP setup on the right
Playwright MCP は Claude Code に名前付きサーバーとして登録されるため、ツールの検出と構造化されたブラウザー呼び出しは MCP クライアントが処理します。

CLI プロセスは、オペレーティング システムから文字列と環境状態を受け取ります。 そのコントラクトは、--help、マニュアル ページ、例、終了コード、およびオプションで JSON 出力によって文書化できます。 シェルは、リダイレクト、パイプ、スクリプト、プロセス分離、標準ログを通じて成熟した構成を追加しますが、ホストが制限する必要があるクォート、パス、環境、およびインジェクションのリスクも作成します。

Complete desktop screenshot with Claude Code on the left and the official Playwright CLI installation and invocation documentation on the right
Playwright CLI はコーディング Agent にシェルコマンドの操作面を提供します。Agent はインストール済みの Skill またはコマンドヘルプから使い方を学び、各コマンドを直接実行します。

どちらも同じ実装をラップできます。 私たちの実験では、Playwright が両方のルートに電力を供給しました。 一方のコマンドが JSON-RPC を通過し、もう一方のコマンドがシェルを通過したため、ブラウザー タスクの機能が多かれ少なかれ向上したわけではありません。 検出、出力、セッション、およびポリシー サーフェイスが変更されました。

ディスカバリーコストとコンテキストコストはどのように異なりますか?

MCP により、ディスカバリーが機械可読になります。 これは、ホストが何を呼び出すことができるかを決定し、モデルの説明と引数の形状を与えるのに役立ちます。 その代償として、クライアントがそれらを熱心にロードすると、大規模なカタログや詳細なツールの結果が意味のあるコンテキストを占有する可能性があります。 クライアントは、サーバーの選択、検索、ツール グループ、結果ファイル、限定されたスナップショット、および簡潔な出力を使用してこの問題を軽減できます。

CLI はコンテキストを削除しません。 エージェントには、コマンド名、フラグ、例、および返された出力が必要です。 適切に設計されたスキルでは、関連するコマンド レシピのみをロードし、CLI にコンパクトな JSON または結果ファイルを要求できます。 CLI の設計が不十分だと、メガバイトがダンプされたり、ヘルプ コールが繰り返し強制的に実行されたりする可能性があります。 「ゼロトークン CLI」などのスローガンではなく、実際のルートのバイトとモデルに表示されるコンテンツを比較してください。

Claude Code terminal beside an independent Chrome window controlled through a named Playwright CLI session
@playwright/cli 0.1.19 では、名前付きセッションにより、複数のシェルコマンド間で同じ画面付き Chrome ウィンドウを使い続けられ、呼び出しをまたいでブラウザー状態を保持できます。

どのインターフェースがより安全ですか?

どちらのインターフェイスも本質的に安全ではありません。 MCP はツールを読み取り専用または破壊的として記述することができますが、仕様ではクライアントに、信頼できないサーバーからの注釈を信頼しないよう警告しています。 ホストには、サーバーの信頼、ユーザーの同意、認証、ターゲット制限、タイムアウト、ロギング、資格情報を取り消す方法が必要です。

CLI は、狭い実行可能許可リスト、固定作業ディレクトリ、スクラブされた環境、非管理者ユーザー、ファイルシステムのサンドボックス、および引数の検証によって強力に封じ込めることができます。 また、エージェントがシークレット、コマンド置換、広範なファイル アクセス、実稼働資格情報を含む一般的なシェルを受け取った場合も危険になる可能性があります。 プロセス ログやトランスクリプト ログにシークレットが保持される可能性があるため、プロンプトやコマンド引数にシークレットを直接配置しないでください。

ブラウザ拡張機能は独自の境界を追加します。 要求されたアクセス許可、ホスト パターン、コンテンツ スクリプトのスコープ、更新の出所、ネイティブ メッセージング ブリッジ、およびユーザーがアクションを表示および中断できるかどうかを確認します。 「ブラウザで実行できる」ということは、安全性の証明でもリスクの証明でもありません。 権限とデータフローグラフが決定します。

各アプローチはどの程度移植可能ですか?

MCP は、サーバーがローカル プロセスまたはサービスとして実行されている間、安定したクライアント側のコントラクトを維持できますが、認証、トランスポート、ファイル システム パス、およびサーバーのインストールは依然としてホストによって異なります。 CLI ツールは、ターゲット オペレーティング システム、ランタイム、バイナリ、およびシェルに互換性がある場合にうまく移動します。 スクリプトでは、引用符、パス区切り文字、ブラウザの可用性、およびバージョンの固定を考慮する必要があります。

拡張機能は、ブラウザの拡張機能 API、権限モデル、ストアまたはエンタープライズ配布、およびユーザー プロファイルに関連付けられています。 これらは、実際のブラウザーの近くに存在するため、まさに便利ですが、そのため、ヘッドレス サーバーや非ブラウザー タスクへの移植性が低くなります。

同じタスクのテストで何が起こったのでしょうか?

どちらのルートも、所有されているページを開き、フィールドに入力し、遅れた製品を待ち、重複したコントロールを見つけ、DOM の置き換えを生き延び、意図的な HTTP 503 と成功したリクエストを観察し、ブラウザを閉じました。 各ルートでは 9 つのタスク呼び出しまたはコマンドが使用され、それが 3 回繰り返されました。

観測された中央値Playwright MCP 0.0.80Playwright CLI 0.1.19
タスク成功3/33/3
呼び出し/コマンド99
UTF-8 バイトが返されました22,2351,737
ツールカタログ24 ツール; 18,569バイト自動的には返されません
ウォールタイム2,165ミリ秒14,544ミリ秒

CLI ハーネスが意図的に 9 つの個別の npx プロセスを起動し、名前付きセッションに再接続したため、ウォールタイム結果はバイト結果とは逆の方向を指します。 永続的なラッパーまたはバッチ コマンドによって、その結果が変更される可能性があります。 擁護可能な結論はさらに狭いです。この構成では、MCP はより豊富な検出を公開し、より多くのテキストを返しました。 CLI は簡潔な出力を返しましたが、ディスカバリーをタスク呼び出しの外に移動しました。

MCP、CLI、またはその両方をいつ使用する必要がありますか?

クライアント間で検出可能、入力可能、同意済み、および交換可能である必要があるホスト向け機能には、MCP を優先します。 決定論的なローカル操作、既存のエンジニアリング ツール、ビルド ステップ、リポジトリ作業、またはファイルと終了コードのコントラクトがすでに強力であるコマンドには、CLI を優先します。

Complete desktop screenshot with Claude Code on the left and an independent Chrome window showing Playwright CLI skills-less and headed operation on the right
任意の Skill をインストールしない場合、Agent は Playwright CLI のコマンドヘルプを読んでから個別のブラウザーコマンドを実行できます。コマンドの検出はワークフロー内の独立した手順です。

境界がそれを獲得する場合は両方を使用してください。 コーディング エージェントがローカル検証に CLI コマンドを使用している間、管理された MCP サーバーは狭いビジネス アクションを公開できます。 CLI は、アクティブなタスクが MCP ツールを使用している間、サーバーのインストールと診断を管理できます。 承認と監査の動作が真に同等である場合を除き、同じ高リスクのアクションを複数の制御されていないルートで公開することは避けてください。

タスクで既存のタブ、ユーザーに表示される状態、またはブラウザ専用の API が必要な場合にのみ、ブラウザ拡張機能を追加します。 個人プロファイルが不要な場合は、クリーンな自動プロファイルまたは直接プロトコルを使用してください。

ego (lite) と ego-browser Skill とは何ですか?

まず製品と制御インターフェースを分けて考えます。ego (lite) は人と AI エージェントが使う完全なローカル Chromium ブラウザで、製品カテゴリではエージェントブラウザに当たります。AI エージェントそのものでも、ブラウザ拡張機能でも、MCP サーバーでも、クラウドブラウザでもありません。対応エージェントは Skill 兼制御インターフェースである ego-browser を使い、専用でユーザーから見える Space の独立したタブで作業します。ユーザーは作業の確認、一時停止、操作の引き継ぎができます。Skill は shell entry point から起動して JavaScript を実行しますが、コマンドを一つずつ処理する CLI ワークフローではありません。

エージェントは JavaScript プログラムを書き、shell のエントリーポイントから Skill ランタイムを起動します。プログラムは Node.js で動作し、ブラウザ操作は ego (lite) のローカルコントローラーと内蔵 CDP 接続を通じて実行されます。1 回の実行で移動、待機、検査、クリック、抽出を行い、選択した結果だけをモデルへ返せます。

ego-browser nodejs <<'EOF'
const task = await taskSpace("review dashboard");
const page = task.page("p1");
await page.goto("https://app.example.com/reports");
const title = await page.title();
console.log({ title });
await task.finish({ keep: [] });
EOF

これは有効な第 3 のルートです。比較すべきなのは実行ファイルの名前ではなく実行モデルだからです。MCP は検出可能な構造化ツールを公開し、通常は各ツール呼び出しの後に結果を返します。コマンド単位の CLI は個別の shell 操作を公開します。一方、ego-browser Skill は専用の可視 Space に対して、モデルのコンテキスト外で複数ステップの JavaScript ワークフローを実行します。shell は Skill を起動するだけであり、Skill を CLI カテゴリに変えるわけではありません。

バッチ化した JavaScript がコンテキストコストとモデルの往復回数を変える理由については、コンテキスト外実行ルートの技術解説.

Complete desktop screenshot with Claude Code beside a live ego (lite) Space showing the official Playwright MCP versus CLI comparison
ego-browser 0.5.0.31 では、Claude Code が Skill を通じてタスクを実行し、その過程は独立した ego (lite) Space に表示されます。ユーザーは作業を確認し、必要なら操作を引き継げます。

2026 年 9 月 11 日の制御された実行では、ego-browser 0.5.0.31 が ego (lite) Space を再開し、遅延したフィクスチャデータを待ち、重複した 2 つの Beta コントロールを特定し、別途検証した結果タブを開きました。

エージェントにユーザーが承認した可視のブラウザ Space が必要で、複数ステップの JavaScript をモデルループ外で実行し、人による引き継ぎも重要な場合はこのルートを選びます。ホストに標準化されたツール検出と管理された呼び出しが必要なら MCP、作業が安定したコマンド、ファイル、パイプ、終了コードに適しているなら CLI を選びます。API、通常の HTTP リクエスト、使い捨てテストブラウザ、決定的な Playwright スイートでより小さな信頼境界のまま解決できる場合は、そちらを優先します。

選択をどのように検証する必要がありますか?

  1. 1 つの代表的なタスク、バージョン、ホスト、資格情報、および停止条件を凍結します。
  2. 宣言された分母を使用してモデルに表示されるスキーマと結果の内容をカウントします。 文字数からトークンを推定しないでください。
  3. 呼び出しの失敗、間違ったツールの選択、許可のプロンプト、秘密の漏洩パス、および回復作業を記録します。
  4. 交互の順序で繰り返し、失敗を平均化する代わりに保持します。
  5. 実際のデプロイメント境界をテストします: ローカル、リモート、コンテナ、ブラウザ拡張機能、または既存のプロファイル。
  6. 検出、セキュリティ、移植性、可観測性、およびメンテナンスの要件を満たす最も単純なルートを選択してください。

レイヤーを定義している公式の情報源はどれですか?

現在の MCP を使用してくださいアーキテクチャ仕様およびツールの仕様プロトコルのクレームについて。 テストされた実装は公式に文書化されていますPlaywright MCPおよびPlaywright CLIリポジトリ。

ブラウザ アクセスを別の権限面として扱います。 Chrome ではそのモデルが文書化されています権限の宣言。 ego-browser の例は、現在のものと比較してチェックされました。ego (lite) クイック スタート、2026 年 9 月 11 日。

よくある質問

MCP は CLI より多くのトークンを使用しますか?

クライアントが大規模なツール スキーマや詳細な結果を読み込む場合には発生する可能性がありますが、普遍的な割合はありません。 CLI ヘルプと出力もコンテキストを消費します。 実際のクライアント、サーバー、スキル、タスクを実際のテレメトリで測定します。

CLI は MCP サーバーになれますか?

はい。 MCP サーバーは構造化呼び出しを検証し、その下にある既存の CLI を呼び出すことができます。 ラッパーはエラー セマンティクスを保持し、引数を制限し、安全でない一般シェルの重複を避ける必要があります。

ブラウザ拡張機能は MCP より安全ですか?

カテゴリ別ではありません。 正確な拡張機能のアクセス許可、ホスト ポリシー、資格情報、更新パス、ユーザーの可視性、取り消しを比較します。 MCP は呼び出しを説明します。 拡張機能はブラウザ側のアクセスを記述します。