loading…
Search for a command to run...
loading…
An MCP server that integrates SAST, DAST, and SCA security tools to enable AI-driven vulnerability scanning and automated security reporting. It allows AI assis
An MCP server that integrates SAST, DAST, and SCA security tools to enable AI-driven vulnerability scanning and automated security reporting. It allows AI assistants to execute and analyze results from tools like Semgrep, OWASP ZAP, and Trivy within a DevSecOps workflow.
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.
# 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
Clonar el repositorio
git clone <repository-url>
cd DevSecOps-MCP
Instalar dependencias
npm install
Configurar entorno
cp .env.example .env
# Edita .env con tus credenciales de herramientas
Compilar el proyecto
npm run build
Iniciar el servidor
npm run start:mcp
Usando Docker Compose (Recomendado)
# Copiar archivo de entorno
cp .env.example .env
# Editar .env con tus credenciales
# Iniciar todos los servicios
docker-compose up -d
Usando Docker directamente
# Construir imagen
docker build -t devsecops-mcp .
# Ejecutar contenedor
docker run -p 3000:3000 --env-file .env devsecops-mcp
Para usar este servidor MCP con Claude Desktop u otros clientes MCP, necesitas configurar los ajustes del cliente.
Localizar el archivo de configuración de Claude Desktop:
~/Library/Application Support/Claude/claude_desktop_config.json%APPDATA%\Claude\claude_desktop_config.jsonAgregar 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
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"]
}
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_DIRVariables 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
Edita src/config/security-rules.yml para personalizar:
Edita src/config/tool-configs.json para:
El servidor proporciona las siguientes herramientas MCP:
{
"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
}
}
{
"name": "run_dast_scan",
"description": "Ejecutar escaneo de seguridad DAST",
"inputSchema": {
"target_url": "string", // URL de la aplicación
"scan_type": "enum", // quick|baseline|full
"authentication": "object" // Credenciales de inicio de sesión
}
}
{
"name": "run_sca_scan",
"description": "Ejecutar escaneo de dependencias SCA",
"inputSchema": {
"project_path": "string", // Directorio del proyecto
"package_manager": "enum", // npm|yarn|maven|gradle|pip
"tool": "enum", // osv-scanner|trivy|npm-audit|auto
"fix_vulnerabilities": "bool" // Auto-corrección habilitada
}
}
{
"name": "run_iast_scan",
"description": "Ejecutar análisis de seguridad tipo IAST",
"inputSchema": {
"target_url": "string", // URL o puerto de la aplicación
"environment": "enum", // dev|staging|testing
"tool": "enum", // trivy|owasp-zap|auto
"test_suite": "string" // Suite de pruebas a ejecutar (opcional)
}
}
{
"name": "generate_security_report",
"description": "Generar informe de seguridad completo",
"inputSchema": {
"scan_ids": "array", // IDs de resultados de escaneo
"format": "enum", // json|html|pdf|sarif
"include_remediation": "bool" // Incluir guía de corrección
}
}
{
"name": "validate_security_policy",
"description": "Validar cumplimiento de política de seguridad",
"inputSchema": {
"policy_file": "string", // Ruta del archivo de política
"scan_results": "array" // IDs de resultados de escaneo
}
}
| Prueba de Seguridad | Vulnerabilidades Detectadas | Precisión | Estado de Herramienta | Tiempo de Prueba |
|---|---|---|---|---|
| SAST | 60+ problemas | 95%+ | ✅ Verificado | ~5s |
| DAST | 5+ tipos | 100% | ✅ Verificado | ~30s |
| SCA | 20 problemas | 100% | ✅ Verificado | ~3s |
| IAST | Configuración Runtime | 100% | ✅ Verificado | ~2s |
Automatizado (Windows - PowerShell):
# Ejecuta el servidor vulnerable y todas las pruebas de seguridad
.\run-security-tests.ps1
Manual (Linux/Mac):
# 1. Iniciar servidor vulnerable
node test-vulnerable-server.js &
# 2. Ejecutar suite de pruebas
node test-all-security.js
npm test
npm run test:coverage
npm run test:integration
### Estructura de Pruebas
- **Muestras vulnerables reales**: `test-samples/`
- **Dependencias vulnerables**: `test-vulnerable-dependencies/`
- **Script de prueba completo**: `test-all-security.js`
- Pruebas unitarias: `tests/security/`
- Pruebas de integración: `tests/integration/`
## 🚀 Ejemplos de Uso
### ⚡ Inicio Rápido (realmente verificado)
```bash
# 1. Verificar instalación de herramientas de seguridad
semgrep --version
bandit --version
# 2. Probar inmediatamente con muestras vulnerables proporcionadas
semgrep --config=auto --json test-samples/vulnerable-app.js
# Resultado: 7 vulnerabilidades detectadas (SQL Injection, XSS, Command Injection, etc.)
bandit -f json test-samples/vulnerable-app.py
# Resultado: 19 problemas encontrados (4 de alto riesgo)
# 3. Escanear dependencias vulnerables
cd test-vulnerable-dependencies && npm audit
# Resultado: 20 vulnerabilidades (críticas: 4, altas: 10)
curl -X POST http://localhost:3000/mcp \
-H "Content-Type: application/json" \
-d '{
"method": "tools/call",
"params": {
"name": "run_sast_scan",
"arguments": {
"target": "/ruta/al/codigo/fuente",
"severity_threshold": "high"
}
}
}'
# 1. Análisis SAST
curl -X POST http://localhost:3000/mcp \
-d '{"method": "tools/call", "params": {"name": "run_sast_scan", "arguments": {"target": "/src"}}}'
# 2. Escaneo de Dependencias
curl -X POST http://localhost:3000/mcp \
-d '{"method": "tools/call", "params": {"name": "run_sca_scan", "arguments": {"project_path": "/src"}}}'
# 3. Pruebas Dinámicas
curl -X POST http://localhost:3000/mcp \
-d '{"method": "tools/call", "params": {"name": "run_dast_scan", "arguments": {"target_url": "https://app.example.com"}}}'
# 4. Generar Informe
curl -X POST http://localhost:3000/mcp \
-d '{"method": "tools/call", "params": {"name": "generate_security_report", "arguments": {"scan_ids": ["sast-123", "sca-456", "dast-789"], "format": "html"}}}'
#!/bin/bash
# .git/hooks/pre-commit
git-secrets --scan
semgrep --config=auto --error
npm audit --audit-level high
osv-scanner --lockfile=package-lock.json .
trivy fs --exit-code 1 --severity HIGH,CRITICAL .
# .github/workflows/security.yml
security_scan:
runs-on: ubuntu-latest
steps:
- name: Escaneo SAST
run: |
curl -X POST $MCP_SERVER_URL/mcp \
-d '{"method": "tools/call", "params": {"name": "run_sast_scan", "arguments": {"target": "."}}}'
curl http://localhost:3000/health
# Problema: error de permisos con pip3
# Solución:
pip3 install --user semgrep bandit
# O con permisos de sistema
sudo pip3 install semgrep bandit
# Problema: errores de verificación estricta de tipos
# Solución temporal: omitir compilación y ejecutar con JavaScript
node test-all-security.js # Probar sin compilación TypeScript
# Solución permanente: corregir configuración de tsconfig.json
# Problema: sin permisos de ejecución de Docker
# Solución:
sudo usermod -aG docker $USER
newgrp docker
# Problema: puertos 3000, 3001 ya en uso
# Solución:
export MCP_PORT=3002
node test-vulnerable-server.js # Usar puerto diferente
# Problema: error de compilación de node-sass
# Solución: instalar excluyendo paquetes problemáticos
cd test-vulnerable-dependencies
npm install --ignore-engines
Licencia MIT - ver archivo LICENSE para detalles.
Copyright (c) 2025 jmstar85
docs/DevSecOps MCP Server es una plataforma de automatización de seguridad impulsada por IA, verificada mediante pruebas en el mundo real:
# Configurar y probar en menos de 5 minutos
pip3 install semgrep bandit
git clone <repo> && cd DevSecOps-MCP
.\run-security-tests.ps1
Construido con seguridad en mente para flujos de trabajo DevSecOps modernos 🛡️
"El futuro de la seguridad es impulsado por IA, abierto y automatizado."
Добавь это в claude_desktop_config.json и перезапусти Claude Desktop.
{
"mcpServers": {
"devsecops-mcp-server": {
"command": "npx",
"args": []
}
}
}Web content fetching and conversion for efficient LLM usage.
Retrieval from AWS Knowledge Base using Bedrock Agent Runtime.
Provides auto-configuration for setting up an MCP server in Spring Boot applications.
A very streamlined mcp client that supports calling and monitoring stdio/sse/streamableHttp, and can also view request responses through the /logs page. It also