このページは英語版ドキュメントの翻訳です。コマンド、識別子、例はそのままです。ランタイム 7.24.4 · SDK 2.6.7。 英語版
WebMCP ブラウザブリッジ
状態: 実験的 範囲: 公開、現行状態 最終確認: 2026-10-10 担当: AX Code メンテナー
WebMCP ブリッジを使うと、エージェントは隔離された Chrome ウィンドウでページを開き、読み取り、任意で操作できます。実験的な機能で、既定ではオフであり、Chrome 150 以降が必要です。
WebMCP は、提案されているウェブ標準です。ページは、名前、説明、入力スキーマを持つ構造化されたツールを登録でき、エージェントはその操作を直接呼べます。AX Code は、ページが登録したツールを使い、ページ自体の読み取りと操作もできます。
Codex と ChatGPT Work は、同じ標準について、組み込みブラウザ側の説明を サイトツール として公開しています。そのページは、デスクトップアプリが WebMCP をオンにする方法、訪問者がサイトの提供するツールを調べる方法、サイトの作者がツールを登録する方法を示します。以下の手順は AX Code のものです。
Chrome で有効にする
- Google Chrome 150 以降をインストールします。同じメジャーバージョンの Chromium も動作します。AX Code は新しいプロファイルで独自の Chrome ウィンドウを起動し、すでに開いている Chrome ウィンドウには触れません。
ax-codeで端末 UI を起動します。- サイドバーフッターの WebMCP チップ、またはホームのプロンプトフッターにある同じチップをクリックするか、
/webmcpを実行します。クリックまたはコマンドが同意です。その前にブラウザは起動しません。AX Code は、ブラウザを起動せずに、通常の場所に Chrome 150 以降があるかを先に確認し、なければ警告します。この確認は助言であり、試行を止めることはありません。選択はユーザ設定へ保存されるため、次の起動では、もう一度クリックしなくてもブリッジが戻ります。 - AX Code は、WebMCP 機能を有効にした隔離ウィンドウを開きます(
--enable-features=WebMCP)。そのウィンドウには、手でサインインするまでログイン情報がありません。 - エージェントにページを開くよう頼みます。製品の既定では、移動は制限されません。設定された、または管理されたオリジン一覧があると、範囲が狭まります。
- チップをもう一度クリックすると、ブリッジがオフになります。一時的なセッション許可は終わります。保存した承認は、MCP 設定で取り消すまで残ります。
チップは、操作ティアがオンのあいだ [act] を示します。製品の既定には、そのティアが含まれます。オフにするには、interact を false に設定します。場所は、項目の webmcp プロファイルです。以前に保存した項目は、そのときに持っていたティアを保ちます。
ax-code mcp webmcp は、設定の断片を出力します。パッケージのインストール、サーバへの接続、ファイルへの書き込みはしません。--interact を足すと、操作ティアがオンの項目を出力します。--executable-path /absolute/path/to/chrome を足すと、Chrome 150 以降の特定のバイナリを指定します。そのパスが設定されているとき、AX Code は起動前に、バイナリのメジャーバージョンを確認します。
自分で開いた Chrome ウィンドウのツール
上の隔離ウィンドウでは、すでに WebMCP が有効です。サイトを作りながら使う Chrome プロファイルでページツールを試すには、Chrome の WebMCP 案内 に従います。
chrome://flags/#enable-webmcp-testingを開きます。- フラグを 有効 にします。
- Chrome を再起動します。
そのフラグは、開いた Chrome プロファイルに適用されます。AX Code のブリッジは、引き続きチップから起動します。
プロンプトのヒント
ブリッジがオフのあいだ、URL またはローカルサーバを名指しするプロンプト(たとえば localhost:3000)は、チップと /webmcp を指す 1 行の案内を出します。セッションあたり最大 1 回、合計で 3 回まで現れ、エージェントへ送る内容は変えません。
エージェントにできること
| ティア | ツール | 承認 |
|---|---|---|
| ページ | ページの一覧、オープン、移動、クローズ。ページが WebMCP 経由で登録したツールの実行 | 対応する範囲が保存されていない限り、呼び出しごと |
| 読み取り | ページのスナップショット、スクリーンショット、コンソール、リクエストのメタデータ | オリジンごと、セッションごとに 1 件の許可、または保存された読み取り承認 |
| 操作 | クリック、ホバー、待機、入力、フォーム入力、キー押下、ダイアログへの応答 | 下記を参照 |
ページの内容は信頼できません。ページはエージェントを誘導しようとすることがあります。出力にはオリジンのラベルが付き、サイズが制限されます。
承認を保存する
対象になるプロンプトは、赤い背景で WebMCP 許可リストへ追加 を提示します。それを選び、範囲を確認してから、追加して許可 を選びます。保存した承認は、このマシン上のこのプロジェクトに適用され、ブラウザの再接続と AX Code の再起動を越えて残ります。
- ページ一覧は、AX Code ブラウザの
list_pagesを承認します。開いているすべてのオリジンのタイトルと URL を含みます。ページ内容は承認しません。 - 移動は、正確に 1 つのオリジンを開くこと、またはそこへ移動することを承認します。
- 読み取りは、正確に 1 つのオリジン上のスナップショット、スクリーンショット、コンソール、ネットワークのメタデータを承認します。ほかのオリジンとポートには、それぞれ承認が必要です。
- クローズは、正確に 1 つのオリジン上に今ある任意のページを閉じることを承認します。未保存の作業があるページも含みます。これは別の選択です。移動と読み取りの承認は、クローズを与えません。閉じる前に、対象オリジンが再び確認されます。
最初の読み取り承認のあと、AX Code はページを再び確認したうえで、同じ呼び出しの中でその読み取りを続けます。ページまたはブリッジが変わると呼び出しは止まり、新しい読み取りが必要になります。失敗したブラウザ操作を、やり直すことはありません。
移動の制限と管理者ポリシーは、引き続き適用されます。承認を保存しても、allowedOrigins は編集されません。入力、重大なクリック、ダイアログ、ページが登録したツールは、既存の承認を保ちます。一度だけ許可 は一時的なままです。カウントダウンが、永続する承認を保存することはありません。
WebMCP チップの横にある WebMCP 許可リスト のリンク(セッションのサイドバーフッターと、ホームのプロンプトフッター)を選ぶか、/webmcp-allowlist を実行するか、/mcp を開いてブリッジを選び、Ctrl+G を押します。項目をダブルクリックする(または Enter を 2 回押す)と取り消します。最初の操作は行に印を付け、数秒以内の 2 回目が確定するため、1 回のクリックで取り消されることはありません。クリアの行は、このプロジェクトでそのブリッジに保存された承認をすべて、同じ方法で取り消します。長い一覧はスクロールします。Escape を押すか、パネルの外をクリックすると閉じます。
検索ボックスからも承認を追加できます。正確な https:// オリジン(または http://localhost)を入力し、移動、読み取り、またはクローズの行を選んで保存します。ページ一覧の行は、保存されるまで提示されます。ブリッジは接続されている必要があります。明示的な承認は、動いているブリッジの識別子へ結び付き、プロンプトから保存したものと同じように、呼び出しのたびに確認されます。そのため、管理されたオリジン一覧、読み取りティアの切り替え、管理者ポリシーは引き続き適用されます。WebMCP チップをオフにするとブラウザは切断されますが、保存した選択は残ります。
ローカルの保管場所は、既定で ~/.local/share/ax-code/webmcp-approvals.json です(XDG のデータディレクトリの上書きが適用されます)。承認はブリッジの識別子へ結び付きます。起動方法またはブラウザプロファイルを変えると、新しい承認が必要です。
移動の失敗
ページが開いたあと、または変わったあとに、移動のエラーが起きることがあります。分かるときは、認識されたタイムアウト、ネットワーク、ページ欠落のいずれかの分類を報告し、生のブリッジエラー文は繰り返しません。もう一度移動するかを決める前に、list_pages を調べてください。移動のエラーは、保存した承認を消しません。
操作ティア
ホバーと通常のクリックは、オリジンあたり 1 件の許可の下で走り、20 操作まで有効です。そのあと、同じプロンプトが戻ります。
- 入力、キー押下、ダイアログ、リンク、ダブルクリック、名前が重大そうなクリック(送信、支払い、削除、認可など)は、対象と値の全体を示して、毎回確認します。
- 名前が資格情報に見えるフィールドは、ラベルが付き、マスクされます。API キーや秘密鍵の形をした値は拒否されます。資格情報は、自分で入力してください。
- 操作には、同じページの新しいスナップショットが必要です。移動したページや、未知の要素は拒否されます。1 つのターンで 3 回拒否されると、それ以上の操作は止まります。
名前に基づく確認は経験則であり、保証ではありません。制御はプロンプトにあるので、それを読んでください。
既存のページで作業する
ページの能力を調べる、そのネイティブツールを開発する、または特定の挙動を診断するよう、AX Code に頼んでください。browser_workflow ツールは、通常の観察のためにテストサーバを起動しなくても、これらの作業をまとめます。先にブリッジを有効にし、意図したページを特定してください。これらの操作はどれも、ページを開かず、サインインせず、ブラウザプロファイルを変えず、将来の作業を予定しません。
たとえば、「ローカルアプリ上のツールを調べ、どのアプリケーション関数に対応するかを示して」や、「空の結果を再現する前にこのページを取り込み、エラーを比べ、候補のソースファイルを指して」です。
ネイティブツールとそのソースを調べる
status を、server、pageId、正確な origin とともに呼び、実際に認められたツールと、ネイティブおよびスナップショットが使えるかを見ます。空の一覧は、到達できないフレームにツールがないことを確定しません。ページの文脈が不要な作業には、既存のコネクタの方が向いていることがあります。
{
"action": "inventory",
"server": "webmcp",
"pageId": 1,
"origin": "http://localhost:3000",
"sourceFiles": ["src/tools.ts", "public/search.html"]
}
返された inventoryId を保ってください。あとの一覧呼び出しで baselineId として渡すと、追加または削除されたツールと、変わったスキーマのフィールドが見えます。ファイルは明示的に権限が確認され、リポジトリ内に収まり、上限があります。静的な命令型の登録と、引用された HTML のフォーム属性は、ソースの候補を出します。計算された名前、重複した定義、未対応のテンプレートは、未解決または曖昧なままです。名前とスキーマが一致すると候補は裏付けられますが、ブラウザがそのソース改訂を読み込んだ証明にはなりません。
アプリケーション連携を生成する
author を使い、レビューできる連携コードを返します。
{
"action": "author",
"name": "find_products",
"description": "Find products matching a query in the current catalog.",
"module": "./src/catalog.js",
"exportName": "findProducts",
"schema": {
"type": "object",
"properties": { "query": { "type": "string" } },
"required": ["query"]
},
"format": "imperative",
"effect": "read"
}
名前を付けた関数は、直接のエクスポートでなければなりません。生成された登録は、コンポーネントやルートの後始末のために AbortSignal を受け取ります。acceptsSignal: true は、アプリケーション関数が 2 番目の {signal} 引数を受け取り、それを尊重するときだけ設定します。format: "declarative" は、人が送信するためのフォームと、モジュールの束縛を返します。その webmcp-result イベントを、アプリケーションの UI へ接続します。プリミティブなフィールドには対応しています。未対応のスキーマ制約は、黙って捨てず、拒否されます。どちらのテンプレートを適用する前にも、アプリケーションの検証、認可、実際の効果をレビューしてください。フォームが人による送信を求める場合でも、フィールドの編集が自動保存を引き起こすことがあります。
実行とモデル選択を別々に確認する
既存の contract ステップは、固定した入力と期待する結果を検証します。ルートまたは役割が変わったあと、使えなくなった操作の登録が外れたことを確認するため、{"action":"tool_presence","name":"admin_reset","present":false} を追加します。present: true は、descriptorHash を固定することもできます。これらはライフサイクルの確認点であり、イベントの追跡ではありません。書き出した回帰には、同じ確認が含まれます。
モデルが正しいツールと引数を選ぶかを知るには、別の選択評価を使います。
{
"action": "selection_eval",
"inventoryId": "<returned inventory UUID>",
"cases": [
{ "task": "Find AX products", "expected": { "name": "find_products", "arguments": { "query": "AX" } } },
{ "task": "Delete every product", "expected": { "name": null, "arguments": {} } }
],
"repeats": 2
}
選ばれた API モデルが受け取るのは、課題と取り込まれたカタログだけです。実行用のツールも、期待する答えもありません。呼び出しは承認され、12 ケース、3 回の繰り返し、2 分の評価期限に制限されます。報告には、モデルの識別、スイートのハッシュ、選択の正確な件数と引数の正確な件数(別々)、同時に正しい件数、未知の結果が記録されます。失敗は分母に残ります。CLI のモデルは、自分のツールを実行できるため、この評価では使えません。選択の得点は、ツールの正しさを証明せず、Arena の資格にもなりません。
操作の前後を診断する
observe を、同じページ対象、任意の sourceFiles、および既存のロールと名前、count、value、checked、disabled のスキーマを使う明示的な assertions とともに呼びます。要求された操作を、承認済みのツールか手で、1 回行います。そのあと {"action":"diagnose","observationId":"<returned UUID>"} を呼びます。結果は、アサーションの結果、スナップショットのハッシュ、上限のあるコンソールとリクエストのメタデータの差分、意味上の一覧の変化、ソースの候補を比べます。相関は、調べるための証拠であり、証明された根本原因ではありません。アサーションがないときの状態は observed であり、pass ではありません。
ベースラインは、現在のランタイムセッションだけに保持され、30 分で期限切れになり、セッションあたり 16 件までです。接続やページ位置が変わると、再利用は無効になります。固定されたブリッジは、同じ URL の再読み込みを識別できないため、これらの比較は助言のままです。保持されるのは、ページ位置とスナップショットのハッシュだけです。上限のある診断テキストとツールの記述子は、信頼できない証拠です。
再現できる localhost の問題では、promote が観察 ID と、ローカルのテストサーバのコマンドと手順を含む明示的で通常の manifest を受け取ります。新しい制御されたシナリオを凍結します。観察の結果が、受け入れへコピーされることはありません。編集の前に失敗する対照を実行し、既存のワークフローを通じて、修正後の実行を適格にしてください。
日々の観察作業を繰り返す
要求のたびに使うレシピは、移動も予定もなく、既存のページを確認します。
{
"action": "recipe",
"server": "webmcp",
"pageId": 1,
"definition": {
"version": 1,
"name": "Preview health",
"origin": "http://localhost:3000",
"assertions": [{ "locator": { "role": "status", "name": "Ready" }, "property": "count", "equals": 1 }]
}
}
既定はスナップショットだけです。任意の queries には、正確なツールの name、descriptorHash、オブジェクトの input、resultPath、equals が含まれます。それらは、既存の呼び出しごとの承認の下で、実際のアプリケーションツールを呼びます。読み取り専用であるというヒントは、効果を保証しません。結果は、スナップショットによる観察と、効果が未検証のアプリケーション呼び出しを明示的に区別し、問い合わせのあとスナップショットを再確認します。レビューした定義を保存し、取り込んだ内容や資格情報は保存しないでください。定義は権限を持たず、Arena の受領になることもありません。合格は、宣言された観察が一致したことだけを意味します。欠けたデータが、確認を満たすことはありません。
ツールを手で登録する
ページがすでに持つロジックを再利用するツールを追加するか、ページの JavaScript から 1 つ登録するよう、エージェントに頼んでください。Chrome の案内は、命令型の API と、宣言型のフォーム API を扱います。最小の読み取り専用ツールは、次のとおりです。
if (typeof document.modelContext?.registerTool === "function") {
await document.modelContext.registerTool({
name: "read_heading",
description: "Read the main heading of the current page.",
inputSchema: {
type: "object",
properties: {},
additionalProperties: false,
},
annotations: { readOnlyHint: true },
execute: async () => ({
heading: document.querySelector("h1")?.textContent ?? "",
}),
})
}
互換のあるエージェントは、そのページ上の read_heading を発見できます。OpenAI の サイトツール のページは、Codex と ChatGPT Work の側から同じ考えをたどります。組み込みブラウザが、サイトの提供するツールを一覧する方法も含みます。
制限
スクリプト、アップロード、ダウンロード、クッキー、リクエスト本文、座標、ドラッグはありません。管理者は、管理された webmcp 要件(allow、allowRead、allowInteract、allowedOrigins)により、ブリッジまたはどちらかのティアを無効にできます。プロジェクトとユーザの設定は、それを緩めることはできません。
ax-code mcp add で追加するサーバは、別の信頼の経路です。MCP 連携 を参照してください。
localhost のページを 5 つの手順でデバッグする
描画がおかしいページ、何もしないコントロール、失敗するリクエストについて、次を行います。
- ページへ移動し、スナップショットを取ります。アクセシビリティツリーが、構造の基準です。移動と読み取りは、既存の承認を使います。
- 失敗する操作を、既存の操作承認の下で 1 回行います。
- 差分を読みます。操作の前後にあるコンソールエラーと、ネットワークのメタデータ(メソッド、URL、状態、種類。リクエストと応答の本文は範囲外)です。非同期の状態では待ちます。きっかけになった操作を、繰り返さないでください。
- 判定は、合格、失敗、または欠けている能力を名付けたブロックです。ツールが受け取ったという応答は、アプリケーションが成功した証明ではありません。
- localhost の失敗を、構造化されたアサーションとして表せるなら、
browser_workflowのシナリオ(下記)として凍結し、失敗する対照を記録し、修正のあと同じハッシュを 2 回実行します。
バグレポートに証拠を付ける
凍結したシナリオを通じて調べた localhost の失敗では、証拠の束が報告をレビュー可能にします。含めるのは、シナリオの名前とハッシュ、失敗したアサーションの結果(取り込んだページ内容は除く)、browser_workflow inspect からの受領 ID、スナップショットのハッシュ、上限のあるコンソールエラーとネットワークメタデータの差分、explicit、local_map、unresolved のラベルが付いたソースリンク、およびオリジンです。含めてよいのは、ランタイムが上限を付け、ランタイムが伏せた出力だけです。リクエストまたは応答の本文、ヘッダ、クッキー、ストレージ、ページ内容、資格情報の形をした値は含めないでください。受領 ID と、コピーした受領データは、参照にすぎません。権威のある受領の状態は、ランタイムが持ち続けます。
開発の変更を再現して検証する
browser_workflow ツールは、ウェブアプリケーションを編集する前に受け入れ手順を凍結し、接続された WebMCP ブリッジを通じて実行し、構造化されたアサーションを記録します。先にブリッジを有効にしてください。最初に対応する環境は、127.0.0.1 上の使い捨ての HTTP サーバです。各実行は、異なるポートと一時データディレクトリ、および新しい隔離ブラウザコンテキストを割り当てます。永続するブラウザプロファイルは拒否されます。空のコンテキストは、切断まで上流のブリッジが保持します。1 つの接続で 32 回実行したあと、続ける前にブリッジを再接続してください。ワークフローが、それらのクッキーやストレージを再利用することはありません。
action: "freeze" でシナリオを凍結するよう、エージェントに頼んでください。たとえば、ポート引数を受け取る、プロジェクト所有の test/browser-server.mjs は、次を使えます。
{
"action": "freeze",
"manifest": {
"version": 1,
"name": "Search returns a matching result",
"server": "node test/browser-server.mjs {port}",
"path": "/",
"setup": [],
"reset": [],
"cleanup": [],
"steps": [
{ "action": "fill", "locator": { "role": "textbox", "name": "Search" }, "value": "example" },
{
"action": "assert",
"assertion": {
"locator": { "role": "status", "name": "One result" },
"property": "count",
"equals": 1
}
}
]
}
}
返されたハッシュを保ってください。{"action":"run","hash":"<hash>","server":"webmcp"} で実行します(接続しているブリッジの名前を使います)。失敗を再現し、変更を行い、同じハッシュを 2 回実行します。各実行は、宣言されたサーバを起動し、自分のページを開き、手順を確認し、ページを閉じて、自分のサーバを止めます。ライフサイクルのコマンドは、通常のシェル権限を通じて、リポジトリのルートで走ります。{port} は、割り当てられたポートへ展開されます。{data} は、引用された一時ディレクトリへ展開されます。準備、リセット、後始末のコマンドは、15 秒以内に終わらなければなりません。準備完了の期限は 15 秒、ブラウザ実行の期限は 120 秒です。ブラウザの操作は、既存の権限と操作の予算を保ちます。
対応する手順は、クリック、ホバー、入力、構造化アサーション、ページツールの契約確認です。ロケータは、正確なロールとアクセシブル名を使います。一致が 0 件、または複数ある操作は、unknown として止まります。推測した UID や、CSS またはスクリプトへのフォールバックはありません。アサーションは、count、value、checked、disabled の状態を比べます。状態のプロパティがないときは、未知です。非同期の描画では、timeoutMs(0 から 10000、既定は 0)を、assert のステップへ追加します。ランナーは、アサーションが一致するか期限が切れるまで、新しい構造化スナップショットをポーリングします。先行するクリックや入力を、繰り返すことはありません。タイムアウトはシナリオとともに凍結され、書き出したテストにも残ります。シナリオは、32 ステップ、32 KiB までに制限されます。
inspect は、凍結したマニフェストと、ランタイムの受領を返します。受領は、シナリオをリポジトリの改訂と内容、操作の結果、スナップショットのハッシュ、上限のあるコンソールとネットワークのメタデータへ結び付けます。変わったソース、拒否された操作、欠けた証拠、タイムアウト、不完全な後始末は、合格できません。これらの結果は、宣言されたアサーションを検証します。アプリのあらゆる挙動を証明するわけではありません。凍結した状態と、権威のある受領は、現在のランタイムセッションにあります。再起動したあとは、再び凍結して適格にしてください。コピーした JSON の受領は、ランタイムの権威としては受け付けられません。
回帰テストを書き出す
{"action":"export","hash":"<hash>"} は、playwright-core を使う独立した Node モジュールを返します。返されたコードをプロジェクトのテストとして保存し、Chrome を指す AX_TEST_WEBMCP_CHROME で実行します。同じフィクスチャを起動し、新しいブラウザコンテキスト、安定したロールと名前のロケータ、凍結したアサーションを使います。検証済みと呼ぶ前に、書き出したテストを実際に実行してください。書き出したテストは、独立した回帰の成果物です。その出力は、Arena の受領ではありません。ページツールの契約ステップは、Chrome ネイティブの WebMCP プロトコルを、正確な記述子ハッシュと期待する出力とともに使い、任意のページスクリプトは評価しません。契約の書き出しには、Chrome がその実験的プロトコルに対応している必要があります。
ページツールの契約を作り、失敗を調べる
ページが開いているとき、{"action":"contracts","server":"webmcp","pageId":1} は、登録された記述子と、正確な記述子ハッシュを返します。contract のステップを凍結し、その中に name、descriptorHash、input、resultPath、equals を含めます。ハッシュが変わると、確認は失敗します。否定の入力には expectError: true を設定します。それを満たすのは、確認されたページツールの実行エラーだけです。取り消された呼び出し、権限の拒否、完了の欠落は、未知です。変更のあとにアサーションを追加し、戻り値だけでなく、結果として現れるページの状態も確認します。
template の操作は、name、相対的なアプリケーションの module、明示的な exportName、および schema を取ります。ローカルのエクスポートが存在することを検証し、登録の骨格を返します。有効にする前に、アプリケーションの入力検証、認可、業務ロジックと照合してレビューしてください。ツールは、エクスポートされた関数名から、それらの保証を確立できません。
任意の sources の一覧は、1 始まりの line と 0 始まりの column を持つ、リポジトリ内のファイルを名付け、任意でローカルの map ファイルも名付けます。失敗した実行は、上限のある診断と、explicit、local_map、または unresolved とラベルされたソースリンクを返します。対応付けは助言であり、根本原因や、合格したアサーションの証明ではありません。リモートの対応表、リポジトリ外のパス、1 MiB を超えるファイルは読まれません。ブラウザのネットワーク証拠は、メタデータだけのままです。
implement Arena でブラウザ証拠を必須にする
browserScenario: "<hash>" を、mode: "implement" とともに渡します。シナリオを凍結し、Arena を始める前に、現在のきれいな基準の上で、実際に失敗するアサーションを記録します。各候補は、隔離された worktree の中でその凍結した契約を受け取り、接続された隔離ブリッジを通じて、2 回成功させなければなりません。ブラウザの起動と権限は、監督されたままです。ブリッジへのアクセスがないこと、内容が古いこと、結果が未知であること、受領が欠けていることは、リポジトリの確認が通っても昇格を止めます。通常のコード検証と、変更の確認は引き続き走り、候補が自動でマージされることはありません。
証拠を効率よく選ぶ
ネイティブの WebMCP ツールは、アプリケーションの操作を記述します。Chrome DevTools MCP は、ブラウザの調査と自動化を提供します。明示的なアプリケーション操作には、ページが登録したツールを優先し、その結果と、結果として現れるページの状態を検証してください。テキストと、安定した要素のロケータには、アクセシビリティのスナップショットを使います。レイアウト、キャンバス、画像だけの内容には、スクリーンショットを取ります。新しいスナップショットの uid へ切り取るか、品質を下げた JPEG を使い、インラインの上限に収めてください。ピクセルの解釈には、視覚に対応したモデルが必要です。WebMCP も、文書化された DevTools MCP のツール一覧も、専用の OCR ツールは提供しません。推定された画像のテキストは助言であり、構造化された受け入れアサーションを満たすことはできません。
コンソールの読み取りは、types と pageSize で狭めます。ネットワークのメタデータは、resourceTypes と pageSize で狭めます。ワークフローの受領は、操作前のベースラインと上限のある差分を保つため、再現が持ち込んだエラーを見つけやすくします。ネットワークの本文と、任意の評価は、ブリッジが許可した面の外のままです。上流の DevTools MCP にある性能の追跡、エミュレーション、Lighthouse、画面収録、メモリ、拡張のツールは別の能力であり、このプロファイルでは公開されません。
Chrome の WebMCP デバッグ案内 と、上流の DevTools MCP ツールリファレンス を参照してください。上流の main は、AX Code が固定しているブリッジと異なることがあります。対応する引数を記述するのは、ローカルのツールスキーマだけです。