mcp-gate
mcp-gate
Путь — это запрос. Граница корневых каталогов — это гарантия.
MCP-сервер доступа к файлам определяет, к каким файлам модель может обращаться, через roots — набор разрешённых каталогов. mcp-gate демонстрирует разницу между указанием серверу оставаться внутри своих корневых каталогов и принудительным её соблюдением: один и тот же набор атак запускается против версии, где есть только инструкция, и против версии, которая канонизирует каждый путь и проверяет его по границе перед любым чтением. Одна версия даёт утечку; вторая держит удар. Обе стороны проверяются в CI.
Это независимая реализация концепций из публичных материалов Anthropic по MCP, написанная для наглядной демонстрации трёх вещей:
Возможность | Где проявляется |
Продвинутый MCP-сервер |
|
Логи и прогресс | Каждый инструмент во время работы отправляет MCP-уведомления о логировании ( |
Контроль доступа |
|
Два режима
Режим | Как принимается решение | Результат |
| В системном промпте сказано: «читай только файлы внутри корневых каталогов», но путь открывается как есть. | Утечка — наивный обработчик путей намеренно служит наихудшим контрольным случаем. |
| Каждый путь декодируется, разрешается через | Держит — запросы за пределами границ отклоняются до открытия любого файла. |
Набор атак
Атака | режим | режим |
| выдаётся ✓ | выдаётся ✓ |
| утечка | заблокировано |
| утечка | заблокировано |
| утечка | заблокировано |
| утечка | заблокировано |
Успешное выполнение direct_read в обоих режимах — обманчивая часть: быстрый ручной тест безопасности уровня промпта выглядит безопасным, но затем он падает под атакой, которую вы не пробовали.
Related MCP server: personal-mcp-bridge
Гейт (CI проверяет оба направления)
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 holdЕсли gate prompt не даёт утечки, демо становится бессмысленным («безопасный» результат теряет смысл, если «небезопасный» вариант тоже проходит), поэтому CI считает и его, и это ошибкой сборки.
Быстрый старт
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 suiteЗапустите живое демо MCP-сервера + клиента (потребуется pip install -e ".[demo]" и переменная ANTHROPIC_API_KEY в окружении для инструмента сэмплирования):
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 attackСмотрите RESULTS.md — там сохранены выводы: каждый блок является реальным выводом команды, генерируется скриптом scripts/make_results.py и никогда не редактируется вручную.
Примечания
Все данные в
data/вымышлены;data/out_of_bounds/secret.txt— это подписанная заглушка для «файла, который сервер никогда не должен отдавать».Это часть семейства
-gate: ничего не публикуется, пока не пройдёт через гейт.
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
- FlicenseAqualityDmaintenanceProvides safe local file operations through MCP, including reading, writing, searching, organizing, and protected deletion with configurable path restrictions.121-
- AlicenseNot gradedqualityBmaintenanceEnables safe, read-only browsing of allowlisted local directories through MCP, providing tools to list roots, read files, and search text.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.-
- 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.-