Web版ChatGPTから、自宅Windows PCにあるファイルを読んだり、作成したり、部分編集したりできる環境を作りました。
接続にはOpenAIのSecure MCP TunnelとFilesystem MCPを使います。
Secure MCP TunnelはWindows、macOS、Linuxで利用でき、この記事ではWindowsでの構築手順を紹介します。
同じローカルプロジェクトをCodexでも扱えば、ChatGPTが作った設計書をCodexが読み、Codexのレビュー結果をChatGPTが読む開発フローにも使えます。
最初にsandboxだけを許可して接続を確認し、そのあと実運用する開発フォルダを追加します。補助スクリプトはCodexに作らせます。
筆者環境について 2026年8月時点、筆者のChatGPT Plus環境ではSecure MCP Tunnel経由のFilesystem MCPからファイル作成・部分編集まで確認できています。OpenAI公式ヘルプでは、write / modifyを含むFull MCPはBusiness、Enterprise、Edu向けと案内されています。この記事では確認できた挙動をもとに手順をまとめています。構築時は、その時点の公式仕様と自分のアカウントで利用できる機能も確認してください。
構築後の役割分担やtalk連携、スマホからの運用は、運用編:Web版ChatGPTから自宅PCのファイルを直接操作。Codexと連携してAI同士で開発を引き継ぐ環境を作ったで紹介しています。


- この記事で作る環境
- 作業ルートとsandboxを作る
- Node.jsとtunnel-clientを準備する
- Codexに補助ファイル一式を作らせる
- allowed-folders.txtの中身を確認する
- Filesystem MCPを単体で確認する
- OpenAI PlatformでTunnelを作る
- Runtime APIキーを作る
- tunnel-clientの接続設定をprofileにまとめる
- doctorでprofileを確認する
- tunnel-clientを起動する
- healthzとreadyzを確認する
- ChatGPT側でFilesystem MCPを登録する
- sandboxで読み書きを確認する
- 実運用するフォルダを追加する
- チャットごとに作業対象フォルダを選ぶ
- ハマったこと:特定のチャットだけMCPが使えなくなった
- tool has been disabled が出たときの切り分け
- 許可フォルダには開発ファイルだけを置く
- まとめ
- 公式情報・参照先
- 今日の注目アイテム
この記事で作る環境
完成後は、ChatGPTから許可したローカルフォルダを読み書きできます。
今回使う構成は次の通りです。
Web版ChatGPT
↓
OpenAI Secure MCP Tunnel
↓
自宅PCの tunnel-client
↓
Filesystem MCP
↓
許可したWindowsフォルダ
tunnel-clientは自宅PCからOpenAIへHTTPSで接続します。Filesystem MCPは自宅PC側で動かし、許可したフォルダだけを操作対象にします。
Tunnelの作成・編集にはTunnels Read + Manage、tunnel-clientの実行とChatGPT側でTunnelを選ぶ操作にはTunnels Read + Useを使います。

作業ルートとsandboxを作る
作業ルートは次の場所にします。
C:\ai_workspace\chatgpt_local_access
最初に次の3フォルダを用意します。
C:\ai_workspace\chatgpt_local_access\sandbox
C:\ai_workspace\chatgpt_local_access\tunnel
C:\ai_workspace\chatgpt_local_access\scripts
sandboxは最初の読み書き確認用です。
実運用するプロジェクトは、CドライブやDドライブの任意のフォルダを許可リストへ追加できます。
Node.jsとtunnel-clientを準備する
Filesystem MCPの起動にはNode.js / npm / npxを使います。
PowerShellで次の3つが動くことを確認します。
node --version
npm --version
npx --version
tunnel-client.exeはOpenAI PlatformのTunnel設定画面にあるダウンロード先、またはOpenAI公式のopenai/tunnel-client最新リリースから取得します。
配置先は次の場所です。
C:\ai_workspace\chatgpt_local_access\tunnel\tunnel-client.exe
配置後、PowerShellで起動できることを確認します。
cd "C:\ai_workspace\chatgpt_local_access\tunnel"
.\tunnel-client.exe --version
バージョンが表示されたら次へ進みます。tunnel-clientは構築時点の最新リリースを使います。
Codexに補助ファイル一式を作らせる
Filesystem MCPの起動や許可フォルダ管理に使う補助ファイルは、Codexに作らせます。次の要件をそのまま渡します。
Windows上に、Secure MCP Tunnel + Filesystem MCPを運用する補助ファイル一式を作成してください。
作業ルート:
C:\ai_workspace\chatgpt_local_access
前提:
- tunnel-client.exe は C:\ai_workspace\chatgpt_local_access\tunnel\tunnel-client.exe に配置済み
- tunnel-client profile名は filesystem-sandbox
- 最初の接続確認には C:\ai_workspace\chatgpt_local_access\sandbox を使う
- Filesystem MCPは npx.cmd -y @modelcontextprotocol/server-filesystem で起動する
- APIキーなどの秘密情報は、作業ルート配下の補助ファイルへ埋め込まない
作成するファイル:
- run-filesystem-mcp.cmd
- 01-start-tunnel-client.cmd
- 02-stop-tunnel-client.cmd
- 03-check-tunnel-client.cmd
- scripts\allowed-folders.txt
- scripts\allowed-folders.applied.txt
- scripts\allowlist-lib.ps1
- scripts\run-filesystem-mcp.ps1
- scripts\tunnel-client-control.ps1
- scripts\update-filesystem-allowlist.cmd
- scripts\update-filesystem-allowlist.ps1
許可フォルダ管理:
- allowed-folders.txt に1行1フォルダで候補を書く
- 空行と # から始まる行はコメントとして扱う
- 絶対パスだけを許可する
- ワイルドカード、存在しないパス、ファイル単体はエラーにする
- 同じフォルダが複数回書かれていたら1件にまとめる
- 更新前に、実際に適用するフォルダ一覧を表示する
- Yで承認されたときだけ allowed-folders.applied.txt を更新する
- キャンセル時は現在の適用済み設定を残す
- 更新後に`tunnel-client`の再起動が必要だと表示する
Filesystem MCP起動:
- allowed-folders.applied.txt を読み込む
- 許可フォルダを再検証する
- 検証済みフォルダを @modelcontextprotocol/server-filesystem の引数として渡す
- 適用済みフォルダが存在しない場合は分かるエラーを出す
tunnel-client操作:
- 01-start-tunnel-client.cmd で起動
- 02-stop-tunnel-client.cmd で停止
- 03-check-tunnel-client.cmd で状態確認
- startは二重起動を避ける
- start後は http://127.0.0.1:8080/healthz と /readyz を確認する
- checkはプロセス状態、PID、healthz、readyzを表示する
- stopはこの環境で起動したtunnel-clientを停止する
- 補助スクリプト同士の参照は、可能な範囲で作業ルートからの相対参照にする
初期状態:
- allowed-folders.txt と allowed-folders.applied.txt には
C:\ai_workspace\chatgpt_local_access\sandbox
を設定する
作成後:
- 必要なファイルがすべて存在することを確認する
- ファイル間の参照先が実在することを確認する
- 作成したファイルと役割を一覧で報告する
- 実行が必要な確認手順を最後にまとめる
実装方法はCodexに任せます。必要なファイルと動作は、上の要件で指定しています。
作成後のファイル構成
完成すると、次のような構成になります。
chatgpt_local_access\
├─ sandbox\
├─ tunnel\
│ └─ tunnel-client.exe
├─ scripts\
│ ├─ allowed-folders.txt
│ ├─ allowed-folders.applied.txt
│ ├─ allowlist-lib.ps1
│ ├─ run-filesystem-mcp.ps1
│ ├─ tunnel-client-control.ps1
│ ├─ update-filesystem-allowlist.cmd
│ └─ update-filesystem-allowlist.ps1
├─ run-filesystem-mcp.cmd
├─ 01-start-tunnel-client.cmd
├─ 02-stop-tunnel-client.cmd
└─ 03-check-tunnel-client.cmd
各ファイルの役割は次の通りです。
| ファイル | 役割 |
|---|---|
run-filesystem-mcp.cmd | Tunnelから呼ばれるFilesystem MCP起動入口 |
allowed-folders.txt | 許可したいフォルダの編集用リスト |
allowed-folders.applied.txt | 現在適用中の許可フォルダ |
allowlist-lib.ps1 | 許可パスの検証 |
run-filesystem-mcp.ps1 | 適用済みリストを読みFilesystem MCPを起動 |
update-filesystem-allowlist.* | 許可リストを確認して反映 |
tunnel-client-control.ps1 | tunnel-clientの起動・停止・状態確認 |
01~03のcmd | 日常操作用の入口 |
allowed-folders.txtの中身を確認する
最初はsandboxだけを許可します。
# 最初の接続確認用
C:\ai_workspace\chatgpt_local_access\sandbox
#から始まる行はメモです。空行も入れられます。
許可フォルダを変えるときはallowed-folders.txtを編集します。update-filesystem-allowlist.cmdを実行すると、有効なフォルダがallowed-folders.applied.txtへ保存されます。
C:\ai_workspace\chatgpt_local_access\sandbox
許可リストへ相対パス、ワイルドカード、存在しないパス、ファイル単体を指定した場合はエラーにします。実在するフォルダをフルパスで指定します。
Filesystem MCPを単体で確認する
Tunnelへつなぐ前に、Filesystem MCPだけで起動できることを確認します。
cmd.exe /d /c C:\ai_workspace\chatgpt_local_access\run-filesystem-mcp.cmd
初回はnpmパッケージの取得が入ります。エラーで終了せず待機状態になれば起動できています。確認後はCtrl + Cで停止します。
エラーが出たら、Node.js / npx、補助ファイルの参照先、allowed-folders.applied.txtの内容を確認します。
OpenAI PlatformでTunnelを作る
OpenAI PlatformでSecure MCP Tunnelを作成します。
作成・編集に使う権限は次の通りです。
Tunnels
Read
Manage
Tunnel作成画面では、利用するPlatform OrganizationとChatGPT workspaceも指定します。これでChatGPT側からTunnelを選べるようになります。
設定例です。
Name:filesystem-home-pc
Organizations:自分が使うPlatform Organization
ChatGPT workspaces:このTunnelを使うChatGPT workspace
作成後に表示されるTunnel IDを控えます。
tunnel_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
このTunnel IDを、次のprofile設定で使います。
Runtime APIキーを作る
tunnel-client用のRuntime APIキーを作ります。
必要なTunnel権限は次の通りです。
Tunnels
Read
Use
Runtime APIキーは次のファイルに保存します。Git管理の対象には含めません。
C:\Users\<ユーザー名>\.config\tunnel-client\control-plane-api-key
PowerShellで次のコマンドを実行します。
$KeyDir = "$env:USERPROFILE\.config\tunnel-client"
$KeyPath = "$KeyDir\control-plane-api-key"
New-Item -ItemType Directory -Force $KeyDir | Out-Null
$SecureKey = Read-Host "Runtime APIキーを貼り付けてEnter" -AsSecureString
$PlainKey = [System.Net.NetworkCredential]::new("", $SecureKey).Password
$PlainKey.Trim() | Set-Content -NoNewline -Encoding ascii $KeyPath
Remove-Variable PlainKey, SecureKey
$CurrentUser = [System.Security.Principal.WindowsIdentity]::GetCurrent().Name
icacls $KeyPath /inheritance:r | Out-Null
icacls $KeyPath /grant:r "${CurrentUser}:F" | Out-Null
Runtime APIキーを貼り付けてEnterと表示されたら、OpenAI Platformで作成したRuntime APIキーを貼り付けてEnterを押します。入力した文字は画面には表示されません。ファイル作成と保存、アクセス権の設定まで自動で進みます。
tunnel-clientの接続設定をprofileにまとめる
tunnel-clientを起動するときに必要な接続設定を、filesystem-sandboxというprofileにまとめます。
PowerShellでtunnel-client.exeを置いたフォルダへ移動します。
cd "C:\ai_workspace\chatgpt_local_access\tunnel"
Tunnel IDと<ユーザー名>を自分の値へ置き換えて、次のコマンドを実行します。
.\tunnel-client.exe init `
--sample sample_mcp_stdio_local `
--profile filesystem-sandbox `
--tunnel-id tunnel_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx `
--control-plane-api-key-ref 'file:C:/Users/<ユーザー名>/.config/tunnel-client/control-plane-api-key' `
--mcp-command 'cmd.exe /d /c C:/ai_workspace/chatgpt_local_access/run-filesystem-mcp.cmd'
このコマンドでは、次の設定をfilesystem-sandboxというprofileにまとめています。
- 接続するSecure MCP Tunnel
- Runtime APIキーを保存したファイルの場所
- Filesystem MCPを起動するコマンド
作成したprofileは、次のコマンドで確認できます。
.\tunnel-client.exe profiles list
doctorでprofileを確認する
次のコマンドを実行します。
.\tunnel-client.exe doctor --profile filesystem-sandbox --explain
profile、Tunnel ID、Runtime APIキー、MCP起動設定を確認します。
tunnel-clientを起動する
直接起動するコマンドは次の通りです。
.\tunnel-client.exe run --profile filesystem-sandbox
普段の起動・停止・状態確認には、ルート直下の3ファイルを使います。
01-start-tunnel-client.cmd
02-stop-tunnel-client.cmd
03-check-tunnel-client.cmd
最初は01-start-tunnel-client.cmdで起動し、03-check-tunnel-client.cmdで状態を確認します。
healthzとreadyzを確認する
PowerShellから次の2つを確認します。
curl.exe -fsS http://127.0.0.1:8080/healthz
curl.exe -fsS http://127.0.0.1:8080/readyz
正常時は次の結果になります。
healthz → live
readyz → ready
ローカル管理画面は次のURLです。
http://127.0.0.1:8080/ui

ChatGPT側でFilesystem MCPを登録する
ChatGPT側でDeveloper Modeを有効にし、カスタムappを作成します。ConnectionにはTunnelを選びます。
設定例は次の通りです。
名前:自宅PC Filesystem
説明:自宅Windows PC内の許可された個人開発フォルダを読み書きするためのFilesystem MCP
Connection:トンネル
Tunnel:filesystem-home-pc
認証:認証なし
登録後、チャットからFilesystem MCPのツールを呼び出します。
sandboxで読み書きを確認する
最初に許可フォルダを取得します。
自宅PC Filesystemを使って、現在の許可フォルダを取得して。
sandboxのパスが返れば接続できています。
次にファイルを作ります。
sandboxにhello.mdを作成して、
「ChatGPTからの初書き込みテスト」
と書いて。
作成されたhello.mdをWindows側でも確認します。
部分編集を試す
次にedit_fileで1行追加します。
hello.mdに
「部分編集テスト成功」
という1行を追加して。
まずdryRunで差分を確認してから反映して。
dryRunのdiffを確認してから反映します。
Codexから同じファイルを更新する
Codexからhello.mdへ次の1行を追加します。
CodexからChatGPTへ:sandbox経由の接続と連携テストに成功しました。
そのあとChatGPTからhello.mdを読み直します。
Codexが追加した行まで読めれば、ChatGPTとCodexの両方から同じローカルファイルを扱えています。
実運用するフォルダを追加する
sandboxで確認できたら、allowed-folders.txtへ開発フォルダを追加します。
許可フォルダには、作業ルートとは別の場所や別ドライブも指定できます。
# 最初の接続確認用
C:\ai_workspace\chatgpt_local_access\sandbox
# Cドライブの開発プロジェクト
C:\ai_workspace\project_alpha
# Dドライブの開発プロジェクト
D:\projects\project_beta
保存したら、次のファイルを実行します。
C:\ai_workspace\chatgpt_local_access\scripts\update-filesystem-allowlist.cmd
適用予定のフォルダ一覧を確認し、Yを入力します。
allowed-folders.applied.txtは次の内容になります。
C:\ai_workspace\chatgpt_local_access\sandbox
C:\ai_workspace\project_alpha
D:\projects\project_beta
許可フォルダを変えたらtunnel-clientを再起動します。
02-stop-tunnel-client.cmd
01-start-tunnel-client.cmd
03-check-tunnel-client.cmd

チャットごとに作業対象フォルダを選ぶ
複数のプロジェクトを許可したあとは、チャットの最初に一覧を取得します。
自宅PC Filesystemを使って、現在の許可フォルダを取得し、フルパスを番号付きで列挙して。
一覧から使うプロジェクトを選びます。
これから3番をこのチャットの作業対象フォルダにする。
以後「作業対象フォルダ」と言ったら3番のフルパスを指す。
以後は、「作業対象フォルダの設計書を読んで」のように短く依頼できます。
ハマったこと:特定のチャットだけMCPが使えなくなった
構築後の検証中、MCPが使えなくなるトラブルが起きました。
ChatGPT側のアクション許可設定を途中で変更したあと、そのチャットだけMCPツールが無効になりました。
tunnel-client、Windows、ブラウザを再起動し、アクション許可設定も戻しましたが、そのチャットの状態は変わりませんでした。
新しいチャットでは同じFilesystem MCPを利用できました。
原因は未特定です。類似した「特定チャットだけMCPツールが無効になる」という報告が、OpenAI Developer CommunityやOpenAIのGitHubリポジトリのIssueで確認できています。
現在は、利用中のチャットではアクション権限を固定しています。
tool has been disabled が出たときの切り分け
最初にローカル側を確認します。
curl.exe -fsS http://127.0.0.1:8080/healthz
curl.exe -fsS http://127.0.0.1:8080/readyz
liveとreadyが返ったら、profileも確認します。
.\tunnel-client.exe doctor --profile filesystem-sandbox --explain
ローカル側が正常なら、新しいチャットでも同じ依頼を試します。
新しいチャットで使えれば、元のチャット側の状態まで切り分けられます。

許可フォルダには開発ファイルだけを置く
Filesystem MCPへ許可したフォルダは、ChatGPTからアクセスできる範囲になります。
APIキーや秘密鍵などは許可フォルダの外で管理します。
たとえば、次のような情報です。
.env
APIキー
秘密鍵
サービスアカウントのJSON
本番データ
個人情報
DBバックアップ
最初はsandboxだけを許可し、動作確認後に必要な開発プロジェクトを追加します。
まとめ
構築の流れをまとめると、次の順番です。
C:\ai_workspace\chatgpt_local_accessとsandboxを用意する- Node.jsと
tunnel-client.exeを準備する - Codexに補助ファイル一式を作らせる
- Filesystem MCPを単体で起動確認する
- OpenAI PlatformでTunnelとRuntime APIキーを作る
tunnel-client initで接続設定をprofileにまとめるdoctor、healthz、readyzを確認する- ChatGPTへFilesystem MCPを登録する
- sandboxで読み書きを試す
allowed-folders.txtへ実運用フォルダを追加する
これで、Web版ChatGPTから許可したローカルファイルを直接扱えます。
ChatGPTとCodexを同じプロジェクトで使う運用は、運用編でまとめています。
運用編:Web版ChatGPTから自宅PCのファイルを直接操作。Codexと連携してAI同士で開発を引き継ぐ環境を作った

公式情報・参照先
- OpenAI:Secure MCP Tunnel
- OpenAI:Developer mode and MCP apps in ChatGPT
- OpenAI:tunnel-client Troubleshooting
- OpenAI Developer Community:Calls to a custom MCP tool are constantly blocked with the message: tool has been disabled
- OpenAI Developer Community:Remote MCP app tools silently dropped from a conversation’s tool manifest in long/old chats
- GitHub Issue:Dev mode: Always allow on a tool approval silently drops the connector session
今日の注目アイテム

パワフルな風と温冷自動切り替えを備えたコンパクトなヘアドライヤー。折りたたんで収納できるため、自宅だけでなく旅行や出張先でも使いやすいモデルです。

高さを8cmと10cmから選べ、枕本体とカバーを水洗いできるまくら。寝返りのしやすさや清潔さを重視したい方の寝具選びに向いています。

豆挽きからコーヒー抽出まで自動で行える、デロンギの全自動コーヒーマシン。コーヒーとエスプレッソの2メニューに対応し、自宅で手軽に楽しみたい方に向いています。
※アフィリエイトリンクを含みます。

