PrismSec 🔷
Безопасный, модульный MCP-сервер для инструментов пентеста.
Оборачивает 7 отраслевых стандартных инструментов безопасности (nmap, nuclei, gobuster, subfinder, httpx, nikto, sqlmap) в 13 зарегистрированных MCP-инструментов — готовых к использованию с Claude, Cursor, Copilot и любым MCP-совместимым ИИ-агентом.
Возможности
| Возможность | Описание |
|---|
| Ноль shell=True | Все вызовы подпроцессов используют asyncio.create_subprocess_exec — никакой инъекции в shell |
| Проверка входных данных | Цель, URL, порт, уровень критичности — всё проверяется перед выполнением |
| Обнаружение инъекций | Блокирует метасимволы shell (;, $(), обратные кавычки, |) |
| Принудительный таймаут | Каждый инструмент имеет настраиваемый таймаут — автоматически завершает зависшие процессы |
| Структурированный вывод | Разобранные XML/JSON/текст → чистый JSON для ИИ-агентов |
| Модульная архитектура | Один файл на инструмент — легко добавлять, поддерживать и тестировать |
| MCP SDK v2 | Построен на последней версии Model Context Protocol SDK |
Установка
Из исходников
git clone https://github.com/azmisyahrul/prismsec.git
cd prismsec
pip install -e .
Предварительные требования
Установите необходимые вам инструменты безопасности:
# Ubuntu/Debian
apt install nmap nikto sqlmap
# Go-based tools
go install -v github.com/projectdiscovery/nuclei/v3/cmd/nuclei@latest
go install -v github.com/projectdiscovery/subfinder/v2/cmd/subfinder@latest
go install -v github.com/projectdiscovery/httpx/cmd/httpx@latest
go install github.com/OJ/gobuster/v3@latest
Инструменты (13 зарегистрированных)
Nmap — Сканирование портов
| MCP-инструмент | Описание |
|---|
nmap_port_scan | Сканирование портов с режимами quick/full/service/stealth/aggressive |
nmap_service_detect | Определение сервисов/версий на открытых портах |
nmap_full_scan | Сканирование всех 65535 TCP-портов |
Nuclei — Сканирование уязвимостей
| MCP-инструмент | Описание |
|---|
nuclei_vuln_scan | Полное сканирование уязвимостей со всеми шаблонами |
nuclei_severity_scan | Сканирование с фильтром по уровню критичности (critical, high и т.д.) |
nuclei_template_scan | Целевое сканирование с конкретным шаблоном |
Gobuster — Перебор каталогов/DNS
| MCP-инструмент | Описание |
|---|
gobuster_directory | Перебор каталогов с настраиваемыми расширениями |
gobuster_dns | Перебор DNS-поддоменов |
Прочие инструменты
| MCP-инструмент | Описание |
|---|
subfinder_enumerate | Пассивная энумерация поддоменов (crt.sh, VirusTotal и т.д.) |
Мета
| MCP-инструмент | Описание |
|---|
check_tools | Проверка установленных инструментов безопасности |
Использование
Claude Desktop
Добавьте в claude_desktop_config.json:
{
"mcpServers": {
"prismsec": {
"command": "python3",
"args": ["/path/to/prismsec/server.py"],
"env": {}
}
}
}
Claude Code
claude mcp add prismsec python3 /path/to/prismsec/server.py
Cursor / Windsurf / Cline
Добавьте в .cursor/mcp.json или эквивалентный файл:
{
"mcpServers": {
"prismsec": {
"command": "python3",
"args": ["/path/to/prismsec/server.py"]
}
}
}
SSE-транспорт (удалённый)
# Server side
python3 server.py --transport sse --host 0.0.0.0 --port 8000
# Client config
{
"mcpServers": {
"prismsec": {
"url": "http://localhost:8000/sse"
}
}
}
Структура проекта
prismsec/
├── server.py # MCP server entry point (13 tools)
├── pyproject.toml # Project config + dependencies
├── tools/ # Tool wrappers (one file per tool)
│ ├── base.py # ToolWrapper ABC + async runner
│ ├── nmap.py # Nmap — XML parsing, scan modes
│ ├── nuclei.py # Nuclei — JSON output parsing
│ ├── gobuster.py # Gobuster — text output parsing
│ ├── subfinder.py # Subfinder — subdomain enum
│ ├── httpx.py # Httpx — web probing
│ ├── nikto.py # Nikto — web vuln scan
│ └── sqlmap.py # Sqlmap — SQL injection testing
├── parsers/ # Output parsers
│ ├── xml_parser.py # nmap XML → structured JSON
│ ├── json_parser.py # JSON/JSONL parsing
│ └── text_parser.py # Gobuster, nikto, sqlmap text
└── utils/ # Shared utilities
├── runner.py # AsyncRunner with timeout
├── validator.py # Input validation + injection detection
├── rate_limiter.py # Token bucket rate limiter
└── logging.py # Structured logging
Конфигурация
| Переменная окружения | По умолчанию | Описание |
|---|
LOG_LEVEL | INFO | Уровень логирования (DEBUG, INFO, WARNING, ERROR) |
Рекомендации по безопасности
⚠️ Только авторизованное тестирование. Используйте только против систем, которыми вы владеете или на тестирование которых имеете письменное разрешение.
- Вывод инструментов может содержать чувствительную информацию (IP-адреса, открытые порты, уязвимости)
- По умолчанию сервер привязывается к
127.0.0.1 — никогда не открывайте доступ к нему из недоверенных сетей
- Каждый инструмент имеет настраиваемые таймауты для предотвращения исчерпания ресурсов
Лицензия
MIT
Создан на основе стандарта Model Context Protocol для широкой совместимости с клиентами.