3行でいうと
- つなぎ方の入口は3つです。①既製のアプリ(「Settings > Plugins」から「Install plugin」と「Connect」)、②自作や社内のMCPサーバー(開発者向け。いまの入口は「Plugins」の「Add custom MCP server」。ヘルプでは「Apps」の「Create」が旧い画面として残っている)、③ローカルや社内のサーバー向けの「Secure MCP Tunnel」。呼び名は「コネクタ」「アプリ」「プラグイン」と移り変わっていて、公式資料の中にも混在しています。
- 許可の設定は4段階(Always ask、Allow read actions、Allow low-risk actions、Allow all actions)で、「ChatGPTが実行の前に聞くタイミング」を決めるだけです。アプリに新しいアクセスを与えるものではなく、権限そのものをなくすには、接続を解除します。
- 書き込みを伴う動作(送信、作成、削除、共有、購入など)は、公式が「確認が要りうるもの」として挙げています。「Allow all actions」は公式が高リスクと書いていて、アカウント全体やワークスペース全体の選択肢には出ません。
- プロンプトインジェクションは、公式が「つなぐ機能で最も多いリスク」と位置づけています。信頼できるサーバーでも、そこに届く文章からの攻撃は防げない、と開発者向けドキュメントは書いています。対策は「全部を防ぐ」ではなく、つなぐ先を絞る、書き込みの確認を残す、必要なときだけ有効にする、です。
- 自作MCPは、プランによって使える範囲が違います。公式ヘルプはProを「読み取りと取得のみ」と書いていて、料金ページの比較表は開発者モード(beta)の対象にPlusも含めています。この食い違いは、画面で確かめる必要があります。
この記事は、公式ドキュメントを2026年10月24日に読んでまとめたものです。この記事は、実際に使って確かめた記録ではありません。運営者はChatGPTを入れていますが、使い心地はこの記事には書いていません。メニュー名、設定名、コマンドは公式に書かれたものを写しただけで、動作確認はしていません。公式の文章は要約の形で取得したため、引用は最小限にして、ほとんどを言い換えています。読めなかったページは、本文で「読めていない」と書き、出典には載せていません。
先に結論
- 既製のアプリをつなぐなら。 「Settings > Plugins」で選び、「Install plugin」「Connect」の順に進み、データのあるアカウントでサインインします。使うときは
@で呼ぶか「+」から選びます。最初の許可は、毎回聞く「Always ask」から始めるのが無理がない、というのが僕らの見立てです(公式の推奨ではありません)。 - 書き込みを許すかどうか。 公式の管理者向けの整理では、信頼できないアプリの読み書きは高リスク、信頼できるアプリでも見える範囲が広い書き込みは高リスク、とされています。「読むだけ」と「書く」を分けて考え、書くものは承認を残す、が基本線です。
- プロンプトインジェクション。 公式は、アプリやウェブにつなぐほど、つないだデータが攻撃の標的になる、と書いています。公式の対策(安全策、確認、Lockdown Mode)は、リスクを減らすもので、なくすものではない、と明記されています。
- 自作MCPをつなぐなら。 公開のHTTPSで届くサーバー、またはSecure MCP Tunnelを用意し、先にMCP Inspectorで試します。ChatGPTの入口は、いまは「Plugins」から「Add custom MCP server」です。ヘルプには、旧い画面(Legacy。「Apps」から作成して「Scan Tools」)の手順も残っています。ヘルプは、Plugins の入口では先に開発者モードをオンにする必要はない、と書いています。画面に出ているほうに合わせます。
前提:用語をそろえる
- アプリ(Apps)/コネクタ:ChatGPTを、Google DriveやSlackなどの外のサービスにつなぐ仕組みです。公式ヘルプには、同じ記事番号で「Connected apps in ChatGPT」と「Apps in ChatGPT」の2つの題名が出ていました(検索結果での表示で、どちらが新しいかは確認できていません)。「コネクタ」という呼び方は、料金ページの比較表の「Connector registry」や、APIの資料の「built-in connectors」に残っています。
- プラグイン:スキル、アプリ、アプリのテンプレート、拡張などをまとめた単位です。スキルだけで外のサービスにつながないものもあります。2026年7月9日のリリースノートに「App DirectoryがPlugin Directoryに置き換わった。既存のアプリの接続は影響を受けない」とあります。
- MCP(Model Context Protocol):AIと外のツールをつなぐ共通の規格です。ChatGPTでは、自作や社内のMCPサーバーを「カスタムMCP」としてつなぎます。公式ヘルプは、ChatGPTがつなげるのは「リモートのMCPサーバー」で、ローカルや私的なサーバーには「Secure MCP Tunnel」が要る、と説明しています。
- 開発者モード:書き込みを含むMCPの対応(Full MCP)に関わるモードです。料金ページの比較表は「Developer mode (beta)」と表示しています。ヘルプの現行版は、Plugins の入口では先に開発者モードをオンにする必要はない、と書いています。
- 読み取り(read)と書き込み(write):読み取りは情報を見るだけ、書き込みは相手のサービスの状態を変える動作です。メールの送信、ファイルの作成や削除、共有設定の変更などが含まれます。
- プロンプトインジェクション:外から来た文章に紛れた命令で、AIを意図しない動きへ誘導する攻撃です。公式は、メールのコメントやウェブの文面に仕込まれる例を挙げています。
全体像:3つの入口
| 入口 | 何をつなぐか | 画面での名前(公式の記載) | 向く人 |
|---|---|---|---|
| 既製のアプリ | 公開されているアプリ(Google Drive、Slack、GitHubなど) | Settings > Plugins、「Install plugin」「Connect」 | ほとんどの利用者 |
| カスタムMCP(開発者モード) | 自作・社内のMCPサーバー | Plugins の「+」から「Add custom MCP server」(旧い画面として、ヘルプの Apps の「Create」) | 開発者、管理者 |
| Secure MCP Tunnel | ローカルや社内にあって、公開したくないMCPサーバー | Add custom MCP server の「Connection」で「Tunnel」を選ぶ | 社内サーバーを持つ開発者 |
組織(Business、Enterprise、Edu)のワークスペースでは、3つとも管理者の設定が優先されます。
手順1:既製のアプリをつなぐ
公式ヘルプ「Connected apps in ChatGPT」と「Connecting and managing app accounts in ChatGPT」が書いている手順は、次のとおりです。
- 「Settings > Plugins」を開き、つなぎたいアプリ(またはそれを含むプラグイン)を選びます。ごく古いiOS・Androidのアプリでは、「Plugins」の代わりに「Apps」と表示される、と書かれています。
- 「Install plugin」が出ていれば押します。接続の流れが始まることがあります。
- 求められたら「Connect」を押します。
- アプリが個人ごとの認可を求めるなら、データにアクセスできるアカウントでサインインします。
- 求められているサービスと権限を確認し、提供元の認可を終えます。
どのアカウントでサインインするか。 公式は、すでに目的のデータにアクセスできるアカウントを選ぶよう書いています。個人のアカウントでは、仕事のアカウントにしかないファイル、チャンネル、記録には届きません。プラグインをインストールしても、すぐに使えるとは限りません。アプリの利用許可、正しいアカウント、提供元の承認が要ります。
使うとき。 @ でアプリを呼ぶか、「+」を押して選びます(画面によっては「More」の下にあります)。ChatGPTは、情報を読む前や動作を行う前に、承認を求めることがあります。関連があるとき、ChatGPTが自動でプラグインを使う場合もあります。Live(音声)でも、使えるプラグインを通して、つないだアプリを使えます。承認は画面上の操作で出る、と書かれています。
複数のアカウント。 一部のアプリは複数のアカウントをつなげます。「Settings > Plugins」でそのアプリを開き、「Connected accounts」があれば「Connect another account」を選びます。依頼の文面でアカウントを指定することもできます。
切断。 「Settings > Plugins」でアプリを選び、「Connected accounts」の各アカウントの「•••」から「Disconnect」を選びます。次の点が公式に書かれています。 - 切断は、そのアカウント経由の今後のアクセスを止めます。他のアカウントは残ります。 - 最後のアカウントを切断すると、関連するプラグインがインストール済みの一覧から消えることがあります。プラグインをアンインストールすると、そのプラグイン経由でつないだ全アカウントが切断されることもあります。確認の警告を読んでから進めます。 - 切断しても、既存の会話、保存したファイル、メモリは消えません。見直しは別にします。提供元のサービス側にも、連携を外す設定があることがあります。
権限が足りないとき。 「All permissions are required」と出たら「Reconnect」を押し、求められた権限をすべて承認します。Googleで「ChatGPT needs all requested permissions」と出たら、「Try again」から「Select all」を選びます。提供元の管理者の承認が要ることもあり、その人はChatGPTのワークスペース管理者とは別かもしれない、と書かれています。
データの行き先。 有効にしたアプリは、会話の文脈を使うことがあります。メモリがオンなら、関連するメモリを使い、アプリの情報がメモリに保存されることもあります(アプリや情報源が制限する場合を除く)。IPアドレスや端末、言語と地域、IPに基づくおおよその位置のような情報も、アプリに渡ることがあります。データの扱いは各アプリの規約とプライバシーポリシーが決めます。学習への利用は、Business、Enterprise、Eduでは、アプリで得た情報を既定では使いません。Free、Plus、Go、Proでは、「Improve the model for everyone」の設定しだいです。
許可の考え方:「聞くタイミング」を選ぶだけ
公式ヘルプ「Managing app permissions in ChatGPT」は、許可を4段階で説明しています。
| 設定 | 意味(公式の説明の要約) | 公式のどこに書かれているか |
|---|---|---|
| Always ask | 読む前も変える前も、承認を求める | 許可のヘルプ |
| Allow read actions | 読み取りは聞かずに行い、変更は承認が要る | 許可のヘルプ(メニューでは「Allow read」と出ることがある) |
| Allow low-risk actions | 低リスクの動作は自動で承認。高リスクは確認か拒否になりうる | 許可のヘルプ(「Allow low-risk」と出ることがある) |
| Allow all actions | 対応する動作を承認なしで実行する。公式は高リスクと書く | 許可のヘルプ、管理者向けのヘルプ |
既定値。 許可のヘルプ(20001495)は、既定のレベルがどれかを書いていません(「使う既定の許可を選ぶ」とだけ)。「Connected apps」のヘルプ(11487775)には、「アカウント、ワークスペース、アプリ、接続のどれの方針にも上書きされないときは、Allow low-risk actions が適用される」と書かれています。2026年9月14日のリリースノートには、新しいHealthプラグインの接続は、利用者の全体設定(Allow low-risk actions)を既定にする、とあります。前のガイド(04)では、Always ask と Allow read actions には公式の説明が見つからないと書きましたが、今回読んだ許可のヘルプには説明がありました。
どこで変えるか(個人のアカウント)。 - 全体の既定:プロフィールのメニュー、Settings、Plugins、Permissions の順に開き、レベルを選びます。「Settings」に「Apps」と出ていれば、そちらです。この全体の選択肢が出ない画面もある、と書かれています。 - 接続ごと:「Settings > Apps」または「Plugins」でそのアプリを選び、「Connected accounts」の「•••」から Settings、Permissions と進んで選びます。アカウントごとに別の設定にできます。 - 元に戻す:「Default」の選択肢を選び、保存します(画面により「Reset」「Reset to default」と出ます)。
承認の画面の選択肢。 Deny(または Decline)は動作を止めます。Allow(または Allow once)は、いまの動作だけを許します。「Allow low-risk actions」は、いまの動作と、同じ接続での今後の低リスクの動作を許します。「Always allow」は、明示的につないだ個人アカウントなど、条件を満たす場合にだけ出ます。管理されたワークスペースのメンバー、自動で使える接続、追加の安全確認が要る動作には出ません。保存した承認は、ワークスペースの制限、提供元の権限、安全の保護を上書きしません。
変えても変わらないこと。 公式は、許可の設定が、ChatGPTが実行の前に聞くタイミングだけを決める、と書いています。アカウントをつなぐことも、提供元の権限を与えることも、ワークスペースの方針を上書きすることもありません。許可を変えても、アプリは切断されず、提供元のアクセスも取り消されません。アクセスを止めたいなら、「Settings > Apps」または「Plugins」で切断します。許可の設定は、メモリ、パーソナライズ、保持、学習の設定とは別です。
注意点(公式)。 - 管理されたワークスペースで、アプリをワークスペース全体で無効にすると、他のメンバーや、依存するプラグインに影響します。変更の前に警告が出ます。 - 一部の依頼は、確認の画面もなく拒否されます(明示的な安全ブロック)。この場合、許可の変更、再接続、保存した承認では解除できません。
書き込みを許すか:公式の整理と、僕らの見立て
公式が「確認が要りうる」と挙げる書き込みの例(許可のヘルプ)。 - メール、メッセージ、コメント、招待の送信 - ファイルや記録の作成、編集、削除 - アカウント、アクセス、共有、セキュリティの設定の変更 - 購入や金融取引 - 個人、金融、健康、本人確認のデータの共有
管理者向けの危険度の整理(Lockdown Modeのヘルプ)。 これは管理者向けの記述ですが、個人にも考え方が使えます。
| 危険度 | 公式の分類 |
|---|---|
| 高い(勧められない) | 信頼できないアプリの読み取りや書き込み。見える範囲が広い、または不確かな信頼できるアプリの書き込み |
| 中(注意して使う) | 管理者が管理する索引つきの情報源。信頼できるアプリの読み取り(書き込みの副作用はないが、機微な情報の入口にはなる)。見える範囲が限られた信頼できるアプリの書き込み |
書き込みの確認と、「覚える」の扱い(開発者向けドキュメント)。 カスタムMCPでは、書き込み動作は既定で確認が必要です。ツールの入出力のJSONは、展開して中身を見られます。確認の画面では、そのツールについて承認や拒否を、その会話の間だけ覚えさせられます。会話を更新したときも、後のターンでまた確認が出る、と書かれています。公式は、「承認を覚える」を許すのは、以降の書き込みを承認なしで任せてよいと思えるアプリだけにするよう書いています。新しい会話では、また確認が出ます。ツールに readOnlyHint が付いていなければ、書き込みとして扱われます。
書き込みが途中で止まったとき(トラブルシューティングのヘルプ)。 再実行の前に、提供元のアカウントで実際の結果(送信済みのメール、項目の状態など)を確かめ、完了、一部、不明を分けて、確認できた残りだけを再実行します。
承認の画面で何を読むか(僕らの整理です)。 公式の開発者向けドキュメントは、書き込みの確認では、ツールの入力が見られ、展開すると入力と出力のJSON全体が見られる、と書いています。公式の警告は、書き込みを誤ると、データを壊す、変える、共有してしまうことがある、という趣旨です。たとえば、メールを送るツールの確認が出たら、展開したJSONの中で、宛先、件名、本文にあたる項目が、自分の依頼と同じかを見ます(項目の名前はサーバーごとに違い、ここで挙げたのは例です)。依頼していない宛先や、依頼にない文章が入っていたら、拒否します。
ここからは僕らの見立てです。公式の記載から組み立てたもので、公式の推奨ではありません。 1. 最初は「Always ask」で始める。 何を読み、何を書こうとするのかを、数日間は自分の目で見てから、緩めるかどうか決めます。 2. 「Allow read actions」を試すのは、読むだけの用途が決まってから。 読むデータの中に、他人が書いた文章(受信メール、共有ドキュメントのコメント)があるなら、そこから命令が紛れる可能性があります(後述)。 3. 書く動作は、確認画面で、宛先と内容を読む。 送信先、共有の範囲、削除の対象を、承認の前に確かめます。承認の画面で「依頼した内容と同じか」を見るのが、公式の勧めと同じ方向です(agentのヘルプにも「疑わしいときは止める」とあります)。 4. 「Allow all actions」は、個人の目的で使う場面を、僕らは思いつけていません。 公式が高リスクと書いていて、標準の選択肢にも出ないので、選ぶ前に、止まらずに動いてよい理由を自分で言えるかを確かめたいところです。
プロンプトインジェクション:公式の警告を整理する
公式は、この話題を複数のページで書いています。ここでは、書かれている順に整理します。
1. 「つなぐ機能」の共通の警告(Elevated Risk labelsのヘルプ)。 公式は、業界の安全策がまだ十分に及んでいないリスクを持つ機能に、「Elevated Risk」というラベル(盾の中に感嘆符、オレンジ色)を付けています。ラベルが付く機能で最も多いリスクが、プロンプトインジェクションだと書かれています。ウェブやアプリにつなぐと便利になる一方、つないだデータが攻撃の標的になる、という説明です。公式は、これらの機能を、リスクを理解して納得したときにだけオンにするよう書いています。ラベルは、安全策が進めば外す、とも書かれています。カスタムMCPの開発者向けページには、このラベルのバッジが付いています。
2. 具体例(ChatGPT agentのヘルプ)。 旅行や食事の相談をしている間に、エージェントが悪意あるコメントに出会い、Gmailのパスワードリセット用コードを悪意あるサイトへ送らせようとする、という例が書かれています。アプリを有効にすると、メール、ファイル、アカウント設定のような機微なデータに届き、ファイルの共有や設定の変更のような動作もできるようになる、と説明されています。このページは冒頭で「ChatGPT agentは提供終了」と書いていますが、安全面の記載は、アプリの有効化にも通じる内容です。公式が挙げる安全策は次のとおりです。 - 必要なアプリだけを有効にする。 - 「メールをすべて処理して」のような広い権限を渡すあいまいな依頼を避ける。 - パスワードなどはメッセージに書かず、引き継ぎの操作で入力する。 - 疑わしい動きがあれば、すぐ止める。 - 設定のアプリの許可を、ときどき見直す。 公式は、安全策は重ねてあるが、リスクをなくすものではない、と書いています。
3. MCPのリスク6つ(開発者向けドキュメント「Building MCP servers for plugins and API integrations」のリスクの節)。
| 攻撃の型 | 公式の説明(要約) |
|---|---|
| MCPが読める文章に命令が紛れる | 開発者を信頼しても安全にならない。たとえば、サポートの問い合わせのように、MCPが届く内容の全体を信頼する必要がある |
| 悪意あるMCPがアクションに必要な以上のデータを求める(過剰な要求) | 機能に必要な範囲を超えた情報を引数で求められうる |
| 別の入口からの命令で、機微な情報を読ませて外へ送らせる | 別の入口(たとえばメール)に紛れた命令で起きうる。ChatGPTは利用者を守るよう作られているが、リスクを知って許容できるか決める、と書かれている |
| 書き込み動作で情報を漏らさせる | 命令が書き込みを使って機微な情報を攻撃者に送りうる。開発者を信頼しても安全にならない、と書かれている |
| 悪意あるMCPが読み取りの記録で情報を漏らす | 開発者を信頼できるMCPだけにする、が対策(それだけでは十分でない) |
| 意図しない破壊的な書き込みを起こさせる | 書き込みが意図どおりで正しいかを確かめる。範囲の限られたMCPだけにする |
表の最初の行以外では、悪意あるMCPがアクションに必要な以上のデータを求める「過剰な要求」も挙げられています。また、サーバーが書き込みを「読み取り専用」と表示できてしまうので、表示を完全には頼れない、と読めます。
4. 公式が挙げる軽減策(同じページ、利用者側に関わるもの)。 1. 悪意ある、または信頼できない入力を含みうるMCPは、開発者が信頼できても使わない。 2. 各MCPにアクセスできる人を絞る(特に機微なデータのあるもの)。 3. 知っていて信頼できるサーバーだけにつなぐ。提供元が運営する公式のサーバーを選ぶ。 4. 代理のサービスは、データの使い方を事前に確認する。 5. 自分でサーバーを作るときは、つなぐ先が正しいサーバーかを確かめる。 6. 手動で入れるときは、各動作が要求する引数を確認し、プライバシーの行き過ぎは拒否する。 7. 書き込みは実行前に、意図どおりか、共有すべきでないデータが入っていないかを確かめる。 8. データを変えたり重大な動作をしたりするツールの承認は、有効のままにする。
同じページに、開発者向けの項目(機微な情報をツールのJSONに入れない、OAuthを使う、など)も続いています。
5. Lockdown Mode(公式ヘルプと公式ブログ)。 公式は2026年2月13日のブログでLockdown Modeを発表し、2026年6月4日の更新で、個人のアカウントと、セルフサーブのBusinessのアカウントにも広げたと書いています。ヘルプによると、「Settings > Security > Advanced security」で「Lockdown Mode」をオンにし、確認の画面で「Turn on」を選びます。制限される内容は、ライブのウェブ閲覧(キャッシュのみ)、画像の表示、Deep research、Agent mode、Canvasのネットワーク、ファイルのダウンロードです。個人とセルフサーブのBusinessでは、アプリのライブの外部アクセスと書き込みが、保護と食い違うときにブロックされます。管理されたワークスペースでは、アプリとMCPはワークスペースの設定と役割(RBAC)に従い、Lockdown Modeは自動では無効にしません。
ただし、ヘルプは限界も明記しています。キャッシュしたウェブページやアップロードしたファイルの中にインジェクションが現れること自体は止めず、データ流出が起きない保証でもなく、隠れた命令で答えが誤る、といった影響も防ぎません。メモリ、ファイルのアップロード、会話の共有、学習への利用も変わりません。
6. URL経由の漏えい(公式ブログ、2026年1月28日)。 隠れた命令でモデルにURLを読み込ませ、そのURLに私的な情報を含める攻撃が書かれています。公式の対策は、独立のクローラーが公開のウェブですでに見つけたURLだけを自動で取得し、そうでないURLは警告と明示的な操作を求める、というものです。公式は、これは1層の対策で、ページの中身が信頼できることの保証ではない、と書いています。
プランごとの違い
プラン名と内容は、公式ページの表示のまま、確認日の時点のものです。ロールアウトで変わることがあり、公式ページ同士で食い違う箇所もあります。
| 項目 | Free | Go | Plus | Pro | Business | Enterprise |
|---|---|---|---|---|---|---|
| アプリ(料金ページの比較表) | あり | あり | あり | あり | あり | あり |
| 社内ツールにつなぐアプリ(同) | なし | なし | あり | あり | あり | あり |
| Deep research用のアプリ(同) | 限定 | 限定 | あり | あり | あり | あり |
| 開発者モード(beta)(同) | なし | なし | あり | あり | あり | あり |
| コネクタの登録簿(Connector registry)(同) | なし | なし | なし | なし | なし | あり |
| カスタムMCPの記載(ヘルプ) | 記載なし | 記載なし | 記載なし | アプリは作れて、読み取りと取得のMCPにつなげる。Full MCPは対象外 | 管理者とオーナーのみが作成と公開できる | Enterprise、Eduは、管理者とオーナーが作成と公開をできる。RBACで特定のメンバーに作成の権限を渡せる(公開は管理者とオーナーのみ) |
表の注記です。 - 料金ページの比較表は、取得した要約から写したもので、条件の細かい注記は読めていません。Eduの列は、比較表では確認できていません。 - 開発者モードについて、料金ページの比較表はPlusを「あり」とし、カスタムMCPのヘルプはPlusに触れていません。ProについてはヘルプがFull MCP(書き込み)を対象外と書いています。比較表は「あり」としか書いていません。どちらが新しいかは、読んだ範囲では分かりません。画面の表示を正にしてください。 - 料金ページは、取得した要約に金額が出ていませんでした。価格はこの記事に載せていません。公式の料金ページで確認してください。
組織のアカウントの既定値(管理者向けヘルプ)。 Businessでは、アプリは既定で有効です(管理者は変えられます)。EnterpriseとEduの新しいワークスペースでは、選ばれたアプリだけが有効で、新しいプラグインとアプリは、一般に既定で無効です(Healthcareと既存の設定には影響しません)。アプリごとに「Actions」で、読み取り(Read actions)と書き込み(Write actions)の動作を切り替えられます。新しい動作の扱いも、「Enable all new actions」「Only enable new read actions」「Disable new actions」から選べます(将来の動作にだけ効きます)。ワークスペースの既定の許可は、「Workspace settings > General > Settings > Plugin permissions」にあります。Enterpriseでは、プラグインについて、「Use plugins」が既定でオン、「Upload plugins」と「Create plugins with MCPs」が既定でオフです(Pluginsのヘルプの記載)。
ほかの管理者向けの制御。 アプリごとの「Manage domains」で、接続できるメールのドメインを絞れます。認証済みドメインに関する制限は、「Manage domains」とは別にあると書かれていますが、その中身(サポート経由かどうかなど)は読めていません。対象のEnterpriseとEduのワークスペースは、Compliance Platformでアプリのイベントを見られますが、記録の範囲はアプリごとに確かめるよう書かれています。
その他。 アプリの利用は、プランの上限、機能の枠(Deep researchなど)、提供元の上限に数えられることがあります。FreeとGoでは、プラグインの一覧は見られても、拡張は使えない、とトラブルシューティングのヘルプにあります。
自作のMCPサーバーをつなぐ(開発者向け)
用意するもの
公式の開発者向けドキュメントと、ヘルプの要件を並べます。
- サーバーが届く場所。 公開のHTTPSのエンドポイント(通常は
/mcpで終わる)、または Secure MCP Tunnel。カスタムMCPサーバーの接続は、Web版のみです。公式ヘルプは、カスタムMCPサーバーの接続はモバイルではできない、と書いています。 - 通信の方式。 開発者向けドキュメントの「Add custom MCP server」は、SSEとストリーミングHTTPに対応、と書いています。もう一方のページは、ストリーミングHTTP(通常
/mcp)を要件にしています。ヘルプは方式の名前を挙げていません。 - ツールの情報。 ツール名、説明、スキーマ、注釈(annotations)。公式は、モデルがこの情報に頼るので、名前、説明、スキーマ、注釈が、利用者から見える挙動に効く、と書いています。注釈は確認や安全の動きの手がかりで、サーバー側の認可や検証の代わりにはならない、とも書かれています。
- 認証。 OAuthとOpenID Connectに対応、とヘルプにあります。「Add custom MCP server」の画面では「OAuth」「No authentication」「OAuth or no authentication」が選べます。OAuthのクライアント登録は、静的な認証情報があればそれを使い、なければ、認可サーバーが対応していてアプリの作成者が選べば「Client ID Metadata Documents(CIMD)」を使い、設定されていれば「DCR(動的クライアント登録)」も使えます。リフレッシュトークンのため、OIDCでは
offline_accessスコープを求めるよう、ヘルプは勧めています。提供元の探索用のエンドポイント(.well-known/openid-configurationなど)のscopes_supportedにoffline_accessが載っているかを確かめ、載っていなければ提供元で有効にしてから、アプリを作り直す、と書かれています。これがないと、最初の認可が切れたあと、再認証が要ることがあります。 searchとfetchは不要。 開発者向けドキュメントとヘルプの両方が、これらのツールは必須ではなくなったと書いています。
先に、MCP Inspectorで試す
開発者向けドキュメントは、ChatGPTにつなぐ前に、MCP Inspectorで確かめるよう勧めています。公式のコマンドは次のとおりです。
npx @modelcontextprotocol/inspector@latest
Inspectorで「Streamable HTTP」を選び、http://localhost:3000/mcp のようなURLを入れます。確認する項目は、初期化の成功、サーバーの指示とツール一覧、各ツールを正しい入力と誤った入力で呼ぶこと、スキーマ、結果、エラー、注釈、そして私的なデータと書き込みの認可です。
ChatGPTに追加する:画面の手順が2通りある
A. 現行の手順:開発者向けドキュメントとヘルプが載せる「Plugins」から。 「Add custom MCP server」のページには、こう書かれています。 1. ChatGPTのPlugins(chatgpt.com/plugins)を開く。 2. 「+」を押し、「Add custom MCP server」を選ぶ。 3. 名前(と、任意で説明)を入れる。「Connection」には、サーバーURLを入れるか、Secure MCP Tunnelなら「Tunnel」を選ぶ。 4. 認証を設定する。 5. リスクの警告を読み、「I understand and want to continue」を選ぶ。 6. 「Create as a plugin」を選ぶ。
作ったあとは、個人のプラグインか、作ったワークスペースに表示されます。会話で使う前に、インストールが必要です。会話では @ でそのプラグインを選びます。アプリの設定には、ツールごとのオンとオフの切り替えと、サーバーから新しいツール、説明、指示を取り込む「refresh」があります。ワークスペースの権限と、Lockdownを含む安全の制限は、追加にも利用にも効きます。
B. ヘルプに残る旧い(Legacy)手順(「Apps」から)。 ヘルプ「Connecting custom MCP servers in ChatGPT」(記事番号12584461)は、現行の入口を「Plugins」とし、「Legacy custom app configuration」として次の手順を載せています。 1. 必要な権限を確かめる。ヘルプは、関係する権限を「Create plugins with MCPs」とし、Businessでは管理者とオーナーだけが作成と公開でき、Enterprise、EduはRBACで選んだメンバーに作成の権限を渡せる、と書いています。ヘルプの現行版には、開発者モードのトグルの場所は書かれていません(読んだ範囲では見つからなかった)。 2. 「Workspace settings > Apps > Create」(管理者、オーナー)、または「user settings > Apps > Create」(権限のある利用者)に進む。 3. エンドポイントと必要なメタデータを入れる。 4. 必要なら認証の方式を選ぶ。 5. 「Scan Tools」を押して、スキャンの終了を待つ。OAuthなら、先に認可の画面を終えます。 6. 「Create」を押す。
作ったアプリは、ワークスペースでは「Workspace Settings > Apps > Drafts」に、個人では「Settings > Apps > Enabled Apps」に「Dev」ラベルつきで出ます。試すには、新しい会話でツールのメニューからそのアプリを選ぶか、文中で呼びます。書き込みの動作を試し、出る確認に答えます。
2つの手順の関係。 ヘルプは、Plugins の入口を現行、「Apps」と「Scan Tools」と「Drafts」を旧い(Legacy)画面と書いています。開発者向けドキュメントも Plugins の入口です。実際の画面で、どちらの入口が出ているかを確かめてください。
公開(管理者向け)と、更新の扱い
ヘルプによると、管理者とオーナーは、Admin Console でワークスペースを選び、「Plugins」の「Manage Legacy Apps」から「Drafts」を開いて「Publish」できます。公開の前に、特に書き込みについて、安全の警告を確認します。公開したアプリは、ワークスペースの承認済みの一覧に載ります。EnterpriseとEduでは、公開の画面で「Configure Actions」(動作は選択式で、新しい動作は既定で選ばれない)、「Refresh」、「Configure Access」(グループの選択)が使えます。公開後は、「Workspace settings > Apps > (…)> Action control」で動作を管理します。ヘルプが挙げる制限は次のとおりです。 - Business、Enterprise、Eduの管理者は、権限と有効な接続があれば、公開後に作り直さずにツール一覧を更新(refresh)できます。アプリの所有者は、Manage メニューから名前とロゴを編集できます(出ている場合)。動作ごとの更新と「Action control」は、Enterprise、Eduの機能です。 - アプリは、承認された時点の内容で固定されます。開発者がサーバー側を変えても、管理者が再公開するまで反映されません。 - ツールの定義が互換性のない形で変わると、呼び出しがエラーになります。管理者は「Workspace settings」で動作を更新(refresh)する必要があります。エラーは、利用者に更新を促さず、管理者にも自動では通知されません。 - 会社の知識(company knowledge)の情報源にできるのは、searchとfetchを備えたアプリだけで、画面つきのアプリは対象外です。 - Deep researchは、カスタムアプリの読み取りと取得の動作だけ使えます。Agent modeについての記載は、現行のヘルプでは見つかりませんでした(Lockdownのヘルプは、Lockdown ModeでAgent modeを無効にする、と書いています)。
「管理者向けのアプリとプラグインのヘルプ」は、Business、Enterprise、Eduの管理者が、公開済みのカスタムMCPアプリのツール一覧を、作り直さずに更新できる、と書いています(アプリの管理の権限と、有効な接続が要る)。OpenAIはカスタムアプリを検証せず、開発者向けのもので、知っていて信頼できるものだけを追加するよう書かれています。
ツールの注釈:読み取りと書き込みを、サーバー側で正しく名乗る
開発者向けドキュメント「Build an MCP server」は、注釈(annotations)を実際の動作に合わせて付けるよう書いています。3つのヒントの意味は、次のとおりです。
| ヒント | 公式の説明(要約) |
|---|---|
readOnlyHint |
状態を変えられないツールにだけ true を付ける。付いていないツールは、書き込みとして扱われる(custom MCP serverのページ) |
destructiveHint |
取り消せない、または戻しにくい結果を起こしうるツールに true を付ける |
openWorldHint |
公開のインターネットや、範囲の決まっていない外部の相手に触れるツールに true を付ける。読み取りだけのウェブ検索も含む。私的なアカウントやワークスペースに限られるなら false にできる |
公式が載せている、読み取り専用の list_projects ツールの注釈の例は次の形です(TypeScript。ツール定義の全体は公式のページにあり、動作確認はしていません)。
annotations: {
readOnlyHint: true,
openWorldHint: false,
destructiveHint: false,
},
同じページは、ツールを1つの動作ごとに分ける(たとえば list_projects、get_project、update_project)こと、名前を動作がわかる形にすること、説明に「どんなときに使うか」を書くことも勧めています。名前、説明、スキーマ、注釈は、モデルが呼ぶかどうかを決める材料なので、利用者から見える挙動の一部、と書かれています。注釈は、サーバー側の認可、検証、確認の代わりにはなりません。
私的なサーバー:Secure MCP Tunnel
開発者向けドキュメント「Secure MCP Tunnel」は、受信用のファイアウォールのポートを開けず、公開のインターネットにも出さずに、私的なMCPサーバーをつなぐ方法を説明しています。構成は、サーバーのあるネットワーク内で tunnel-client を動かし、外向きのHTTPSでOpenAIに接続し、ChatGPTからの要求を取り込んでサーバーに渡し、結果を同じ経路で返す形です。必要なものは、Platformのトンネル設定で得る tunnel_id と、tunnel-client 用の実行キーです。公式の例は次のとおりです(動作確認はしていません)。
export CONTROL_PLANE_API_KEY="sk-..."
tunnel-client init \
--sample sample_mcp_stdio_local \
--profile local-stdio \
--tunnel-id tunnel_0123456789abcdef0123456789abcdef \
--mcp-command "python /path/to/server.py"
tunnel-client doctor --profile local-stdio --explain
tunnel-client run --profile local-stdio
HTTPのMCPサーバーなら、--mcp-command の代わりに --mcp-server-url を使います。ChatGPTでは、「Add custom MCP server」の「Connection」を「Tunnel」にして、一覧からトンネルを選ぶか tunnel_id を貼ります。注意点は次のとおりです。
- 権限:トンネルの作成と編集には、Tunnelsの「Read」と「Manage」、tunnel-client の実行や選択には「Read」と「Use」が要ります。権限は組織単位で、Platformの組織オーナーかRBAC管理者が付けます。
- 制限(既定値で、保証ではない):MCPの要求は毎分600回、1つの要求や応答は10 MiBまで、要求の期限は120秒です。
- 公開のプラグインの提出や配布には使えません。公開するには、安定した公開のHTTPSのエンドポイントが要ります。私的なままにしたいなら、前に公開のHTTPSのプロキシを置く方法が、別のページに書かれています。IPの許可リストは、認証と認可の代わりにはならない、と書かれています。
- 記録:トンネルの通信は、ChatGPTのCompliance Platformのイベントには出ません。トンネルの作成、更新、削除は、Platformの監査ログに出ます。
- tunnel-client が止まると、再接続されるまで、トンネル経由の要求は失敗します。
API側のMCPツールとの違い
開発者向けドキュメント「MCP servers」(Responses API)は、ChatGPTの画面とは別の仕組みです。リクエストに "type": "mcp" のツールを足し、require_approval("always"、"never"、またはツール名の指定)などを決めます。既定では、データをリモートのMCPサーバーに渡す前に承認を求めます。公式の例は次の形です("never" は、その例のサーバーが公式の資料サーバーだからで、他のサーバーに写すものではない、というのが僕らの注意です)。
"type": "mcp",
"server_label": "openai_docs",
"server_url": "https://developers.openai.com/mcp",
"require_approval": "never"
authorization のOAuthトークンは、APIが保存しないので、作成のたびに送る必要があります。connector_id は旧い形で、2026年9月1日以降に出たモデルでは非推奨とされています。
最初の10分でやること
既製のアプリをつなぐなら(公式の手順を基にした、僕らの整理です)。
1. 「Settings > Plugins」で、つなぎたいアプリを1つだけ選び、「Install plugin」「Connect」の順に進みます。サインインするアカウントは、データのあるほうを選びます。
2. 接続後、そのアプリの「Permissions」を開き、いまのレベルを確かめます。迷ったら「Always ask」にします。
3. 新しい会話で @ からそのアプリを呼び、読むだけの依頼(「先週のこのフォルダのファイル名を一覧にして」のような)を1つ試します。出る承認の画面で、選択肢(Deny、Allow once など)を見ます。
4. 切断の場所(「Settings > Plugins」のアプリの「Disconnect」)を確かめておきます。
5. 受信メールや共有ドキュメントのような、他人が書いた文章を読ませる使い方は、書き込みを伴うアプリと同じ会話で混ぜない、と決めておきます(僕らの見立てです)。
自作のMCPをつなぐなら。
1. 自分のプランでカスタムMCPの追加ができるかを、画面で確かめます(上の「プランごとの違い」の食い違いに注意)。Businessでは、作成と公開は管理者とオーナーだけです。
2. サーバーを、MCP Inspectorで試します。ツールが一覧に出ること、読み取りのツールに readOnlyHint: true が付くこと、書き込みのツールには付かないことを見ます(付けかたの例は、後の「ツールの注釈」の節)。
3. 公開のHTTPSで届くようにするか、Secure MCP Tunnelを用意します。
4. 「Plugins」の「+」から「Add custom MCP server」で追加し、認証を設定します。旧い「Apps」の「Create」の画面が出ている場合は、前の「B」の手順です。
5. 追加後、アプリの設定の詳細ページで、ツールのオンとオフを切り替えられます。最初は読み取りのツールだけを有効にします(これは僕らの整理です)。
6. 新しい会話で @ からプラグインを選び、読み取りの依頼から試します。公式は、アプリ名とツール名をはっきり書いて頼むよう勧めていて、狙いのツールが呼ばれるまで、頼み方を変える必要があるかもしれない、とも書いています。
7. 書き込みのツールは、確認の画面でツールの入力のJSONを展開して、中身を読んでから承認します。
つまずいたとき(公式のトラブルシューティングから)
| 症状 | 公式の説明(要約) |
|---|---|
| アプリや接続の設定が見つからない | プラグインが未インストール、プラン、地域、アカウント、画面の条件を満たさない、別のアカウントやワークスペースにいる、などが原因になりうる。「Apps」と「Plugins」のどちらが出ているかを確かめる |
| 「Disabled by admin」 | 管理者の制限。個人のアカウントで管理者がいないときは、この表示だけでは管理者の制限とは言えない |
| 「Requires workspace setup」 | 管理者の設定が必要。ヘルプによると「Needs setup」という文言はこのページにはなく、同じ意味のものは「Requires workspace setup」 |
| つながったのに使えない | 現在の会話、モデル、画面でアプリが使えない。会話を新しく始め、具体的な依頼をする。何度も再接続しない |
| 動作ができない | 認可やアクセスの問題、動作が未対応(読み取りができても書き込みができるとは限らない)、承認待ち、明示的な安全ブロック(確認の画面が出ない) |
| カスタムMCPのツールがない、エラー | ワークスペースが以前承認したツール一覧を使っている。管理者がツール一覧を更新する |
| Lockdown Modeでアプリがブロックされる | Lockdown Modeが、ライブの外部アクセスが要るアプリを制限している。意味を理解し、権限があるときだけ設定を変える |
| 401エラー(自作サーバー) | WWW-Authenticate ヘッダーがない、または発行者や対象の値が違う。ヘッダーを返してOAuthをやり直させる |
僕らの見立て:つなぐ前に自分に聞くこと
ここからは僕らの見立てです。公式の記載から組み立てたもので、公式の推奨そのものではありません。
- そのアプリが届く文章を、誰が書けるか。 公式のリスクの説明は、MCPの提供元が信頼できても、そこに届く文章(問い合わせ、メール)が攻撃の入口になる、という構造です。読むデータに他人の文章が入るほど、書き込みを許すかどうかの重みが増します。
- 書き込みを許すなら、見える範囲は狭いか。 公式の管理者向けの整理で「中」に入るのは、見える範囲が限られた信頼できるアプリの書き込みです。範囲の広い共有ドライブや全員宛てのチャンネルに書けるアプリは、同じ書き込みでも別の重さになります。
- 自作MCPの注釈は、自分で守る。
readOnlyHintを正しく付けることは、公式が開発者に求める点です。同じ公式ページは、悪意あるサーバーが書き込みを「読み取り専用」と偽る可能性にも触れているので、利用者側の「書き込みは承認」の原則と、組みで考える必要があります。
気をつけること
- この記事は、実際に使って確かめた記録ではありません。運営者はChatGPTを入れていますが、使い心地はこの記事には書いていません。公式ページを要約の形で取得して、言い換えました。「書かれていない」は、読んだ範囲では見つからなかった、という意味です。
- 公式ページ同士に食い違いがあります(Plusの開発者モード、Proの範囲、SSEとストリーミングHTTPの記載、ヘルプの旧い題名と新しい題名)。ヘルプは「更新は数日前」のような相対表示で、日付は読めていません。
- 「Apps in ChatGPT」の旧い題名のページは、取得に失敗し、同じ記事番号の別の題名のページ(Connected apps in ChatGPT)から読みました。カスタムMCPのヘルプは、番号だけのアドレス(12584461)だと、旧い題名(Developer mode and MCP apps in ChatGPT)の内容が返ることがありました。この記事は、現行の題名のアドレスで読み直した内容に合わせています。旧い内容では、開発者モードを先にオンにする手順や、Businessは公開後に更新できないという記載がありましたが、現行の題名の版では見つかりませんでした。
- ヘルプの個別のアプリ向けの手順(Google Drive、Slack、GitHub、SharePointなど)、Workspace Agentsの行動の安全設定、サイトのツール(WebMCP)、Apps SDKの画面部品(widget)の作り方、公開の審査の要件は、読んでいません。
- 許可の既定値、承認の文言、「Allow all actions」が出る条件は、アカウント、アプリ、ワークスペースで変わります。
- 組織(会社や学校)のアカウントでは、管理者が機能を止めたり、記録を取ったりしています。つなぐ前に、組織の担当者に確かめてください。
- 外のサービスにつなぐことは、データの外部送信と書き込みを伴います。この記事はセキュリティや法律の助言ではありません。個人情報や契約が関わるときは、組織の担当者や専門家に確認してください。
出典
- Connected apps in ChatGPT(OpenAI Help Center、OpenAI、日付の記載なし、確認日2026-10-24)
- Managing app permissions in ChatGPT(OpenAI Help Center、OpenAI、日付の記載なし、確認日2026-10-24)
- Connecting and managing app accounts in ChatGPT(OpenAI Help Center、OpenAI、日付の記載なし、確認日2026-10-24)
- Plugins in ChatGPT(OpenAI Help Center、OpenAI、日付の記載なし、確認日2026-10-24)
- Admin controls, security, and compliance for plugins and apps(OpenAI Help Center、OpenAI、日付の記載なし、確認日2026-10-24)
- Troubleshooting plugins and apps in ChatGPT(OpenAI Help Center、OpenAI、日付の記載なし、確認日2026-10-24)
- Connecting custom MCP servers in ChatGPT(OpenAI Help Center、OpenAI、日付の記載なし、確認日2026-10-24)
- Elevated Risk labels(OpenAI Help Center、OpenAI、日付の記載なし、確認日2026-10-24)
- Lockdown Mode(OpenAI Help Center、OpenAI、日付の記載なし、確認日2026-10-24)
- ChatGPT agent(OpenAI Help Center、OpenAI、日付の記載なし、確認日2026-10-24)
- ChatGPT release notes(OpenAI Help Center、OpenAI、日付の記載なし、確認日2026-10-24)
- Introducing Lockdown Mode and Elevated Risk labels in ChatGPT(OpenAI、2026年2月13日、2026年6月4日更新、確認日2026-10-24)
- Keeping your data safe when an AI agent clicks a link(OpenAI、2026年1月28日、確認日2026-10-24)
- Add custom MCP server(OpenAI developer docs、OpenAI、日付の記載なし、確認日2026-10-24)
- Building MCP servers for plugins and API integrations(OpenAI developer docs、OpenAI、日付の記載なし、確認日2026-10-24)
- Secure MCP Tunnel(OpenAI developer docs、OpenAI、日付の記載なし、確認日2026-10-24)
- MCP servers(OpenAI developer docs、OpenAI、日付の記載なし、確認日2026-10-24)
- Connect and test your plugin(OpenAI developer docs、OpenAI、日付の記載なし、確認日2026-10-24)
- Build an MCP server(OpenAI developer docs、OpenAI、日付の記載なし、確認日2026-10-24)
- Troubleshooting(OpenAI developer docs、OpenAI、日付の記載なし、確認日2026-10-24)
- Deploy your app(OpenAI developer docs、OpenAI、日付の記載なし、確認日2026-10-24)
- ChatGPT pricing(OpenAI、日付の記載なし、確認日2026-10-24)