サイトツール
サイトツールは、提案されている WebMCP 標準を ChatGPT に実装したものです。WebMCP を使用すると、 ウェブサイトは、人がすでに利用しているインターフェースと並行して、便利な操作を AI エージェントに直接提供できます。 ユーザーとエージェントは、同じライブページと サインイン済みセッションを使用して作業できます。
ChatGPT デスクトップアプリの組み込みブラウザでは、ChatGPT Work と Codex が、利用可能なサイトツールを検出して使用できます。
WebMCP と MCP の違い
Model Context Protocol (MCP)は、 AI アプリケーションをローカルまたはリモートのサーバーに接続します。そのツールは、開いているウェブページとは 独立して動作でき、たとえばサービスの検索や API を介した レコード管理が可能です。
WebMCPを使用すると、ウェブサイトは自身の 機能を定義済みツールのセットとしてエージェントに提供できます。エージェントはサイトを訪れた際に それらを検出できるため、その機能を利用するために別の MCP サーバーをインストールしたり、別の接続を設定したりする必要はありません。
この方法は、キャンバスを編集したりダッシュボードを探索したりする場合など、ユーザーとエージェントが同じものを確認する必要があるときに 役立ちます。 MCP サーバーを備えたプラグインは、開いているページとは 独立して動作する統合機能を提供できます。ウェブサイトは両方をサポートできます。
ブラウザでの仕組み
組み込みブラウザでウェブサイトを開き、ChatGPT Work または Codex にタスクの支援を 依頼します。ページがサイトツールを提供している場合、エージェントは表示中のウェブサイトで 関連する操作を検出して使用できます。たとえば、ドキュメント エディターは、セクションを検索したり、確認用のコメントを残したりする機能をエージェントに提供できます。
ブラウザのアドレスバーで サイトツール を選択すると、ウェブサイトが 提供しているものを確認できます。利用可能なサイトツール を選択すると、個々のツールを確認できます。 ブラウザは、ウェブサイトが各リクエストを実行する前に、そのリクエストを確認します。また、エージェントは ページを調べて変更内容を確認できます。最近のアクティビティがある場合は、 最近使用した項目 を選択して ソース を開き、それらの呼び出しを確認できます。
この例では、利用可能なサイトツール を展開し、 Margin が提供するツールを確認します。
ツールは、それを提供するページに属します。ページを閉じたり別のページへ移動したりすると、 そのツールを利用できなくなる場合があります。適切なツールがない場合でも、 エージェントは通常のブラウザ機能を使用できることがあります。
例:OpenAI ドキュメントを調べる
ChatGPT Learn と OpenAI Developers は、ドキュメントを検索して読むためのサイトツールを提供しています。 コンポーザーで ChatGPT で開く を選択すると、デスクトップアプリのブラウザで Learn が開き、 その横に、このプロンプトを送信できる状態の新しいチャットが表示されます。
プロンプト:
Find the documentation for building reusable skills, open the relevant page, and explain when I should turn a skill into a plugin.エージェントは、これらのツールを使用して、関連するページを検索、閲覧、表示できます。
| ツール | 機能 |
|---|---|
search_openai_docs |
OpenAI ドキュメントを検索します。 |
lookup_page |
パスまたは URL を指定してドキュメントページを読み取ります。 |
lookup_context |
現在のドキュメントルートと選択されているテキストを読み取ります。 |
navigate_to_page |
現在のドキュメントサイトで一致するページを開きます。 |
generate_custom_guide |
カスタムのビルドまたは学習ガイドの生成を開始し、そのステータスとリンクを返します。 |
Docs Agent はカスタムガイドを非同期で生成します。リンクを受け取っても、 生成が完了したことを意味するわけではありません。
セキュリティとユーザーコントロール
ウェブサイトが提供するツール定義と結果は、信頼できないコンテンツです。ツールの 名前や、データの読み取りしか行わないという説明だけでは、その実際の動作を証明できません。ウェブサイトの 指示によって、無関係な情報の共有や機密性の高い操作を行う権限が エージェントに付与されることはありません。
組み込みブラウザでは、各ツールの呼び出しが実行前に安全性審査を 受けます。メッセージの送信、購入、データの削除、権限の変更など、 重大な影響を及ぼす操作を含め、通常のウェブサイトアクセスおよび確認ポリシーが 引き続き適用されます。ブラウザは、各呼び出しをその呼び出し元の ページとツール登録に関連付けます。これらの確認によってリスクは軽減されますが、ウェブサイトやその出力が 信頼できるものになるわけではありません。
設定 > ブラウザ > 権限 で サイトツールを有効にする をオフにできます。 機密情報を共有したり変更結果を信頼したりする前に、サイト、要求された操作、 および結果を確認してください。
セキュリティ脆弱性は、OpenAI の Security Bug Bounty プログラムを通じて報告してください。AI の 安全性に関するリスクについては、 Safety Bug Bounty プログラムをご覧ください。 各プログラムの対象範囲と提出手順に従ってください。
ウェブサイトに WebMCP を追加する
作業中のウェブアプリや Siteへの WebMCP サポートの追加を Codex に依頼できます。エージェントに実行させたい 操作を説明し、アプリケーションの既存ロジックと権限を再利用するよう Codex に依頼してください。
まず、アプリケーションですでにサポートされている操作から始めます。たとえば、次のような操作です。
- エージェントが日付範囲を設定し、グラフの背後にあるデータを確認できる ダッシュボード。
- エージェントがセクションを検索し、編集を提案し、確認用のコメントを 残せるドキュメントエディター。
- エージェントが選択肢を比較し、ユーザーが地図を確認している間に旅程を 更新できる旅行プランナー。
自分でコードを書くこともできます。ページの JavaScript モジュールで、ブラウザの サポート状況を確認してツールを登録します。次の読み取り専用の例は、 現在のページタイトルを返します。
if (typeof document.modelContext?.registerTool === "function") {
await document.modelContext.registerTool({
name: "get_page_title",
description: "Read the title of the current page.",
inputSchema: {
type: "object",
properties: {},
additionalProperties: false,
},
annotations: { readOnlyHint: true },
execute: async () => ({ title: document.title }),
});
}互換性のあるエージェントは get_page_title を検出し、ページの
現在のタイトルを受け取れます。引数を受け取るツールでは、入力
スキーマで引数を記述し、execute ハンドラーでその引数を使用して、アプリケーションの
既存ロジックを呼び出します。
入力範囲を限定し、副作用を説明し、結果を検証するのに十分な情報を 返してください。アプリケーションの既存の認証、 認可、入力検証を使用します。WebMCP をサポートしていないユーザーや ブラウザ向けに、通常のインターフェースを維持してください。
API の詳細と例については、 WebMCP 仕様および Chrome の開発者ガイドをご覧ください。