<p align="center">
  <a href="README.md">English</a> |
  <a href="README.zh.md">简体中文</a> |
  <a href="README.zh-TW.md">繁體中文</a> |
  <a href="README.ko.md">한국어</a> |
  <a href="README.de.md">Deutsch</a> |
  <strong>Español</strong> |
  <a href="README.fr.md">Français</a> |
  <a href="README.it.md">Italiano</a> |
  <a href="README.da.md">Dansk</a> |
  <a href="README.ja.md">日本語</a> |
  <a href="README.pl.md">Polski</a> |
  <a href="README.ru.md">Русский</a> |
  <a href="README.bs.md">Bosanski</a> |
  <a href="README.ar.md">العربية</a> |
  <a href="README.no.md">Norsk</a> |
  <a href="README.pt-BR.md">Português (Brasil)</a> |
  <a href="README.th.md">ไทย</a> |
  <a href="README.tr.md">Türkçe</a> |
  <a href="README.uk.md">Українська</a> |
  <a href="README.bn.md">বাংলা</a> |
  <a href="README.el.md">Ελληνικά</a> |
  <a href="README.vi.md">Tiếng Việt</a> |
  <a href="README.hi.md">हिन्दी</a>
</p>

<p align="center">
  <br>
  <picture>
    <source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/badchars/cve-mcp/main/.github/banner-dark.svg">
    <source media="(prefers-color-scheme: light)" srcset="https://raw.githubusercontent.com/badchars/cve-mcp/main/.github/banner-light.svg">
    <img alt="cve-mcp" src="https://raw.githubusercontent.com/badchars/cve-mcp/main/.github/banner-dark.svg" width="700">
  </picture>
</p>

<h3 align="center">Inteligencia de CVE y vulnerabilidades para agentes de IA.</h3>

<p align="center">
  NVD, EPSS, CISA KEV, GitHub Advisory, OSV, Shodan, VulnCheck, Vulners, Nuclei, Metasploit, CIRCL, AttackerKB y MITRE ATT&amp;CK &mdash; unificados en un solo servidor MCP.<br>
  Tu agente de IA obtiene <b>inteligencia de vulnerabilidades bajo demanda</b>, no un informe de 200 páginas.
</p>

<br>

<p align="center">
  <a href="#el-problema">El problema</a> &bull;
  <a href="#en-qué-es-diferente">En qué es diferente</a> &bull;
  <a href="#inicio-rápido">Inicio rápido</a> &bull;
  <a href="#lo-que-la-ia-puede-hacer">Lo que la IA puede hacer</a> &bull;
  <a href="#referencia-de-herramientas-41-herramientas">Herramientas</a> &bull;
  <a href="#fuentes-de-datos">Fuentes de datos</a> &bull;
  <a href="#arquitectura">Arquitectura</a> &bull;
  <a href="CONTRIBUTING.md">Contribuir</a> &bull;
  <a href="CHANGELOG.md">Changelog</a>
</p>

<p align="center">
  <a href="https://www.npmjs.com/package/cve-mcp"><img src="https://img.shields.io/npm/v/cve-mcp.svg" alt="npm"></a>
  <a href="LICENSE"><img src="https://img.shields.io/badge/license-MIT-blue.svg" alt="License"></a>
  <img src="https://img.shields.io/badge/runtime-Bun-f472b6" alt="Bun">
  <img src="https://img.shields.io/badge/protocol-MCP-8b5cf6" alt="MCP">
  <img src="https://img.shields.io/badge/tools-41-f97316" alt="41 Tools">
  <img src="https://img.shields.io/badge/sources-11-ef4444" alt="11 Sources">
</p>

---

## El problema

La inteligencia de vulnerabilidades está dispersa en múltiples bases de datos. NVD tiene los detalles de CVE. EPSS indica la probabilidad de explotación. CISA KEV rastrea las vulnerabilidades activamente explotadas. GitHub Advisory cubre paquetes de código abierto. OSV mapea vulnerabilidades a versiones específicas de paquetes. Shodan rastrea la exposición en internet. Nuclei y Metasploit indican si existe un exploit funcional. Ninguna herramienta individual las agrega todas, y ninguna funciona con agentes de IA.

```
Flujo de trabajo tradicional:
  buscar detalles CVE en NVD           →  navegar una UI web engorrosa
  verificar riesgo de explotación EPSS →  API separada, formato separado
  consultar estado CISA KEV            →  descargar un feed JSON manualmente
  buscar avisos de GitHub              →  otra interfaz más
  consultar impacto en paquetes OSV    →  diferente API, diferente esquema
  verificar Shodan para exposición     →  suscripción separada
  buscar exploits Nuclei/MSF           →  búsqueda manual en GitHub
  mapear a técnicas ATT&CK             →  búsqueda separada en MITRE
  correlacionar todo                   →  copiar y pegar en una hoja de cálculo
  ──────────────────────────────────
  Total: más de 30 minutos por CVE, más tiempo para triaje masivo
```

**cve-mcp** proporciona a tu agente de IA 41 herramientas a través del [Model Context Protocol](https://modelcontextprotocol.io). El agente consulta 11 fuentes en paralelo, correlaciona datos, detecta señales de armamentización, calcula puntuaciones de riesgo y te dice exactamente qué importa.

```
Con cve-mcp:
  Tú: "Prioriza estos 10 CVEs por riesgo real de explotación"

  Agente: → obtiene puntuaciones CVSS de NVD
          → obtiene probabilidad de explotación EPSS para cada uno
          → verifica CISA KEV para explotación activa
          → cruza referencias con avisos de GitHub para parches
          → "3 son críticos: CVE-2024-3400 (EPSS 97%, en KEV),
             CVE-2023-44487 (HTTP/2 Rapid Reset, EPSS 96%),
             CVE-2021-44228 (Log4Shell, EPSS 97%, en KEV).
             Aquí están los parches y versiones afectadas..."
```

---

## En qué es diferente

Las herramientas existentes te dan datos sin procesar. cve-mcp le da a tu agente de IA la capacidad de razonar sobre vulnerabilidades.

<table>
<thead>
<tr>
<th></th>
<th>Herramientas tradicionales</th>
<th>cve-mcp</th>
</tr>
</thead>
<tbody>
<tr>
<td><b>Interfaz</b></td>
<td>UI web / CLI / llamadas API directas</td>
<td>MCP &mdash; el agente IA llama herramientas conversacionalmente</td>
</tr>
<tr>
<td><b>Fuentes de datos</b></td>
<td>Una base de datos a la vez</td>
<td>11 fuentes en paralelo: NVD, EPSS, KEV, GHSA, OSV, Shodan, VulnCheck, Vulners, Nuclei, Metasploit, CIRCL</td>
</tr>
<tr>
<td><b>Puntuación de riesgo</b></td>
<td>Solo CVSS (severidad, no explotabilidad)</td>
<td>CVSS &times; EPSS &times; KEV &times; Multiplicador de exploit (Nuclei/MSF) = riesgo real</td>
</tr>
<tr>
<td><b>Correlación</b></td>
<td>Copiar y pegar manual</td>
<td>El agente enriquece: "CVSS 9.8, EPSS 97%, KEV, plantilla Nuclei existe, módulo MSF disponible, mapea a T1190"</td>
</tr>
<tr>
<td><b>Triaje masivo</b></td>
<td>Un CVE a la vez</td>
<td>El agente prioriza 50 CVEs en una sola conversación</td>
</tr>
<tr>
<td><b>Impacto en paquetes</b></td>
<td>Búsqueda separada en OSV/GHSA</td>
<td>El agente encuentra paquetes afectados + versiones automáticamente</td>
</tr>
<tr>
<td><b>Dependencias</b></td>
<td>Herramientas CLI pesadas, entornos Python</td>
<td>2 dependencias de ejecución, se ejecuta con npx</td>
</tr>
</tbody>
</table>

---

## Inicio rápido

### Opción 1: npx (sin instalación)

```bash
npx cve-mcp
```

### Opción 2: Clonar

```bash
git clone https://github.com/badchars/cve-mcp.git
cd cve-mcp
bun install
```

### Variables de entorno (todas opcionales)

```bash
# Aumenta el límite de velocidad de NVD de 5 a 50 solicitudes cada 30 segundos
export NVD_API_KEY=your-nvd-api-key

# Habilita la búsqueda de GitHub Advisory (60 → 5000 solicitudes/hora)
export GITHUB_TOKEN=ghp_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

# VulnCheck KEV extendido, búsqueda CPE, PURL
export VULNCHECK_API_KEY=your-vulncheck-key

# Búsqueda de vulnerabilidades Vulners en más de 200 fuentes
export VULNERS_API_KEY=your-vulners-key

# Evaluaciones de la comunidad AttackerKB
export ATTACKERKB_API_KEY=your-attackerkb-key
```

Todas son opcionales. El servidor funciona sin ellas — algunas herramientas simplemente tendrán límites de velocidad más bajos o datos reducidos.

### Conectar a tu agente de IA

<details open>
<summary><b>Claude Code</b></summary>

```bash
# Con npx
claude mcp add cve-mcp -- npx cve-mcp

# Con clon local
claude mcp add cve-mcp -- bun run /path/to/cve-mcp/src/index.ts
```

</details>

<details>
<summary><b>Claude Desktop</b></summary>

Agregar a `~/Library/Application Support/Claude/claude_desktop_config.json`:

```json
{
  "mcpServers": {
    "cve-mcp": {
      "command": "npx",
      "args": ["cve-mcp"],
      "env": {
        "NVD_API_KEY": "optional-key",
        "GITHUB_TOKEN": "optional-token",
        "VULNCHECK_API_KEY": "optional-key",
        "VULNERS_API_KEY": "optional-key",
        "ATTACKERKB_API_KEY": "optional-key"
      }
    }
  }
}
```

</details>

<details>
<summary><b>Cursor / Windsurf / otros clientes MCP</b></summary>

Mismo formato de configuración JSON. Apunta el comando a `npx cve-mcp` o a tu ruta de instalación.

</details>

### Comenzar a consultar

```
Tú: "¿Qué sabes sobre CVE-2024-3400?"
```

Eso es todo. El agente se encarga del resto.

---

## Lo que la IA puede hacer

### Respuesta a incidentes

```
Tú: "Nos atacaron con CVE-2024-3400. Dame todo."

Agente: → cve_enrich {cveId: "CVE-2024-3400"}
        → NVD: Inyección de comandos PAN-OS, CVSS 10.0
        → EPSS: 97.2% probabilidad de explotación
        → KEV: Agregado 2024-04-12, fecha límite 2024-05-01
        → Shodan: 4 CPEs, expuesto en internet
        → Nuclei: Plantilla de detección existe (crítica)
        → Metasploit: Módulo de exploit disponible (rango excelente)
        → "Crítico. Armamentizado — existen módulos Nuclei y MSF.
           PAN-OS GlobalProtect, versiones < 10.2.9-h1.
           Parchear inmediatamente. Fecha límite CISA: 1 de mayo."
```

### Priorización de vulnerabilidades

```
Tú: "Prioriza estos CVEs de nuestro escaneo: CVE-2021-44228, CVE-2024-3400,
     CVE-2023-44487, CVE-2024-21762, CVE-2023-4966"

Agente: → cve_prioritize {cves: [...]}
        → Clasifica por CVSS × EPSS × multiplicador KEV
        → "#1: CVE-2024-3400 (riesgo: 19.44, CVSS 10.0, EPSS 97%, KEV)
           #2: CVE-2021-44228 (riesgo: 19.40, CVSS 10.0, EPSS 97%, KEV)
           #3: CVE-2023-4966 (riesgo: 19.10, CVSS 9.4, EPSS 97%, KEV)
           Los 5 están en CISA KEV — parchear todos inmediatamente."
```

### Auditoría de dependencias

```
Tú: "Verifica si lodash 4.17.20 y django 3.2.0 tienen vulnerabilidades conocidas"

Agente: → osv_batch {queries: [
           {package: "lodash", version: "4.17.20", ecosystem: "npm"},
           {package: "django", version: "3.2.0", ecosystem: "PyPI"}
        ]}
        → "lodash 4.17.20: 3 vulnerabilidades (contaminación de prototipo)
           django 3.2.0: 12 vulnerabilidades (inyección SQL, XSS)
           Actualizar lodash a 4.17.21+, django a 4.2+"
```

### Monitoreo de amenazas

```
Tú: "¿Cuáles son los CVEs con más probabilidad de ser explotados ahora mismo?"

Agente: → cve_trending {limit: 10, minEpss: 0.9}
        → "Top 10 por probabilidad de explotación:
           1. CVE-2024-3400 — PAN-OS (EPSS 97.2%, CVSS 10.0, KEV)
           2. CVE-2023-44487 — HTTP/2 Rapid Reset (EPSS 96.5%, CVSS 7.5, KEV)
           ..."
```

### Análisis profundo de CVSS (v3.1 y v4.0)

```
Tú: "Desglosa este vector CVSS v4.0: CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N"

Agente: → cvss_parse {vector: "CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N"}
        → "CVSS v4.0 — Puntuación: 9.3 (CRÍTICO)
           Ataque por red, complejidad baja, sin requisitos de ataque.
           Sin privilegios, sin interacción del usuario.
           Sistema vulnerable: impacto total en C/I/A.
           Sistemas posteriores: sin impacto."
```

### Mapeo ATT&CK

```
Tú: "Mapea CVE-2024-3400 a técnicas MITRE ATT&CK"

Agente: → cve_to_attack {cweIds: ["CWE-77"]}
        → "CWE-77 (Command Injection) mapea a:
           T1059 — Command and Scripting Interpreter (Execution)
           T1190 — Exploit Public-Facing Application (Initial Access)"
```

---

## Referencia de herramientas (41 herramientas)

<details>
<summary><b>NVD (4)</b></summary>

| Herramienta | Descripción |
|-------------|-------------|
| `nvd_search` | Buscar CVEs por palabra clave, severidad, CWE, rango de fechas |
| `nvd_get` | Obtener detalles completos de CVE (CVSS, CWE, CPE, referencias) |
| `nvd_recent` | CVEs recientemente publicados/modificados |
| `cve_by_product` | Buscar CVEs por nombre de producto (coincidencia de palabra clave CPE) |

</details>

<details>
<summary><b>EPSS (2)</b></summary>

| Herramienta | Descripción |
|-------------|-------------|
| `epss_score` | Probabilidad de explotación EPSS para uno o más CVEs |
| `epss_top` | CVEs principales por probabilidad de explotación |

</details>

<details>
<summary><b>KEV (3)</b></summary>

| Herramienta | Descripción |
|-------------|-------------|
| `kev_check` | Verificar si CVE(s) están en el catálogo CISA de vulnerabilidades explotadas conocidas |
| `kev_search` | Buscar KEV por proveedor, producto o palabra clave |
| `kev_recent` | Entradas KEV agregadas recientemente |

</details>

<details>
<summary><b>GHSA (2)</b></summary>

| Herramienta | Descripción |
|-------------|-------------|
| `ghsa_search` | Buscar avisos de seguridad de GitHub por palabra clave, ecosistema, severidad |
| `ghsa_get` | Obtener detalles del aviso por ID de GHSA o ID de CVE |

</details>

<details>
<summary><b>OSV (3)</b></summary>

| Herramienta | Descripción |
|-------------|-------------|
| `osv_query` | Consultar vulnerabilidades para una versión específica de paquete |
| `osv_get` | Obtener detalles de vulnerabilidad por ID de OSV/GHSA/CVE |
| `osv_batch` | Consulta por lotes de múltiples paquetes a la vez |

</details>

<details>
<summary><b>Exploit (1)</b></summary>

| Herramienta | Descripción |
|-------------|-------------|
| `exploit_search` | Buscar exploits PoC públicos (repositorios de GitHub) |

</details>

<details>
<summary><b>Shodan (3)</b></summary>

| Herramienta | Descripción |
|-------------|-------------|
| `shodan_cve` | Búsqueda CVE vía Shodan CVEDB (EPSS, KEV, CPE integrados, sin autenticación) |
| `shodan_product` | Encontrar CVEs por nombre de producto/proveedor vía Shodan |
| `shodan_ip_vulns` | Obtener vulnerabilidades conocidas para una dirección IP (InternetDB) |

</details>

<details>
<summary><b>VulnCheck (3)</b></summary>

| Herramienta | Descripción |
|-------------|-------------|
| `vulncheck_kev` | Catálogo KEV extendido (~80% más entradas que CISA) |
| `vulncheck_cpe` | Búsqueda de CVE por cadena CPE |
| `vulncheck_purl` | Búsqueda de CVE por Package URL (purl) |

</details>

<details>
<summary><b>Vulners (2)</b></summary>

| Herramienta | Descripción |
|-------------|-------------|
| `vulners_lookup` | Detalles CVE de Vulners (más de 200 fuentes, referencias de exploits) |
| `vulners_search` | Búsqueda de texto completo en la base de datos de Vulners |

</details>

<details>
<summary><b>Nuclei & Metasploit (2)</b></summary>

| Herramienta | Descripción |
|-------------|-------------|
| `nuclei_check` | Verificar si existe una plantilla de detección Nuclei para un CVE |
| `msf_check` | Verificar si existe un módulo de exploit Metasploit para un CVE |

</details>

<details>
<summary><b>CPE (2)</b></summary>

| Herramienta | Descripción |
|-------------|-------------|
| `cpe_search` | Buscar en el diccionario CPE de NVD por palabra clave |
| `cpe_match` | Obtener coincidencias CPE para un CVE específico |

</details>

<details>
<summary><b>CIRCL (1)</b></summary>

| Herramienta | Descripción |
|-------------|-------------|
| `circl_cve` | Enriquecimiento CVE de CIRCL (CAPEC, referencias alternativas, vectores de impacto) |

</details>

<details>
<summary><b>AttackerKB (1)</b></summary>

| Herramienta | Descripción |
|-------------|-------------|
| `attackerkb_assess` | Evaluaciones de la comunidad de AttackerKB (valor para el atacante, explotabilidad) |

</details>

<details>
<summary><b>ATT&CK (1)</b></summary>

| Herramienta | Descripción |
|-------------|-------------|
| `cve_to_attack` | Mapear IDs CWE de CVE a técnicas y tácticas MITRE ATT&CK |

</details>

<details>
<summary><b>CWE (4)</b></summary>

| Herramienta | Descripción |
|-------------|-------------|
| `cwe_lookup` | Buscar debilidad CWE por ID o buscar por palabra clave (BD estática) |
| `cwe_get` | Detalles completos de CWE desde la API de MITRE (más de 1000 CWEs, mitigaciones, ejemplos) |
| `cwe_hierarchy` | Jerarquía padre/hijo de CWE desde la API de MITRE |
| `cwe_top25` | MITRE CWE Top 25 debilidades de software más peligrosas |

</details>

<details>
<summary><b>CVSS (1)</b></summary>

| Herramienta | Descripción |
|-------------|-------------|
| `cvss_parse` | Analizar y explicar una cadena de vector CVSS v3.1 o v4.0 con cálculo de puntuación |

</details>

<details>
<summary><b>Meta (6)</b></summary>

| Herramienta | Descripción |
|-------------|-------------|
| `cve_enrich` | Enriquecimiento completo: NVD + EPSS + KEV + GHSA + OSV + Shodan + Nuclei + MSF en paralelo |
| `cve_prioritize` | Clasificar CVEs por riesgo (CVSS &times; EPSS &times; KEV &times; Multiplicador de exploit) |
| `cve_trending` | CVEs actualmente en tendencia por probabilidad de explotación |
| `cve_compare` | Comparación lado a lado de dos CVEs |
| `cve_list_sources` | Listar las 11 fuentes de datos y su disponibilidad |
| `cve_report` | Generar un informe de vulnerabilidades en Markdown |

</details>

---

## Fuentes de datos

| Fuente | Autenticación | Lo que proporciona |
|--------|---------------|-------------------|
| [NVD](https://nvd.nist.gov/) | Opcional `NVD_API_KEY` | Detalles CVE, puntuaciones CVSS, mapeos CWE, productos afectados CPE, referencias |
| [EPSS](https://www.first.org/epss/) | Ninguna | Puntuación de probabilidad de explotación (0-1) y clasificación por percentil |
| [CISA KEV](https://www.cisa.gov/known-exploited-vulnerabilities-catalog) | Ninguna | Vulnerabilidades explotadas conocidas con plazos de remediación |
| [GitHub Advisory](https://github.com/advisories) | Opcional `GITHUB_TOKEN` | Avisos de seguridad de código abierto, paquetes afectados, severidad |
| [OSV](https://osv.dev/) | Ninguna | Datos de vulnerabilidades a nivel de paquete en más de 16 ecosistemas |
| [Shodan CVEDB](https://cvedb.shodan.io/) | Ninguna | Búsqueda CVE con EPSS/KEV/CPE integrados, escaneo de vulnerabilidades por IP |
| [VulnCheck](https://vulncheck.com/) | Opcional `VULNCHECK_API_KEY` | KEV extendido (~80% más entradas), búsqueda de vulnerabilidades CPE/PURL |
| [Vulners](https://vulners.com/) | Opcional `VULNERS_API_KEY` | Búsqueda de vulnerabilidades en más de 200 fuentes, referencias de exploits |
| [Nuclei Templates](https://github.com/projectdiscovery/nuclei-templates) | Ninguna | Verificación de existencia de plantillas de detección CVE (severidad, etiquetas) |
| [Metasploit](https://github.com/rapid7/metasploit-framework) | Ninguna | Verificación de existencia de módulos de exploit (tipo, rango, ruta) |
| [CIRCL](https://cve.circl.lu/) | Ninguna | Enriquecimiento CVE con mapeo CAPEC, referencias alternativas, vectores de impacto |
| [AttackerKB](https://attackerkb.com/) | Opcional `ATTACKERKB_API_KEY` | Evaluaciones de la comunidad (valor para el atacante, calificaciones de explotabilidad) |
| [MITRE ATT&CK](https://attack.mitre.org/) | Ninguna | Mapeo CWE-a-ATT&CK (tácticas, técnicas) |
| [MITRE CWE](https://cwe-api.mitre.org/) | Ninguna | Base de datos completa CWE (más de 1000 debilidades, jerarquía, mitigaciones) |

### Fórmula de puntuación de riesgo

```
Puntuación de riesgo = Puntuación base CVSS × Puntuación EPSS × Multiplicador KEV × Multiplicador de Exploit

Donde:
  Puntuación base CVSS     = 0-10 (severidad de NVD)
  Puntuación EPSS          = 0-1 (probabilidad de explotación de FIRST)
  Multiplicador KEV        = 2 si está en CISA KEV, 1 en caso contrario
  Multiplicador de Exploit = 1.5 si existe plantilla Nuclei O módulo Metasploit, 1 en caso contrario
```

Esto proporciona una puntuación de riesgo práctica que equilibra la severidad (CVSS) con la probabilidad de explotación en el mundo real (EPSS), la explotación activa conocida (KEV) y las señales de armamentización (herramientas de exploit públicas).

---

## Arquitectura

```
src/
├── index.ts                    Punto de entrada + MCP stdio
├── types/
│   └── index.ts                ToolDef, ToolContext, ToolResult, tipos de API
├── protocol/
│   ├── tools.ts                41 definiciones de herramientas (Zod schemas)
│   └── mcp-server.ts           Servidor MCP + transporte stdio
├── nvd/
│   ├── index.ts                NVD API v2 — búsqueda, obtención, recientes
│   └── cpe.ts                  Búsqueda de producto/CPE
├── epss/
│   └── index.ts                EPSS — puntuación, top
├── kev/
│   └── index.ts                KEV — verificación, búsqueda, recientes (en caché)
├── ghsa/
│   └── index.ts                GitHub Advisory — búsqueda, obtención
├── osv/
│   └── index.ts                OSV — consulta, obtención, lote
├── exploit/
│   └── index.ts                Búsqueda de PoC vía repos de GitHub
├── shodan/
│   └── index.ts                Shodan CVEDB + InternetDB (sin autenticación)
├── vulncheck/
│   └── index.ts                VulnCheck KEV, CPE, PURL
├── vulners/
│   └── index.ts                Vulners búsqueda + consulta
├── nuclei/
│   └── index.ts                Verificación de existencia de plantillas Nuclei
├── metasploit/
│   └── index.ts                Verificación de módulos MSF (metadatos en caché)
├── cpe/
│   └── index.ts                API del diccionario CPE de NVD
├── circl/
│   └── index.ts                Enriquecimiento CVE de CIRCL
├── attackerkb/
│   └── index.ts                Evaluaciones de AttackerKB
├── attack/
│   └── index.ts                Mapeo CWE → MITRE ATT&CK
├── cwe/
│   └── index.ts                API CWE (MITRE) + respaldo estático
├── cvss/
│   └── index.ts                Parser CVSS v3.1 + v4.0 + calculadora
├── meta/
│   ├── enrich.ts               Enriquecimiento completo de CVE (8 fuentes en paralelo)
│   ├── prioritize.ts           Clasificación de CVE basada en riesgo
│   ├── trending.ts             CVEs en tendencia por EPSS
│   ├── compare.ts              Comparación lado a lado de CVE
│   └── sources.ts              Verificación de estado de las 11 fuentes
└── utils/
    ├── rate-limiter.ts          Limitador de velocidad basado en cola
    └── cache.ts                 Caché con TTL
```

**Decisiones de diseño:**

- **Inteligencia, no auditoría** &mdash; A diferencia de [cloud-audit-mcp](https://github.com/badchars/cloud-audit-mcp) y [github-security-mcp](https://github.com/badchars/github-security-mcp), esta es una herramienta de datos. Sin CheckResult, sin acumulación de hallazgos. Cada consulta es independiente y sin estado.
- **Enriquecimiento paralelo** &mdash; `cve_enrich` llama a 8 fuentes vía `Promise.allSettled`. Si una fuente está caída, las demás siguen devolviendo datos.
- **Detección de armamentización** &mdash; Verifica la existencia de plantillas Nuclei y módulos Metasploit para identificar CVEs con herramientas de exploit públicas.
- **Limitador de velocidad compartido** &mdash; Todos los módulos NVD comparten una única instancia de `RateLimiter` (6s entre solicitudes) para evitar errores 429.
- **Caché de KEV + MSF** &mdash; El catálogo KEV (~1200 entradas) y los metadatos de módulos MSF (~15MB) se cargan una vez y se almacenan en caché con TTL de 1 hora.
- **CWE modo dual** &mdash; API REST de MITRE CWE para detalle completo (más de 1000 CWEs), con respaldo estático de más de 40 entradas cuando la API no está disponible.
- **CVSS v3.1 + v4.0** &mdash; Detecta automáticamente la versión desde el prefijo del vector. V4.0 usa el enfoque de puntuación MacroVector.
- **Mapeo ATT&CK** &mdash; Tabla estática CWE-a-técnica (33 entradas CWE → técnicas ATT&CK). Sin llamadas API.
- **2 dependencias** &mdash; `@modelcontextprotocol/sdk` y `zod`. Nada más.

---

## Limitaciones

- La API de NVD sin `NVD_API_KEY` está limitada a 5 solicitudes cada 30 segundos. Configure la clave para uso en producción
- La búsqueda de GitHub Advisory sin `GITHUB_TOKEN` está limitada a 60 solicitudes por hora
- VulnCheck, Vulners y AttackerKB requieren claves API para funcionalidad completa
- La búsqueda de exploits usa la búsqueda de repositorios de GitHub que tiene sus propios límites de velocidad
- Los metadatos de módulos MSF (~15MB) se cargan en el primer uso — la llamada inicial a `msf_check` es más lenta
- La puntuación CVSS v4.0 usa la aproximación MacroVector (la especificación exacta es muy compleja)
- El mapeo ATT&CK cubre 33 entradas CWE — CWEs poco comunes pueden no mapearse
- macOS / Linux (Windows no probado)

---

## Parte de la suite de seguridad MCP

| Proyecto | Dominio | Herramientas |
|----------|---------|-------------|
| [hackbrowser-mcp](https://github.com/badchars/hackbrowser-mcp) | Pruebas de seguridad basadas en navegador | 39 herramientas, Firefox, pruebas de inyección |
| [cloud-audit-mcp](https://github.com/badchars/cloud-audit-mcp) | Seguridad en la nube (AWS/Azure/GCP) | 38 herramientas, más de 60 verificaciones |
| [github-security-mcp](https://github.com/badchars/github-security-mcp) | Postura de seguridad de GitHub | 39 herramientas, 45 verificaciones |
| **cve-mcp** | Inteligencia de vulnerabilidades | 41 herramientas, 11 fuentes |

---

<p align="center">
<b>Solo para pruebas y evaluaciones de seguridad autorizadas.</b><br>
Asegúrese siempre de tener la autorización adecuada antes de probar sistemas.
</p>

<p align="center">
  <a href="LICENSE">Licencia MIT</a> &bull; Construido con Bun + TypeScript
</p>
