checkov-mcp
by niyepes
README.md
# checkov-mcp
MCP Server para analizar resultados de **Checkov** y generar explicaciones ejecutivas de vulnerabilidades en infraestructura Terraform.
## Arquitectura
```
src/checkov_mcp/
├── domain/ → Entidades del negocio (Pydantic models + interfaces)
├── application/ → Casos de uso (servicios)
├── infrastructure/ → Adaptadores externos (runner Checkov, formateador JSON)
└── presentation/ → Capa MCP (FastMCP server + tools)
```
Principios: **Clean Architecture**, **SOLID**, tipado completo con **Pydantic v2**.
## Requisitos
- Python 3.12+
- Checkov (opcional, solo para modo `auto`): `pip install checkov`
## Instalación
```bash
pip install -e .
```
## Uso como MCP Server
### Inicio directo
```bash
python -m checkov_mcp.presentation.server
```
### Integración con cliente MCP
```python
from fastmcp import FastMCP
client = FastMCP("checkov-mcp")
# o usa nuestro create_app()
from checkov_mcp import create_app
server = create_app()
```
## Herramientas MCP
| Tool | Input | Output | Descripción |
|------|-------|--------|-------------|
| `run_checkov` | `path: str`, `mode: str` | `CheckovReport` | Escanea o parsea JSON |
| `summarize_findings` | `report: dict` | `SummaryResult` | Resumen agrupado por severidad |
| `generate_talk_summary` | `report: dict` | `TalkSummary` | Explicación ejecutiva |
| `get_failed_checks` | `report: dict` | `list[CheckovFinding]` | Solo fallos |
## Modos de escaneo
- **auto** (default): ejecuta `checkov --directory <path>` en vivo.
- **offline**: parsea un archivo JSON pre-generado.
## Desarrollo
```bash
pip install -e ".[dev]"
pytest --cov=checkov_mcp tests/
```
## Ejemplo
```python
import asyncio
from checkov_mcp import create_app
server = create_app()
# Usar con cualquier transporte MCP
```
Ver `examples/usage.py` para un ejemplo completo.
This server cannot be deployed
Maintenance
ActivitySlowing
ResponsivenessNo issues