Servidor DevSecOps MCP
Un servidor basado en el Protocolo de Contexto de Modelo (MCP) que integra herramientas de seguridad (SAST, DAST, SCA) para automatización DevSecOps impulsada por IA.
Este paquete permite a asistentes de IA como Claude realizar escaneos de seguridad, analizar vulnerabilidades y generar reportes profesionales.
Instalación
Requisitos Previos
- Node.js 18+
- Python 3.8+ (para herramientas de seguridad)
- Docker y Docker Compose (para despliegue en contenedores)
Instalación de Herramientas de Seguridad Requeridas (verificado)
# Herramientas SAST
pip3 install semgrep bandit
# Herramientas DAST (Docker)
docker pull ghcr.io/zaproxy/zaproxy:stable
# Herramientas SCA (npm audit viene incluido con Node.js)
# OSV Scanner (opcional)
wget -qO- https://github.com/google/osv-scanner/releases/latest/download/osv-scanner_linux_amd64.tar.gz | tar -xz -C /usr/local/bin
# Trivy (opcional)
wget -qO- https://raw.githubusercontent.com/aquasecurity/trivy/main/contrib/install.sh | sh
Desarrollo Local
Clonar el repositorio
git clone <repository-url> cd DevSecOps-MCPInstalar dependencias
npm installConfigurar entorno
cp .env.example .env # Edita .env con tus credenciales de herramientasCompilar el proyecto
npm run buildIniciar el servidor
npm run start:mcp
Despliegue con Docker
Usando Docker Compose (Recomendado)
# Copiar archivo de entorno cp .env.example .env # Editar .env con tus credenciales # Iniciar todos los servicios docker-compose up -dUsando Docker directamente
# Construir imagen docker build -t devsecops-mcp . # Ejecutar contenedor docker run -p 3000:3000 --env-file .env devsecops-mcp
🔌 Configuración del Cliente MCP
Para usar este servidor MCP con Claude Desktop u otros clientes MCP, necesitas configurar los ajustes del cliente.
Configuración de Claude Desktop
Localizar el archivo de configuración de Claude Desktop:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
- macOS:
Agregar la configuración del servidor DevSecOps MCP:
{ "mcpServers": { "devsecops": { "command": "node", "args": ["dist/src/mcp/server.js"], "cwd": "/path/to/DevSecOps-MCP", "env": { "NODE_ENV": "production", "MCP_PORT": "3000", "LOG_LEVEL": "info", "SECURITY_STRICT_MODE": "true" } } } }Alternativa: Usar el archivo de configuración proporcionado:
# Copiar la configuración proporcionada cp .mcprc.json ~/Library/Application\ Support/Claude/claude_desktop_config.json # Editar la ruta cwd para que coincida con tu instalación
Otros Clientes MCP
Para otros clientes MCP, usa la configuración del servidor desde mcp-server.json:
{
"name": "devsecops-mcp-server",
"command": "node dist/src/mcp/server.js",
"args": [],
"capabilities": ["tools"]
}
Configuración del Entorno
Asegúrate de que todas las variables de entorno requeridas estén configuradas:
# Copiar plantilla de entorno
cp .env.example .env
# Editar con tu configuración
nano .env
Requeridas para funcionalidad básica:
SONARQUBE_URL(si usas SonarQube)ZAP_URL(si usas OWASP ZAP en modo API; por defecto se usa Docker)
Opcionales pero recomendadas:
OSV_SCANNER_PATHTRIVY_PATHTRIVY_CACHE_DIR
🔐 Configuración
Variables de Entorno
Variables de entorno clave (ver .env.example para la lista completa):
# Configuración del Servidor
NODE_ENV=production
MCP_PORT=3000
SECURITY_STRICT_MODE=true
# Configuración de Herramientas
SONARQUBE_TOKEN=tu-token
ZAP_API_KEY=tu-clave
OSV_SCANNER_PATH=osv-scanner
TRIVY_PATH=trivy
TRIVY_CACHE_DIR=/tmp/trivy-cache
Reglas de Seguridad
Edita src/config/security-rules.yml para personalizar:
- Umbrales de vulnerabilidad
- Puertas de calidad
- Aplicación de políticas
- Configuraciones de herramientas
Configuraciones de Herramientas
Edita src/config/tool-configs.json para:
- Ajustes específicos de herramientas
- Políticas de escaneo
- Parámetros de integración
📊 Herramientas MCP
El servidor proporciona las siguientes herramientas MCP:
1. Escaneo SAST
{
"name": "run_sast_scan",
"description": "Ejecutar escaneo de seguridad SAST",
"inputSchema": {
"target": "string", // Ruta/repositorio del código fuente
"rules": "array", // Reglas de seguridad
"severity_threshold": "enum", // low|medium|high|critical
"tool": "enum" // sonarqube|semgrep|auto
}
}
2. Escaneo DAST
{
"name":
Tools 1
run_sast_scanExecute a SAST security scan on the target codebase.Environment Variables
SONARQUBE_URLURL for SonarQube integrationZAP_URLURL for OWASP ZAP APISONARQUBE_TOKENAuthentication token for SonarQubeZAP_API_KEYAPI key for OWASP ZAP