Local Workspace MCP Manager
Local Workspace MCP Manager
Настольное приложение для Windows, которое позволяет ChatGPT Web (режим разработчика) безопасно читать, искать, просматривать и редактировать файлы в папках, которые вы явно одобрили, и при желании выполнять одобренные команды разработчика. Собрано как однопроцессное приложение Rust/Tauri со встроенным MCP-сервером (Streamable HTTP на 127.0.0.1), публикуемым в ChatGPT через Tailscale Funnel.
К вашей файловой системе есть ровно один MCP-вход: конвеер политик, закрывающийся при сбое (fail-closed). Через него проход каждый вызов MCP-инструмента. Десктоп-интерфейс — это отдельн контур админиестративного управления правами рабочиых про странств, настройками подключения и жизненным циклом; стро ки аудита в UI — это операционная история, а не управляющий затвор конвейера, который закрывает доступ при сбое.
Каун истроен коннекшен
MCP-сервер привязывается к адресу только loopback (
127.0.0.1:<ephemeral port>).Встроенный sidecar Tailscale Funnel публикует этот loopback-сервер в публичный интернет по адресу
https://<your-hostname>.ts.net(одноразовое включение администратором tailnet: HTTP-сертификаты и атрибут узла funnel).Публичный URL содержит секретный capability-токен. Funnel — это публичный вход (public ingress): единственная защита endpoint — это тайность самого URL, поэтому общаться с ним как с апаролем: любой, кто его получил, к может вызь вать ваш MCP-коннектор. В любое время вы можете перевыпустить его в разделе Безопасность → Перевыпустить URL подключения.
Related MCP server: local-mcp-chatgpt-tunnel
Технологический стек
Shell: Tauri 2 (Rust) с системным треем (открыть, запустить/остановить туннель, приостановить MCP-доступ, выйти), закрытием в трей, автозапуском при входе в систему, запуском в свернутом в трей виде и защитой от повторного запуска
UI: React 18 + TypeScript (строгий), стили на Tailwind CSS v4 и включенных в проект primitives shadcn/ui (new-york/zinc, токены радиуса 2px «Quiet Console»); toasts через sonner; встроенные шрифты Inter Variable / JetBrains Mono Variable; тема Light/Dark/System сохраняется в настройках
Базовый конвейер:
crates/core— конвейер политик с закрытием при отказе (пауза → рабочая область → capability → изоляция → денай-лист чustвительных файлов → выполнение) с append-only SQLite аудитом журналом
Предварительные условия
Windows 10/11
Инструментариальный набор Rust с целью MSVC (
rustup default stable-x86_64-pc-windows-msvc) и Visual Studio Build Tools (рабочая нагрузка C++)Node.js (LTS) + npm
Аккаунт Tailscale (бесплатности достаточно); админ tailnet должен один раз включить Funnel (HTTPS-сертификат в настройках DNS и атрибут узла
funnelв Access controls)
Сборка и запуск
npm install
# Development (hot-reload UI):
npx tauri dev
# Release build (produces an NSIS installer):
npx tauri buildАртифакты попадают в src-tauri/target/release/ (исполняемый файл) и src-tauri/target/release/bundle/nsis/ (установщик).
Бинарные файлы sidecar
Sidecar Tailscale Funnel (Go, в sidecars/tailscale-funnel) собирается шагом упаковки (npm run build:sidecar → scripts/build-tailscale-sidecar.ps1) и является единственным сетевым sidecar, поставляемым как binaries/tail.scale-funnel-sidecar. Ранее запущенный туннельный рантайм OpenAI/Cloudflare больше не компилируется и не паккезуется; устарение пар- с лишь изся оставлено только для совместимости с обстовлением.
Первичная настройка
Запустите приложение и проходите мастер настройки: добавте на одной** рабочее про странство (по умолчанию включено чтение, запись/выполнение — выключены), затем ады определльной вход в Tailscale по запросу.
Наж мите Запуск на поверхности. Приложение за стрит локальный MCP-сервер, за спускает sidecar Funnel и проводит через одноразовые одобрения со стороны tailnet-администратора.
Когда карточкам станет Онлайн, скопируйте секретный capability URL в ChatGPT (Developer Mode → создайте коннектор типа MCP / remote endpoint) и держите его в секрете.
Повседневное поведение настройается в Настройках:
Общие: автоматический запусти туннеля при начале приложения, апуск с Windows, сворачивание в трен при запуске, продолжение работы в трее при закрытии окна
Внешний вид: theme Light / Dark / System
Подключение: метка Funnel hostname (для е из зменения требует сбруса айдентичности Tailscale)
Системный трей отражает основные действия: открыть окна, дозапустить/остановить туннель, приполнозить/возобновить MCP-доступ, выйти.
MCP-инструментарий
Предоставляется десять инструтментов. list_workspaces возврацает идентификаторы одобренных рабочих пространств (редакция — никогдаабсолютные путы; на него действуют пауза и аудит, как и на любой инструмент). Девять workspace-скопных инструтов: list_directory, find_files, search_text, read_file, read_files (≤8 за вызов), create_file (≤10 объекта), apply_patch, run_command (одобренные baseимена: git, cargo, rustc, npm, npx, node, pnpm, yarn, python, python3, pip), и go, dotnet и run_powershell (требуется Full PowerShell режим рабочего пространства). Инструты чтения возвращают ограниченные результаты (read_file возвращает окно ≤256 KB с флагом усечения) и содержат revision (sha256); apply_patch требуется как base_revision.
Модель безопасности
Только адрес loopback: MCP-сервер слушает строго 127.0.0.1, никогда всех интерфейсов. Единственный внешнический выход — єто исходящий HTTPS-фunnel через sidecar.
Секретный capability URL: публичный endpoint внедряет неугадываемый capability-токен; на самом endpoint нет логина. Если он утечка, повторите его из страницы Security.
Переключатель паузы (kill switch): один тумблер (UI, трей) приостанавливает все вызовы MCP tools (вкл. list_workspaces), UI работает дальше. Пауза действует даже в несбитой mode.
Конвейер fail-closed: каждый вызов инструмента проходит одинконвейер — паузер, поиск рабочего пространства, capability gate (
READ_DISABLED/WRITE_DISABLED/EXECUTE_DISABLED),ограничение пути (канонизированный, почистовой containment; symlinked paths не могут выйти за пределы), deny-list sensitive файлов, политика выполнения — и записывает ровно одну строку адита. Любое failure конвейера расшибка в короткое замыкание, и несписанная а дефицит-строка вызывает отказ вызова.Deny-list чувствительных файлов:
.env*,*.pem,*.key,id_rsa*,.git/config,credentials*,*.pfx,*.p12,secrets.*и всёnode_modules/**блокируется на любой глубине, как для чтении so и для записи. Преодоление запретов requires unrestricted mode (см. ниже) либо code changes.Редактирование через пачи: изменеения — это якорные подstrom замены (
apply_patch), а не перезапись files; каждое изменение carrybase_revision(SHA-256 содержимого файла по последнему виду) и вызовет ошибкуFILE_CHANGED_SINCE_READ, если файлл был изменен elsewhere. Новые заданы атомарно через временный file + rename.Append-only audit log: каждый MCP-запрос записывает apprently одну аудиrow (allow / deny / error) перед отправиение ответа; строки записей never can be измненены или удалены. Record с in restricted are marked. UI показывавает последние 100 an event events.
Limited выплолнение: команды запускатся без shell (без проа поверхс to quoting/parsing), в пределах Infinite Job Object Windows (timeout kill the whole processor "kernel three), с обрегом окружением, тайм-аут по умолчанию 60 c / макс. 10 миниут, 512 KiB per output stream. PowerShell-скрипт передается только через stdin — не через argv, ауди-деталей or диагностики; дочерние console windows not показывются at all.
Неограниченныйо дострип (неопт-ин, на volont): переключатель на странице Security, прячето за подтверждением typed and stale red band. Mosлабляет capability gates, deny-list, approved-command list, and Full-PowerShell mode gate — для всех рабочих простр. Граница папок (paths still inside registered workspaces), kill pause-truck, audit logging remains. Includes он, эгаy and ecology of conversation.
Обработке secret: capability-токен never пападает в readback-пути UI, командной строке and diagnostics. Секреты соединения го house in DPAPI store underВ шестые LocalAppData;
settings.jsonне содержит никакие secrets, only non-secret prferences.**Защищенный webview: непустой Content-Security-Policy (
default-src 'self', ограниченныйconnect-srcдля IPC, allowaclсо Inline styles for Radix positit.); opener plugin includes onlylogin.tailscale.com,tailsccale.comand*.ts.netURLs.
From slowdowns (Honest)
Рабочая directory-ограничness не является Windows security sandbox: accessable program ка be изняние paths outside workspace в вашем имя.
Tunneль — это публичный вход; единственный защитник endpoint — секретность capability URL. По сомнению — перенаправьте его.
Tailscale-tailnet + ChatGPT acceptance — о. Неполная принятие-реша, до объявления релиза production-certificate, автоматизирующую безопасность lifecycle/MCP — не заменяет внешней проверки.
Codes errors
Errors tools present structured results { code, message, detail? } with stable codes:
Code | Meaning |
| задействован аварийный переключатель |
| неизвестный workspace_id |
| возможность отключена |
| выполнение отключено / рабочее место не в режиме Full PowerShell |
| программа нет в approved list (или былa задана directory path) |
| выход за пределы рабочей области (записано в audit с подробностями) |
| denylist один из denied files |
| цель не найдена |
| столкновение при creation |
| якорь отсутствует / неоднозначный |
| несоответствие ревизии |
| лимit превышен, truncation impossible |
| corrupted request (bad regex/glob, >8 read_files paths) |
| file system failure (includes OS message) |
Development
npx tsc --noEmit # frontend type gate
npm run build # frontend production build
cargo test --workspace # 240+ Rust unit + integration testsIntegration suites drive the real sidecar- spawning and parseric pipeline across a fake sidecar fixture — no Tailscale network needed.
This server cannot be deployed
Maintenance
Related MCP Connectors
Safe folder access for ChatGPT and Claude: read, write and search files, risky tools opt-in.
- ZionDeskOAuthapp.ziondesk
Connect ChatGPT, Claude, Cursor or VS Code to your Windows PC: files, terminal, browser, apps.
1 Read and search folders on your own computer with explicit consent. Files are never uploaded.
Use your Mac, Windows or Linux computer from ChatGPT, Claude or Codex: files, commands, documents.
Related MCP Servers
- AlicenseNot gradedqualityAmaintenanceEnables ChatGPT Web Developer Mode to interact with local repositories through MCP, providing tools for file editing, shell execution, Git worktrees, semantic navigation, and checkpoints.126 npm2MIT
- AlicenseNot gradedqualityBmaintenanceEnables ChatGPT Developer Mode to securely invoke multiple Windows-local stdio MCP servers through a single gateway, with tool namespacing, path restrictions, and serial execution control. It includes safe-file, image, and download tools for local workspace interaction.1MIT
- FlicenseNot gradedqualityBmaintenanceEnables ChatGPT Web to securely access local files and run commands via MCP, with optional OpenCode agent mode for autonomous tasks.-
- AlicenseAqualityCmaintenanceEnables ChatGPT Developer Mode to operate as a local coding agent by connecting to your own repository through MCP, allowing it to read, write, search, edit files, run safe verification commands, and manage handoff context for continued work.15122 npmMIT