Secure Local Workspace MCP
Secure Local Workspace MCP(安全なローカルワークスペースMCP)
English | 中文(默认)
ChatGPT ウェブ版をローカルプロジェクトに安全に接続します。Git を使用するかどうかに関係なく、ファイルの表示・検索・変更、ホワイトリスト化されたタスクの実行が可能です。Git プロジェクトでは、差分の確認、ローカルコミットの作成、ユーザーの明示的な承認後に指定のリモートとブランチへのプッシュも行えます。
Codex をインストールする必要はありません。ChatGPT は OpenAI Secure MCP Tunnel を通じて、お使いのコンピューター上で稼働し続ける MCP サービスを呼び出します。プロジェクトディレクトリと MCP ポートをパブリックネットワークに公開する必要はありません。
まず利用シナリオを選択してください
お客様の状況 | 開始場所 |
ChatGPT に初めて接続する、Tunnel がまだない | |
Tunnel は ChatGPT で使用可能、プロジェクトを追加したいだけ | |
プロジェクトを追加済み、ChatGPT に変更やコミットをさせたい | 日常使用プロンプトを直接コピー |
ChatGPT に push を許可したい | 先に制御付き push を個別に有効化を完了する |
インストールまたは接続でエラーが発生した | よくある質問を確認 |
Related MCP server: Kastor
得られるもの
ワークフロー | MCP ツール | 主な保護 |
プロジェクトの発見 |
| Git リポジトリと一般的な非 Git プロジェクトを識別し、事前承認された親ディレクトリのみをスキャン |
接続または解除 |
| 承認範囲を越えられない。解除してもプロジェクトファイルは削除されない |
表示と検索 |
| ディレクトリ、深さ、数、ファイルサイズを制限 |
ファイルの変更 |
| 既存ファイルの変更または削除には最新の SHA-256 との一致が必要 |
検証の実行 |
| 設定済みの固定タスクのみ実行可能 |
Git の確認 |
| 固定の読み取り専用 Git コマンドのみ、ステータス/差分ハッシュを返す |
ローカルコミット |
| 明示的なファイル、並行処理防止のステータス、機密スキャン、既存のステージ済み内容を混在させない |
リモートへのプッシュ |
| デフォルトで無効。指定の remote/branch のみ許可。force push 禁止 |
このプロジェクトは、任意のシェル、git add .、強制プッシュ、履歴の書き換え、本番デプロイ、任意のディスクアクセスを提供しません。
初回インストール:ゼロから ChatGPT に接続
以下の手順は Windows PowerShell を例としています。通常は一度だけ実行すれば十分です。
ステップ 1:前提条件の確認
必要なもの:
Windows PowerShell;
Git;
Node.js 20 以降;
ChatGPT 開発者モードを使用できること;
OpenAI Platform で Tunnel に必要な権限があること。
本機のコマンドを確認:
git --version
node --version
npm --versionChatGPT に Git commit を作成させる場合は、先に Git の ID を設定してください。設定済みの場合はスキップできます:
git config --global user.name "Your Name"
git config --global user.email "you@example.com"ステップ 2:プロジェクトのダウンロード
git clone https://github.com/dxawdc/secure-local-workspace-mcp.git
Set-Location .\secure-local-workspace-mcpステップ 3:OpenAI ページで Tunnel を準備
OpenAI Secure MCP Tunnel 公式ドキュメントに従って以下の操作を完了します:
OpenAI Platform で Tunnel を作成;
Tunnel を使用する ChatGPT workspace に関連付け;
tunnel-client用の Runtime API Key を作成;公式最新版の
tunnel-clientをダウンロード;tunnel_idとtunnel-client.exeの本機パスを記録。
これらの手順にはアカウント権限とキーが関わるため、ユーザーが OpenAI ページで確認する必要があります。プロジェクトがユーザーに代わってアカウント資格情報を作成したり読み取ったりすることはありません。
ステップ 4:Runtime Key をリポジトリ外に保存
Key を README、プロジェクト設定、Git、PowerShell コマンド履歴に書き込まないでください。まずリポジトリ外のファイルを作成します:
New-Item -ItemType Directory -Path "C:\Secrets" -Force
notepad "C:\Secrets\openai-tunnel-runtime-key.txt"メモ帳に Runtime Key を貼り付け、1 行だけ残して保存して閉じます。本番環境やチーム環境では、組織が承認したキー管理ソリューションに切り替え、このファイルのアクセス権限を制限してください。
ステップ 5:ワンクリック設定を実行
例の 3 つのパスと Tunnel ID を自分の値に置き換えます:
.\scripts\quick-setup.ps1 `
-ProjectRoot "D:\Projects\my-app" `
-DiscoveryRoot "D:\Projects" `
-TunnelId "tunnel_REPLACEME" `
-TunnelClient "C:\Tools\tunnel-client\tunnel-client.exe" `
-ControlPlaneApiKeyRef "file:C:\Secrets\openai-tunnel-runtime-key.txt" `
-RegisterStartup `
-StartTunnelパラメータの入力方法:
ProjectRoot:今回 ChatGPT に操作させるプロジェクトディレクトリ。Git リポジトリでなくても可;DiscoveryRoot:ChatGPT がプロジェクトを発見できる親ディレクトリ。通常はProjectRootの 1 つ上;TunnelId:OpenAI Platform に表示される実際のtunnel_id;TunnelClient:ダウンロードして解凍したtunnel-client.exe;ControlPlaneApiKeyRef:Runtime Key ファイルのパス。file:プレフィックスを付ける必要があります。
スクリプトが自動的に実行すること:
ロックファイルを使用して Node.js 依存関係をインストール;
ユニットテストと MCP スモークテストを実行;
プロジェクトを読み書き可能に設定し、ローカル commit を許可;
プロジェクト発見ディレクトリを承認;
package.jsonのtest、lint、build、typecheckを自動識別;Tunnel profile を作成して確認;
現在のユーザーのログイン時自動起動タスクを登録し、Tunnel を即座に起動。
デフォルトでは push は許可されません。非 Git プロジェクトは自動的にファイルの読み書き機能を保持しつつ、commit と push を強制的に無効化します。手動で -DisableCommit を追加する必要はありません。
本機から OpenAI へのアクセスにプロキシが必要な場合は、コマンドの末尾に以下を追加します:
-HttpProxy "http://127.0.0.1:7890"ステップ 6:ChatGPT でプライベートアプリを作成
ChatGPT 設定で開発者モードを有効化。Enterprise/Edu ユーザーは管理者の承認が必要な場合があります;
ChatGPT Plugins を開く;
プラス記号をクリックして開発者モードアプリを作成;
Connection で Tunnel を選択;
作成した Tunnel を選択するか、実際の
tunnel_idを貼り付け;アプリを作成し、ChatGPT がツールを発見するのを待つ。
公式ドキュメントでは tunnel-client を稼働させ続けることが要求されています。そうしないと ChatGPT はツールを発見または呼び出せません。
ステップ 7:接続を検証
ChatGPT の新しい会話でこのアプリを選択するか @ を付けてから、以下を送信します:
调用 diagnostics 和 list_projects。
告诉我 Tunnel 后面的本地 MCP 是否正常,并列出已授权项目、读写权限、commit 权限和 push 权限。
不要修改任何文件。通常はプロジェクトリストが表示され、デフォルトの allowPush は false になります。新バージョンでは合計 17 個のツールが提供されます。古いツールが表示される場合は、Tunnel を再起動してから ChatGPT でアプリを更新するか、新しい会話を作成してください。
既存の Tunnel:新しいプロジェクトを追加
Tunnel とログイン時自動起動タスクがこのプロジェクトで設定されている場合は、リポジトリディレクトリで以下を実行します:
.\scripts\quick-setup.ps1 `
-ProjectRoot "D:\Projects\another-app" `
-DiscoveryRoot "D:\Projects" `
-SkipInstall `
-SkipTests `
-RestartTunnelこれによりプロジェクト設定が追加または更新されますが、他の承認済みプロジェクトは上書きされません。
このプロジェクトでログインタスクを登録していない場合は、-RestartTunnel を外し、設定完了後に元の方法で tunnel-client を再起動してください。再起動後、ChatGPT のアプリ設定でツールを更新します。
ChatGPT に非 Git プロジェクトを自動接続させる
一般的な Node.js、Python、Java、Go、Rust、.NET、PHP、Ruby、Elixir、Swift、CMake などのプロジェクトディレクトリは discover_projects で自動的に識別されます。ディレクトリに一般的なプロジェクト識別子がない場合でも、承認済みの DiscoveryRoot 内で明示的な絶対パスを使用して接続できます:
调用 discover_projects,列出已批准目录中的 Git 和非 Git 项目。
把 D:\Projects\notes-app 接入为可读写项目。
如果它不是 Git 仓库,必须自动关闭 commit 和 push。
接入后调用 list_projects,确认 projectType 和最终权限。ChatGPT が connect_project を呼び出すと、設定は即座に永続化され、現在の MCP プロセスで有効になります。個々のプロジェクトのために Tunnel を再起動する必要はありません。
表示のみ許可、変更は不可
.\scripts\quick-setup.ps1 `
-ProjectRoot "D:\Projects\reference-project" `
-DiscoveryRoot "D:\Projects" `
-ReadOnly `
-SkipInstall `
-SkipTests `
-RestartTunnel変更は許可、commit は不可
.\scripts\quick-setup.ps1 `
-ProjectRoot "D:\Projects\my-app" `
-DiscoveryRoot "D:\Projects" `
-DisableCommit `
-SkipInstall `
-SkipTests `
-RestartTunnel発見可能なプロジェクトの親ディレクトリのみ追加
.\scripts\quick-setup.ps1 `
-DiscoveryRoot "E:\OtherProjects" `
-SkipInstall `
-SkipTests `
-RestartTunnelDiscoveryRoot をディスクのルート、ユーザーディレクトリ全体、または大量の個人ファイルを含むディレクトリに設定しないでください。コードリポジトリ専用の親ディレクトリにする必要があります。
日常使用プロンプト
プロジェクト名は list_projects が返す ID に従います。以下のプロンプトは ChatGPT に直接コピーし、プロジェクト名と要件を置き換えて使用できます。
1. 表示と分析のみ
使用 Secure Local Workspace MCP 检查项目 my-app。
先调用 list_projects 确认项目,再查看与登录流程有关的代码。
解释实现和可能的问题,不要修改文件,不要提交。2. 変更してテスト、ただしコミットしない
检查项目 my-app 的重复提交问题并完成修复。
修改前重新读取目标文件并使用最新 SHA-256,只改与本次问题有关的文件。
运行项目允许的 test 或 lint 任务,最后展示 git_status 和 git_diff。
不要 commit,不要 push。3. 変更、テスト、ローカルコミット作成
修复项目 my-app 的重复提交问题。
运行相关测试,然后展示完整 git_diff 和 git_status。
确认差异只包含本次修改后,使用最新 statusSha256,
只提交本次涉及的明确文件,提交信息为:fix: prevent duplicate submissions。
提交后报告本地 commit SHA。不要 push。4. 完了済みの変更のみコミット
检查项目 my-app 当前 git_status 和 git_diff,不要继续改代码。
如果存在与本任务无关或已经预暂存的文件,停止并告诉我。
否则使用最新 statusSha256,只提交这些明确文件:src/example.js、test/example.test.js。
提交信息为:fix: handle duplicate submissions。不要 push。git_commit は以下を拒否します:
.、ディレクトリ、またはプロジェクト外のパス;レビュー後に変化した Git ステータス;
事前に存在する staged changes;
.env、秘密鍵、証明書、パスワードストアなどの機密パス;信頼度の高い API Key、Token、秘密鍵、実際の Tunnel/組織識別子;
git diff --cached --checkの失敗;本機設定で commit が有効になっていない場合。
コミットが成功したことはローカルで commit されたことを意味するだけで、push されたことを意味しません。
制御付き push を個別に有効化
Push は外部への書き込み操作のため、本機でプロジェクトごとに明示的に有効化する必要があります。ターゲットブランチも同時に制限することをお勧めします:
.\scripts\quick-setup.ps1 `
-ProjectRoot "D:\Projects\my-app" `
-AllowPush `
-AllowedRemote "origin" `
-AllowedBranch "main" `
-SkipInstall `
-SkipTests `
-RestartTunnelその後、ChatGPT で明確に要求します:
检查项目 my-app 当前分支、HEAD、git_status 和待推送 commit。
只有在工作区状态和 commit 都符合预期时,才把当前 HEAD 推送到允许的 origin/main。
禁止 force push。分别报告本地 commit SHA、远端分支和推送结果。git_push は自動的に commit を作成せず、設定されていない remote や branch にもプッシュしません。
自動化と手動操作の境界
操作 | 自動化されるか | 理由または説明 |
依存関係のインストール、テストの実行 | 自動 |
|
発見ディレクトリとプロジェクトの追加 | 自動 | 冪等に更新、他のプロジェクトを上書きしない |
一般的な npm タスクの識別 | 自動 | 固定タスクのホワイトリストにのみ追加 |
Tunnel profile の作成、確認 | 自動 | ユーザーが Tunnel ID、Client パス、キー参照を提供する必要がある |
ログイン時自動起動の登録 | オプションで自動 |
|
OpenAI Tunnel の作成 | ユーザーが確認 | OpenAI 組織と workspace の権限に関わる |
Runtime API Key の作成 | ユーザーが確認 | キーはユーザーまたは組織管理者のみが管理すべき |
ChatGPT でのアプリ作成 | ユーザーが確認 | ChatGPT が権限と接続確認画面を表示 |
Git commit | ChatGPT が明確な指示に従って実行 | デフォルトでステータスの確認と明示的なファイルが必要 |
Git push | 本機で承認後に ChatGPT が実行 | デフォルトで無効、remote/branch が制限 |
より詳細な一括設定、プロキシ、自動起動、ロールバック、無人実行の参考:Windows 自動化設定フロー。
設定管理
デフォルトの設定ファイルはリポジトリ外にあります:
%USERPROFILE%\.secure-local-workspace-mcp\config.json新バージョンの設定が存在しない場合、サービスは旧パスを互換的に読み取ります:
%USERPROFILE%\.local-project-workspace\config.json現在の設定を確認:
npm run config -- listPowerShell 自動化を使用しない場合は、クロスプラットフォームの設定 CLI を呼び出すこともできます:
npm run config -- add-discovery-root --root "D:\Projects"
npm run config -- add-project `
--root "D:\Projects\my-app" `
--writable `
--allow-commit `
--no-push互換スクリプト bootstrap-config.ps1 も冪等に単一プロジェクトを追加または更新し、設定全体を置き換えることはありません。
プロジェクトの更新
Set-Location .\secure-local-workspace-mcp
git pull --ff-only
npm ci
npm test
npm run smoke:mcpコードまたはツール定義を更新した後は、tunnel-client を再起動し、ChatGPT でアプリを更新するか新しい会話を作成する必要があります。
プロジェクトアクセスの取り消し
ChatGPT で送信:
调用 disconnect_project 撤销项目 my-app 的 MCP 访问权限,然后重新列出项目。これはローカルの承認設定を削除するだけで、プロジェクトディレクトリ、ファイル、Git 履歴は削除されません。
ログイン時自動起動タスクを削除する場合:
Stop-ScheduledTask -TaskName "Secure Local Workspace MCP Tunnel"
Unregister-ScheduledTask -TaskName "Secure Local Workspace MCP Tunnel" -Confirm:$falseこれにより Tunnel、Runtime Key、profile、プロジェクトファイルは削除されません。
よくある質問
Git commit identity is missing
先に Git のユーザー名とメールアドレスを設定し、その後で設定を再実行します:
git config --global user.name "Your Name"
git config --global user.email "you@example.com"Scheduled task not found
-RestartTunnel を使用しましたが、Tunnel はこのプロジェクトで登録されていません。そのパラメータを外してプロジェクト設定を完了し、元の方法で tunnel-client を再起動してください。
ChatGPT で Tunnel が表示されない
順に確認:
Tunnel が Platform organization だけでなく、現在の ChatGPT workspace に関連付けられているか;
現在のアカウントに Tunnels Read + Use があるか;
ChatGPT 開発者モードが有効か;
tunnel-clientがまだ実行中で healthy/ready 状態か。
ChatGPT が 17 個のツールを発見しない
Tunnel runtime を再起動;
tunnel-client doctor --profile <profile> --explainを実行;ChatGPT のアプリ設定で更新;
新しい ChatGPT 会話を作成し、古い会話がキャッシュされたツール定義を使い続けないようにする。
プロジェクトを発見または接続できない
プロジェクトは承認済みの
DiscoveryRoot内にある必要があります;Git リポジトリと一般的なプロジェクト識別子を含む非 Git ディレクトリは自動的に発見結果に表示されます;
プロジェクト識別子のない通常のディレクトリは自動的にリストされませんが、ChatGPT にその明示的な絶対パスで
connect_projectを呼び出させることができます;非 Git プロジェクトは
projectType: non-gitと表示され、commit と push が強制的に無効化されます;npm run config -- listを実行して実際の設定を確認;必要に応じて親ディレクトリを再追加し、Tunnel を再起動。
書き込みが拒否される、または SHA の期限切れが表示される
プロジェクトで書き込みが許可されている必要があります;
既存ファイルを変更または削除する前に、ChatGPT は
read_fileを再呼び出しする必要があります;ファイルが他のプログラムによって変更された場合、古い SHA は無効になります。これは正常な並行処理保護です。
既存の staged changes により commit が拒否される
先に ChatGPT に git_status を呼び出させて確認します。ステージ解除が可能な場合は、git_unstage を呼び出して明示的なファイルを処理します。この操作はワークスペースの内容を破棄しません。
Tunnel はローカルで正常だが、ChatGPT の呼び出しがタイムアウトする
api.openai.com:443へのアウトバウンド接続を確認;ブラウザでプロキシを使用できても、
tunnel-clientが同じプロキシを自動的に使用するとは限りません;初回設定時に
-HttpProxyでプロキシを書き込みます;本機のファイアウォール、プロキシ証明書、組織のネットワークポリシーを確認。
ローカル検証
npm ci
npm test
npm run smoke:mcp
npm audit --omit=devローカル MCP のフォアグラウンド起動:
.\scripts\start-local.ps1Tunnel のステータスは少なくとも以下を満たす必要があります:
process_running = true
healthy = true
ready = trueセキュリティの推奨事項
Discovery Root は専用のプロジェクト親ディレクトリにし、ディスクのルートやユーザーディレクトリ全体を使用しない;
まず commit のみを有効にし、本当に必要な場合にのみプロジェクト、remote、branch 単位で push を有効にする;
Runtime Key、Tunnel profile、実際の設定、ログはリポジトリ外に保存する必要がある;
MCP commit はプロジェクトの Git hooks を一時的に無効化するため、テストとフォーマットは明示的なタスクホワイトリストで実行する;
プッシュ前には明確な commit SHA、remote、branch を照合する;
キーを誤ってコミットした場合は、直ちに失効させ、完全な Git 履歴をクリーンアップする。
セキュリティ設計と脆弱性の報告については SECURITY.md を参照してください。
公式リファレンス
License
MIT
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseNot gradedqualityAmaintenanceEnables ChatGPT to inspect and edit local projects through a secure MCP interface, offering workspace management, file operations, git integration, and safe command execution.4MIT
- AlicenseNot gradedqualityAmaintenanceLets ChatGPT or MCP clients work with files on your machine, with tools for reading, editing, searching, git operations, and safety checks.MIT
- AlicenseNot gradedqualityCmaintenanceEnables ChatGPT web to safely read and modify only explicitly allowed local project files through OpenAI Secure MCP Tunnel, including git operations, file edits, and running project scripts, while enforcing strict security boundaries.2MIT
- AlicenseNot gradedqualityBmaintenanceEnables ChatGPT or any MCP client to operate safely on a designated workspace by listing, reading, searching, writing, and trashing files, inspecting Git status/log/diff, and optionally running allowlisted executables without a shell.Apache 2.0
Related MCP Connectors
Project management MCP for AI agents with safe task reads and writes.
A paid remote MCP for OpenAI Codex agent coordination MCP, built to return verdicts, receipts, usage
An MCP server that gives your AI access to the source code and docs of all public github repos
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/dxawdc/chatgpt-workspace-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server