mcp-gate
mcp-gate
Una ruta es una solicitud. El límite de las raíces es la garantía.
Un servidor MCP de acceso a archivos restringe qué archivos puede alcanzar un modelo mediante raíces: un conjunto de directorios autorizados. mcp-gate demuestra la diferencia entre decirle al servidor que se mantenga dentro de sus raíces y hacerlo cumplir: la misma batería de ataques se ejecuta contra una versión que solo tiene una instrucción, y contra una versión que canonicaliza cada ruta y la comprueba contra el límite antes de cualquier lectura. Una filtra; la otra aguanta. Ambos sentidos se comprueban en CI.
Esta es una implementación independiente de conceptos del material avanzado de MCP de Anthropic, escrita para mostrar tres cosas explícitamente:
Capacidad | Dónde aparece |
Servidor MCP avanzado |
|
Registros y progreso | Cada herramienta emite notificaciones MCP de registro ( |
Control de acceso |
|
Los dos modos
Modo | Cómo decide | Resultado |
| La instrucción del system prompt dice «solo lee archivos dentro de las raíces», pero la ruta se abre tal como se da. | Filtra — el gestor de rutas ingenuo es, a propósito, un control de peor caso. |
| Cada ruta se descodifica, se resuelve con | Resiste — las solicitudes fuera del límite se rechazan antes de que se abra cualquier archivo. |
La batería de ataques
Ataque | modo | modo |
| servido ✓ | servido ✓ |
| filtra | bloqueado |
| filtra | bloqueado |
| filtra | bloqueado |
| filtra | bloqueado |
Que direct_ask tenga éxito en ambos modos es la parte engañosa: una prueba manual rápida de la seguridad de la capa prompt parece segura, pero luego falla ante un ataque que no intentaste.
Related MCP server: personal-mcp-bridge
La puerta (aplicada en CI, en ambos sentidos)
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 holdQue gate prompt no consiga filtrar significaría que la demo se ha quedado sin sentido (el resultado «seguro» no sirve de nada si el inseguro también pasa), así que CI trata eso también como un error de compilación.
Inicio rápido
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 suiteEjecuta la demo en vivo del servidor y del cliente MCP (requiere pip install -e ".[demo]" y una variable de entorno ANTHROPIC_API_KEY para la herramienta de muestreo):
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 attackConsulta RESULTS.md para ver la salida capturada — cada bloque es salida real de comandos, regenerada por scripts/make_results.py, nunca editada a mano.
Notas
Todos los datos bajo
data/son ficticios;data/out_of_bounds/secret.txtes un sustituto etiquetado de «un archivo que el servidor nunca debe servir».Parte de la familia
-gate: no se publica nada hasta que pasa un control.
This server cannot be deployed
Maintenance
Related MCP Connectors
Bounded readonly SHA256 verification with the official MCP SDK. No code execution or model calls.
Read-only verifier for 25 ProofRelay MCP tools and non-confidential evidence bundles.
MCP enforcement layer that intercepts AI agent actions and blocks rule violations before execution.
Read-only MCP for identity resolution and write guardrails.
Related MCP Servers
- AlicenseAqualityDmaintenanceProvides safe local file operations through MCP, including reading, writing, searching, organizing, and protected deletion with configurable path restrictions.121ISC
- AlicenseNot gradedqualityDmaintenanceEnables safe, read-only browsing of allowlisted local directories through MCP, providing tools to list roots, read files, and search text.MIT
- AlicenseNot gradedqualityCmaintenanceProvides 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.MIT
- FlicenseNot gradedqualityCmaintenanceEnables secure filesystem operations (read, write, list, move, search files/directories) through the Model Context Protocol, with dynamic directory access control via MCP Roots.-