Web版ChatGPTから自宅PCのファイルを操作する方法|Secure MCP Tunnel+Filesystem MCPをWindowsで構築【構築偏】

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同士で開発を引き継ぐ環境を作ったで紹介しています。

Web版ChatGPTから自宅PCのファイルを直接操作。Codexと連携してAI同士で開発を引き継ぐ環境を作った【運用偏】
Web版ChatGPTからSecure MCP Tunnel経由で自宅PCのファイルを操作し、Codexと同じローカル環境を共有。talkフォルダで設計・実装・レビューを引き継ぎ、スマホから進める運用例も紹介します。

この記事で作る環境

完成後は、ChatGPTから許可したローカルフォルダを読み書きできます。

今回使う構成は次の通りです。

Web版ChatGPT
      ↓
OpenAI Secure MCP Tunnel
      ↓
自宅PCの tunnel-client
      ↓
Filesystem MCP
      ↓
許可したWindowsフォルダ

tunnel-clientは自宅PCからOpenAIへHTTPSで接続します。Filesystem MCPは自宅PC側で動かし、許可したフォルダだけを操作対象にします。

Tunnelの作成・編集にはTunnels Read + Managetunnel-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.cmdTunnelから呼ばれるFilesystem MCP起動入口
allowed-folders.txt許可したいフォルダの編集用リスト
allowed-folders.applied.txt現在適用中の許可フォルダ
allowlist-lib.ps1許可パスの検証
run-filesystem-mcp.ps1適用済みリストを読みFilesystem MCPを起動
update-filesystem-allowlist.*許可リストを確認して反映
tunnel-client-control.ps1tunnel-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

livereadyが返ったら、profileも確認します。

.\tunnel-client.exe doctor --profile filesystem-sandbox --explain

ローカル側が正常なら、新しいチャットでも同じ依頼を試します。

新しいチャットで使えれば、元のチャット側の状態まで切り分けられます。

許可フォルダには開発ファイルだけを置く

Filesystem MCPへ許可したフォルダは、ChatGPTからアクセスできる範囲になります。

APIキーや秘密鍵などは許可フォルダの外で管理します。

たとえば、次のような情報です。

.env
APIキー
秘密鍵
サービスアカウントのJSON
本番データ
個人情報
DBバックアップ

最初はsandboxだけを許可し、動作確認後に必要な開発プロジェクトを追加します。

まとめ

構築の流れをまとめると、次の順番です。

  1. C:\ai_workspace\chatgpt_local_accessとsandboxを用意する
  2. Node.jsとtunnel-client.exeを準備する
  3. Codexに補助ファイル一式を作らせる
  4. Filesystem MCPを単体で起動確認する
  5. OpenAI PlatformでTunnelとRuntime APIキーを作る
  6. tunnel-client initで接続設定をprofileにまとめる
  7. doctorhealthzreadyzを確認する
  8. ChatGPTへFilesystem MCPを登録する
  9. sandboxで読み書きを試す
  10. allowed-folders.txtへ実運用フォルダを追加する

これで、Web版ChatGPTから許可したローカルファイルを直接扱えます。

ChatGPTとCodexを同じプロジェクトで使う運用は、運用編でまとめています。

運用編:Web版ChatGPTから自宅PCのファイルを直接操作。Codexと連携してAI同士で開発を引き継ぐ環境を作った

Web版ChatGPTから自宅PCのファイルを直接操作。Codexと連携してAI同士で開発を引き継ぐ環境を作った【運用偏】
Web版ChatGPTからSecure MCP Tunnel経由で自宅PCのファイルを操作し、Codexと同じローカル環境を共有。talkフォルダで設計・実装・レビューを引き継ぎ、スマホから進める運用例も紹介します。

公式情報・参照先

今日の注目アイテム

【公式ストア限定】リファビューテックドライヤー/ReFa BEAUTECH DRYER (ホワイト, S+)
コンパクトなのに、パワフル。ツヤめき、まとまる仕上がりを、海外でも

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

Amazon|ヒツジのいらない枕 テンセル枕カバー付 まくら 低反発 高反発 丸洗いOK 安眠枕 寝返り 至極|枕 オンライン通販
ヒツジのいらない枕 テンセル枕カバー付 まくら 低反発 高反発 丸洗いOK 安眠枕 寝返り 至極が枕ストアでいつでもお買い得。当日お急ぎ便対象商品は、当日お届け可能です。アマゾン配送商品は、通常配送無料(一部除く)。

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

Amazon.co.jp: デロンギ 全自動コーヒーマシン マグニフィカS 全2メニュー 豆挽き コーヒーメーカー エスプレッソマシン ブラック ECAM22112B 【デロンギファミリー登録で3年保証、修理も原則72時間以内対応】 : ホーム&キッチン
Amazon.co.jp: デロンギ 全自動コーヒーマシン マグニフィカS 全2メニュー 豆挽き コーヒーメーカー エスプレッソマシン ブラック ECAM22112B 【デロンギファミリー登録で3年保証、修理も原則72時間以内対応】 : ホ…

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

※アフィリエイトリンクを含みます。

タイトルとURLをコピーしました