GoogleとMicrosoftが提案するAIブラウジングの新標準「WebMCP」とは?

BBetter Stack
AI/미래기술경제 뉴스컴퓨터/소프트웨어

Transcript

00:00:00GoogleとMicrosoftが支援する新しい提案が登場しました。ウェブの未来を
00:00:03変える可能性があり、個人的に注目しています。その名は「WebMCP」。通常の
00:00:08MCPサーバーと混同しないでください。WebMCPはブラウザAPIであり、フロントエンド
00:00:13開発者がサイトの機能をAIエージェントの「ツール」として公開できるようにします。つまり、
00:00:18あらゆるサイトが「ミニMCPサーバー」になるのです。すでに独自のMCPサーバーを
00:00:23導入しているサイトもありますが、これは少し違います。目的は、AIに
00:00:27API経由でデータを取得させてチャットに表示させるのではなく、実際にサイトを操作させることです。
00:00:32完全にフロントエンドベースの仕組みです。この違いが少し
00:00:37分かりにくいかもしれないので、デモを見ながら、なぜ私がこれを推しているのか話しましょう。
00:00:46まず白状しておくと、このデモの見た目はあまり派手ではありません。しかし、
00:00:49それこそがWebMCPのポイントです。すでに可能なことを、より優れた
00:00:54方法で実現しようとしているのです。では見ていきましょう。ここにあるのは、
00:00:58この提案をテスト中のChrome Canary版と、WebMCPツールを
00:01:02組み込んだサイトです。右側にあるのは拡張機能で、WebMCPツールとやり取りできますが、
00:01:06将来、これはGeminiやChatGPT Atlas、あるいはARCが進化したものなど、
00:01:10ブラウザに内蔵された標準的なAIになると想像してください。
00:01:15このサイトでユーザープロンプトを送ってみます。例えば、
00:01:19「ロンドンからニューヨークへの2名分の往復便を特定の日程で予約したい」と入力し
00:01:23送信ボタンを押すと、検索結果ページに飛びます。AIが私の代わりに
00:01:28サイトを操作してくれたわけです。驚きですよね?ええ、先ほど言ったように見た目は地味です。
00:01:33しかし、重要なのは、どうやってサイトを操作したかです。現在のAIによる
00:01:38ウェブ操作は、PlaywrightやHTMLパース、あるいはスクリーンショットを撮って
00:01:42人間のように操作しようとするツールが主流です。しかし、これらは非常に非効率で、
00:01:48特にトークンの消費が激しく、ミスも起こりやすい。WebMCPはこれを解決します。
00:01:53WebMCPでは、サイトの開発者が特定のMCPツールを公開し、それが
00:01:58クライアントサイドのJavaScriptと連携します。AIがWebMCPツールを
00:02:03使うとき、実際には開発者が設定したサイト上の
00:02:07JavaScript関数を実行しているだけなのです。このフライト予約デモの
00:02:12例では、「search flights」というWebMCPツールが用意されています。これには
00:02:16出発地、目的地、旅行タイプなどの引数があり、これらはサイト上の
00:02:20フォームと一対一で対応しています。重要なのは、AIがこのMCPツールを使えると認識している点です。
00:02:25プロンプトを送信しても、AIはPlaywrightやHTMLパースを使って
00:02:29フォームを埋めるわけではありません。実際、AIはウェブサイトの見た目や
00:02:34HTML構造を知る必要さえないのです。単にWebMCPツールがあることを知り、
00:02:38引数を入れて呼び出すだけです。そして開発者である私は、その引数を受け取ったときに
00:02:43実行されるJavaScript関数を設定しています。このデモでは、
00:02:47Reactの状態を更新し、検索結果ページへ遷移させています。フロントエンドの
00:02:52コードを見てみましょう。驚くほどシンプルで、より理解が深まるはずです。
00:02:55まず、そのページで利用可能なWebMCPツールを登録する必要があります。
00:02:59それには `window.navigator.model_context` を使用します。
00:03:04この提案が通れば、ブラウザに内蔵されることになるAPIです。
00:03:09現在はChrome Canaryでテスト可能です。このAPIがあれば、
00:03:13`register tool` 関数を使ってツールを登録できます。
00:03:18ここでは、先ほど使った 「search flights」 ツールを登録しています。
00:03:22実際のツールの定義を見ると、非常にシンプルなオブジェクトであることが分かります。
00:03:26名前と説明があり、AIはこれを見て、いつこのツールを使うべきかを判断します。
00:03:30また、引数を受け取るための入力スキーマもあります。
00:03:34私の場合、フォームに合わせて出発地や目的地を設定しました。
00:03:38さらに、AIが引数の内容を理解できるように追加のコンテキストを与えることもできます。
00:03:42ツール定義で最も重要なのが `execute` 関数です。これは、
00:03:47MCPツールが使われたときにサイト上で実行されるクライアントサイドのJavaScriptです。
00:03:51基本的には何でも実行可能です。ここでは `search flights` 関数を使っています。
00:03:55実装の詳細は省きますが、要するにAIが入力した
00:03:59パラメータを受け取り、それらを引数として「search flights」というイベントを
00:04:03発行しているだけです。そしてReact側では、単にその
00:04:08イベントのリスナーを追加しているだけです。イベントを受け取ると、
00:04:12`handle search flights` 関数を実行します。ここではReactでできることなら
00:04:15何でも可能で、今回はパラメータを受け取って検索クエリとして設定し、
00:04:19ページを遷移させています。実にシンプルです。私がこのアプローチを気に入っている理由は、
00:04:24トークン効率が極めて高いだけでなく、開発者としてサイトの
00:04:29インタラクションを定義でき、AIにガードレールを守らせることができるからです。
00:04:34人間とAIアシスタントの両方を考慮したサイト構築において、非常に洗練された解決策です。
00:04:39今の主流は、人間用にサイトを作り、AI用にMCPサーバーを作るという別々の作業です。
00:04:43AIがウェブサイトを使う必要がある場合、どうにかして自力で理解してくれるのを祈るしかありません。
00:04:48また、WebMCPツールは、ページ遷移やフォーム入力といった
00:04:51イベントの実行に役立つだけではありません。ページ上の情報を
00:04:55解析する場合にも非常に便利です。例えば、人間である私が今ここで、
00:05:00「価格は500ドル以下、出発時間は正午前」といったフィルターを調整したとします。
00:05:05まだ多くのフライトが表示されているので、AIに
00:05:11最適なものを選んでもらいたい。「このページでおすすめの便は?」と尋ねてみます。
00:05:15従来のアプローチなら、PlaywrightやHTMLパースを使ってページ全体を取り込み、
00:05:20情報を理解して構造化データに変換しようとするでしょう。
00:05:24しかし、WebMCPならその必要はありません。開発者の私は
00:05:29`list flights` というWebMCPツールを用意しておくだけです。これは現在のReactの
00:05:33状態にアクセスできるため、ユーザーに表示されているすべての情報を、
00:05:38綺麗なJSON形式で取得できます。そのため、実際にAIにプロンプトを投げると、
00:05:42AIはそのツールを呼び出し、表示中のフライトをすべてリストアップして、
00:05:46「便名56」をおすすめしてくれました。そして、そのフライトは実際に
00:05:51ページ上に見つかります。このプロセスは消費トークンが格段に少なく、精度もはるかに高いのです。
00:05:56最後に、JavaScriptを一切書かずにWebMCPを活用する方法を紹介します。
00:06:00ここまでは「命令型API」を使ってきました。これは開発者が
00:06:05特定のツールを登録し、その呼び出しを処理するJavaScriptを書く方法です。
00:06:10もう一つのアプローチは「宣言型API」です。こちらはよりシンプルで、
00:06:14HTMLフォームを埋めるという単純なユースケース向けです。ここに非常にシンプルな
00:06:19レストラン予約フォームがあります。AIに必要な情報を伝えて「予約して」と頼むと、
00:06:23AIが実際にフォームを埋めてくれます。
00:06:27これは、AIが「book table」というWebMCPツールにアクセスできるからです。
00:06:32特筆すべきは、このMCPツールを使えるようにするためにJavaScriptを一行も書いていない点です。
00:06:36WebMCPの宣言型APIでは、単にHTMLフォームに
00:06:40ツールの名前と説明の属性を追加するだけです。するとブラウザが
00:06:44自動的にそのフォームをWebMCPツールに変換し、各入力項目が
00:06:49ツールの引数として何を意味するかを理解しようとします。実際に見てみると、
00:06:53予約フォームに「book table」というツール名と説明が付与されています。
00:06:57これによりAIはいつ呼び出すべきか判断でき、あとは普通のHTMLフォームです。唯一の
00:07:02違いは入力項目です。`tool param description` 属性を使って、AIに
00:07:06その情報をどう埋めるべきかのコンテキストを与えています。それ以外は、
00:07:10ブラウザが入力タグの種類や名前を拾い、それを使って
00:07:14MCPツールを生成します。インスペクタを確認すると、名前、電話番号、日付、時間、
00:07:18人数、席の希望などが、入力引数として正しく認識されています。
00:07:23JavaScriptを全く書かずに、シンプルなHTMLフォームのロジックだけで実現しているのです。
00:07:27現時点でのWebMCPの提案内容は、概ねこのようなものです。先ほど言ったように、
00:07:31私はこれに非常に肯定的です。ウェブアプリとAIエージェントの間の溝を埋め、
00:07:34エージェントがサイトを使う際の推測を排除できます。さらに、
00:07:38あらゆる操作が開発者によって明示的に定義されることもメリットです。また、私は
00:07:43完全に「AI至上主義」というわけでもありません。AIが私を置き換えるのではなく、
00:07:47私のそばで動いてくれるツールであるという考え方が好きです。フライトや
00:07:51レストランの予約をChatGPTの画面だけで完結させたいとは思いません。むしろ
00:07:56ブラウザで実際のサイトを見たいのです。そして必要なら、AIにそのページ上で
00:08:00手助けしてもらう。人間を関与させつつ、開発者が体験を定義できる、より優れたシステムです。
00:08:05ただし、これは現時点ではあくまで提案段階であることは忘れないでください。実際に
00:08:08ブラウザに搭載されるまでには時間がかかるでしょう。また、解決すべき制限も
00:08:12残っています。例えばセキュリティです。悪意のあるツールや
00:08:16説明が設定されたサイトがあるかもしれません。ユーザー情報へのアクセス権や、
00:08:21ブラウザAIがブラウザ全体をどこまで制御できるかといった問題です。もし悪意のあるツールが
00:08:25暴走した場合、どの程度の被害が出るでしょうか?私はこの提案に期待しているので、
00:08:29うまく解決策が見つかることを願っています。皆さんの意見もぜひコメント欄で教えてください。
00:08:33チャンネル登録も忘れずに。それでは、また次の動画でお会いしましょう。

Key Takeaway

WebMCPは、ウェブサイトの機能を標準化されたAPIとしてAIに公開することで、より低コストかつ正確なAIブラウジングと操作を可能にする画期的な新規格です。

Highlights

WebMCPはGoogleとMicrosoftが支援する、ウェブサイトをAIエージェントのツールとして公開するための新しいブラウザAPI提案です。

従来のHTMLパースやスクリーンスクレイピングとは異なり、サイトのJavaScript関数を直接実行するため、高い精度とトークン効率を実現します。

開発者は「命令型API」を用いてJavaScriptで詳細な挙動を制御できるほか、「宣言型API」でHTML属性を追加するだけでフォームをAI対応にできます。

AIがサイトの構造を理解する必要がなく、開発者が定義した「ツール」を呼び出すだけで操作が完結するため、セキュリティ上のガードレールを設けやすくなります。

この技術はAIが人間を置き換えるのではなく、ブラウザ上でユーザーと共に動作し、予約や検索などのタスクを補助する「共生型」の体験を目指しています。

Timeline

WebMCPの概要と既存技術との違い

WebMCPはGoogleとMicrosoftが提唱する新しいブラウザAPIであり、フロントエンド開発者がサイトの機能をAIエージェント用のツールとして公開できる仕組みです。従来のAIによるウェブ操作は、PlaywrightなどのツールでHTMLを解析したりスクリーンショットを撮ったりする手法が主流でしたが、これらはトークン消費が激しくエラーも多いという課題がありました。WebMCPはサイト自体を「ミニMCPサーバー」化することで、AIが直接サイトの関数を呼び出せるようにし、この問題を根本から解決しようとしています。デモではChrome Canaryを使用し、将来的にGeminiやChatGPTがブラウザに内蔵された際の挙動が示されています。スピーカーはこの技術がウェブの未来を変える可能性があると強く主張しています。

命令型APIによる高度なインタラクションの実現

このセクションでは、JavaScriptを用いた「命令型API」の具体的な実装方法とメリットが解説されています。航空券予約のデモを例に、AIがサイトのHTML構造を知らなくても、開発者が定義した「search flights」というツールを引数付きで呼び出すだけでフォーム入力やページ遷移が可能になる様子が示されます。コードレベルでは `window.navigator.model_context.register_tool` を使用して、ツールの名前、説明、入力スキーマ、そして実行時の関数を定義します。この手法の最大の利点は、Reactなどのフレームワークの状態管理と直接連携でき、開発者がAIの行動範囲を厳密に定義できる点にあります。トークン効率が極めて高く、AIが誤った操作をするリスクを大幅に軽減できる洗練された解決策です。

データ抽出の効率化と情報の構造化

WebMCPはサイトの操作だけでなく、ページ上の情報をAIに正確に伝える手段としても非常に有効であることが示されます。例えば、ユーザーがフィルターをかけた後の複雑な検索結果の中から最適な選択肢をAIに選ばせる際、従来のようなページ全体のパースは不要になります。開発者が `list flights` のようなツールを用意すれば、React内のクリーンなJSONデータを直接AIに渡すことができるからです。デモでは、AIがツール経由で取得したリストから「便名56」を推奨する様子が描かれ、その精度の高さが強調されています。このプロセスは、非構造化データを構造化データに変換する手間を省き、AIの判断をより迅速かつ正確にします。開発者にとっても、AI専用のMCPサーバーを別途立てる必要がないという大きなメリットがあります。

宣言型APIとHTMLのみでの実装

JavaScriptを一行も書かずにWebMCPを利用できる「宣言型API」についても紹介されています。これは既存のHTMLフォームに特定の属性を追加するだけで、ブラウザが自動的にそのフォームをAI用のツールに変換してくれる機能です。レストラン予約フォームの例では、`tool-name` や `tool-param-description` といった属性を付与することで、AIが各入力項目の意味を理解し、適切に情報を埋める様子が実演されます。インスペクタを確認すると、名前、電話番号、人数などの項目が、自動的にツールの引数として認識されていることが分かります。シンプルかつ強力なこの機能は、小規模なサイトや既存のフォームを迅速にAI対応させるための理想的なアプローチです。ウェブ標準の技術をそのまま活用できるため、導入のハードルが非常に低いのが特徴です。

WebMCPの意義と今後の課題

動画の最後では、WebMCPがもたらすユーザー体験の変革と、解決すべき今後の課題についてまとめられています。スピーカーは、AIがチャット画面の中だけで完結するのではなく、実際のウェブサイト上で人間をサポートする「共生」の形を理想として掲げています。WebMCPはこのビジョンを実現するためのミッシングリンクであり、AIエージェントの推測を排除し、確実な操作を可能にします。一方で、現在はあくまで提案段階であり、悪意のあるツールに対するセキュリティ対策や、ユーザーのプライバシー保護といった議論が必要です。ブラウザAIがどこまで制御権を持つべきかという点については慎重な検討が求められますが、全体として非常に期待感の高い技術であると締めくくられています。視聴者に対しては、コメント欄での意見交換やチャンネル登録を促して締めくくります。

Community Posts

View all posts