WebMCP

WebMCPを使用すると、Webページはブラウザ内のAIエージェントに構造化ツールを公開できます。MCPとの違い、Chromeの対応状況、セキュリティリスク、待つべきタイミングについて学びます。

初回公開:2026年7月17日 · 最終更新:2026年8月3日 · Advanced
言語
このページには証拠シグナルが1件あります

WebMCPは、オープンなWebページがAIエージェントに構造化ツールを提供できるようにする実験的なブラウザAPIです。これは、限定されたページ操作に役立ち、Webの発見やランキングには関係ありません。2026年7月17日現在、Community GroupドラフトおよびChrome 149オリジントライアルであり、現在のChromeの例ではdocument.modelContextが使用されていますが、navigator.modelContextはChrome 150で非推奨となっています。

TL;DR — WebMCPは、アクティブなブラウジングコンテキスト内のエージェントにdocument.modelContextからページ所有のツールを公開します。命令型APIは、名前、説明、JSON Schema入力、注釈、非同期コールバックを登録します。ツールは状態依存にでき、AbortSignalで登録解除できます。Chromeは宣言型フォームレイヤーも文書化していますが、2026年7月10日のCommunity Groupドラフトはまだ宣言型セクションをTODOとラベル付けしています。この機能はChrome 149オリジントライアルにあり、安定したクロスブラウザベースラインではありません。これをSEOインフラではなくプログレッシブエンハンスメントとして扱い、認証されたアプリケーションサーフェスとして保護してください。

Evidence for this claim Chrome documents declarative form annotations such as toolname and tooldescription, but the declarative section of the July 10, 2026 Community Group draft is still marked TODO. Scope: secure browser context Confidence: high · Verified: WebMCP Draft Community Group Report

ブラウザでのWebMCPの仕組み

有用なWebMCPライフサイクルはページで始まり、ページで終わります。ページは現在の状態で有効なアクションのみを登録します。そのブラウジングコンテキストで既に動作しているエージェントがそれを発見して呼び出します。ページは通常のアプリケーションロジックを実行し、人間が見えるインターフェースを更新し、境界のある結果を返します。状態が変わると、ページはもはや適用されないツールを削除します。 Evidence for this claim The imperative API registers named, described, schema-constrained callbacks and supports state-aware cleanup with AbortSignal plus tool-set change notifications. Scope: Current draft and Chrome experiment; API details may change before stable release. Confidence: high · Verified: WebMCP ModelContext API Chrome: WebMCP Imperative API

WebMCP tools should follow the page's real state: register a valid action, execute the same logic as the UI, and remove it when the action is no longer available. 出典: Patrick Stox — WebMCP

Five numbered steps run left to right. First, the page registers a name, description, input schema, and callback. Second, an agent already in the page context discovers it. Third, the agent invokes it with validated structured arguments. Fourth, the page reuses its normal application logic and updates the visible interface. Fifth, it returns a bounded result or safe error. A branch from execution shows that state changes or navigation should unregister the tool with AbortSignal and notify observers through toolchange.

© Patrick Stox LLC · CC BY 4.0 ·

この状態を持つライフサイクルは、WebMCPがJavaScriptバンドル内のすべての関数の静的ダンプになるべきではない理由の一つです。可視UIで不可能なツールは、通常エージェントにも利用できないようにすべきです。

WebMCP vs MCP:異なるランタイム境界

名前は混乱を招きますが、運用上の境界は異なります。WebMCPはドキュメントのイベントループと現在のブラウザセッションに存在します。リモートMCPはAIアプリケーションの統合境界に存在し、通常は永続的なバックエンドサーバーに到達します。 Evidence for this claim WebMCP is designed for tools owned by an active page and its browser context, while remote MCP commonly connects an AI application to a persistent backend server. Scope: Architecture-selection guidance, not a rule that prevents an application from using both technologies. Confidence: high · Verified: Chrome: When to use WebMCP and MCP

WebMCP owns page-context actions; remote MCP owns durable application-to-server integrations. Many products will use both. 出典: WebMCP

The left lane shows WebMCP: a browser agent interacts with an open web page, which owns a JavaScript tool and current visible session state. The page must be open for those tools to exist. The right lane shows remote MCP: an AI application connects through an MCP client to a persistent MCP server, which can remain available outside a browser tab. The two lanes are complementary rather than replacements.

© Patrick Stox LLC · CC BY 4.0 ·

インターフェース存在場所発見されるタイミングページが開いている必要があるか?最適な用途
WebMCPアクティブなブラウザドキュメントクライアントがページを訪問した後はい現在のUI状態とページアクション
リモートMCPAIクライアントとMCPサーバークライアント/サーバー設定または発見を通じていいえ永続的なツール、データ、バックエンドワークフロー
Web/APIエンドポイントアプリケーションバックエンドアプリケーション固有の統合を通じていいえ既知のコンシューマー向けの安定したプログラム的アクセス
構造化データページマークアップページ処理中通常はコンテンツとして取得エンティティとページの意味を説明するもので、アクションを実行するものではない
llms.txt静的テキストファイルクライアントがリクエストを選択したときアクティブなタブは不要提案されたコンテンツガイダンス。呼び出し可能なツールサーフェスではない
ブラウザ自動化UIを解釈するエージェント/コントローラーページを読み込んで検査した後はい明示的なページツールが存在しない場合のフォールバック

頭字語から選ばないでください。動作の主体から選んでください。アクションが現在のDOM、選択、カート、またはUI状態を必要とする場合、WebMCPが適しているかもしれません。バックグラウンドで、多くのサイトにまたがって、または開いているタブなしで実行する必要がある場合は、APIまたはリモートMCPを使用してください。

命令型API

命令型APIは、document.modelContext.registerTool()を通じてツールを登録します。ツールには、一意の名前、説明、JSONスキーマ入力、executeコールバック、およびオプションの注釈が含まれます。Chromeはまた、テスト用のgetTools()executeTool()、およびtoolchangeイベントについても文書化しています。 Evidence for this claim Current Chrome documentation uses document.modelContext and says navigator.modelContext is deprecated beginning in Chrome 150. Scope: Chrome implementation guidance checked July 17, 2026; version and API-name claims expire quickly. Confidence: high · Verified: Chrome: WebMCP Imperative API

これは実例となる候補であり、将来のSchema Validatorパイロットの意図された形状を示しています。このサイトでは実行されておらず、安定版リリース前にAPIが変更される可能性があります:

if (document.modelContext) {
  const registration = new AbortController();

  await document.modelContext.registerTool({
    name: 'validate_schema',
    description: 'Validate pasted JSON-LD and return bounded issues.',
    inputSchema: {
      type: 'object',
      properties: {
        markup: {
          type: 'string',
          description: 'JSON-LD markup to validate.',
          maxLength: 50000
        }
      },
      required: ['markup'],
      additionalProperties: false
    },
    annotations: {
      readOnlyHint: true,
      untrustedContentHint: true
    },
    execute: async ({ markup }) => {
      const result = await validateWithTheSameEngineAsTheUI(markup);
      renderResultInTheVisibleUI(result);
      return minimizeValidationResult(result);
    }
  }, { signal: registration.signal });

  // When this page state no longer supports validation:
  // registration.abort();
}

重要なアーキテクチャはラッパーではありません。コールバックが可視UIと同じバリデータを呼び出し、サーバー側の制限と認証が引き続き適用され、応答が意図的に最小化されることです。機能検出により、サポートされていないブラウザでも完全な人間のワークフローが維持されます。

navigator.modelContextを中心に構築された古い例ではなく、document.modelContextを使用してください。Chromeは後者をChrome 150から非推奨としています。この機能は実験的なままであるため、そのアドバイスに日付を付けてください。 Evidence for this claim Current Chrome documentation uses document.modelContext; navigator.modelContext is deprecated in Chrome 150. Scope: browser document Confidence: high · Verified: WebMCP Imperative API

宣言型APIには標準の不一致がある

Chromeは、toolnametooldescriptiontoolparamdescriptionなどの属性で通常のフォームに注釈を付ける宣言型アプローチを文書化しています。また、オプションのtoolautosubmitも文書化しています。それ以外の場合、ユーザーは送信をクリックします。SubmitEvent.agentInvokedは、エージェントがトリガーした送信を識別します。 Evidence for this claim Chrome documents declarative WebMCP form annotations, but the July 10, 2026 Community Group draft says its Declarative WebMCP section is entirely TODO. Scope: A direct comparison between Chrome implementation documentation and the current draft; it does not imply Chrome's experimental implementation is unavailable. Confidence: high · Verified: Chrome: WebMCP Declarative API WebMCP: Declarative WebMCP

ただし、7月10日のコミュニティグループレポートでは、その宣言型WebMCPセクションは「完全にTODO」であり、フォームからJSONスキーマへのアルゴリズムは未定義のままであると述べています。これはChromeの実験が架空であることを意味するものではありません。実装ドキュメントが規範的なドラフトより進んでいることを意味します。宣言型マークアップを、確定したクロスブラウザHTMLではなく、実験的なChromeサーフェスとして扱ってください。 Evidence for this claim Chrome documents declarative WebMCP form annotations, but the July 10, 2026 Community Group draft says its Declarative WebMCP section is entirely TODO. Scope: A direct comparison between Chrome implementation documentation and the current draft; it does not imply Chrome's experimental implementation is unavailable. Confidence: high · Verified: Chrome: WebMCP Declarative API WebMCP: Declarative WebMCP

当面は、通常のセマンティックフォームが耐久性のある基盤であり続けます。実験的な注釈レイヤーはそれらを強化するものであり、ラベル、検証、アクセシビリティ、確認、またはサーバー側の認証を決して置き換えるべきではありません。

ツールの検出、ライフサイクル、およびクロスオリジン境界

現在のAPIには、明示的に設計する価値のあるいくつかの境界があります:

  • ブラウジングコンテキスト: Chromeの実験ではブラウザコンテキストが必要です。クライアントはサイトのツールを発見する前にサイトにアクセスします。
  • 動的な可用性: ツールが有効なときに登録し、状態またはナビゲーションが無効になったときに登録を中止します。オブザーバーはtoolchangeをリッスンできます。
  • デフォルトで同一オリジン: tools権限ポリシーのデフォルトは'self'です。クロスオリジンのiframeには、allow="tools"などの明示的な委任が必要です。
  • 双方向のクロスオリジン同意: ツールはexposedToを使用して許可されたセキュアオリジンをリストでき、呼び出し元はfromOriginsを使用して名前付きオリジンからツールを要求します。一方の側だけがオプトインするだけでは不十分です。
  • プログレッシブエンハンスメント: サポートされていない、または無効なWebMCPは、通常のページを完全に使用可能なままにしておく必要があります。
Evidence for this claim WebMCP tool exposure is origin-isolated and controlled by the tools Permissions Policy; cross-origin iframes require explicit delegation. Scope: browser document Confidence: high · Verified: WebMCP Imperative API

これらは有用なプラットフォーム制御ですが、リスクの高いアプリケーションアクションを安全なものに変えるものではありません。

セキュリティ:ブラウザセッションがリスクを高める

ブラウザエージェントは、ユーザーの認証済みセッション内で動作する可能性があります。それは機能(現在のカート、アカウント、またはワークスペースへのアクセス)であり、危険でもあります。Chromeとドラフトは、プロンプトインジェクション、誤解を招くツールメタデータ、汚染されたツール出力、過度に広いパラメータ、プライバシー漏洩、クロスオリジン露出、および署名済み権限の悪用について議論しています。 Evidence for this claim WebMCP tool hints can communicate read-only and untrusted-output intent, but they do not eliminate prompt injection, misleading metadata, privacy leakage, cross-origin risk, or misuse of authenticated browser authority. Scope: Threat-model and defensive guidance; application authorization and confirmation remain implementation responsibilities. Confidence: high · Verified: WebMCP security and privacy considerations Chrome: WebMCP tool security Chrome: Agent security considerations

すべてのツールを、異常な呼び出し元を持つ公開アプリケーションエンドポイントとして扱ってください:

  1. ツールを狭く保つ。 一つの仕事、明確な入力、厳密な列挙型と長さ、 隠れた「何でもできる」パラメータなし。
  2. アプリケーションロジックで認可を強制する。 エージェントはサインインした ユーザーよりも多くの権限を得ず、ヒントは許可ではない。
  3. 読み取りと書き込みを分離する。 readOnlyHintuntrustedContentHint はリスクを伝えるものであり、強制するものではない。
  4. 結果に対する目に見える確認を要求する。 購入、送信、削除、メッセージ、 アカウント変更には、人間が理解できるチェックポイントが必要である。
  5. 出力を最小化する。 タスクに必要なものだけを返し、セッションデータ、 生のヘッダー、秘密情報、無関係なレコードを決して漏らさない。
  6. 出力を信頼できないものとして扱う。 あるツールが返した文字列は、 後のモデルの推論への入力になり得る。それが指示や権限を密輸することを 許してはならない。
  7. 境界をログに記録する。 ツール、入力クラス、認可判断、確認、結果クラス、 エラー、発信元、ライフサイクルを、秘密情報をログに記録せずに記録する。

安全な問いは「エージェントがこれを呼び出せるか?」ではない。「指示を誤解し、 信頼できないテキストを中継できる呼び出し元に、これをレビュー済みの エンドポイントとして公開するか?」である。

契約とエージェントの動作を別々にテストする

Chrome の eval ガイダンスは、決定的な製品テストと確率的なエージェントテストを 分離している。 Evidence for this claim WebMCP testing should combine deterministic contract and UI-state tests with probabilistic evaluation of agent tool selection and use. Scope: Chrome's evaluation guidance; teams must define product-specific tasks, models, risks, and thresholds. Confidence: high · Verified: Chrome: Evals for WebMCP 両方が重要である:

決定的テスト は、登録、スキーマ拒否、有効・無効な入力、認可、レート制限、 副作用、エラー形式、出力最小化、UI パリティ、登録解除動作、および サポートされていないブラウザのフォールバックを検証する必要がある。

確率的評価 は、代表的なエージェントが正しいツールを発見し、無関係な ツールを回避し、正しいパラメータを選択し、必要なときに明確化を求め、 確認を尊重し、成功後に停止し、敵対的な説明や出力に抵抗するかどうかを 測定する必要がある。

リリースゲートとして 1 つのデモプロンプトを使用しないこと。コールバックの成功は コードが実行されたことを証明するだけであり、モデルがそれを確実に選択することや、 そのアクションが安全であることを証明するものではない。

Cloudflare Browser Run: 有効なラボであり、有効化ではない

Cloudflare は、Browser Run の実験的ラボプールにおける WebMCP サポートを文書化しており、 ラボセッションは本番ワークロードに使用すべきではないと述べている。4 月 23 日のページには 古い Chrome 時代のテスト名も含まれているため、そのページを Cloudflare の現在の製品提供の 証拠として使用し、最新の WebMCP API 形状の権威としては使用しないこと。 Evidence for this claim Cloudflare Browser Run offers experimental lab sessions that can consume and test page-provided WebMCP tools, but the page still owns tool registration and Cloudflare says lab sessions are not for production workloads. Scope: Cloudflare product documentation last updated April 23, 2026; its example API names lag current Chrome documentation and should not be used as the API authority. Confidence: high · Verified: Cloudflare Browser Run: WebMCP

Cloudflare はブラウザセッションとツールを消費するエージェントパスを提供できる。 しかし、アプリケーションの安全な契約を推測したり、あなたが構築していない ページ所有のツールを登録したりすることはできない。

提案された patrickstox.com パイロット: Schema Validator

Schema Markup Validator は、将来のパイロット候補として 適しており、稼働中の WebMCP 実装ではない。既に境界のある貼り付け入力、決定的なロジック、 構造化された問題、および目に見える結果を持っている。将来の validate_schema ツールは、 UI と既存のリモート MCP ツールスイートと同じ検証エンジンを再利用できる。

パイロットは、ブラウザ API が安定した非実験的リリースに達し、新しいセキュリティ レビューに合格するまで待つべきである。最初のバージョンは読み取り専用で、機能検出され、 入力制限され、応答が最小化され、プレビュー、管理者、または所有者専用のサーフェスでは 利用できないようにする必要がある。このサイトは現在、WebMCP サポートを主張していない

決定: 構築、実験、待機、またはスキップ

状況判断
顧客ワークフローに安定したブラウザサポートが必要待機し、通常のUI/APIを完全な状態に保つ
制限付きの読み取り専用アクションがあり、プライベートラボを実行できる実験する(機能検出を使用し、本番依存なし)
タスクにバックグラウンドまたはヘッドレス実行が必要APIまたはリモートMCPを使用
ページがコンテンツを公開するだけWebMCPをスキップし、セマンティックでアクセシブルなHTMLを改善する
アクションが書き込み、購入、送信、削除、またはプライベートデータの公開を行う軽率にパイロットしない。別の脅威モデルと確認設計が必要
安定した実装がリリースされ、すべての契約/セキュリティ/パリティテストが合格段階的な本番パイロットを検討

Add an expert note

Pin an expert quote

New person? Create their unclaimed profile at /admin/experts/ → Pin a quote first.