WebMCP では、サイトはツールを必要としないページで Permissions-Policy: tools=() を使ってエージェントのツール呼び出しを完全に無効にできます。また、取り消せない操作を consequentialHint で示すと、エージェントは実行前に本人に確認します。
WebMCP は、Web ページが AI エージェントにツールを提供できるようにするドラフトです。同時に、サイト側にオフスイッチも用意しています。HTTP ヘッダーを 1 つ送るだけで、ツールを必要としないページではエージェントのツール呼び出しを無効にできます。また、取り消せない操作に印を付けることもでき、その場合エージェントは実行前に本人に確認します。
なぜ読んだのか
私のスキャナーは、サイトを二つの面から見ています。AI に対してどれだけ開かれているか、そして閉じておくべきものをどれだけきちんと閉じているか、です。WebMCP は最も新しい「扉」です。2026年10月20日付のドラフトでは、ページが検索、カートへの追加、予約枠の確保といったツールを登録できます。ブラウザ内の AI エージェントは、ページをクリックして進む代わりに、これらのツールを直接呼び出します。
WebMCP のドラフト は Community Group のレポートです。W3C の標準化トラック(Standards Track)には乗っていません。私は 10月22日に、一つのことだけを確かめるつもりで読みました。サイトは「いいえ」と言えるのか、です。
オフスイッチ
言えます。WebMCP は Permissions-Policy に tools という機能を追加します。既定値は 'self' です。つまり、サイトが特に指定しない限り、サイト自身のページではツールが許可されます。セクション 6.4.1 は次のように勧めています。「WebMCP を意図された機能としていないドキュメントでは、WebMCP API へのアクセスを無効にすること。」
実際には、該当するページでレスポンスヘッダーを 1 つ送るだけです。
Permissions-Policy: tools=()
会社概要ページ、ブログ記事、ログインページで、エージェントに何かを呼び出してもらう必要があることはほとんどありません。
「先に確認」フラグ
ツールを持つページ向けに、ドラフトは consequentialHint を用意しています。これは、その操作が「重大である、現実世界に影響する、または取り消せない」ツールであることを示します。注文の確定、支払い、予約のキャンセルなどです。エージェントは、それを呼び出す前に本人に確認することが期待されています。
ドラフトには、期待値を考えるうえで重要な一文があります。プロンプトインジェクションへの防御は「主にエージェントの責任」だという点です。サイトのヒントはあくまでヒントであり、鍵ではありません。
できること
急ぐ必要はありません。WebMCP を使っていなければ、ページはツールを登録しません。ご自身やベンダーが使い始める場合は、次のようにしてください。
- ツールを提供する理由のないすべてのページで
tools=()を送る。 - 注文、支払い、キャンセル、削除に
consequentialHintを付ける。 - サーバー側の独自チェックは維持する。ヒントはその代わりにはなりません。
これが証明しないこと
- 私のスキャン対象サンプルには、まだ WebMCP を有効にしたサイトがないため、何も計測していません。これはドラフトを読んだ結果です。
- ドラフトはまだ変わり続けています。名前や既定値が変わる可能性があります。
- 実際のエージェントがこれらのヒントを尊重するかどうかは分かっていません。
サイトを開く・閉じる他の方法の中でこれがどこに位置するかは、こちらをご覧ください:AI に開く、AI に閉じる。
出典
この記事で証明していないこと
私たちのサンプルには、まだ WebMCP を有効にしたサイトはありません。ドラフトはまだ変わり続けています。