mcp-gate
mcp-gate
Ein Pfad ist eine Anfrage. Die Roots-Grenze ist die Garantie.
Ein MCP-Dateizugriffsserver erzwingt über roots — eine Menge autorisierter Verzeichnisse —, welche Dateien ein Modell berühren darf. mcp-gate demonstriert den Unterschied zwischen der Anweisung an den Server, innerhalb seiner Roots zu bleiben, und der Durchsetzung dieser Anweisung: Dieselbe Angriffssuite wird gegen eine Version ausgeführt, die nur eine Instruktion besitzt, und gegen eine Version, die jeden Pfad kanonisiert und ihn vor jedem Lesevorgang gegen die Grenze prüft. Eine leakt; die andere hält. Beide Richtungen werden in CI erzwungen.
Dies ist eine unabhängige Implementierung von Konzepten aus Anthropics fortgeschrittenem MCP-Material, geschrieben, um drei Dinge ausdrücklich zu zeigen:
Fähigkeit | Wo sie sichtbar wird |
Fortgeschrittener MCP-Server |
|
Logs & Fortschritt | Jedes Werkzeug streamt während der Ausführung MCP-Log-Benachrichtigungen ( |
Zugriffskontrolle |
|
Die beiden Modi
Modus | Entscheidungsgrundlage | Ergebnis |
| Eine System-Prompt-Anweisung sagt: „Nur Dateien unterhalb der Roots lesen“ – der Pfad wird jedoch unverändert gegangen. | Leakt – die naive Pfadbehandlung ist absichtlich eine Worst-Case-Kontrolle. |
| Jeder Pfad wird dekodiert, mit | Hält – Anfragen außerhalb der Grenzen werden abgewiesen, bevor eine Datei geöffnet wird. |
Die Angriffssuite
Angriff |
|
|
| bedient ✓ | bedient ✓ |
| leakt | blockiert |
| leakt | blockiert |
| leakt | blockiert |
| leakt | blockiert |
direct_ask, die in beiden Modi erfolgreich ist, ist das Tückische: Ein schneller manueller Test der Prompt-Ebenen-Sicherheit wirkt sicher und scheitert dann bei einem Angriff, den man nicht ausprobiert hat.
Related MCP server: personal-mcp-bridge
Das Gate (durch CI erzwungen, in beide Richtungen)
python -m mcp_gate gate boundary # exit 0 only if 0 escapes
python -m mcp_gate gate prompt # exit 0 only if the leak is still demonstrated
python -m mcp_gate suite # both halves must holdFalls ein gate prompt nicht leakt, wäre die Demo sinnhandelnt (das „sichere“ Ergebnis ist bedeutungslos, wenn das unsichere ebenfalls besteht). Deshalb behandelt CI das ebenfalls als Build-Fehler.
Schnellstart
python -m venv .venv && source .venv/bin/activate
pip install -e ".[dev]"
pytest -q
python -m mcp_gate gate boundary
python -m mcp_gate gate prompt
python -m mcp_gate suiteFühre die Live-Demo „MCP-Server + Client“ aus (benötigt pip install -e ".[demo]" und einen ANTHROPIC_API_KEY in deiner Umgebung für das Sampling-Werkzeug):
python -m mcp_gate serve ./data/sandbox # start the server over stdio
python -m mcp_gate.client ./data/sandbox # drive it: logs, progress, sampling, a blocked attackSiehe RESULTS.md für aufgezeichnete Ausgaben – jeder Block dort ist echte Befehlsausgabe, neu erstellt durch scripts/make_results.py, niemals handkorrigiert.
Hinweise
Alle Daten unter
data/sind fiktiv;data/out_of_bounds/secret.txtist ein gekennzeichneter Platzhalter für „eine Datei, die der Server niemals ausliefern darf“.Teil der
-gate-Familie: Nichts wird ausgeliefert, bis es ein Gate besteht.
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
- FlicenseAqualityDmaintenanceProvides safe local file operations through MCP, including reading, writing, searching, organizing, and protected deletion with configurable path restrictions.122
- AlicenseNot gradedqualityBmaintenanceEnables safe, read-only browsing of allowlisted local directories through MCP, providing tools to list roots, read files, and search text.MIT
- AlicenseNot gradedqualityCmaintenanceA drop-in replacement for the blocked Filesystem MCP server that provides standard file operations with symlink hardening, enabling tools like read, write, and directory listing.MIT
- FlicenseNot gradedqualityBmaintenanceProvides safe, allowlisted local filesystem access for MCP-compatible AI clients, enabling directory listing, file reading/writing (with byte limits), and text search while blocking paths outside approved roots and symlink escapes.
Related MCP Connectors
Static MCP manifest and tool-policy security preflight with signed input-redacted receipts
Fail-closed action authorization, MCP risk scanning, x402 checks, and signed receipts.
Agent-native MCP server over the public saagarpatel.dev corpus. Read-only, stateless.
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/jbisaccia-9/mcp-gate'
If you have feedback or need assistance with the MCP directory API, please join our Discord server