サイトツールは、WebMCP 標準案を ChatGPT に実装したものです。WebMCP を使うと、ウェブサイトは利用者が普段使うインターフェースに加え、AI エージェントが直接呼び出せる操作を提供できます。利用者とエージェントは、同じログインセッションで、いま開いているページを一緒に操作できます。
ChatGPT デスクトップアプリの内蔵ブラウザでは、サイトがツールを提供していれば、ChatGPT Work と Codex がそれらを検出して利用できます。
サイトツールを使うには、対応モデルと、ツールを提供するページが必要です。アクセスは、利用者のアカウントまたは管理対象ワークスペースのブラウザポリシーで許可される場合があります。ブラウザの設定とサイトの権限は引き続き適用されます。
WebMCP と MCP の違い
Model Context Protocol(MCP)は、AI アプリケーションをローカルまたはリモートのサーバーに接続するプロトコルです。MCP のツールは、ウェブページを開いていなくても動作できます。たとえば、サービス内を検索したり、API 経由でレコードを管理したりできます。
WebMCP を使うと、ウェブサイトの機能を、あらかじめ定義したツールとしてエージェントに提供できます。エージェントがサイトを開いたときにツールを検出できるため、利用者がその機能を使うために別途 MCP サーバーをインストールしたり、新しい接続を設定したりする必要はありません。
この仕組みは、キャンバスを編集したり、ダッシュボードでデータを調べたりするときなど、利用者とエージェントが同じ画面を見る必要がある場合に役立ちます。MCP サーバーを備えたプラグインを使えば、ページを開いていなくても動作する連携機能を提供できます。ウェブサイトは両方の仕組みに対応できます。
ブラウザでの使い方
内蔵ブラウザでウェブサイトを開き、ChatGPT Work または Codex に作業を依頼します。そのページがサイトツールを提供していれば、エージェントは閲覧中のサイトで、依頼に合った操作を見つけて実行できます。たとえばドキュメントエディタでは、エージェントが特定のセクションを探したり、利用者が確認できるようにコメントを残したりできる場合があります。
ブラウザのアドレスバーでサイトツールを選択すると、そのウェブサイトが提供する機能を確認できます。利用可能なサイトツールを選択すると、個々のツールを確認できます。ブラウザは、ウェブサイトが操作を実行する前にリクエストを毎回チェックします。実行後は、エージェントがページを調べて変更内容を確認できます。最近の利用履歴がある場合は、最近使用したツールを選択してソースを開くと、ツールの呼び出し履歴を確認できます。
この例では、利用可能なサイトツールを展開すると、Margin が提供するツールを確認できます。
ツールは、それを提供するページに紐づいています。ページを閉じたり、別のページに移動したりすると、そのツールが使えなくなることがあります。適切なツールがなくても、エージェントはブラウザの通常の機能で操作できる場合があります。
使用例:OpenAI ドキュメントの検索と閲覧
ChatGPT Learn と OpenAI Developers は、ドキュメントの検索と閲覧に使えるサイトツールを提供しています。コンポーザーで ChatGPT で開くを選択すると、デスクトップアプリのブラウザで Learn が開きます。その隣に新しいチャットが開き、次のプロンプトをすぐに送信できます。
エージェントは次のツールを使って、該当するページを検索し、内容を読み取ったり、ページを開いたりできます。
| ツール | 機能 |
|---|---|
search_openai_docs |
OpenAI のドキュメントを検索します。 |
lookup_page |
パスまたは URL を指定してドキュメントページの内容を読み取ります。 |
lookup_context |
現在のドキュメントページのルートと、選択中のテキストを読み取ります。 |
navigate_to_page |
閲覧中のドキュメントサイトで、条件に一致するページを開きます。 |
generate_custom_guide |
開発用または学習用のカスタムガイドの生成を開始し、進行状況とリンクを返します。 |
Docs Agent はカスタムガイドを非同期で生成します。リンクが返ってきた時点では、生成が完了していない場合があります。
セキュリティと利用者による管理
ウェブサイトが提供するツールの定義と実行結果は、信頼できないコンテンツとして扱います。ツール名や「データの読み取りしか行わない」という説明だけでは、実際の動作は保証されません。ウェブサイトに指示が書かれていても、エージェントが無関係な情報を共有したり、機密性の高い操作を実行したりする許可にはなりません。
内蔵ブラウザでは、ツールが呼び出されるたびに、実行前に安全性を審査します。ウェブサイトへのアクセスや操作の確認には、通常のポリシーが引き続き適用されます。メッセージの送信、商品の購入、データの削除、権限の変更など、影響の大きい操作も対象です。ブラウザは、各呼び出しを、その呼び出し元のページとツールの登録情報に紐づけます。こうしたチェックはリスクを軽減しますが、ウェブサイトやその出力の信頼性を保証するものではありません。
サイトツールを有効にするは、設定 > ブラウザ > 権限でオフにできます。機密情報を共有したり、変更結果を前提に作業を進めたりする前に、サイト、要求された操作、実行結果を確認してください。
セキュリティの脆弱性は、OpenAI のセキュリティバグバウンティプログラムを通じて報告してください。AI の安全性に関するリスクについては、安全性バグバウンティプログラムを参照してください。各プログラムの対象範囲を確認し、指定された手順に沿って報告してください。
制限事項
現在、サイトツールは ChatGPT デスクトップアプリの内蔵ブラウザでのみ動作します。
ウェブサイトへの WebMCP の追加
開発中のウェブアプリや Sites に WebMCP のサポートを追加するよう Codex に依頼できます。エージェントにどのような操作をさせたいかを説明し、アプリケーションの既存のロジックと権限を利用するよう伝えてください。
JavaScript でツールを登録するか、HTML フォームに WebMCP 属性を追加します。内蔵ブラウザは、トップレベルのページだけでなく、同一オリジンの iframe とクロスオリジンの iframe のどちらでもツールを検出できます。各フレームはセキュアコンテキストで動作する必要があります。ブラウザは、ツールを提供するオリジンのアクセス権を確認します。exposedTo を省略しても、エージェントはツールを検出できます。
まずは、アプリケーションがすでに対応している操作を選びます。たとえば、次のような操作が考えられます。
- ダッシュボードで、エージェントが日付範囲を設定し、グラフの元データを確認する
- ドキュメントエディタで、エージェントが特定のセクションを探したり、修正を提案したり、利用者が確認できるようにコメントを残したりする
- 旅行計画アプリで、利用者が地図を確認している間に、エージェントが候補を比較して旅程を更新する
コードを自分で書くこともできます。ページの 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 の開発者ガイドを参照してください。
