本文へ移動

BLOG / sku-md-v0-10-webmcp-product-knowledge-and-page-actions.mdx

SKU.md v0.10 × WebMCP:訪問前の商品理解とページ上の構造化操作

SKU.md v0.10 が訪問前に永続的で監査可能な商品知識を提供し、WebMCP がページを開いた後に現在ユーザーに見えている操作を公開する仕組みを解説します。

公開日

元の仕様バージョン: v0.10

買い物客がエージェントに、子ども部屋に適し、交換可能なフィルターを備え、指定した広さの部屋で使える静かな空気清浄機を探すよう依頼したとします。店舗を開く前に、エージェントは商品事実と宣伝文句を確実に区別しなければなりません。どのモデルと Variant が条件に合うか、騒音測定値は何を意味するか、その主張をどの証拠が裏付けるか、回答に含めるべき制限は何かを把握する必要があります。商品ページを開くと、課題は変わります。買い物客はフィルターのサイズを選び、画面に表示された仕様を比較し、特定済みの Variant をカートへ追加するようページに求めるかもしれません。最初の課題は永続的な商品理解であり、次の課題は現在のページを安全に操作することです。

SKU.md v0.10 と WebMCP はこの引き継ぎ地点で接続しますが、同じものになるわけではありません。SKU.md は販売者が公開する商品知識と証拠のレイヤーです。WebMCP は、すでにユーザーの目の前で開いているページから操作を提供するブラウザーページ API です。信頼できるエージェントは、前者で証拠に基づく意図を組み立て、後者で範囲の狭い可視のページ操作を実行し、値が変わり得る判断については最後にリアルタイムのコマースシステムへ戻ります。

購入はタブを開く前から始まる

最初の問いは、たいてい「どのボタンを押せばよいか」ではありません。すでに所有している機器と商品が互換性を持つか、素材に関する主張が特定の試験で裏付けられているか、子どもの安全に関する警告が特定の構成にも当てはまるか、といった問いです。これらはタブを開く前に答えられるべきで、回答には出典、適用範囲、確認日を残さなければなりません。有用な商品説明と並んでいたというだけで、古い価格表示や在庫表現に現在の見積りとしての権威を与えてはいけません。

それが SKU.md v0.10 の役割です。安定した Product、Variant、SKU、GTIN の識別子を、販売者が確認した事実、主張、開示事項、互換性ガイダンス、出典資料、検証時刻に結び付けられます。エージェントが訪問を計画するとき、買い物客の要件に沿って商品を比較するとき、出典付きの説明を準備するとき、正確なモデルを対象にしているか確認するときに役立ちます。ただし、実行可能なセッションでも、リアルタイムの在庫応答でも、購入指示でもありません。

WebMCP が始まるのはその後です。Chrome の WebMCP の概要 は、ブラウザページコンテキストが必要という実用上の制約を明記しています。ページはすでに開かれていなければなりません。ローカルまたはリモートブラウザセッションがそのコンテキストを提供できます。ページコンテキストが WebMCP の実行境界です。WebMCP はバックエンド API、オフライン呼び出し、訪問前の発見手段ではありません。また、バックエンドの MCP 転送、静的なツール一覧、サイト横断の発見手段を提供せず、アクティブなページが現在の UI 状態で意味のある操作だけを公開します。

この区別により、便利に見えて危険な近道を防げます。エージェントが SKU.md の機能宣言を読み、存在しないツール呼び出しを作り上げて、ユーザーが開いていない販売者サイトを操作することはできません。販売者も、その日のボタン名や出力 Schema を永続的な商品文書に記載すべきではありません。文書を読んでからページを訪れるまでに、ユーザーは表示言語を変更し、ログインし、Variant を選び、カートを空にし、権限を失う可能性があります。今どの操作が存在するかを知るのは文書ではなく、動作中のページです。

WebMCP が公開するものと、公開しないもの

WebMCP Community Group の草案 は、ウェブアプリケーションがエージェントに提供する JavaScript ベースのツールを定義します。Imperative API では document.modelContext.registerTool() でツールを登録し、ページが名前、説明、入力 Schema、実行コールバック、任意の注釈を提供します。アプリケーションロジック、状態確認、ナビゲーション、慎重に構造化した結果を必要とする操作に適しています。

Declarative API は、通常の HTML フォームに意味を追加します。toolname 属性が操作名を、tooldescription が目的を表します。エージェントが呼び出すと、ブラウザーは表示中のフォームへフォーカスを移してフィールドを埋めるため、ユーザーは何が起きるかを確認できます。どちらかの属性を削除するとツール登録は解除されます。商品サポートやレストラン予約の依頼など、範囲を限定した要求には有用ですが、自律ブラウザーが確認なしにあらゆる商取引上の確約を完了できるかのように扱うものではありません。

Chrome DevTools for agents は、デバッグ手段としてのみ関係します。その 設定ドキュメント は、検査とテストのためにエージェントを Chrome へ接続する MCP サーバーを説明しています。これは独立した MCP デバッグ用ブリッジであり、販売者の WebMCP ツールエンドポイントでも、商品発見プロトコルの代替でもありません。チームは登録内容の検査、開発中ツールの呼び出し、構造化出力の確認に利用できますが、ページツールをバックエンドやオフラインのコマース API に変えるものではありません。

公式デモを見ると境界が具体的に分かります。Smart Home デモrearrangeDOMComponents ツールを登録し、模擬ダッシュボードに表示するコンポーネントを変更しますが、実在する機器を制御するものではありません。French Bistro デモ は、日付、時刻、人数、座席の希望、特別な要望を含む、宣言的で可視の予約依頼フォームを示し、ネイティブ対応がない場合にはデモページでポリフィルを使います。複雑なページ操作を構造化された意図へ対応付けられることは示しますが、汎用的な発見、サイト横断実行、確実な履行、支払い承認、完了済みの商取引を実証するものではありません。デモは実際の取引ではありません。

明確な責任分担

次の分離は意図的なものです。便利な一つのレイヤーに、別のレイヤーが権威を持つ問いまで答えさせないためです。

対象 権威を持つ責任 エージェントが行うべきこと
SKU.md 知識の証拠:確認済みの事実、主張、開示事項、互換性、出典、安定した識別子。 説明して引用し、正確な Product、Variant、SKU、GTIN を特定する。
WebMCP と可視の UI 現在のページツールと、ユーザーに見える操作状態。 ページを開いた後に登録済みツールを発見し、範囲の限られたページ操作を行う。
リアルタイム Catalog と販売者バックエンド 現在の価格、在庫、適格性、配送の選択肢、税計算の入力、アカウント固有の規則。 静的なスナップショットを信頼せず、再照会する。
Checkout 最終価格、配送、税、支払い承認、同意、購入確認。 最終状態を提示し、確認の境界を維持する。

SKU.md の出典付き記述は、メーカー希望小売価格を過去または確認済みの事実として説明できますが、現在価格になるわけではありません。在庫、配送予定、販促、税も同じです。有用な背景にはなっても、現在の Catalog、バックエンド、Checkout が返した場合にのみリアルタイムの商取引事実になります。

v0.10 が実際に宣言するもの

SKU.md v0.10 には、訪問後にページ機能を利用できる可能性を伝えるための限定的な方法があります。capabilities[] の項目は protocol: webmcp を使い、page_runtime を識別し、scopepage_url_patterns で機能を絞り、requires_user_presence: true を要求できます。これはアクセスに関するヒントです。ユーザーが一致する URL を開いた後、販売者が関連するページ実行時機能を公開する可能性があると利用者に伝えます。

動的インターフェースの複製にはしないことが意図されています。ツール名、入出力 Schema、ツール説明、登録状態はアクティブなページの実行環境に属し、SKU.md へコピーされません。v0.10 JSON Schema が機械可読文書の境界を定義し、英語版 v0.10 仕様だけが規範文書です。実行環境の詳細を SKU.md の外に置くことで、古い文書が現在のツール契約を装うことを防ぎます。利用者は page_url_patterns をナビゲーション用のヒントとして扱うべきで、非公開操作を呼び出す権限や、記載されたすべてのページが現在ツールを登録しているという約束として扱ってはいけません。

この分担には、原則だけでなく実用上の理由もあります。商品ページは Variant が未選択の段階では読み取り専用の比較ツールを一つ登録し、選択が有効になった時点で構成ツールに切り替え、カート状態が変われば操作の登録を解除できます。現在のツール群はログイン状態、表示言語、在庫、アクセシビリティ、同意の状態を反映できます。静的文書では安全に実現できません。

エージェントがたどる完全な経路

エージェントは権威を作り上げることなく、次の手順をたどれます。

  1. SKU.md と、その証拠、開示事項、適用範囲を読む。
  2. 正確な Product、Variant、SKU、GTIN を特定し、同一性が曖昧なら推測せず確認する。
  3. ユーザーの同席中に、安全なページ URL パターンと一致する販売者ページを開く。
  4. アクティブなページが実際に登録しているツールを発見する。
  5. 依頼されたページ操作と説明が一致するツールを一つ選び、可視の UI で実行する。
  6. 現在の商取引状態について、リアルタイム Catalog または販売者バックエンドへ戻る。
  7. 最終総額、税、配送、支払い承認には Checkout を使い、最後にユーザーの確認を得る。

この手順を一つの「購入」ツールにまとめることは意図していません。ツールは特定済みの Variant を選び、現在表示中の比較を説明し、予約依頼を開始し、カート画面を開くことができます。最終購入には新しい見積りと、確約時点で有効な確認が必要です。最終購入で toolautosubmit を使うことは推奨しません。Declarative API のフォームは自動送信に対応できる場合がありますが、これはブラウザーの動作であって、販売者がサーバー側の検査や買い物客の最終判断を省略してよいという証拠ではありません。

境界を維持する販売者の実務

第一に、人手でレビューした商品事実と証拠を公開します。安定した識別子が重要なのは、優れた説明であっても近いモデルや任意の色・サイズの Variant に安全に適用できないからです。重要な主張には出典と制限を含め、エージェントに販売文から推測させず、開示事項を残します。事実そのものが変わったら文書を確認して更新し、リアルタイム状態はそれを所有するシステムに任せます。

第二に、ページツールには一つずつ責任を持たせます。「この特定済み Variant を選ぶ」「互換性の説明を表示する」は理解しやすい操作です。一方、「検索、構成、値引き、支払い、注文」を一度に行うと、一つの呼び出しに多すぎる確約を隠します。ユーザーに見える状態で有効な間だけツールを登録し、状態が変わったら登録を解除します。ツールのメタデータも信頼できない入力です。簡潔で正確な説明と Schema は曖昧さを減らしますが、プロンプトインジェクションや実装リスクをなくすものではありません。

最後に、readOnlyHintuntrustedContentHint はヒントにすぎず、安全性を保証しません。読み取り専用という表示だけでは実装が変更を加えないと証明できず、信頼できないコンテンツという表示も出力を無害化しません。サーバー側の検証、認可、冪等性処理、不正利用対策、監査ログ、リスクの高い操作に対する明示的な確認を維持します。ページは効果を正直に説明し、バックエンドは業務規則を独立して適用しなければなりません。

順位の主張ではなく補完関係を評価する

価値のある比較は、同じ範囲の限られた買い物シナリオで WebMCP 単独と WebMCP+SKU.md を比べることです。エージェントが依頼された Product と Variant を一致させるか、正しい出典を引用するか、制限と証拠を開示するか、適切な現在のページツールを選ぶか、期限切れの見積りを拒否するか、確認境界を維持するかを測ります。テストデータ、管理されたページ、記録に残した人手レビューで確認できる観測可能な結果です。

この評価を順位、コンバージョン率、採用の主張に変えてはいけません。WebMCP は、すでに開いているインターフェースの操作を容易にできます。SKU.md は、訪問前の商品理解をより永続的で監査可能にできます。どちらも単独では購入を保証せず、組み合わせてもリアルタイム Catalog、販売者バックエンド、Checkout を置き換えません。実用的な約束はより限定的で、だからこそ強固です。訪問前に買い物客が意味する商品を理解し、ページを開いた後は買い物客に見えている現在の状態に基づいて操作します。

実装の利用可否と参加条件は、デプロイ時点で Chrome の WebMCP オリジントライアル を確認してください。試験提供の対象範囲とブラウザーの動作は変わる可能性があります。

関連資料

商品知識からWebMCP操作、Checkoutへ進む境界は、AIコマースの権限引き継ぎで確認できます。