サイトツール

サイトツールは、提案されている WebMCP 標準を ChatGPT に実装したものです。WebMCP を使用すると、 ウェブサイトは、人がすでに利用しているインターフェースと並行して、便利な操作を AI エージェントに直接提供できます。 ユーザーとエージェントは、同じライブページとサインイン済みセッションを使用して作業できます。

ChatGPT デスクトップアプリの組み込みブラウザでは、ChatGPT Work と Codex が、利用可能なサイトツールを検出して使用できます。

WebMCP と MCP の違い

Model Context Protocol (MCP)は、 AI アプリケーションをローカルまたはリモートのサーバーに接続します。そのツールは、開いているウェブページとは独立して動作でき、たとえばサービスの検索や API を介したレコード管理が可能です。

WebMCPを使用すると、ウェブサイトは自身の機能を定義済みツールのセットとしてエージェントに提供できます。エージェントはサイトを訪れた際にそれらを検出できるため、その機能を利用するために別の MCP server をインストールしたり、別の接続を設定したりする必要はありません。

この方法は、キャンバスの編集やダッシュボードの探索など、 ユーザーとエージェントが同じものを見る必要がある場合に役立ちます。MCP serverを備えたプラグインでは、開いているページに依存せずに機能する連携を提供できます。ウェブサイトは両方に対応できます。

ブラウザでの仕組み

組み込みブラウザでウェブサイトを開き、ChatGPT Work または Codex にタスクの支援を依頼します。ページがサイトツールを提供している場合、エージェントは表示中のウェブサイトで関連する操作を検出して使用できます。たとえば、ドキュメントエディターは、セクションを検索したり、確認用のコメントを残したりする機能をエージェントに提供できます。

ブラウザのアドレスバーで サイトツール を選択すると、ウェブサイトが提供しているものを確認できます。利用可能なサイトツール を選択すると、個々のツールを確認できます。 ブラウザは、ウェブサイトが各リクエストを実行する前に、そのリクエストを確認します。また、エージェントはページを調べて変更内容を確認できます。最近のアクティビティがある場合は、 最近使用した項目 を選択して ソース を開き、それらの呼び出しを確認できます。

この例では、利用可能なサイトツール を展開し、 Margin が提供するツールを確認します。

Margin — コメント付きのローカルファーストな執筆ツールmargin-local-docs.openai.chatgpt.site
Margin へようこそ
テキストBI•••12
Margin へようこそ

Margin は、メモ、下書き、意思決定のための静かな場所です。

サイトツール

サイトツールを使用すると、ChatGPT はこのウェブサイトを利用して、より正確かつ少ない手順でタスクを完了できます。

詳細を見る
利用可能なサイトツール(10)読み取りツール 3 個、書き込みツール 7 個

利用可能なツールは、現在のウェブサイトによって登録されています。

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 プログラムをご覧ください。 各プログラムの対象範囲と提出手順に従ってください。

制限事項

ChatGPT の組み込みブラウザは現在、WebMCP API の一部に対応しています。 次の機能には対応していません。

  • 宣言型 API: HTML フォーム属性で定義されたツールは、 サイトツールとして利用できません。
  • iframe 内のツール: ブラウザは、同一オリジンとクロスオリジンの iframe を含め、 iframe 内に登録されたツールを検出しません。

次のセクションで示すように、JavaScript を使用してトップレベルページにツールを登録してください。ChatGPT Work と Codex は通常のブラウザ機能を使用してフォームを操作できる場合がありますが、それらの操作は WebMCP ツール呼び出しではありません。

WebMCP の仕様と Chrome の開発者ガイドでは、組み込みブラウザで現在対応していない機能を含む、より広範な API について説明しています。

ウェブサイトに 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 の開発者ガイドをご覧ください。