MCP Security Scanner
Enables comprehensive security scanning of code projects, detecting vulnerabilities in dependencies, code patterns (XSS, eval, etc.), and exposed secrets, with detailed reports in Spanish prioritized by severity.
README
🔒 MCP Security Scanner
Servidor MCP (Model Context Protocol) para escaneo de vulnerabilidades en código y dependencias. Genera reportes detallados en español con soluciones priorizadas por criticidad.
✨ Características
- 📦 Escaneo de dependencias usando npm audit
- 💻 Análisis de código fuente para detectar patrones vulnerables (XSS, eval, etc.)
- 🔑 Detección de secrets expuestos (API keys, tokens, contraseñas)
- 🇪🇸 Reportes en español con soluciones detalladas
- 📊 Priorización por severidad (Crítico → Alto → Medio → Bajo)
- 📝 Reportes en Markdown fáciles de leer y versionar
📋 Requisitos
- Node.js 18.0.0 o superior
- npm 9.0.0 o superior
🚀 Instalación
# Navegar al proyecto
cd mcp-security-scanner
# Instalar dependencias
npm install
📖 Uso
Con MCP Inspector (Recomendado para pruebas)
npm run mcp:inspector
Esto abrirá una interfaz web donde puedes:
- Conectar al servidor
- Listar herramientas disponibles
- Ejecutar escaneos de seguridad
Con Claude Desktop / Windsurf
Agrega esta configuración a tu archivo de configuración MCP:
{
"mcpServers": {
"security-scanner": {
"command": "npx",
"args": ["tsx", "src/index.ts"],
"cwd": "/ruta-proyecto/mcp-security-scanner"
}
}
}
🛠️ Herramientas Disponibles
scan_dependencies
Escanea vulnerabilidades en las dependencias del package.json usando npm audit.
| Parámetro | Tipo | Requerido | Descripción |
|---|---|---|---|
projectPath |
string | ✅ | Ruta absoluta al proyecto |
includeDevDeps |
boolean | ❌ | Incluir devDependencies (default: true) |
Ejemplo:
"Escanea las dependencias del proyecto en D:/mi-proyecto"
scan_code_vulnerabilities
Escanea el código fuente buscando patrones de código vulnerable.
| Parámetro | Tipo | Requerido | Descripción |
|---|---|---|---|
projectPath |
string | ✅ | Ruta absoluta al proyecto |
patterns |
string[] | ❌ | Patrones glob (default: src/**/*.{ts,tsx,js,jsx}) |
Detecta:
- XSS (dangerouslySetInnerHTML, innerHTML)
- Ejecución de código (eval, new Function)
- Almacenamiento inseguro de tokens
- Redirecciones abiertas
- ReDoS potencial
scan_secrets
Detecta secrets expuestos en el código fuente.
| Parámetro | Tipo | Requerido | Descripción |
|---|---|---|---|
projectPath |
string | ✅ | Ruta absoluta al proyecto |
patterns |
string[] | ❌ | Patrones glob de archivos |
Detecta:
- API Keys (Stripe, Google, GitHub, Slack)
- Contraseñas hardcodeadas
- Claves privadas
- Connection strings de bases de datos
generate_security_report
Genera un reporte completo de seguridad en formato Markdown.
| Parámetro | Tipo | Requerido | Descripción |
|---|---|---|---|
projectPath |
string | ✅ | Ruta absoluta al proyecto |
outputDir |
string | ❌ | Directorio de salida (default: ./reports) |
projectName |
string | ❌ | Nombre del proyecto para el reporte |
Ejemplo:
"Genera un reporte de seguridad completo para el proyecto frontend-app"
📊 Niveles de Severidad
| Nivel | Emoji | Descripción | Acción Requerida |
|---|---|---|---|
| CRÍTICO | 🔴 | Vulnerabilidad explotable remotamente | Acción inmediata |
| ALTO | 🟠 | Riesgo significativo de seguridad | < 24 horas |
| MEDIO | 🟡 | Vulnerabilidad con impacto limitado | < 1 semana |
| BAJO | 🟢 | Riesgo mínimo | Próximo sprint |
📁 Estructura del Proyecto
mcp-security-scanner/
├── src/
│ ├── index.ts # Punto de entrada
│ ├── server.ts # Configuración del servidor MCP
│ ├── tools/ # Definición de herramientas
│ │ ├── index.ts
│ │ ├── scan-dependencies.tool.ts
│ │ ├── scan-code.tool.ts
│ │ ├── scan-secrets.tool.ts
│ │ └── generate-report.tool.ts
│ ├── services/ # Lógica de negocio
│ │ ├── index.ts
│ │ ├── dependency-scanner.service.ts
│ │ ├── code-scanner.service.ts
│ │ └── report.service.ts
│ ├── patterns/ # Patrones de detección
│ │ ├── index.ts
│ │ └── code-patterns.ts
│ ├── types/ # Tipos TypeScript
│ │ └── index.ts
│ └── utils/ # Utilidades
│ ├── index.ts
│ ├── constants.ts
│ └── formatters.ts
├── docs/
│ └── GUIA_USO.md # Guía de uso detallada
├── reports/ # Reportes generados (gitignore)
├── package.json
├── tsconfig.json
└── README.md
🌿 Ramas del Repositorio
| Rama | Contenido |
|---|---|
master |
Código fuente del servidor MCP Security Scanner |
test-vulnerable-app |
Proyecto React de prueba con vulnerabilidades intencionales para validar el MCP |
Proyecto de Prueba
La rama test-vulnerable-app contiene una aplicación React + TypeScript con vulnerabilidades intencionales:
- 📦 Dependencias vulnerables: lodash, axios, minimist, node-fetch con CVEs conocidos
- 💻 Código vulnerable: XSS, eval(), innerHTML, tokens en localStorage, redirecciones abiertas
- 🔑 Secrets expuestos: API keys, contraseñas, connection strings
Para usar el proyecto de prueba:
# Cambiar a la rama de prueba
git checkout test-vulnerable-app
# Instalar dependencias
npm install
# Ejecutar el escaneo desde el MCP
# En MCP Inspector usar: projectPath = ruta/al/proyecto
📚 Documentación
- Guía de Uso Paso a Paso - Instrucciones detalladas
🔧 Scripts Disponibles
# Iniciar servidor MCP
npm start
# Iniciar con MCP Inspector
npm run mcp:inspector
# Verificar tipos TypeScript
npm run typecheck
# Compilar a JavaScript
npm run build
📄 Licencia
MIT
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
E2B
Using MCP to run code via e2b.