MCP Tool Security Inspector
MCP Tool Security Inspector
Объяснимый, детерминированный статический анализ метаданных инструментов Model Context Protocol.
Заявление о безопасности: MCP Tool Security Inspector — это инструмент защитного анализа. Он выявляет индикаторы, которые могут потребовать проверки, но не устанавливает, является ли MCP-инструмент или сервер однозначно вредоносным или безопасным.
Заглушки для скриншотов
screenshots/clean-scan.png— сводка чистой каталогизацииscreenshots/suspicious-scan.png— доказательства находок и рекомендацииscreenshots/drift-comparison.png— таблица отклонений от базовой линии
Related MCP server: mcp-guardian
Проблема
ИИ-клиенты часто предоставляют модели имена MCP-инструментов, описания, схемы и метаданные. Этот каталог является границей доверия: вводящие в заблуждение инструкции, скрытые возможности, неожиданные поля учетных данных или последующие изменения схемы заслуживают проверки, даже если ни один инструмент не был запущен. mcpsec анализирует эту статическую поверхность без вызова инструментов или получения URL-адресов метаданных.
Что такое MCP и MCP-инструменты?
Model Context Protocol — это открытый протокол для подключения ИИ-приложений к серверам, предоставляющим контекст и возможности. Инструмент — это именованная вызываемая возможность с описательными метаданными и JSON-схемами для входных и необязательных выходных данных. Этот выпуск ориентирован на официальную спецификацию от 2026-07-28 и стабильный официальный Python SDK v2, при этом допускает более старые распространенные оболочки каталога.
Модель угроз и отравление инструментов
Метаданные инструментов могут влиять как на одобрение человеком, так и на выбор инструментов моделью. Злонамеренный издатель, скомпрометированный сервер, зависимость или случайная конфигурация могут добавить инструкции, направленные на модель, формулировки скрытия, привилегированные поля или обфускацию. См. модель угроз и отравление инструментов.
Возможности
Загрузка одного инструмента, массива, прямого объекта
toolsи ответа JSON-RPCtools/listСохранение неизвестных полей и нормализация Unicode NFC
Стабильный канонический JSON в UTF-8 и SHA-256 полные/компонентные отпечатки
Конфиденциальные базовые линии и классификация отклонений на уровне полей
Детекторы переопределения инструкций, скрытия, конфиденциальных данных, схем, несоответствий, обфускации и возможностей
Строгие правила YAML только для данных с безопасной загрузкой и ограниченным сопоставлением литералов
Объяснимые, ограниченные оценки риска от 0 до 100
Богатый вывод в терминал, JSON, CSV и SARIF 2.1.0
Редактирование доказательств и защита от инъекций формул в электронных таблицах
Пороги серьезности для CI с документированными кодами выхода
Без телеметрии, вызовов инструментов, загрузки иконок, получения URL-адресов или выполнения метаданных
Архитектура
flowchart LR
A["Hostile JSON catalog"] --> B["Bounded loader"]
B --> C["Normalizer"]
C --> D["Canonicalizer + SHA-256"]
C --> E["Detectors + data-only rules"]
E --> F["Capped risk engine"]
D --> G["Baseline comparator"]
F --> H["Terminal / JSON / CSV / SARIF"]
G --> HРеализация никогда не отправляет содержимое каталога модели и никогда не выполняет сканируемые значения. См. архитектуру.
Установка
python -m venv .venv
# Windows: .\.venv\Scripts\Activate.ps1
# Linux/macOS: source .venv/bin/activate
python -m pip install --upgrade pip
python -m pip install -e ".[dev]"
mcpsec --helpСм. PREPARATION.md для проверенной среды и рекомендаций по редактору.
Быстрый старт и сканирование
mcpsec scan examples/clean_tools.json
mcpsec scan examples/suspicious_tools.json
mcpsec scan examples/mixed_tools.json --format json
mcpsec scan examples/suspicious_tools.json --format csv --output report.csv --redact
mcpsec scan examples/suspicious_tools.json --format sarif --output report.sarif
mcpsec scan examples/mixed_tools.json --rules rules/default_rules.yml --fail-on highСтруктурированные отчеты не содержат ANSI-escape-последовательностей. Поля CSV, начинающиеся с символов формул электронных таблиц, предваряются апострофом.
Рабочий процесс базовой линии и отклонения схемы
mcpsec baseline examples/clean_tools.json --output baseline.json
mcpsec compare examples/clean_tools.json --baseline baseline.json
mcpsec compare examples/changed_tools.json --baseline baseline.json --verbose
mcpsec fingerprint examples/clean_tools.jsonИзмененный фикстур изменяет описание калькулятора и входную схему, а также добавляет unit_converter. Базовые линии хранят хэши и структурные сводки, а не полные описания, значения по умолчанию или примеры секретов. См. отклонение схемы.
Оценка риска
Каждый вклад настроенной находки умножается на уверенность. Вклады группируются и ограничиваются 35 на категорию; риски категорий объединяются с использованием 100 × (1 − Π(1 − категория/100)). Две документированные корреляции добавляют ограниченную синергию: переопределение инструкций + скрытие добавляет 10, а скрытие + язык конфиденциальных данных добавляет 7. Итоговое значение округляется и ограничивается 100.
Диапазоны: 0–19 информационный, 20–39 низкий, 40–59 средний, 60–79 высокий, 80–100 критический. Оценка приоритизирует проверку; это не вероятность и не вердикт.
Правила и объяснимость
mcpsec rules list
mcpsec rules validate rules/default_rules.yml
mcpsec explain SEC-001Пользовательские правила позволяют задавать ID, имя, категорию, поля, литеральные шаблоны, серьезность, уверенность, оценку, рекомендацию, обоснование, допустимое использование и состояние включения. Они не могут содержать выражения Python, команды оболочки, импорты, шаблоны или исполняемые регулярные выражения. См. правила обнаружения.
Форматы вывода
Таблица терминала суммирует количество инструментов, итоги чистых/затронутых, серьезность, риск, ID правил, доказательства и рекомендации. JSON сохраняет типизированные находки; CSV удобен для анализа; SARIF предоставляет структуру, совместимую с GitHub code scanning, для будущей интеграции.
Использование в CI
Коды выхода: 0 — нет превышения настроенного порога, 1 — завершенное сканирование превышает --fail-on, 2 — недопустимый пользовательский ввод, 3 — внутренняя ошибка.
mcpsec scan catalog.json --fail-on mediumВключенный рабочий процесс GitHub Actions устанавливает Python, запускает проверки Ruff lint/format, mypy и pytest с покрытием. Он не требует секретов, не подключается к серверам и не публикует.
Тестирование
ruff check .
ruff format --check .
mypy src
python -m pytest --cov=mcpsec --cov-report=term-missing --cov-report=htmlВ Windows scripts\test.ps1 -q запускает правильный интерпретатор виртуальной среды, даже если среда не активирована. Используйте scripts\dev-inspector.ps1 для локального демонстрационного сервера; см. руководство по примеру сервера. Адрес /sandbox, выводимый Inspector, является внутренней конечной точкой iframe, а не основным пользовательским интерфейсом.
Тесты покрывают формы ввода, Unicode, канонизацию, хэши, базовые линии, отклонения, детекторы, ограничения риска, проверку правил, безопасный YAML, структурированные отчеты, нейтрализацию CSV и коды выхода CLI.
Модель безопасности и ложные срабатывания
Все входные данные считаются ненадежными. Файлы ограничены по размеру; строки ограничены по длине; YAML использует safe_load; содержимое схемы проверяется, но никогда не выполняется; пользовательское сопоставление является литеральным и ограниченным; байты терминальных escape-последовательностей нейтрализуются; отчеты не отображают HTML. Находка говорит «подозрительно» или «требует проверки», но никогда не утверждает компрометацию. Каждое встроенное правило документирует свое обоснование, допустимые триггеры и рекомендации через mcpsec explain.
См. SECURITY.md, правила обнаружения и ограничения.
Ограничения
Чистое сканирование не устанавливает доверие; подозрительное сканирование не доказывает злонамеренность. Статические метаданные могут отличаться от реализации во время выполнения. Эвристики не могут понять каждый язык, бизнес-контекст, ссылку на схему или вариацию инъекции подсказок. Человеческая проверка и контроль во время выполнения остаются необходимыми.
Дорожная карта
v0.2: опциональное получение локального каталога из белого списка с использованием только SDK
tools/listБолее полная проверка
x-mcp-headerдля MCP 2026-07-28Подписанные конверты базовых линий и профили политик базовых линий
Версионирование пакетов правил, подавления с обоснованием и дельта SARIF
Дополнительные эвристики с учетом языка и измерение ложных срабатываний на основе корпуса
Вклад и лицензия
См. CONTRIBUTING.md. Отчеты о безопасности следуют SECURITY.md. Лицензировано под MIT License.
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
- AlicenseAqualityDmaintenanceStatic security linter for MCP servers. Scans tool definitions for vulnerabilities (path traversal, SQL injection, SSRF), scores description quality, and auto-rewrites descriptions for safer agent tool selection.210MIT
- AlicenseNot gradedqualityBmaintenanceScans MCP tool descriptions for prompt injection attacks, including cross-tool instructions, privilege escalation, and data exfiltration patterns. It can be used as a CLI scanner or integrated as an MCP server itself.3106MIT
- AlicenseNot gradedqualityAmaintenanceSecurity scanner for MCP servers — vet an MCP before you wire it into an agent. Detects prompt-injection, credential exfiltration (via taint analysis), RCE, and supply-chain risks, and catches cross-server exfil chains no single server reveals. Zero-dependency local CLI, SARIF output, CI-gateable, no account.43MIT
- AlicenseNot gradedqualityBmaintenanceProvides audit_plugin_health and prepare_semantic_review tools for deterministic inspection of Codex plugins and Agent Skills, generating evidence-backed reports without executing or transmitting target code.1MIT
Related MCP Connectors
Scans MCP servers for tool poisoning, prompt injection and supply chain risks.
Deterministic validation for AI-generated artifacts: JSON Schema, OpenAPI response, SQL syntax.
Security scanner for MCP servers. Detect vulnerabilities, prompt injection, and tool poisoning.
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/danveil/mcp-security-inspector'
If you have feedback or need assistance with the MCP directory API, please join our Discord server