WorkspaceGuard MCP
WorkspaceGuard MCP
WorkspaceGuard MCP ist ein lokaler, plattformübergreifender MCP-Server, der es ChatGPT oder MCP-Clients ermöglicht, in einem festgelegten Arbeitsbereich zu arbeiten. Das Projekt wurde nach der Untersuchung von FileMCP neu aufgebaut, behält die nützlichen Sicherheitsprinzipien bei und reduziert Teile, die für die erste Version noch nicht benötigt werden.
Wofür wird es verwendet?
Dateien auflisten, nach Datei oder nach Zeilen lesen, nach Namen und nach Inhalt suchen.
Dateien atomar schreiben, mit Unterstützung für
dry_runundexpected_sha256, um das Überschreiben neuerer Änderungen zu vermeiden.„Löschen“ durch Verschieben in
.workspaceguard/trash, manuell wiederherstellbar.Git-Status, Log und Diff lesen, ohne eine Shell zu aktivieren.
Optional Terminal mit
program + argsausführen, ohne Zeichenketten über die Shell zu verketten, und nur ausführbare Dateien aus der Allowlist zulassen.Nutzung über
stdiooder MCP Streamable HTTP auf127.0.0.1mit Token.Audit-JSONL schreiben, ohne Dateiinhalte oder vollständige Befehlsargumente zu speichern.
Related MCP server: Kastor
Wichtigste Verbesserungen
Chủ đề | FileMCP gốc | WorkspaceGuard MCP |
Core đa nền tảng | Swift và C# triển khai song song | Một core TypeScript cho macOS/Windows/Linux |
Quyền | File/Git; shell bật hoặc tắt |
|
Chạy lệnh | Chuỗi shell ( | Executable + mảng args, |
Ghi file | Ghi/append, có atomic replace | Atomic replace + dry-run + optimistic lock SHA-256 |
Xóa | Xóa file/thư mục thật | Chuyển vào trash nội bộ |
File bí mật | Không có denylist riêng | Chặn |
Theo dõi | Log runtime | Audit JSONL có request ID, kết quả và thời lượng |
Giao thức | Parser HTTP/MCP tự triển khai | MCP TypeScript SDK v2 chính thức của dự án MCP |
Die Anwendung verfügt über eine Electron-Desktop-Oberfläche zum Auswählen des Arbeitsbereichs, zum Auswählen des Modus, zum Auswählen der Befehls-Allowlist, zum Starten/Stoppen des Servers, zum Testen von MCP direkt in der App und zum Verbinden mit Secure MCP Tunnel. In Anlehnung an FileMCP erstellt die App pro Sitzung ein neues Loopback-Token, hält den Server auf 127.0.0.1, verwaltet den Lebenszyklus von tunnel-client und speichert den Runtime-API-Schlüssel mit einem Betriebssystem-Verschlüsselungsmechanismus (Keychain auf macOS, wenn verfügbar). Die Binary tunnel-client wird weiterhin vom Benutzer von OpenAI heruntergeladen; das Projekt bündelt diese Binary nicht. Lokale Runtime und Tunnel rufen keine Codex- oder OpenAI-Modelle/APIs auf: Die App wird mit ChatGPT Web über den Developer-Mode verwendet, daher wird kein Codex-Kontingent verbraucht. Die Konversation unterliegt weiterhin den Limits des verwendeten ChatGPT-Plans.
Anforderungen
Node.js 20 oder höher (mit Node.js 24 getestet).
Git, wenn die
git_*-Tools verwendet werden.Für ChatGPT: ein Arbeitsbereich, der benutzerdefinierte MCP-Apps unterstützt, ein Secure MCP Tunnel und ein Runtime-API-Schlüssel mit entsprechenden Tunnel-Berechtigungen. Siehe OpenAI Secure MCP Tunnel.
Schrittweise Ausführung
Schritt 1 — Abhängigkeiten installieren
cd "/Users/danhpham/Documents/ChatGPT/MCP"
npm installKeinen API-Schlüssel in .env ablegen oder in Git committen.
Schritt 2 — Gesamtes Projekt testen
npm run verifyDieser Befehl führt Typecheck, Unit-/Integrationstests, Production-Build und semantischen Smoke-Test über MCP stdio aus.
Schritt 3 — Desktop-Oberfläche ausführen (einfachster Weg)
npm run desktopIm Fenster WorkspaceGuard:
Ordner auswählen… klicken und einen Test-Arbeitsbereich auswählen.
Beim ersten Mal Nur lesen beibehalten.
MCP starten klicken. Wenn der Status Läuft anzeigt, ist der HTTP-Server auf
127.0.0.1:<Port>bereit.Stoppen klicken, wenn fertig. Das Schließen der Anwendung stoppt auch Server und Tunnel.
Die Oberfläche zeigt oder speichert keine HTTP-Tokens; das Token wird bei jedem Start neu im Main-Process erstellt.
Vollständigen MCP-Test direkt in der Oberfläche
Nachdem der Server Läuft anzeigt, MCP-Test ausführen klicken. Dies ist ein echter MCP-Client im Electron-Main-Process, kein Scheintest über die Oberfläche.
Bei Nur lesen testet die App den MCP-HTTP-Handshake, die Tool-Erkennung,
workspace_infoundlist_files.Bei Lesen und Schreiben testet die App zusätzlich
write_file→read_file→trash_path. Sie müssen die Bestätigung anhaken, da eine Testdatei mit zufälligem Namen in.workspaceguard/trashverschoben wird.Bei Befehl ausführen bleibt
nodein der Allowlist angehakt, damit die App zusätzlichrun_commandmitnode --versiontestet.
Wählen Sie für die letzten beiden Modi einen separaten Testordner. Die Ergebnisse jedes Schritts werden sofort im Testbereich der Oberfläche angezeigt.
Schritt 4 — Kern über Terminal bauen (optional)
npm run buildDer Production-Entry-Point ist:
/Users/danhpham/Documents/ChatGPT/MCP/dist/index.jsSchritt 5 — Arbeitsbereich und Modus über Terminal auswählen (optional)
Am besten mit einem kleinen Testordner beginnen:
mkdir -p /tmp/workspaceguard-demo
printf 'Xin chào MCP\n' > /tmp/workspaceguard-demo/hello.txtDrei Modi:
read-only: nur Datei-Lese- und Git-Lese-Tools. Dies ist die Standardeinstellung.workspace-write: fügtwrite_fileundtrash_pathhinzu.command: fügt Schreibrechte undrun_commandhinzu.
Hinweis: Der Server schreibt in allen drei Modi weiterhin interne Audits in .workspaceguard/audit.jsonl. „Read-only“ beschreibt die öffentlichen Tools, nicht die Dateisystem-Sandbox des Server-Prozesses selbst.
Schritt 6A — Über stdio ausführen (empfohlen)
node dist/index.js \
--root /tmp/workspaceguard-demo \
--transport stdio \
--mode read-onlyDas Terminal wartet darauf, dass der MCP-Client Requests über stdin sendet. Dies ist korrektes Verhalten, kein Hängen.
Schritt 6B — Schreibrechte aktivieren
node dist/index.js \
--root /tmp/workspaceguard-demo \
--transport stdio \
--mode workspace-writetrash_path hat standardmäßig dry_run=true. Nur wenn der Aufrufer dry_run=false sendet, wird der Pfad in den Papierkorb verschoben.
Schritt 6C — Eigene Terminal-Befehlsausführung erlauben
node dist/index.js \
--root /tmp/workspaceguard-demo \
--transport stdio \
--mode command \
--allow-command git,node,npm,npxBeispiel für Tool-Input:
{
"program": "npm",
"args": ["test"],
"cwd": "",
"timeout_seconds": 120
}run_command verwendet keine Shell, ist aber keine OS-Sandbox. node, npm, Python oder eine erlaubte ausführbare Datei kann weiterhin außerhalb des Arbeitsbereichs lesen/schreiben, das Netzwerk nutzen und andere Prozesse mit den Rechten des aktuellen Kontos ausführen. Verwenden Sie den Befehlsmodus nur mit vertrauenswürdigen Arbeitsbereichen und Workflows.
Schritt 7 — ChatGPT über die Secure-MCP-Tunnel-Oberfläche verbinden
Erstellen Sie auf der OpenAI Platform einen Secure MCP Tunnel und einen Runtime-API-Schlüssel mit Berechtigung zur Tunnel-Nutzung. Laden Sie das passende tunnel-client für Ihr Betriebssystem herunter. Senden Sie den Runtime-API-Schlüssel nicht an Codex und schreiben Sie ihn nicht in .env, Quellcode oder Git.
In der App, nachdem MCP Läuft anzeigt:
Tunnel-ID im Format
tunnel_...einfügen.Runtime-API-Schlüssel einfügen. Beim nächsten Mal kann das Feld leer bleiben, um den verschlüsselt gespeicherten Schlüssel zu verwenden.
tunnel-clienteingeben, wenn die Binary bereits imPATHliegt, oder Datei auswählen… klicken, um die heruntergeladene Binary auszuwählen.Standardprofil beibehalten, Tunnel verbinden klicken und auf die Meldung „bereit für ChatGPT“ warten.
Die grüne Zeile „bereit für ChatGPT“ bestätigt, dass der lokale Teil verbunden ist. ChatGPT Web öffnen klicken; diese App öffnet oder ruft Codex nicht auf.
Tunnel trennen klicken, wenn nur ChatGPT getrennt werden soll; Stoppen klicken, um Tunnel und MCP-Server zu stoppen.
Die App führt das Äquivalent der Sequenz tunnel-client init --sample sample_mcp_remote_no_auth → doctor --explain → run aus, mit MCP-Endpunkt http://127.0.0.1:<Port>/mcp, lokalem Health-Endpunkt und Token-Header, der über Umgebungsvariablen übergeben wird. Die Tunnel-Profile befinden sich in den App-eigenen Daten, nicht im Arbeitsbereich.
Aktivieren Sie in ChatGPT Web den Developer-Mode/benutzerdefinierte MCP-App gemäß der Workspace-Policy, erstellen Sie eine neue App, wählen Sie die Verbindung Tunnel, wählen Sie den erstellten Tunnel, führen Sie Scan Tools aus und testen Sie dann workspace_info, list_files und read_file, bevor Sie Schreib-Tools aktivieren. Wenn die Tunnel-Auswahl nicht sichtbar ist, prüfen Sie, ob der Arbeitsbereich Lese- und Tunnel-Berechtigungen erhalten hat.
Schritt 8 — HTTP-Loopback (optional)
export WORKSPACE_MCP_TOKEN="$(openssl rand -hex 32)"
node dist/index.js \
--root /tmp/workspaceguard-demo \
--transport http \
--mode read-only \
--port 7331Health-Check:
curl --fail http://127.0.0.1:7331/healthzMCP-Requests müssen den Header senden:
X-Workspace-MCP-Token: <WORKSPACE_MCP_TOKEN>Der HTTP-Server bindet nur 127.0.0.1, prüft Host, Origin, Token, grundlegendes Framing und Body-Limits. Verwenden Sie stdio, wenn kein spezifischer HTTP-Bedarf besteht.
Verfügbare Tools
Immer verfügbar
workspace_infolist_filesread_fileread_file_rangesearch_filenamessearch_contentgit_statusgit_loggit_diff
Modus workspace-write oder command
write_filetrash_path
Nur Modus command
run_command
Wiederherstellen von in den Papierkorb verschobenen Dateien
Das Tool gibt trashPath zurück. Wiederherstellung über einen lokalen Befehl, zum Beispiel:
mv "/tmp/workspaceguard-demo/.workspaceguard/trash/<id>/remove-me.txt" \
"/tmp/workspaceguard-demo/remove-me.txt"WorkspaceGuard räumt den Papierkorb in dieser Version nicht automatisch auf, um unbeabsichtigtes Löschen von Daten zu vermeiden.
Struktur
src/
├── config.ts # CLI/env và mode
├── security/path-policy.ts # containment + sensitive-path policy
├── services/files.ts # file/search/write/trash
├── services/git.ts # Git read-only
├── services/process.ts # process limits + tree cleanup
├── tools.ts # MCP schemas, annotations, audit
├── server.ts # stdio + HTTP loopback
├── desktop/ # Electron main/preload + renderer an toàn
└── index.ts # CLI entry
tests/ # unit, integration, MCP semantic smoke
docs/ # phân tích source và lộ trìnhZusätzliche Dokumentation
Lizenz und Referenzquellen
Das Projekt verwendet die Apache License 2.0. FileMCP verwendet ebenfalls Apache-2.0; siehe NOTICE für die Referenz-Designquellen. Die Binary tunnel-client ist nicht enthalten; der Betreiber lädt die passende Version von der offiziellen OpenAI-Quelle herunter.
This server cannot be installed
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 gradedqualityBmaintenanceEnables ChatGPT to securely operate a single Windows development workspace via a local MCP server, offering file editing, Git status, static analysis, approved test/build, and limited ADB operations with audit logging.MIT
- AlicenseAqualityBmaintenanceEnables ChatGPT and Codex to safely work with explicitly authorized local project folders through MCP, providing constrained file reading, searching, patch editing, Git inspection, and whitelisted tasks without exposing arbitrary shell, deletion, or deployment capabilities.17MIT
Related MCP Connectors
Securely search and manage workspace context files for AI agents and teams.
Project management MCP for AI agents with safe task reads and writes.
Search your AI chat history (ChatGPT, Claude, Codex) from any MCP client. Remote, private, read-only
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/phamcongdanh98/MCP'
If you have feedback or need assistance with the MCP directory API, please join our Discord server