PrismSec 🔷
Servidor MCP seguro e modular para ferramentas de pentest.
Encapsula 7 ferramentas de segurança padrão da indústria (nmap, nuclei, gobuster, subfinder, httpx, nikto, sqlmap) em 13 ferramentas MCP registradas — prontas para uso com Claude, Cursor, Copilot e qualquer agente de IA compatível com MCP.
Features
| Feature | Description |
|---|
| Zero shell=True | Todas as chamadas de subprocesso usam asyncio.create_subprocess_exec — sem injeção de shell |
| Input validation | Alvo, URL, porta, severidade — tudo validado antes da execução |
| Injection detection | Bloqueia metacaracteres de shell (;, $(), crases, |) |
| Timeout enforcement | Toda ferramenta tem timeout configurável — mata automaticamente processos travados |
| Structured output | XML/JSON/texto analisados → JSON limpo para agentes de IA |
| Modular architecture | Um arquivo por ferramenta — fácil de adicionar, manter e testar |
| MCP SDK v2 | Construído no SDK mais recente do Model Context Protocol |
Instalação
A partir do código-fonte
git clone https://github.com/azmisyahrul/prismsec.git
cd prismsec
pip install -e .
Pré-requisitos
Instale as ferramentas de segurança que você precisa:
# 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
Ferramentas (13 registradas)
Nmap — Varredura de Portas
| MCP Tool | Description |
|---|
nmap_port_scan | Varredura de portas com modos rápido/completo/serviço/sigiloso/agressivo |
nmap_service_detect | Detecção de serviço/versão em portas abertas |
nmap_full_scan | Varre todas as 65535 portas TCP |
Nuclei — Varredura de Vulnerabilidades
| MCP Tool | Description |
|---|
nuclei_vuln_scan | Varredura completa de vulnerabilidades com todos os templates |
nuclei_severity_scan | Varredura filtrada por severidade (crítica, alta, etc.) |
nuclei_template_scan | Varredura direcionada com template específico |
Gobuster — Força Bruta de Diretórios/DNS
| MCP Tool | Description |
|---|
gobuster_directory | Força bruta de diretórios com extensões configuráveis |
gobuster_dns | Força bruta de subdomínios DNS |
Outras Ferramentas
| MCP Tool | Description |
|---|
subfinder_enumerate | Enumeração passiva de subdomínios (crt.sh, VirusTotal, etc.) |
| MCP Tool | Description |
|---|
check_tools | Verifica quais ferramentas de segurança estão instaladas |
Uso
Claude Desktop
Adicione ao 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
Adicione ao .cursor/mcp.json ou equivalente:
{
"mcpServers": {
"prismsec": {
"command": "python3",
"args": ["/path/to/prismsec/server.py"]
}
}
}
Transporte SSE (Remoto)
# Server side
python3 server.py --transport sse --host 0.0.0.0 --port 8000
# Client config
{
"mcpServers": {
"prismsec": {
"url": "http://localhost:8000/sse"
}
}
}
Estrutura do Projeto
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
Configuração
| Variável de Ambiente | Padrão | Descrição |
|---|
LOG_LEVEL | INFO | Nível de log (DEBUG, INFO, WARNING, ERROR) |
Considerações de Segurança
⚠️ Somente testes autorizados. Use apenas em sistemas que você possui ou para os quais tem permissão por escrito para testar.
- As saídas das ferramentas podem conter informações sensíveis (IPs, portas abertas, vulnerabilidades)
- O servidor vincula-se a
127.0.0.1 por padrão — nunca o exponha a redes não confiáveis
- Cada ferramenta tem timeouts configuráveis para evitar esgotamento de recursos
Licença
MIT
Construído com o padrão Model Context Protocol para ampla compatibilidade com clientes.