<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> |
  <a href="README.es.md">Español</a> |
  <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> |
  <strong>Português (Brasil)</strong> |
  <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">Inteligência de CVE e vulnerabilidades para agentes de IA.</h3>

<p align="center">
  NVD, EPSS, CISA KEV, GitHub Advisory, OSV, Shodan, VulnCheck, Vulners, Nuclei, Metasploit, CIRCL, AttackerKB e MITRE ATT&amp;CK &mdash; unificados em um único servidor MCP.<br>
  Seu agente de IA obtém <b>inteligência de vulnerabilidades sob demanda</b>, não um relatório de 200 páginas.
</p>

<br>

<p align="center">
  <a href="#o-problema">O Problema</a> &bull;
  <a href="#como-é-diferente">Como é Diferente</a> &bull;
  <a href="#início-rápido">Início Rápido</a> &bull;
  <a href="#o-que-a-ia-pode-fazer">O que a IA Pode Fazer</a> &bull;
  <a href="#referência-de-ferramentas-41-ferramentas">Ferramentas</a> &bull;
  <a href="#fontes-de-dados">Fontes de Dados</a> &bull;
  <a href="#arquitetura">Arquitetura</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="Licença"></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 ferramentas">
  <img src="https://img.shields.io/badge/sources-11-ef4444" alt="11 fontes">
</p>

---

## O Problema

A inteligência de vulnerabilidades está espalhada por múltiplos bancos de dados. O NVD tem detalhes de CVE. O EPSS informa a probabilidade de exploração. O CISA KEV rastreia vulnerabilidades ativamente exploradas. O GitHub Advisory cobre pacotes de código aberto. O OSV mapeia vulnerabilidades para versões específicas de pacotes. O Shodan rastreia exposição na internet. O Nuclei e o Metasploit informam se existe um exploit funcional. Nenhuma ferramenta única os agrega, e nenhuma funciona com agentes de IA.

```
Fluxo de trabalho tradicional:
  pesquisar no NVD por detalhes de CVE       →  navegar em uma UI web desajeitada
  verificar EPSS para risco de exploração    →  API separada, formato separado
  consultar status do CISA KEV               →  baixar um feed JSON manualmente
  pesquisar GitHub advisories                →  mais uma interface
  consultar OSV para impacto em pacotes      →  API diferente, esquema diferente
  verificar Shodan para exposição            →  assinatura separada
  procurar exploits Nuclei/MSF              →  busca manual no GitHub
  mapear para técnicas ATT&CK               →  consulta MITRE separada
  correlacionar tudo                         →  copiar e colar em uma planilha
  ──────────────────────────────────
  Total: 30+ minutos por CVE, mais para triagem em massa
```

**cve-mcp** dá ao seu agente de IA 41 ferramentas via [Model Context Protocol](https://modelcontextprotocol.io). O agente consulta 11 fontes em paralelo, correlaciona dados, detecta sinais de armamento, calcula pontuações de risco e informa exatamente o que importa.

```
Com cve-mcp:
  Você: "Priorize estas 10 CVEs por risco real de exploração"

  Agente: → busca pontuações CVSS do NVD
          → obtém probabilidade de exploração EPSS para cada uma
          → verifica CISA KEV para ativamente exploradas
          → cruza referências com GitHub advisories para patches
          → "3 são críticas: CVE-2024-3400 (EPSS 97%, no KEV),
             CVE-2023-44487 (HTTP/2 rapid reset, EPSS 96%),
             CVE-2021-44228 (Log4Shell, EPSS 97%, no KEV).
             Aqui estão os patches e versões afetadas..."
```

---

## Como é Diferente

Ferramentas existentes fornecem dados brutos. cve-mcp dá ao seu agente de IA a capacidade de raciocinar sobre vulnerabilidades.

<table>
<thead>
<tr>
<th></th>
<th>Ferramentas Tradicionais</th>
<th>cve-mcp</th>
</tr>
</thead>
<tbody>
<tr>
<td><b>Interface</b></td>
<td>Web UI / CLI / chamadas API brutas</td>
<td>MCP &mdash; agente de IA chama ferramentas conversacionalmente</td>
</tr>
<tr>
<td><b>Fontes de dados</b></td>
<td>Um banco de dados por vez</td>
<td>11 fontes em paralelo: NVD, EPSS, KEV, GHSA, OSV, Shodan, VulnCheck, Vulners, Nuclei, Metasploit, CIRCL</td>
</tr>
<tr>
<td><b>Pontuação de risco</b></td>
<td>Apenas CVSS (severidade, não explorabilidade)</td>
<td>CVSS &times; EPSS &times; KEV &times; multiplicador de exploit (Nuclei/MSF) = risco real</td>
</tr>
<tr>
<td><b>Correlação</b></td>
<td>Copiar e colar manual</td>
<td>Agente enriquece: "CVSS 9.8, EPSS 97%, KEV, template Nuclei existe, módulo MSF disponível, mapeia para T1190"</td>
</tr>
<tr>
<td><b>Triagem em massa</b></td>
<td>Uma CVE por vez</td>
<td>Agente prioriza 50 CVEs em uma única conversa</td>
</tr>
<tr>
<td><b>Impacto em pacotes</b></td>
<td>Consulta separada OSV/GHSA</td>
<td>Agente encontra pacotes + versões afetadas automaticamente</td>
</tr>
<tr>
<td><b>Dependências</b></td>
<td>Ferramentas CLI pesadas, ambientes Python</td>
<td>2 dependências de runtime, executa com npx</td>
</tr>
</tbody>
</table>

---

## Início Rápido

### Opção 1: npx (sem instalação)

```bash
npx cve-mcp
```

### Opção 2: Clonar

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

### Variáveis de ambiente (opcional)

```bash
# Aumenta o limite de taxa do NVD de 5 para 50 requisições por 30 segundos
export NVD_API_KEY=sua-chave-api-nvd

# Habilita pesquisa no GitHub Advisory (60 → 5000 requisições/hora)
export GITHUB_TOKEN=ghp_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

# VulnCheck KEV estendido, pesquisa CPE, PURL
export VULNCHECK_API_KEY=sua-chave-vulncheck

# Vulners pesquisa de vulnerabilidades em 200+ fontes
export VULNERS_API_KEY=sua-chave-vulners

# AttackerKB avaliações da comunidade
export ATTACKERKB_API_KEY=sua-chave-attackerkb
```

Todas são opcionais. O servidor funciona sem elas — algumas ferramentas apenas têm limites de taxa mais baixos ou dados reduzidos.

### Conecte ao seu agente de IA

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

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

# Com clone local
claude mcp add cve-mcp -- bun run /caminho/para/cve-mcp/src/index.ts
```

</details>

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

Adicione em `~/Library/Application Support/Claude/claude_desktop_config.json`:

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

</details>

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

Mesmo formato de configuração JSON. Aponte o comando para `npx cve-mcp` ou o caminho da sua instalação.

</details>

### Comece a consultar

```
Você: "O que você sabe sobre CVE-2024-3400?"
```

É isso. O agente cuida do resto.

---

## O que a IA Pode Fazer

### Resposta a Incidentes

```
Você: "Fomos atingidos pelo CVE-2024-3400. Me dê tudo."

Agente: → cve_enrich {cveId: "CVE-2024-3400"}
        → NVD: PAN-OS command injection, CVSS 10.0
        → EPSS: 97.2% probabilidade de exploração
        → KEV: Adicionado 2024-04-12, prazo 2024-05-01
        → Shodan: 4 CPEs, exposto na internet
        → Nuclei: Template de detecção existe (critical)
        → Metasploit: Módulo de exploit disponível (excellent rank)
        → "Crítico. Armado — módulos Nuclei e MSF existem.
           PAN-OS GlobalProtect, versões < 10.2.9-h1.
           Corrija imediatamente. Prazo CISA: 1 de maio."
```

### Priorização de Vulnerabilidades

```
Você: "Priorize estas CVEs do nosso scan: CVE-2021-44228, CVE-2024-3400,
       CVE-2023-44487, CVE-2024-21762, CVE-2023-4966"

Agente: → cve_prioritize {cves: [...]}
        → Classifica por CVSS × EPSS × multiplicador KEV
        → "#1: CVE-2024-3400 (risco: 19.44, CVSS 10.0, EPSS 97%, KEV)
           #2: CVE-2021-44228 (risco: 19.40, CVSS 10.0, EPSS 97%, KEV)
           #3: CVE-2023-4966 (risco: 19.10, CVSS 9.4, EPSS 97%, KEV)
           Todas as 5 estão no CISA KEV — corrija todas imediatamente."
```

### Auditoria de Dependências

```
Você: "Verifique se lodash 4.17.20 e django 3.2.0 têm vulnerabilidades conhecidas"

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 (prototype pollution)
           django 3.2.0: 12 vulnerabilidades (SQL injection, XSS)
           Atualize lodash para 4.17.21+, django para 4.2+"
```

### Monitoramento de Ameaças

```
Você: "Quais CVEs têm maior probabilidade de serem exploradas agora?"

Agente: → cve_trending {limit: 10, minEpss: 0.9}
        → "Top 10 por probabilidade de exploração:
           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álise Profunda de CVSS (v3.1 e v4.0)

```
Você: "Analise este vetor 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 — Pontuação: 9.3 (CRÍTICO)
           Ataque de rede, baixa complexidade, sem requisitos de ataque.
           Sem privilégios, sem interação do usuário.
           Sistema vulnerável: impacto total em C/I/A.
           Sistemas subsequentes: sem impacto."
```

### Mapeamento ATT&CK

```
Você: "Mapeie CVE-2024-3400 para técnicas MITRE ATT&CK"

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

---

## Referência de Ferramentas (41 ferramentas)

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

| Ferramenta | Descrição |
|------------|-----------|
| `nvd_search` | Pesquisar CVEs por palavra-chave, severidade, CWE, intervalo de datas |
| `nvd_get` | Obter detalhes completos da CVE (CVSS, CWE, CPE, referências) |
| `nvd_recent` | CVEs publicadas/modificadas recentemente |
| `cve_by_product` | Pesquisar CVEs por nome de produto (correspondência de palavras-chave CPE) |

</details>

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

| Ferramenta | Descrição |
|------------|-----------|
| `epss_score` | Probabilidade de exploração EPSS para uma ou mais CVEs |
| `epss_top` | Top CVEs por probabilidade de exploração |

</details>

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

| Ferramenta | Descrição |
|------------|-----------|
| `kev_check` | Verificar se CVE(s) estão no catálogo CISA Known Exploited Vulnerabilities |
| `kev_search` | Pesquisar KEV por fornecedor, produto ou palavra-chave |
| `kev_recent` | Entradas KEV adicionadas recentemente |

</details>

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

| Ferramenta | Descrição |
|------------|-----------|
| `ghsa_search` | Pesquisar advisories de segurança do GitHub por palavra-chave, ecossistema, severidade |
| `ghsa_get` | Obter detalhes do advisory por GHSA ID ou CVE ID |

</details>

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

| Ferramenta | Descrição |
|------------|-----------|
| `osv_query` | Consultar vulnerabilidades para uma versão específica de pacote |
| `osv_get` | Obter detalhes da vulnerabilidade por OSV/GHSA/CVE ID |
| `osv_batch` | Consulta em lote de múltiplos pacotes de uma vez |

</details>

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

| Ferramenta | Descrição |
|------------|-----------|
| `exploit_search` | Pesquisar exploits PoC públicos (repositórios GitHub) |

</details>

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

| Ferramenta | Descrição |
|------------|-----------|
| `shodan_cve` | Consulta de CVE via Shodan CVEDB (EPSS, KEV, CPE integrados, sem autenticação) |
| `shodan_product` | Encontrar CVEs por nome de produto/fornecedor via Shodan |
| `shodan_ip_vulns` | Obter vulnerabilidades conhecidas para um endereço IP (InternetDB) |

</details>

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

| Ferramenta | Descrição |
|------------|-----------|
| `vulncheck_kev` | Catálogo KEV estendido (~80% mais entradas que CISA) |
| `vulncheck_cpe` | Pesquisa de CVE por string CPE |
| `vulncheck_purl` | Pesquisa de CVE por Package URL (purl) |

</details>

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

| Ferramenta | Descrição |
|------------|-----------|
| `vulners_lookup` | Detalhes de CVE do Vulners (200+ fontes, referências de exploits) |
| `vulners_search` | Pesquisa de texto completo de vulnerabilidades no banco Vulners |

</details>

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

| Ferramenta | Descrição |
|------------|-----------|
| `nuclei_check` | Verificar se existe um template de detecção Nuclei para uma CVE |
| `msf_check` | Verificar se existe um módulo de exploit Metasploit para uma CVE |

</details>

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

| Ferramenta | Descrição |
|------------|-----------|
| `cpe_search` | Pesquisar dicionário NVD CPE por palavra-chave |
| `cpe_match` | Obter correspondências CPE para uma CVE específica |

</details>

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

| Ferramenta | Descrição |
|------------|-----------|
| `circl_cve` | Enriquecimento CVE do CIRCL (mapeamento CAPEC, referências alternativas, vetores de impacto) |

</details>

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

| Ferramenta | Descrição |
|------------|-----------|
| `attackerkb_assess` | Avaliações da comunidade do AttackerKB (valor para o atacante, explorabilidade) |

</details>

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

| Ferramenta | Descrição |
|------------|-----------|
| `cve_to_attack` | Mapear CWE IDs de CVE para técnicas e táticas MITRE ATT&CK |

</details>

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

| Ferramenta | Descrição |
|------------|-----------|
| `cwe_lookup` | Consultar fraqueza CWE por ID ou pesquisar por palavra-chave (BD estática) |
| `cwe_get` | Detalhes completos de CWE da API MITRE (1000+ CWEs, mitigações, exemplos) |
| `cwe_hierarchy` | Hierarquia pai/filho de CWE da API MITRE |
| `cwe_top25` | MITRE CWE Top 25 Most Dangerous Software Weaknesses |

</details>

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

| Ferramenta | Descrição |
|------------|-----------|
| `cvss_parse` | Analisar e explicar string de vetor CVSS v3.1 ou v4.0 com cálculo de pontuação |

</details>

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

| Ferramenta | Descrição |
|------------|-----------|
| `cve_enrich` | Enriquecimento completo: NVD + EPSS + KEV + GHSA + OSV + Shodan + Nuclei + MSF em paralelo |
| `cve_prioritize` | Classificar CVEs por risco (CVSS &times; EPSS &times; KEV &times; multiplicador de exploit) |
| `cve_trending` | CVEs em tendência atualmente por probabilidade de exploração |
| `cve_compare` | Comparação lado a lado de duas CVEs |
| `cve_list_sources` | Listar todas as 11 fontes de dados e sua disponibilidade |
| `cve_report` | Gerar relatório de vulnerabilidades em markdown |

</details>

---

## Fontes de Dados

| Fonte | Autenticação | O que fornece |
|-------|--------------|---------------|
| [NVD](https://nvd.nist.gov/) | Opcional `NVD_API_KEY` | Detalhes de CVE, pontuações CVSS, mapeamentos CWE, produtos CPE afetados, referências |
| [EPSS](https://www.first.org/epss/) | Nenhuma | Pontuação de probabilidade de exploração (0-1) e classificação percentil |
| [CISA KEV](https://www.cisa.gov/known-exploited-vulnerabilities-catalog) | Nenhuma | Vulnerabilidades exploradas conhecidas com prazos de remediação |
| [GitHub Advisory](https://github.com/advisories) | Opcional `GITHUB_TOKEN` | Advisories de segurança de código aberto, pacotes afetados, severidade |
| [OSV](https://osv.dev/) | Nenhuma | Dados de vulnerabilidade em nível de pacote em 16+ ecossistemas |
| [Shodan CVEDB](https://cvedb.shodan.io/) | Nenhuma | Consulta CVE com EPSS/KEV/CPE integrados, scan de vulnerabilidades IP |
| [VulnCheck](https://vulncheck.com/) | Opcional `VULNCHECK_API_KEY` | KEV estendido (~80% mais entradas), pesquisa por CPE/PURL |
| [Vulners](https://vulners.com/) | Opcional `VULNERS_API_KEY` | Pesquisa de vulnerabilidades em 200+ fontes, referências de exploits |
| [Nuclei Templates](https://github.com/projectdiscovery/nuclei-templates) | Nenhuma | Verificação de existência de template de detecção CVE (severidade, tags) |
| [Metasploit](https://github.com/rapid7/metasploit-framework) | Nenhuma | Verificação de existência de módulo de exploit (tipo, rank, caminho) |
| [CIRCL](https://cve.circl.lu/) | Nenhuma | Enriquecimento CVE com mapeamento CAPEC, referências alternativas, vetores de impacto |
| [AttackerKB](https://attackerkb.com/) | Opcional `ATTACKERKB_API_KEY` | Avaliações da comunidade (valor para o atacante, classificações de explorabilidade) |
| [MITRE ATT&CK](https://attack.mitre.org/) | Nenhuma | Mapeamento CWE para técnicas ATT&CK (táticas, técnicas) |
| [MITRE CWE](https://cwe-api.mitre.org/) | Nenhuma | Banco de dados CWE completo (1000+ fraquezas, hierarquia, mitigações) |

### Fórmula de Pontuação de Risco

```
Pontuação de Risco = CVSS Base Score × EPSS Score × Multiplicador KEV × Multiplicador de Exploit

Onde:
  CVSS Base Score           = 0-10 (severidade do NVD)
  EPSS Score                = 0-1 (probabilidade de exploração do FIRST)
  Multiplicador KEV         = 2 se no CISA KEV, 1 caso contrário
  Multiplicador de Exploit  = 1.5 se template Nuclei OU módulo Metasploit existe, 1 caso contrário
```

Isso fornece uma pontuação de risco prática que equilibra severidade (CVSS) com probabilidade de exploração no mundo real (EPSS), exploração ativa conhecida (KEV) e sinais de armamento (ferramentas públicas de exploit).

---

## Arquitetura

```
src/
├── index.ts                    Ponto de entrada + MCP stdio
├── types/
│   └── index.ts                ToolDef, ToolContext, ToolResult, tipos de API
├── protocol/
│   ├── tools.ts                41 definições de ferramentas (esquemas Zod)
│   └── mcp-server.ts           Servidor MCP + transporte stdio
├── nvd/
│   ├── index.ts                NVD API v2 — pesquisa, obter, recentes
│   └── cpe.ts                  Pesquisa de produto/CPE
├── epss/
│   └── index.ts                EPSS — pontuação, top
├── kev/
│   └── index.ts                KEV — verificar, pesquisar, recentes (cache)
├── ghsa/
│   └── index.ts                GitHub Advisory — pesquisar, obter
├── osv/
│   └── index.ts                OSV — consultar, obter, lote
├── exploit/
│   └── index.ts                Pesquisa de PoC via repositórios GitHub
├── shodan/
│   └── index.ts                Shodan CVEDB + InternetDB (sem autenticação)
├── vulncheck/
│   └── index.ts                VulnCheck KEV, CPE, PURL
├── vulners/
│   └── index.ts                Vulners pesquisa + consulta
├── nuclei/
│   └── index.ts                Verificação de existência de template Nuclei
├── metasploit/
│   └── index.ts                Verificação de módulo MSF (metadados em cache)
├── cpe/
│   └── index.ts                NVD CPE dictionary API
├── circl/
│   └── index.ts                CIRCL enriquecimento CVE
├── attackerkb/
│   └── index.ts                Avaliações AttackerKB
├── attack/
│   └── index.ts                CWE → MITRE ATT&CK mapeamento
├── cwe/
│   └── index.ts                CWE API (MITRE) + fallback estático
├── cvss/
│   └── index.ts                CVSS v3.1 + v4.0 parser + calculadora
├── meta/
│   ├── enrich.ts               Enriquecimento completo de CVE (8 fontes em paralelo)
│   ├── prioritize.ts           Classificação de CVE baseada em risco
│   ├── trending.ts             CVEs em tendência por EPSS
│   ├── compare.ts              Comparação lado a lado de CVE
│   └── sources.ts              Verificação de saúde de 11 fontes
└── utils/
    ├── rate-limiter.ts          Limitador de taxa baseado em fila
    └── cache.ts                 Cache TTL
```

**Decisões de design:**

- **Inteligência, não auditoria** &mdash; Diferente de [cloud-audit-mcp](https://github.com/badchars/cloud-audit-mcp) e [github-security-mcp](https://github.com/badchars/github-security-mcp), esta é uma ferramenta de dados. Sem CheckResult, sem acumulação de achados. Cada consulta é independente e sem estado.
- **Enriquecimento paralelo** &mdash; `cve_enrich` chama 8 fontes via `Promise.allSettled`. Se uma fonte estiver fora, as demais ainda retornam dados.
- **Detecção de armamento** &mdash; Verifica existência de template Nuclei e módulo Metasploit para sinalizar CVEs com ferramentas públicas de exploit.
- **Limitador de taxa compartilhado** &mdash; Todos os módulos NVD compartilham uma única instância de `RateLimiter` (6s entre requisições) para evitar erros 429.
- **Cache KEV + MSF** &mdash; Catálogo KEV (~1200 entradas) e metadados de módulos MSF (~15MB) carregados uma vez, cacheados com TTL de 1 hora.
- **CWE modo duplo** &mdash; MITRE CWE REST API para detalhes completos (1000+ CWEs), com fallback estático (40+ entradas) quando API está indisponível.
- **CVSS v3.1 + v4.0** &mdash; Auto-detecção de versão pelo prefixo do vetor. V4.0 usa abordagem de pontuação MacroVector.
- **Mapeamento ATT&CK** &mdash; Tabela estática CWE-para-técnica (33 entradas CWE → técnicas ATT&CK). Sem chamadas API.
- **2 dependências** &mdash; `@modelcontextprotocol/sdk` e `zod`. Nada mais.

---

## Limitações

- NVD API sem `NVD_API_KEY` é limitado a 5 requisições por 30 segundos. Configure a chave para uso em produção
- Pesquisa no GitHub Advisory sem `GITHUB_TOKEN` é limitada a 60 requisições por hora
- VulnCheck, Vulners e AttackerKB requerem chaves de API para funcionalidade completa
- Pesquisa de exploits usa pesquisa de repositórios GitHub que tem seus próprios limites de taxa
- Metadados de módulos MSF (~15MB) são carregados na primeira utilização — primeira chamada `msf_check` é mais lenta
- Pontuação CVSS v4.0 usa aproximação MacroVector (especificação exata é muito complexa)
- Mapeamento ATT&CK cobre 33 entradas CWE — CWEs incomuns podem não mapear
- macOS / Linux (Windows não testado)

---

## Parte do MCP Security Suite

| Projeto | Domínio | Ferramentas |
|---------|---------|-------------|
| [hackbrowser-mcp](https://github.com/badchars/hackbrowser-mcp) | Testes de segurança baseados em navegador | 39 ferramentas, Firefox, testes de injeção |
| [cloud-audit-mcp](https://github.com/badchars/cloud-audit-mcp) | Segurança na nuvem (AWS/Azure/GCP) | 38 ferramentas, 60+ verificações |
| [github-security-mcp](https://github.com/badchars/github-security-mcp) | Postura de segurança do GitHub | 39 ferramentas, 45 verificações |
| **cve-mcp** | Inteligência de vulnerabilidades | 41 ferramentas, 11 fontes |

---

<p align="center">
<b>Apenas para testes e avaliações de segurança autorizados.</b><br>
Sempre certifique-se de ter autorização adequada antes de testar sistemas.
</p>

<p align="center">
  <a href="LICENSE">Licença MIT</a> &bull; Construído com Bun + TypeScript
</p>
