WebMCP早期プレビュー版公開
エージェントがウェブサイトとやり取りする上で、ウェブサイト側から構造化されたツールを公開するための標準的な方法を提供するWebMCPの早期プレビュー版が公開。
WebMCPは、W3C Community Groupで策定中のウェブ標準。schema.orgがウェブ上のエンティティ(名詞)を定義したのに対し、WebMCPはAIエージェント向けにアクション(動詞)を標準化するものとして位置づけられる。MCP(Model Context Protocol)の考え方をウェブブラウザ向けに応用しており、ブラウザ(navigator.modelContext APIなど)がインターフェイスとなる。
従来の生DOM操作や視覚的なスクレイピングに頼る方法と比較して、複数AIエージェント対応の開発が簡素化され、より高速かつ信頼性の高い確実な操作の実行が可能。
提案されている新しいAPI:
- 宣言型API:HTMLフォームで直接定義できる標準アクションを実行
- 命令型API:JavaScriptの実行を必要とする動的なインタラクションを実行
ウェブサイトをエージェント対応にすることで、Agentic CROなど今後のテクニカルSEO領域への影響も予想される。早期プレビュープログラム参加者はプロトタイピングに利用可能。
現在提案されている宣言型API例(HTMLフォームの属性でツールを定義):
html
<!-- toolname / tooldescription でフォーム全体をツールとして宣言 -->
<form
id="reservationForm"
toolname="book_table"
tooldescription="レストランのテーブルを予約する"
>
<!-- toolparamdescription で各フィールドのパラメータ説明を付与 -->
<input
type="text"
name="name"
toolparamdescription="予約者の氏名(2文字以上)"
/>
<input
type="date"
name="date"
toolparamdescription="予約日(YYYY-MM-DD)。今日以降の日付を指定"
/>
<button type="submit">予約する</button>
</form>現在提案されている命令型API例(navigator.modelContext へのツール登録):
js
// navigator.modelContext.registerTool() でエージェントが呼び出せるツールを登録する
navigator.modelContext.registerTool({
name: 'searchFlights',
description: '指定条件でフライトを検索する',
inputSchema: {
type: 'object',
properties: {
origin: { type: 'string', description: '出発地の IATA コード(例: HND)' },
destination: { type: 'string', description: '目的地の IATA コード(例: SFO)' },
date: { type: 'string', description: '出発日(YYYY-MM-DD 形式)' },
},
required: ['origin', 'destination', 'date'],
},
// execute はエージェントがツールを呼び出したときに実行されるコールバック
execute: async ({ origin, destination, date }) => {
const results = await fetchFlights(origin, destination, date);
return JSON.stringify(results);
},
});