ChatGPTと相談しながらアプリの仕様を固め、CodexやClaude Codeで実装する進め方を、非エンジニア向けに紹介します。
そのために、ChatGPTから自分のパソコンにある仕様書やコードを直接読み書きできるようにし、CodexやClaude Codeとの作業をつなぎます。
この記事では、これを実現するMCPとSecure MCP Tunnelの仕組みと、導入の流れを解説します。MCPはAIと外部のファイルやツールをつなぐ仕組みで、Secure MCP Tunnelなら、ルーターのポートを開放せずに接続できます。
1. ChatGPTとの相談と実装をつなぐ
私の場合、まずChatGPTと相談しながら、何を作りたいのかを整理しています。
ある程度まとまったらCodexやClaude Codeに実装を任せ、実装して分かったことがあれば、再びChatGPTとの相談へ戻ります。
この分け方には、ChatGPTで相談した分がCodex側のトークン利用枠を消費しないという利点もあります。ChatGPTを相談に使いながら、Codexの利用枠を実装のために残せます。
※サブスクリプションプラン内で使う場合、Claude.aiとClaude Codeは共通のトークン利用枠を使うため、Claudeでは同じ節約にはなりません。
一方で、相談と実装を分けると、仕様書やコードをそのたびにコピーしたり、ファイルを添付したりする手間が生じます。
そこで、MCPとOpenAIのSecure MCP Tunnelを使い、ChatGPTから、許可した範囲の仕様書やコードを直接読み書きできるようにしました。
この記事では、その仕組みと、実際に使って分かったことを紹介します。接続や実装でつまずいた技術的な話は、末尾へまとめました。
2. ChatGPTとローカルPCをつなぐ仕組み
ChatGPTから、私のWindowsパソコンにある開発中のコードや設定ファイルを読み書きするには、両者をインターネット経由でつなぐ必要があります。
そこで使ったのが、OpenAIが提供しているSecure MCP Tunnelというサービスです。自宅のルーターでポートを開放するのではなく、自分のパソコン側からOpenAIへ接続して、外部へポートを公開せずに通信経路を確立します。
全体の仕組みは、次のようになっています。

tunnel-client.exeがChatGPTと自分のパソコンの間をつなぎ、MCPサーバーが実際のファイル操作を担当します。以下、順に説明します。
まず、OpenAI Platformの管理画面で、固有のトンネルID(tunnel_a1b2c3d4…)を作成します。
自分のパソコンでは、このIDを指定してtunnel-client.exeを起動します。これで通信経路が確立します。ChatGPT側では「プラグイン」を作成し、同じIDを指定します。両方が同じIDを指すことで、ChatGPTと自分のパソコンが結びつきます。私はプラグインにrepo-mcp-windowsという名前を付けました。
たとえば、ChatGPTに「このフォルダの中に何があるか教えて」と頼むと、ChatGPTはこのプラグインを通じて、「フォルダの中身を一覧にして」といった具体的な指示を、自分のパソコンへ向けて送ります。その指示を実際に運ぶのが、tunnel-client.exeです。
ただし、tunnel-client.exe自身がファイルを探したり、内容を読んだりするわけではありません。実際のファイル操作は、tunnel-client.exeが内部で起動する別のプログラムが担当します。
これは、Claude Codeに作ってもらった小さなPythonプログラムです。MCPサーバー(Model Context Protocol Server)と呼ばれるもので、MCPは、ChatGPTのようなAIと外部のプログラムがやり取りするための共通規格です。
ここまでが仕組みの全体像です。次章では、MCPサーバーが何をするのかを説明します。
3. MCPサーバーの役割と操作範囲
MCPサーバーは、AIからの依頼を受けて実際の作業を行うプログラムです。ファイル操作用なら、ファイルの一覧を調べる、内容を読む、決められた場所へ書き出す、といった機能を持ちます。公式のFilesystem MCP Serverなど定番のものがあり、そのまま使ってもかまいません。
大事なのは、ChatGPTに何を見せ、どこまで操作させるかを決めるのが、このMCPサーバーだという点です。Secure MCP Tunnelの側に、こうした制限が備わっているわけではありません。
Secure MCP Tunnelが安全にするのは通信経路です。ChatGPTが操作できるファイルの範囲は、MCPサーバー側で制限します。
私の場合は、小規模なMCPサーバーを自作する練習も兼ねて、必要な機能だけを持つものをClaude Codeに作らせました。仕様は次のようになっています。
- ChatGPTから読めるのは、自分で登録した開発プロジェクトのうち、原則としてGitで追跡されているファイルだけ
- 元のリポジトリは読み取り専用
- 書き込み先は、別に用意した共有作業場
ai-sharedだけ(Git管理の有無を問わず読み書きできる) - 任意のコマンド実行、ファイル削除、
git pushといった強い機能は用意しない
PC全体の操作を渡さずに、必要なやり取りだけができる状態です。
4. 実際の運用
こうして操作範囲を限定したうえで、実際には次の二つの流れで使っています。
一つは、ChatGPTとの壁打ちから始める流れです。
たとえば、「こんなアプリを作りたいので、仕様を一緒に整理してほしい」と相談します。ブログ記事なら、「こんなテーマの記事を書きたい」と伝え、構成や論旨を会話しながら固めていきます。
ある程度まとまったら、ChatGPTに仕様書や記事案を、共有作業場ai-sharedへ書き出してもらいます。その後はCodexやClaude Codeがファイルを読み、実装や原稿への反映を引き継ぎます。
もう一つは、すでにある程度できているものを、ChatGPTにレビューしてもらう流れです。
アプリのプロトタイプやブログ記事の原稿を指定し、「現在の実装や内容を読んでレビューしてほしい」と頼みます。その際、「必要なら、このファイル以外の関連ファイルも自分で探して読んで」と伝えれば、周辺の仕様書や設定ファイルも含めて確認させられます。
ChatGPTは、レビュー結果や修正案をai-sharedへ書き出します。それをCodexやClaude Codeが読み、コードや原稿へ反映します。
このように、ChatGPTから相談を始める場合にも、すでにある成果物をChatGPTへ持ち込む場合にも、同じローカルファイルを使って作業を往復できます。
5. 必要な環境
- Windows 11
- Python 3系(MCPサーバーを動かす)
- ChatGPT(カスタムMCPを利用できる環境。筆者はPlusで動作確認済み)
- OpenAI Platformのアカウント(ChatGPTとは別の開発者向け管理画面。トンネルの作成とAPIキーの発行に使う)
※私はChatGPT PlusとClaude Proを契約していますが、この仕組みの導入にClaude Proは必須ではありません。
手順はWindows前提で書きますが、仕組み自体はOSを問いません。
6. アカウント設定とトンネルの作成
ここからは、OpenAIとChatGPT側で行う4つの設定です。
1. 開発者モードを有効にする
自分のパソコンで動かすMCPサーバーを登録するには、ChatGPTの設定にある「セキュリティとログイン」または「プラグイン」から、「開発者モード」をオンにします。
2. トンネルを作成してIDを控える
OpenAI PlatformのTunnels管理画面でトンネルを作成すると、tunnel_で始まるIDが発行されます。このIDをWindows側とChatGPT側の両方で指定するので、控えておきます。

3. APIキーを発行する
WindowsパソコンからOpenAIへ接続するために、API keysの画面でAPIキーを発行します。トンネルIDが接続先を指す「住所」なら、APIキーはそこを使う権限を証明する「鍵」です。
種別はRestrictedにし、権限はTunnels: Read + Useだけを許可します。
APIキーは別ファイルに保存し、チャット欄やスクリプトには直接記さないようにします。
4. ChatGPTにプラグインを作成する
ChatGPTの設定から「プラグイン」を開いて新規作成し、接続方法を「トンネル」へ切り替えます。
「利用可能なトンネル」の欄は空のままですが、そのまま「作成する」を押すと、「トンネル ID」の入力欄が現れます。

控えておいたIDを貼り付け、認証は「認証なし」、警告への同意にチェックを入れて、もう一度「作成する」を押します。
あとはWindows側の準備を済ませれば、ChatGPTから使えるようになります。
7. Windows側の準備と接続確認
Windows側では、次のような準備が必要です。
tunnel-client.exeは、OpenAI PlatformのTunnels管理画面からダウンロードできます(DL元はGitHub)。パソコンに置いたら、次のようなコマンドで、トンネルID・APIキー・MCPサーバーの起動方法をまとめて設定し、そのまま起動します。
tunnel-client runtimes connect --alias maruq-tunnel --tunnel-id tunnel_0123456789abcdef0123456789abcdef --mcp-command "python.exe -u C:/mcp/server.py" --runtime-api-key file:C:/mcp/api-key.txt
--alias: このトンネルに自分で付ける呼び名です(ここではmaruq-tunnel)。あとで状態確認や停止をするとき、どのトンネルを指すかをこの名前で区別します--tunnel-id: 控えておいたトンネルID--mcp-command: 3章で説明したMCPサーバー(既製のFilesystem MCP Serverでも、自作したものでも)を起動するコマンド--runtime-api-key: APIキーを保存したファイルのパスをfile:に続けて指定します。この起動コマンドをps1などのスクリプトにしておくときも、キーをハードコードせずに済みます
起動できているかは、次のコマンドで確認できます。
tunnel-client runtimes status maruq-tunnel
起動している間だけChatGPTから接続できるので、パソコンを再起動したりtunnel-client.exeを終了したりすると接続も切れます。再度使うときは、もう一度runtimes connectを実行します。停止したいときはtunnel-client runtimes stop maruq-tunnelです。私はこのコマンドをps1スクリプトにまとめ、起動自体もAIエージェントに任せています。
起動を確認できたら、ChatGPTに何かファイルを読んでもらい、実際に応答が返ってくるかで疎通を確認します。
正確なオプションはtunnel-client --helpやAIに確認しながら進めるのが確実です。
8. まとめ
ChatGPTを相談役、CodexやClaude Codeを実装役として使い分けると、その間のファイル受け渡しが新たな手間になります。
MCPとSecure MCP Tunnelは、その手間を減らすための仕組みです。操作範囲を必要な場所だけに限定しながら、ChatGPTとの対話をローカルの仕様書やコードへ直接つなげられます。
AIごとの役割分担を変えずに、相談と実装を一つの作業の流れにできることが、この構成のいちばん大きな利点です。
おまけ:接続と実装で遭遇した問題
以下は、同じ構成を自作する人向けの技術メモです。
- tunnel-client v0.0.10のruntime起動時、Windowsパスのバックスラッシュがエスケープされ、
OnStart hook failedで即時停止。起動コマンドをスラッシュ区切りへ変更 git ls-filesの子プロセスがMCPのstdinを継承し、Windowsで終了待ちのままハング。Git起動時に標準入力を閉じて解消- Git出力のデコードがWindows既定のcp932となり、日本語ファイル名で失敗。UTF-8を明示
- 起動元コンソールを閉じると常駐プロセスも終了。独立コンソールで起動するラッパーを使用
- Git追跡ファイル限定処理の実装漏れにより、初期状態では
.venvやgitignore対象も列挙された。git ls-files基準へ変更
参考URL
- OpenAI Platform(トンネル作成・APIキー発行) — https://platform.openai.com/
- Secure MCP Tunnel 公式ドキュメント — https://developers.openai.com/api/docs/guides/secure-mcp-tunnels
- Model Context Protocol 公式サイト — https://modelcontextprotocol.io/
この記事で書いたような、対話を重ねながら少しずつ仕様を固めていく進め方は、「progressive specification」として研究でも報告されています。
- Tang et al. “Programming by Chat: A Large-Scale Behavioral Analysis of 11,579 Real-World AI-Assisted IDE Sessions” — https://arxiv.org/abs/2604.00436

