
エージェント ホストが、機能と同意のためのプロトコル レベルの場所を備えた、検出可能な型指定されたツールを必要とする場合は、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 入力スキーマ、オプションの出力スキーマ、および注釈を公開できます。 ホストは引き続き適切な同意を提示する責任を負い、サーバーが信頼されない限りツールの注釈を信頼できないものとして扱う必要があります。

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

どちらも同じ実装をラップできます。 私たちの実験では、Playwright が両方のルートに電力を供給しました。 一方のコマンドが JSON-RPC を通過し、もう一方のコマンドがシェルを通過したため、ブラウザー タスクの機能が多かれ少なかれ向上したわけではありません。 検出、出力、セッション、およびポリシー サーフェイスが変更されました。
ディスカバリーコストとコンテキストコストはどのように異なりますか?
MCP により、ディスカバリーが機械可読になります。 これは、ホストが何を呼び出すことができるかを決定し、モデルの説明と引数の形状を与えるのに役立ちます。 その代償として、クライアントがそれらを熱心にロードすると、大規模なカタログや詳細なツールの結果が意味のあるコンテキストを占有する可能性があります。 クライアントは、サーバーの選択、検索、ツール グループ、結果ファイル、限定されたスナップショット、および簡潔な出力を使用してこの問題を軽減できます。
CLI はコンテキストを削除しません。 エージェントには、コマンド名、フラグ、例、および返された出力が必要です。 適切に設計されたスキルでは、関連するコマンド レシピのみをロードし、CLI にコンパクトな JSON または結果ファイルを要求できます。 CLI の設計が不十分だと、メガバイトがダンプされたり、ヘルプ コールが繰り返し強制的に実行されたりする可能性があります。 「ゼロトークン CLI」などのスローガンではなく、実際のルートのバイトとモデルに表示されるコンテンツを比較してください。

どのインターフェースがより安全ですか?
どちらのインターフェイスも本質的に安全ではありません。 MCP はツールを読み取り専用または破壊的として記述することができますが、仕様ではクライアントに、信頼できないサーバーからの注釈を信頼しないよう警告しています。 ホストには、サーバーの信頼、ユーザーの同意、認証、ターゲット制限、タイムアウト、ロギング、資格情報を取り消す方法が必要です。
CLI は、狭い実行可能許可リスト、固定作業ディレクトリ、スクラブされた環境、非管理者ユーザー、ファイルシステムのサンドボックス、および引数の検証によって強力に封じ込めることができます。 また、エージェントがシークレット、コマンド置換、広範なファイル アクセス、実稼働資格情報を含む一般的なシェルを受け取った場合も危険になる可能性があります。 プロセス ログやトランスクリプト ログにシークレットが保持される可能性があるため、プロンプトやコマンド引数にシークレットを直接配置しないでください。
ブラウザ拡張機能は独自の境界を追加します。 要求されたアクセス許可、ホスト パターン、コンテンツ スクリプトのスコープ、更新の出所、ネイティブ メッセージング ブリッジ、およびユーザーがアクションを表示および中断できるかどうかを確認します。 「ブラウザで実行できる」ということは、安全性の証明でもリスクの証明でもありません。 権限とデータフローグラフが決定します。
各アプローチはどの程度移植可能ですか?
MCP は、サーバーがローカル プロセスまたはサービスとして実行されている間、安定したクライアント側のコントラクトを維持できますが、認証、トランスポート、ファイル システム パス、およびサーバーのインストールは依然としてホストによって異なります。 CLI ツールは、ターゲット オペレーティング システム、ランタイム、バイナリ、およびシェルに互換性がある場合にうまく移動します。 スクリプトでは、引用符、パス区切り文字、ブラウザの可用性、およびバージョンの固定を考慮する必要があります。
拡張機能は、ブラウザの拡張機能 API、権限モデル、ストアまたはエンタープライズ配布、およびユーザー プロファイルに関連付けられています。 これらは、実際のブラウザーの近くに存在するため、まさに便利ですが、そのため、ヘッドレス サーバーや非ブラウザー タスクへの移植性が低くなります。
同じタスクのテストで何が起こったのでしょうか?
どちらのルートも、所有されているページを開き、フィールドに入力し、遅れた製品を待ち、重複したコントロールを見つけ、DOM の置き換えを生き延び、意図的な HTTP 503 と成功したリクエストを観察し、ブラウザを閉じました。 各ルートでは 9 つのタスク呼び出しまたはコマンドが使用され、それが 3 回繰り返されました。
| 観測された中央値 | Playwright MCP 0.0.80 | Playwright CLI 0.1.19 |
|---|---|---|
| タスク成功 | 3/3 | 3/3 |
| 呼び出し/コマンド | 9 | 9 |
| UTF-8 バイトが返されました | 22,235 | 1,737 |
| ツールカタログ | 24 ツール; 18,569バイト | 自動的には返されません |
| ウォールタイム | 2,165ミリ秒 | 14,544ミリ秒 |
CLI ハーネスが意図的に 9 つの個別の npx プロセスを起動し、名前付きセッションに再接続したため、ウォールタイム結果はバイト結果とは逆の方向を指します。 永続的なラッパーまたはバッチ コマンドによって、その結果が変更される可能性があります。 擁護可能な結論はさらに狭いです。この構成では、MCP はより豊富な検出を公開し、より多くのテキストを返しました。 CLI は簡潔な出力を返しましたが、ディスカバリーをタスク呼び出しの外に移動しました。
MCP、CLI、またはその両方をいつ使用する必要がありますか?
クライアント間で検出可能、入力可能、同意済み、および交換可能である必要があるホスト向け機能には、MCP を優先します。 決定論的なローカル操作、既存のエンジニアリング ツール、ビルド ステップ、リポジトリ作業、またはファイルと終了コードのコントラクトがすでに強力であるコマンドには、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 がコンテキストコストとモデルの往復回数を変える理由については、コンテキスト外実行ルートの技術解説.

2026 年 9 月 11 日の制御された実行では、ego-browser 0.5.0.31 が ego (lite) Space を再開し、遅延したフィクスチャデータを待ち、重複した 2 つの Beta コントロールを特定し、別途検証した結果タブを開きました。
エージェントにユーザーが承認した可視のブラウザ Space が必要で、複数ステップの JavaScript をモデルループ外で実行し、人による引き継ぎも重要な場合はこのルートを選びます。ホストに標準化されたツール検出と管理された呼び出しが必要なら MCP、作業が安定したコマンド、ファイル、パイプ、終了コードに適しているなら CLI を選びます。API、通常の HTTP リクエスト、使い捨てテストブラウザ、決定的な Playwright スイートでより小さな信頼境界のまま解決できる場合は、そちらを優先します。
選択をどのように検証する必要がありますか?
- 1 つの代表的なタスク、バージョン、ホスト、資格情報、および停止条件を凍結します。
- 宣言された分母を使用してモデルに表示されるスキーマと結果の内容をカウントします。 文字数からトークンを推定しないでください。
- 呼び出しの失敗、間違ったツールの選択、許可のプロンプト、秘密の漏洩パス、および回復作業を記録します。
- 交互の順序で繰り返し、失敗を平均化する代わりに保持します。
- 実際のデプロイメント境界をテストします: ローカル、リモート、コンテナ、ブラウザ拡張機能、または既存のプロファイル。
- 検出、セキュリティ、移植性、可観測性、およびメンテナンスの要件を満たす最も単純なルートを選択してください。
レイヤーを定義している公式の情報源はどれですか?
現在の MCP を使用してくださいアーキテクチャ仕様およびツールの仕様プロトコルのクレームについて。 テストされた実装は公式に文書化されていますPlaywright MCPおよびPlaywright CLIリポジトリ。
ブラウザ アクセスを別の権限面として扱います。 Chrome ではそのモデルが文書化されています権限の宣言。 ego-browser の例は、現在のものと比較してチェックされました。ego (lite) クイック スタート、2026 年 9 月 11 日。
よくある質問
MCP は CLI より多くのトークンを使用しますか?
クライアントが大規模なツール スキーマや詳細な結果を読み込む場合には発生する可能性がありますが、普遍的な割合はありません。 CLI ヘルプと出力もコンテキストを消費します。 実際のクライアント、サーバー、スキル、タスクを実際のテレメトリで測定します。
CLI は MCP サーバーになれますか?
はい。 MCP サーバーは構造化呼び出しを検証し、その下にある既存の CLI を呼び出すことができます。 ラッパーはエラー セマンティクスを保持し、引数を制限し、安全でない一般シェルの重複を避ける必要があります。
ブラウザ拡張機能は MCP より安全ですか?
カテゴリ別ではありません。 正確な拡張機能のアクセス許可、ホスト ポリシー、資格情報、更新パス、ユーザーの可視性、取り消しを比較します。 MCP は呼び出しを説明します。 拡張機能はブラウザ側のアクセスを記述します。
