WebMCP — ブラウザエージェントのインタラクション
WebMCP とは?
WebMCP は、AI エージェントが別の API ではなくユーザーのブラウザを通じてウェブサイトと相互作用できるようにする W3C Community Group ドラフト提案です。サイトは既存の HTML フォームに、それらを呼び出し可能なツールとして宣言する属性を注釈付けします;ブラウザは新しい navigator.modelContext API を通じてそれらのツールをエージェントに公開します。提案は Google と Microsoft によって支援されており、現在 Chrome Canary の実験的フラグの後ろで利用可能です。
名前は MCP(Anthropic の Model Context Protocol)の意図的な響きですが、2 つは異なる問題を解決する別個の仕様です。MCP はエージェントがサーバー上のツールを呼び出すための JSON-RPC プロトコルを定義します。WebMCP はエージェントがすでにページ上のフォームとして存在するツールを呼び出すためのブラウザ API を定義します。
WebMCP が重要な理由
エージェント-ウェブサイト統合の伝統的なルートは:サイトが API(OpenAPI)または MCP サーバーを公開し、エージェントが別途認証し、呼び出しがバックチャネルで実行されます。これはファーストパーティのエージェント統合では機能しますが、貴重な機能を持つが並行サーフェスを構築する API チームがないウェブサイトのロングテールでは破綻します。
WebMCP は逆のアプローチを取ります:サイトはすでにそのことをするフォームを持ち、ユーザーはすでにログインしており、ブラウザはすでにセッションを持っています。なぜ並行 API を構築するのか?既存のフォームをいくつかの属性で注釈付けすれば、ブラウザ内のエージェントが直接呼び出すことができます — ユーザーの認証、サイトの CSRF 保護、ブラウザの権限モデルを無料で継承します。
WebMCP と MCP の違い
| MCP | WebMCP | |
|---|---|---|
| 誰が誰を呼び出すか | エージェント → サーバー | エージェント → ブラウザ → サーバー |
| エージェントの実行場所 | ブラウザの外 | ブラウザ内またはと並んで |
| 認証 | OAuth 2.1 / API キー | ユーザーの既存のブラウザセッション |
| トランスポート | HTTP/SSE 上の JSON-RPC | ブラウザ内部 API(navigator.modelContext) |
| サイトで構築するもの | 専用 MCP エンドポイント | 既存 HTML フォーム上の属性注釈 |
| 接続の寿命 | セッション間で持続 | タブが閉じると終了 |
| 発見 | MCP レジストリ / well-known | DOM スキャン + /.well-known/webmcp.json マニフェスト |
アーキテクチャはほぼ反対です。MCP は外部エージェントに安定したバックエンドインターフェースを提供します;WebMCP はブラウザ内エージェントに既存のフロントエンドへのアクセスを提供します。
WebMCP の仕組み
協力する 2 つの部分があります:DOM 注釈(ページごと)とオプションのマニフェスト(サイトごと)。
1. 注釈付きフォーム。 サイトは 3 つのカスタム属性で任意の HTML フォームをエージェント呼び出し可能としてマークします:
<form tool-name="search-products" tool-description="Search the catalog by keyword">
<input type="text" name="q" tool-param-description="Search query, e.g. 'red shoes'">
<button type="submit">Search</button>
</form>
ブラウザ側の WebMCP ランタイムは DOM を tool-name 要素についてスキャンし、ツールリストを構築し、エージェントに公開します。
2. マニフェスト。 サイトは /.well-known/webmcp.json を公開して、すべてのページに表示されない可能性のあるツールを宣言できます:
{
"spec": "webmcp/0.1",
"tools": [
{
"name": "search-products",
"description": "Search the product catalog",
"url": "/search",
"method": "GET",
"parameters": [
{
"name": "q",
"type": "string",
"description": "Search query"
}
]
}
]
}
WebMCP と他のエージェント相互運用レイヤー
| 仕様 | エージェントの場所 | 公開されるもの | 認証 |
|---|---|---|---|
| WebMCP | ブラウザ内 | 注釈付き HTML フォーム | ユーザーのセッション |
| MCP | ブラウザ外 | サーバー上の JSON-RPC ツール | OAuth / API キー |
| A2A | どこでも | 名前付きスキルを持つエージェント全体 | エージェントレベル認証 |
| OpenAPI | どこでも | スキーマ付き REST エンドポイント | エンドポイントごとのスキーム |
| SKILL.md | どこでも | 散文プレイブック | N/A |
WebMCP は唯一ユーザーのブラウザ内で実行されるものです。
現在のステータス
WebMCP は W3C Web Machine Learning Community Group の下のドラフト Community Group レポートです。2026 年半ば時点で:
- 仕様は webmachinelearning.github.io/webmcp で公開されています。
- 参照実装は Chrome Canary の実験的フラグの後ろにあります。
- 任意の本番ブラウザで配信されていません。
- 仕様は W3C Working Draft ステータスに達する前に変更されることが予想されます。
今日 WebMCP を出荷するサイトは早期です — 仕様の安定化とブラウザの出荷に賭けています。
WebMCP を支援しているのは誰か
- Google — Chrome チームが提案を公開し、プロトタイプを出荷しています。
- Microsoft — 仕様の共同編集者。
- W3C Web Machine Learning Community Group — ガバナンス本体。
サイトに WebMCP を追加する方法
- 重要なフォームを選ぶ。
- 属性を追加する。
tool-name、tool-description、tool-param-description。 - 小文字ハイフン名を使う。
search-products、searchProductsではない。 - エージェント向けに説明を書く、人間向けではない。
- マニフェストを公開する。
/.well-known/webmcp.json。 - Chrome Canary でテスト 実験的フラグを有効にして。
スキャナーがフラグを立てる一般的なエラー
- マニフェストがない —
/.well-known/webmcp.jsonが 404 を返す。 - マニフェストが HTML を返す — SPA キャッチオールルート。
- 説明なしのフォーム注釈。
- 無効なツール名。
- 非フォーム要素の注釈。
FAQ
WebMCP は MCP のフォークですか?
いいえ。別々のワーキンググループからの別々の仕様で、別々のアーキテクチャを持ちます。
Chrome の WebMCP は Firefox や Safari で動作しますか?
現在は動作しません。
MCP がすでにある場合、WebMCP を追加すべきですか?
あなたのサービスに今日ユーザーが記入するフォームを持つウェブサイトがある場合は、はい。
AgentGrade は WebMCP のないサイトにペナルティを課しますか?
いいえ。
WebMCP は安全ですか?
セキュリティモデルはブラウザから継承されます:same-origin 強制、ユーザーの既存のセッション、CSRF 保護。
iframe にフォームをホストする場合、/.well-known/webmcp.json を置き換えるものは?
same-origin ルールが適用されます。
WebMCP は SPA で動作しますか?
はい、しかしエージェントがスキャンする時点でフォームが DOM に存在する必要があります。
WebMCP は安定版 Chrome にいつ出荷されますか?
公開タイムラインはありません。
仕様の成熟度
ドラフト、未出荷。 WebMCP は W3C Community Group ドラフトで、Chrome Canary の実験的フラグの後ろでのみ利用可能です。
詳細
- WebMCP 仕様 — W3C ドラフト
- WebMCP GitHub リポジトリ
- Chrome: WebMCP と MCP をいつ使うか
- MCP — サーバー側の対応物
- A2A — エージェント間プロトコル