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 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