WebMCPがアツいので見てほしい

📰 元記事: DevelopersIO
🔖 はてなブックマーク: b.hatena.ne.jp
🕒 ブックマーク日時: 2026-09-04 03:13 (UTC)
👥 はてブ数: 209
🏷️ タグ: あとで読む

概要

クラスメソッドの末永氏による、Web標準案WebMCPの解説記事。Webサイトの機能をAIエージェントが扱いやすくするためのWeb標準案であり、「エージェントアクセシビリティ」(人間向けのWebアクセシビリティと同じように、AIエージェントにとってもサービスを理解しやすく操作しやすい状態を作る視点)の観点から、その魅力と課題を紹介しています。

前提: Browser Useがかなり便利になっている

現在のAIエージェントはWebブラウザを操作でき(Browser Use)、ボタンを押したりフォームを入力したり複数ページを移動したりできます。以前は「AIに手順を聞いて自分で操作」していたのが、今は「そこまで分かっているなら、もうやっておいて」が成立し始めているとのこと。

ただしWebMCP非対応のBrowser Useでは、スクリーンショットやページ構造から「このボタンは何をするものか」を推測するため、複雑な画面や似た項目が多いフォームでは迷うことがあり、UIが変わると成功していた操作が失敗することもあります。WebMCPはこの問題に、サイト側から構造化された操作方法を渡す仕組みで答えます。

WebMCPとは

  • Webサイトが自身の機能を構造化された「ツール」としてブラウザ内のAIエージェントに公開するためのWeb API
  • W3CのWeb Machine Learning Community Groupで仕様が議論中。執筆時点では正式な標準ではなくDraft Community Group Reportの段階
  • 宣言的API命令的APIの2種類がある

宣言型API(既存HTMLフォームに属性を追加)

<form toolname="register_user" tooldescription="ユーザーを登録する">
  <label for="name">名前</label>
  <input id="name" name="name" required>
  <button type="submit">登録</button>
</form>

ブラウザがフォーム構造からToolのinput schemaを自動生成。Toolが呼び出されると引数が対応フォームへ反映されます。

命令型API(JavaScriptで直接定義)

document.modelContext.registerTool({
  name: "register_user",
  description: "ユーザーを登録する",
  inputSchema: { ... },
  execute: ({ name }) => registerUser(name)
});

Toolのschemaに加えて、呼び出し時の処理を execute で自由に実装できます。既存のJS関数呼び出しやstate変更なども可能。

大きな魅力: 人間とAIが同じ画面を使える

  • Agent向けにToolを公開しても人間向けUIをそのまま残せる。Agentが入力・編集した結果が普段使っている画面に反映され、人間が確認して手で修正し、再びAgentに続きを任せられる
  • 画面だけでは推測しづらい情報(現在の契約プラン、入力ルール、操作の影響など)をサイト側から構造化して渡せる
  • 人間向けUIとAgent向けToolを別々に用意するのではなく、同じWebアプリの状態を人間とAgentの両方から操作できる

実際に作った3つのデモ

  • Kiroku(経費申請サイト): AgentがWebMCPを解釈して入力できるところまで自動入力し、足りない情報は人間に質問。申請のような面倒作業をAIに任せつつ最終確認は人間が行うデモ
  • RelayDesk(架空SaaS管理画面): 「この設定はどこにあるの?」「今のプランでこの機能は使える?」といった質問に契約状態・ヘルプ情報を確認して該当設定画面まで案内。契約変更のような影響のある操作は確認画面までで留め、確定は人間が行う
  • Deckhand(AIと人間が一緒に編集するスライド): ページ追加・要素編集・整列・テーマ変更などをToolとして公開し、AIが生成→人間が細部修正→AIに続きを任せる往復を実現。GitHubでコード公開中

動作環境の注意: 執筆時点で筆者環境ではCodex内のBrowserでのみ動作確認。ChatGPTのChrome拡張やGemini in Chromeでは動作失敗。WebMCP自体も対応クライアントもまだ発展途中です。

チャットボットの役割も変わるかもしれない

Gemini in Chromeの auto browse、ChatGPTのブラウザ連携、Claude for Chromeなど、ブラウザ内でAIと作業する体験が広がっています。この流れが進むと、サービスごとのチャットボットが担っていた役割の一部を、ユーザーが普段使っているブラウザエージェントに移せるかもしれません。

  • サービス側は専用チャットボットにすべてを覚えさせるのではなく、「この画面で何ができるか」をWebMCPで公開する
  • 会話UIやLLMの利用コストをサービス側で持たず、ユーザーが契約しているAIを利用してもらう構成も可能
  • ただし独自サポート品質の保証やページ未開示状態での処理には従来のチャットボット・MCP・APIが依然適している

セキュリティと精度の課題

  • 模倣サイトのリスク: 本物そっくりのサイトが「check_subscription(現在の契約状況を確認する)」のようなもっともらしいToolを公開し、Agent向けToolまで本物らしく作られる可能性
  • プロンプトインジェクション: Toolの説明や実行結果に悪意のある指示を埋め込み、Agentの判断を誘導する攻撃も考えられる
  • WebMCPにはOriginやToolの性質をAgentへ伝える仕組みがあるが、それだけで安全になるわけではない。購入・削除・解約など影響の大きい操作では人間の確認を挟むなど「Agentへどこまで権限を渡すか」が重要
  • Tool選択の曖昧さ: cancel_subscription / pause_subscription / downgrade_subscription が並んだとき「しばらく料金を止めたい」をどう解釈するかはAgent次第。「適切なToolを選べるか」「曖昧な場合に実行前に確認できるか」といったAgent込みの評価が必要

まとめ

  • WebMCPが標準として普及すれば、多くのサイトで使われる可能性が高い
  • 申請・設定変更・問い合わせ・情報収集など、普段ブラウザでやる面倒作業をAgentに任せられるのはかなり魅力的
  • ブラウザAgentが当たり前になったとき、Webサイト側がAgentに操作方法を教えるWebMCPは重要な技術になるかもしれない