MCP-Shield
MCP-Shield находит конфигурации MCP, подключается к серверам и ищет в описаниях инструментов скрытые команды, каналы утечки и подмену чужих инструментов
- 555 ★ репозитория
- Последний коммит
- MIT
Широкий доступ
Почему такой уровень
- Запускает команды всех MCP-серверов из ваших настроек, передавая им текущее окружение процесса
- Читает конфигурационные файлы Cursor, Claude Desktop, Windsurf и VS Code, где часто лежат ключи API
- С ключом --claude-api-key описания инструментов отправляются в API Anthropic
Установка
- Работает в
В терминале, через SkillFoxx CLI
npx skillfoxx add mcp/mcp-shieldОпределит агенты на машине, покажет уровень доступа и зафиксирует версию.
Другие способы установки
Доступ и проверки
Как мы проверяемШирокий доступИнструмент может менять данные, выполнять команды или работать с секретами.
- Запускает команды всех MCP-серверов из ваших настроек, передавая им текущее окружение процесса
- Читает конфигурационные файлы Cursor, Claude Desktop, Windsurf и VS Code, где часто лежат ключи API
- С ключом --claude-api-key описания инструментов отправляются в API Anthropic
Это чужой код. Посмотрите файлы в репозитории перед установкой.
Что делает
MCP-Shield запускается командой `npx mcp-shield` и проверяет, не отравлены ли установленные у вас MCP-серверы. Сначала он ищет файлы настроек в стандартных местах: `~/.cursor/mcp.json`, `~/.vscode/mcp.json`, `~/.codeium/windsurf/mcp_config.json`, `claude_desktop_config.json` и `settings.json` редактора Code. Другой файл указывают ключом `--path`. Затем для каждого найденного сервера он выполняет настроенную команду или открывает адрес SSE, подключается как MCP-клиент с таймаутом 30 секунд и запрашивает список инструментов. Описания инструментов и схемы параметров проверяются по готовым шаблонам. Скрытые инструкции: приказы вроде «не сообщай пользователю», теги `<instructions>`, `<important>`, `<system>`, `<secret>`, «игнорируй предыдущие указания». Обращение к чувствительным файлам: каталог `~/.ssh`, `.env`, `id_rsa`. Подмена чужих инструментов, когда описание одного меняет поведение другого, и перекрестные нарушения между серверами. Каналы утечки, то есть необязательные параметры с названиями вроде `notes`, `feedback`, `metadata`, `debug`, `extra`. Результат выводится деревом по серверам и инструментам с уровнем HIGH, MEDIUM или LOW и найденными фрагментами. С ключом `--claude-api-key` описания дополнительно уходят в Claude (в коде указана модель `claude-3-7-sonnet-20250219`) для разбора по тем же пяти признакам. Ключ `--safe-list` исключает доверенные серверы из проверки и из поиска перекрестных нарушений. Ключ `--identify-as` выдает сканер за другой клиент, например `claude-desktop`, чтобы проверить, ведет ли себя сервер иначе для разных клиентов.
Для кого. Для разработчиков и специалистов по безопасности, которые подключают к Cursor, Claude Desktop, Windsurf и VS Code сторонние MCP-серверы и хотят проверить их описания до того, как агент им доверится.
Подходит, если
- Перед подключением нового MCP-сервера нужно проверить, нет ли в описаниях его инструментов скрытых приказов агенту
- Время от времени нужно пройтись по всем серверам в настройках Cursor, Claude Desktop или Windsurf
- После обновления MCP-сервера требуется убедиться, что в его инструментах не появились новые параметры для утечки данных
- Вы пишете свой MCP-сервер и хотите проверить, не похожи ли его описания на атаку
- Нужно сравнить, как сервер отвечает под разными именами клиента, и выявить подмену поведения
Не подходит, если
- Серверы из настроек запускать небезопасно: сканер выполняет их команды на вашей машине с вашей средой, поэтому недоверенный сервер сначала запускайте в изолированной среде
- Нужна проверка во время работы агента: сканер смотрит только описания и не перехватывает вызовы, для этого в каталоге есть HOL Guard
- Нужны статические правила YARA и разбор кода сервера: сканер читает лишь описания и схемы параметров, а YARA использует mcp-scanner от Cisco
- Важна свежесть проверки: последние изменения в репозитории сделаны в апреле 2025 года, а шаблоны правил в коде не обновляются
Пример запроса к агенту
Прогони mcp-shield по моим настройкам Cursor и покажи, у каких серверов в описаниях есть скрытые инструкцииMCP
Ограничения
- Лицензия MIT. Последний коммит датирован апрелем 2025 года, версия пакета 1.0.4, а тестов в репозитории нет.
- Сканер запускает MCP-серверы из ваших настроек и передает им всю текущую среду процесса вместе с переменными окружения, в том числе с секретами. Для адресов SSE он открывает соединение с сервером. Если команда сервера опасна, проверка ее выполнит.
- Правила состоят из регулярных выражений по тексту описаний и списка подозрительных имен параметров. Новый прием атаки, не похожий на шаблоны, сканер пропустит. Безобидное описание с фразой вроде «always include» может дать ложное срабатывание.
- Для дополнительного анализа нужен ключ Anthropic, а API Anthropic из России недоступен. Без ключа работают только шаблоны. Ключ в командной строке остается в истории оболочки.
- Ключ `--identify-as` меняет только имя клиента при подключении. Ответ сервера на разные имена сканер сам не сравнивает: сопоставлять результаты запусков придется вам.
- В репозитории лежат учебные вредоносные серверы `bad-mcp-server.js` и `mcp-whatsapp.js` для проверки сканера, запускать их стоит только в изолированной среде.
Как отключить. Постоянного процесса нет: сканер работает, пока идет команда, и ничего не прописывает в настройки агентов. Если ставили глобально, удалите пакет командой `npm uninstall -g mcp-shield`. Кэш `npx` очищает `npm cache clean --force`.
Частые вопросы
Какие файлы настроек сканер находит сам?
Он проверяет `~/.cursor/mcp.json`, `~/.vscode/mcp.json` и `~/.codeium/windsurf/mcp_config.json`. На macOS и Windows добавляются `claude_desktop_config.json` в папке данных Claude и `settings.json` редактора Code, на Linux только `settings.json` редактора Code. Остальные пути указывают ключом `--path`.
Что означает перекрестное нарушение?
Это случай, когда описание инструмента одного сервера пытается изменить работу инструмента другого, например перенаправить сообщения в мессенджере. Сканер ищет упоминания популярных серверов (whatsapp, slack, github, gitlab, gdrive) в описаниях чужих инструментов. Серверы из `--safe-list` в такой проверке не участвуют.
Зачем нужен ключ Anthropic?
С ключом описания инструментов дополнительно разбирает модель по пяти признакам: скрытые инструкции, доступ к чувствительным файлам, подмена инструментов, утечка данных и переопределение поведения. Итоговая оценка выводится рядом с оценкой по шаблонам как AI Risk Level. Без ключа остается разбор по шаблонам.
Как проверить, меняется ли сервер от имени клиента?
Запустите сканер дважды: сначала с обычным именем, затем с ключом `--identify-as claude-desktop` или другим именем клиента, и сравните списки инструментов и описания. Автор называет это проверкой возможной подмены поведения. Автоматически результаты запусков сканер не сравнивает.
На чем сканер построен и какие у него зависимости?
Это пакет Node.js на TypeScript с `@modelcontextprotocol/sdk` для подключения к серверам и `@anthropic-ai/sdk` для необязательного анализа. Вывод оформляют `chalk`, `ora` и `boxen`. Конфигурации читаются через `json5` и `fs-extra`.
Обсуждение
Вопросов и отзывов пока нет.
Похожие
MCP-серверыAgentShield проверяет папку .claude на ключи в открытом виде, широкие разрешения, опасные хуки и небезопасные MCP-серверы и ставит оценку от A до F
MCP-сервер, который дает агенту разбор уязвимостей: данные NVD, EPSS, каталог CISA KEV, связки с MITRE ATT&CK и оценка риска CVE в одном запросе
x64dbg MCP
x64dbg MCP Server Plugin
Плагин отладчика x64dbg и x32dbg с MCP-сервером на 79 инструментов и 11 командами Claude Code для разбора сбоев, трассировки и дампа памяти
MCP-сервер для наступательной безопасности: агент запускает более 150 инструментов пентеста и разведки и ведет автоматическую проверку целей
MCP Scanner
mcp-scanner
Сканер от Cisco AI Defense: проверяет MCP-серверы и их инструменты на угрозы тремя движками, правилами YARA, моделью и API Cisco
Сканер безопасности для кода от ИИ: секреты, зависимости, MCP и CI, расследование находок с доказательствами и исправления с подтверждением
Сравнение с похожими
Записи с тем же главным запросом: чем они отличаются.
| Запись | Официальный | Звезды репозитория | Главное отличие |
|---|---|---|---|
| MCP-Shield (эта запись) | нет | 555 | |
| MCP Scanner | да | 1 096 | сканер Cisco AI Defense с тремя движками: правилами YARA, моделью и API Cisco |
| HOL Guard | да | 964 | проверяет действия агента во время работы, а не описания серверов, и ждет вашего решения по опасным вызовам |
Коротко о README
В репозитории есть описание с командами и ключами, пример вывода с деревом серверов и разбором одной находки, перечень возможностей и случаев применения. Четыре типа атак показаны на коротких примерах кода: отравление описания, подмена чужого инструмента, канал утечки и перекрестное нарушение. В папке `mcp-servers-example` лежат два учебных сервера для проверки сканера, в конце даны ссылки на исследование Invariant Labs, на котором основан проект.