<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> |
  <strong>Dansk</strong> |
  <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">CVE- og sårbarhedsintelligens til AI-agenter.</h3>

<p align="center">
  NVD, EPSS, CISA KEV, GitHub Advisory, OSV, Shodan, VulnCheck, Vulners, Nuclei, Metasploit, CIRCL, AttackerKB og MITRE ATT&amp;CK &mdash; samlet i én enkelt MCP-server.<br>
  Din AI-agent får <b>sårbarhedsintelligens on demand</b>, ikke en rapport på 200 sider.
</p>

<br>

<p align="center">
  <a href="#problemet">Problemet</a> &bull;
  <a href="#hvad-gør-den-anderledes">Hvad gør den anderledes</a> &bull;
  <a href="#hurtig-start">Hurtig start</a> &bull;
  <a href="#hvad-ai-agenten-kan">Hvad AI-agenten kan</a> &bull;
  <a href="#værktøjsreference-41-værktøjer">Værktøjer</a> &bull;
  <a href="#datakilder">Datakilder</a> &bull;
  <a href="#arkitektur">Arkitektur</a> &bull;
  <a href="CONTRIBUTING.md">Bidrag</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="Licens"></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 værktøjer">
  <img src="https://img.shields.io/badge/sources-11-ef4444" alt="11 kilder">
</p>

---

## Problemet

Sårbarhedsintelligens er spredt over flere databaser. NVD har CVE-detaljer. EPSS fortæller dig sandsynligheden for udnyttelse. CISA KEV sporer aktivt udnyttede sårbarheder. GitHub Advisory dækker open source-pakker. OSV kortlægger sårbarheder til specifikke pakkeversioner. Shodan sporer interneteksponering. Nuclei og Metasploit fortæller dig, om der findes en fungerende exploit. Intet enkelt værktøj samler dem, og ingen fungerer med AI-agenter.

```
Traditionelt workflow:
  søg i NVD efter CVE-detaljer        →  navigér i en klodset web-UI
  tjek EPSS for udnyttelsesrisiko     →  separat API, separat format
  slå op i CISA KEV-status            →  download en JSON-feed manuelt
  søg i GitHub advisories             →  endnu en grænseflade
  forespørg OSV for pakkeeffekt       →  anderledes API, anderledes skema
  tjek Shodan for eksponering         →  separat abonnement
  søg efter Nuclei/MSF exploits       →  manuel GitHub-søgning
  kortlæg til ATT&CK-teknikker        →  separat MITRE-opslag
  korrelér alt                        →  kopiér-indsæt i et regneark
  ──────────────────────────────────
  Total: 30+ minutter per CVE, længere for massetriage
```

**cve-mcp** giver din AI-agent 41 værktøjer via [Model Context Protocol](https://modelcontextprotocol.io). Agenten forespørger 11 kilder parallelt, korrelerer data, detekterer våbengørelssignaler, beregner risikoscores og fortæller dig præcis, hvad der er vigtigt.

```
Med cve-mcp:
  Dig: "Prioritér disse 10 CVE'er efter faktisk udnyttelsesrisiko"

  Agent: → henter CVSS-scores fra NVD
         → henter EPSS-udnyttelsessandsynlighed for hver
         → tjekker CISA KEV for aktivt udnyttede
         → krydstjekker GitHub advisories for patches
         → "3 er kritiske: CVE-2024-3400 (EPSS 97%, i KEV),
            CVE-2023-44487 (HTTP/2 rapid reset, EPSS 96%),
            CVE-2021-44228 (Log4Shell, EPSS 97%, i KEV).
            Her er patches og berørte versioner..."
```

---

## Hvad gør den anderledes

Eksisterende værktøjer giver dig rå data. cve-mcp giver din AI-agent evnen til at ræsonnere om sårbarheder.

<table>
<thead>
<tr>
<th></th>
<th>Traditionelle værktøjer</th>
<th>cve-mcp</th>
</tr>
</thead>
<tbody>
<tr>
<td><b>Grænseflade</b></td>
<td>Web UI / CLI / rå API-kald</td>
<td>MCP &mdash; AI-agent kalder værktøjer konversationelt</td>
</tr>
<tr>
<td><b>Datakilder</b></td>
<td>Én database ad gangen</td>
<td>11 kilder parallelt: NVD, EPSS, KEV, GHSA, OSV, Shodan, VulnCheck, Vulners, Nuclei, Metasploit, CIRCL</td>
</tr>
<tr>
<td><b>Risikovurdering</b></td>
<td>Kun CVSS (alvorlighed, ikke udnyttelighed)</td>
<td>CVSS &times; EPSS &times; KEV &times; Exploit-multiplikator (Nuclei/MSF) = faktisk risiko</td>
</tr>
<tr>
<td><b>Korrelation</b></td>
<td>Manuel kopiér-indsæt</td>
<td>Agent beriger: "CVSS 9.8, EPSS 97%, KEV, Nuclei-template findes, MSF-modul tilgængelig, kortlægger til T1190"</td>
</tr>
<tr>
<td><b>Massetriage</b></td>
<td>Én CVE ad gangen</td>
<td>Agent prioriterer 50 CVE'er i en enkelt samtale</td>
</tr>
<tr>
<td><b>Pakkepåvirkning</b></td>
<td>Separat OSV/GHSA-opslag</td>
<td>Agent finder berørte pakker + versioner automatisk</td>
</tr>
<tr>
<td><b>Afhængigheder</b></td>
<td>Tunge CLI-værktøjer, Python-miljøer</td>
<td>2 runtime-afhængigheder, kører med npx</td>
</tr>
</tbody>
</table>

---

## Hurtig start

### Mulighed 1: npx (ingen installation)

```bash
npx cve-mcp
```

### Mulighed 2: Klon

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

### Miljøvariabler (alle valgfrie)

```bash
# Øger NVD rate limit fra 5 til 50 forespørgsler per 30 sekunder
export NVD_API_KEY=din-nvd-api-nøgle

# Aktiverer GitHub Advisory-søgning (60 → 5000 forespørgsler/time)
export GITHUB_TOKEN=ghp_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

# VulnCheck udvidet KEV, CPE, PURL-søgning
export VULNCHECK_API_KEY=your-vulncheck-key

# Vulners sårbarhedssøgning på tværs af 200+ kilder
export VULNERS_API_KEY=your-vulners-key

# AttackerKB fællesskabsvurderinger
export ATTACKERKB_API_KEY=your-attackerkb-key
```

Alle er valgfrie. Serveren fungerer uden dem — nogle værktøjer har bare lavere rate limits eller reducerede data.

### Tilslut til din AI-agent

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

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

# Med lokal klon
claude mcp add cve-mcp -- bun run /sti/til/cve-mcp/src/index.ts
```

</details>

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

Tilføj til `~/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 / andre MCP-klienter</b></summary>

Samme JSON-konfigurationsformat. Peg kommandoen til `npx cve-mcp` eller din installationssti.

</details>

### Begynd at forespørge

```
Dig: "Hvad ved du om CVE-2024-3400?"
```

Det er det hele. Agenten klarer resten.

---

## Hvad AI-agenten kan

### Hændelsesrespons

```
Dig: "Vi er blevet ramt af CVE-2024-3400. Giv mig alt."

Agent: → cve_enrich {cveId: "CVE-2024-3400"}
       → NVD: PAN-OS command injection, CVSS 10.0
       → EPSS: 97.2% udnyttelsessandsynlighed
       → KEV: Tilføjet 2024-04-12, deadline 2024-05-01
       → Shodan: 4 CPE'er, interneteksponeret
       → Nuclei: Detektionstemplate findes (kritisk)
       → Metasploit: Exploit-modul tilgængelig (fremragende rang)
       → "Kritisk. Våbengjort — både Nuclei og MSF moduler findes.
          PAN-OS GlobalProtect, versioner < 10.2.9-h1.
          Patch straks. CISA-deadline: 1. maj."
```

### Sårbarhedsprioritering

```
Dig: "Prioritér disse CVE'er fra vores scanning: CVE-2021-44228, CVE-2024-3400,
      CVE-2023-44487, CVE-2024-21762, CVE-2023-4966"

Agent: → cve_prioritize {cves: [...]}
       → Rangerer efter CVSS × EPSS × KEV-multiplikator
       → "#1: CVE-2024-3400 (risiko: 19.44, CVSS 10.0, EPSS 97%, KEV)
          #2: CVE-2021-44228 (risiko: 19.40, CVSS 10.0, EPSS 97%, KEV)
          #3: CVE-2023-4966 (risiko: 19.10, CVSS 9.4, EPSS 97%, KEV)
          Alle 5 er i CISA KEV — patch alle straks."
```

### Afhængighedsaudit

```
Dig: "Tjek om lodash 4.17.20 og django 3.2.0 har kendte sårbarheder"

Agent: → osv_batch {queries: [
          {package: "lodash", version: "4.17.20", ecosystem: "npm"},
          {package: "django", version: "3.2.0", ecosystem: "PyPI"}
       ]}
       → "lodash 4.17.20: 3 sårbarheder (prototype pollution)
          django 3.2.0: 12 sårbarheder (SQL injection, XSS)
          Opgrader lodash til 4.17.21+, django til 4.2+"
```

### Trusselovervågning

```
Dig: "Hvad er de CVE'er, der mest sandsynligt bliver udnyttet lige nu?"

Agent: → cve_trending {limit: 10, minEpss: 0.9}
       → "Top 10 efter udnyttelsessandsynlighed:
          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)
          ..."
```

### CVSS-dybdegående analyse (v3.1 og v4.0)

```
Dig: "Nedbryd denne CVSS v4.0-vektor: 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"

Agent: → 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 — Score: 9.3 (KRITISK)
          Netværksangreb, lav kompleksitet, ingen angrebskrav.
          Ingen privilegier, ingen brugerinteraktion.
          Sårbart system: fuld C/I/A-påvirkning.
          Efterfølgende systemer: ingen påvirkning."
```

### ATT&CK-kortlægning

```
Dig: "Kortlæg CVE-2024-3400 til MITRE ATT&CK-teknikker"

Agent: → cve_to_attack {cweIds: ["CWE-77"]}
       → "CWE-77 (Command Injection) kortlægger til:
          T1059 — Command and Scripting Interpreter (Execution)
          T1190 — Exploit Public-Facing Application (Initial Access)"
```

---

## Værktøjsreference (41 værktøjer)

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

| Værktøj | Beskrivelse |
|---------|-------------|
| `nvd_search` | Søg CVE'er efter nøgleord, alvorlighed, CWE, datointerval |
| `nvd_get` | Hent fulde CVE-detaljer (CVSS, CWE, CPE, referencer) |
| `nvd_recent` | Nyligt publicerede/ændrede CVE'er |
| `cve_by_product` | Søg CVE'er efter produktnavn (CPE-nøgleordsmatch) |

</details>

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

| Værktøj | Beskrivelse |
|---------|-------------|
| `epss_score` | EPSS-udnyttelsessandsynlighed for en eller flere CVE'er |
| `epss_top` | Top CVE'er efter udnyttelsessandsynlighed |

</details>

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

| Værktøj | Beskrivelse |
|---------|-------------|
| `kev_check` | Tjek om CVE(er) er i CISA Known Exploited Vulnerabilities-kataloget |
| `kev_search` | Søg KEV efter leverandør, produkt eller nøgleord |
| `kev_recent` | Nyligt tilføjede KEV-poster |

</details>

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

| Værktøj | Beskrivelse |
|---------|-------------|
| `ghsa_search` | Søg GitHub-sikkerhedsadvisorier efter nøgleord, økosystem, alvorlighed |
| `ghsa_get` | Hent advisory-detaljer via GHSA ID eller CVE ID |

</details>

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

| Værktøj | Beskrivelse |
|---------|-------------|
| `osv_query` | Forespørg sårbarheder for en specifik pakkeversion |
| `osv_get` | Hent sårbarhedsdetaljer via OSV/GHSA/CVE ID |
| `osv_batch` | Batchforespørgsel af flere pakker på én gang |

</details>

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

| Værktøj | Beskrivelse |
|---------|-------------|
| `exploit_search` | Søg efter offentlige PoC-exploits (GitHub-repos) |

</details>

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

| Værktøj | Beskrivelse |
|---------|-------------|
| `shodan_cve` | CVE-opslag via Shodan CVEDB (EPSS, KEV, CPE integreret, ingen autentificering) |
| `shodan_product` | Find CVE'er efter produkt/leverandørnavn via Shodan |
| `shodan_ip_vulns` | Hent kendte sårbarheder for en IP-adresse (InternetDB) |

</details>

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

| Værktøj | Beskrivelse |
|---------|-------------|
| `vulncheck_kev` | Udvidet KEV-katalog (~80% flere poster end CISA) |
| `vulncheck_cpe` | CVE-søgning efter CPE-streng |
| `vulncheck_purl` | CVE-søgning efter Package URL (purl) |

</details>

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

| Værktøj | Beskrivelse |
|---------|-------------|
| `vulners_lookup` | CVE-detaljer fra Vulners (200+ kilder, exploit-referencer) |
| `vulners_search` | Fuldtekstsøgning på tværs af Vulners-databasen |

</details>

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

| Værktøj | Beskrivelse |
|---------|-------------|
| `nuclei_check` | Tjek om en Nuclei-detektionstemplate findes for en CVE |
| `msf_check` | Tjek om et Metasploit exploit-modul findes for en CVE |

</details>

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

| Værktøj | Beskrivelse |
|---------|-------------|
| `cpe_search` | Søg i NVD CPE-ordbogen efter nøgleord |
| `cpe_match` | Hent CPE-matches for en specifik CVE |

</details>

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

| Værktøj | Beskrivelse |
|---------|-------------|
| `circl_cve` | CIRCL CVE-berigelse (CAPEC, alternative referencer, impaktvektorer) |

</details>

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

| Værktøj | Beskrivelse |
|---------|-------------|
| `attackerkb_assess` | Fællesskabsvurderinger fra AttackerKB (angribeværdi, udnyttelighedsvurderinger) |

</details>

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

| Værktøj | Beskrivelse |
|---------|-------------|
| `cve_to_attack` | Kortlæg CVE CWE-ID'er til MITRE ATT&CK-teknikker og -taktikker |

</details>

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

| Værktøj | Beskrivelse |
|---------|-------------|
| `cwe_lookup` | Slå CWE-svaghed op efter ID eller søg efter nøgleord (statisk DB) |
| `cwe_get` | Fulde CWE-detaljer fra MITRE API (1000+ CWE'er, afbødninger, eksempler) |
| `cwe_hierarchy` | CWE forældre/barn-hierarki fra MITRE API |
| `cwe_top25` | MITRE CWE Top 25 mest farlige softwaresvagheder |

</details>

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

| Værktøj | Beskrivelse |
|---------|-------------|
| `cvss_parse` | Analysér og forklar en CVSS v3.1 eller v4.0 vektorstreng med scoreberegning |

</details>

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

| Værktøj | Beskrivelse |
|---------|-------------|
| `cve_enrich` | Fuld berigelse: NVD + EPSS + KEV + GHSA + OSV + Shodan + Nuclei + MSF parallelt |
| `cve_prioritize` | Rangér CVE'er efter risiko (CVSS &times; EPSS &times; KEV &times; Exploit-multiplikator) |
| `cve_trending` | Aktuelt trending CVE'er efter udnyttelsessandsynlighed |
| `cve_compare` | Side-om-side sammenligning af to CVE'er |
| `cve_list_sources` | List alle 11 datakilder og deres tilgængelighed |
| `cve_report` | Generér en markdown-sårbarhedsrapport |

</details>

---

## Datakilder

| Kilde | Autentificering | Hvad den leverer |
|-------|-----------------|-----------------|
| [NVD](https://nvd.nist.gov/) | Valgfri `NVD_API_KEY` | CVE-detaljer, CVSS-scores, CWE-kortlægninger, CPE-berørte produkter, referencer |
| [EPSS](https://www.first.org/epss/) | Ingen | Udnyttelsessandsynlighedsscore (0-1) og percentilrangering |
| [CISA KEV](https://www.cisa.gov/known-exploited-vulnerabilities-catalog) | Ingen | Kendte udnyttede sårbarheder med afhjælpningsdeadlines |
| [GitHub Advisory](https://github.com/advisories) | Valgfri `GITHUB_TOKEN` | Open source-sikkerhedsadvisorier, berørte pakker, alvorlighed |
| [OSV](https://osv.dev/) | Ingen | Sårbarhedsdata på pakkeniveau på tværs af 16+ økosystemer |
| [Shodan CVEDB](https://cvedb.shodan.io/) | Ingen | CVE-opslag med integreret EPSS/KEV/CPE, IP-sårbarhedsscanning |
| [VulnCheck](https://vulncheck.com/) | Valgfri `VULNCHECK_API_KEY` | Udvidet KEV (~80% flere poster), CPE/PURL sårbarhedssøgning |
| [Vulners](https://vulners.com/) | Valgfri `VULNERS_API_KEY` | Sårbarhedssøgning på tværs af 200+ kilder, exploit-referencer |
| [Nuclei Templates](https://github.com/projectdiscovery/nuclei-templates) | Ingen | CVE-detektionstemplateeksistenstjek (alvorlighed, tags) |
| [Metasploit](https://github.com/rapid7/metasploit-framework) | Ingen | Exploit-moduleksistenstjek (type, rang, sti) |
| [CIRCL](https://cve.circl.lu/) | Ingen | CVE-berigelse med CAPEC-kortlægning, alt. referencer, impaktvektorer |
| [AttackerKB](https://attackerkb.com/) | Valgfri `ATTACKERKB_API_KEY` | Fællesskabsvurderinger (angribeværdi, udnyttelighedsvurderinger) |
| [MITRE ATT&CK](https://attack.mitre.org/) | Ingen | CWE-til-ATT&CK teknikkortlægning (taktikker, teknikker) |
| [MITRE CWE](https://cwe-api.mitre.org/) | Ingen | Fuld CWE-database (1000+ svagheder, hierarki, afbødninger) |

### Risikoscoreformel

```
Risikoscore = CVSS Base Score × EPSS Score × KEV-multiplikator × Exploit-multiplikator

Hvor:
  CVSS Base Score       = 0-10 (alvorlighed fra NVD)
  EPSS Score            = 0-1 (udnyttelsessandsynlighed fra FIRST)
  KEV-multiplikator     = 2 hvis i CISA KEV, 1 ellers
  Exploit-multiplikator = 1.5 hvis Nuclei-template ELLER Metasploit-modul findes, 1 ellers
```

Dette giver en praktisk risikoscore, der afbalancerer alvorlighed (CVSS) med sandsynlighed for udnyttelse i den virkelige verden (EPSS), kendt aktiv udnyttelse (KEV) og våbengørelsessignaler (offentlige exploit-værktøjer).

---

## Arkitektur

```
src/
├── index.ts                    Indgangspunkt + MCP stdio
├── types/
│   └── index.ts                ToolDef, ToolContext, ToolResult, API-typer
├── protocol/
│   ├── tools.ts                41 værktøjsdefinitioner (Zod-skemaer)
│   └── mcp-server.ts           MCP-server + stdio-transport
├── nvd/
│   ├── index.ts                NVD API v2 — søg, hent, nylige
│   └── cpe.ts                  Produkt/CPE-søgning
├── epss/
│   └── index.ts                EPSS — score, top
├── kev/
│   └── index.ts                KEV — tjek, søg, nylige (cachet)
├── ghsa/
│   └── index.ts                GitHub Advisory — søg, hent
├── osv/
│   └── index.ts                OSV — forespørg, hent, batch
├── exploit/
│   └── index.ts                PoC-søgning via GitHub-repos
├── shodan/
│   └── index.ts                Shodan CVEDB + InternetDB (ingen autentificering)
├── vulncheck/
│   └── index.ts                VulnCheck KEV, CPE, PURL
├── vulners/
│   └── index.ts                Vulners søgning + opslag
├── nuclei/
│   └── index.ts                Nuclei template-eksistenstjek
├── metasploit/
│   └── index.ts                MSF modultjek (cachede metadata)
├── cpe/
│   └── index.ts                NVD CPE-ordbogs-API
├── circl/
│   └── index.ts                CIRCL CVE-berigelse
├── attackerkb/
│   └── index.ts                AttackerKB-vurderinger
├── attack/
│   └── index.ts                CWE → MITRE ATT&CK-kortlægning
├── cwe/
│   └── index.ts                CWE API (MITRE) + statisk fallback
├── cvss/
│   └── index.ts                CVSS v3.1 + v4.0 parser + beregner
├── meta/
│   ├── enrich.ts               Fuld CVE-berigelse (8 kilder parallelt)
│   ├── prioritize.ts           Risikobaseret CVE-rangering
│   ├── trending.ts             Trending CVE'er efter EPSS
│   ├── compare.ts              Side-om-side CVE-sammenligning
│   └── sources.ts              11 kilder sundhedstjek
└── utils/
    ├── rate-limiter.ts          Kø-baseret rate limiter
    └── cache.ts                 TTL-cache
```

**Designbeslutninger:**

- **Intelligens, ikke audit** &mdash; I modsætning til [cloud-audit-mcp](https://github.com/badchars/cloud-audit-mcp) og [github-security-mcp](https://github.com/badchars/github-security-mcp) er dette et dataværktøj. Intet CheckResult, ingen fundakkumulering. Hver forespørgsel er uafhængig og tilstandsløs.
- **Parallel berigelse** &mdash; `cve_enrich` kalder 8 kilder via `Promise.allSettled`. Hvis én kilde er nede, returnerer resten stadig data.
- **Våbengørelsesdetektion** &mdash; Tjekker Nuclei-template og Metasploit-moduleksistens for at markere CVE'er med offentlige exploit-værktøjer.
- **Delt rate limiter** &mdash; Alle NVD-moduler deler en enkelt `RateLimiter`-instans (6s mellem forespørgsler) for at undgå 429-fejl.
- **KEV + MSF-caching** &mdash; KEV-katalog (~1200 poster) og MSF-modulmetadata (~15MB) indlæses én gang, caches med 1 times TTL.
- **CWE dual-mode** &mdash; MITRE CWE REST API for fuld detalje (1000+ CWE'er), med 40+ poster statisk fallback når API er utilgængelig.
- **CVSS v3.1 + v4.0** &mdash; Auto-detekterer version fra vektorpræfiks. V4.0 bruger MacroVector-scoringsmetode.
- **ATT&CK-kortlægning** &mdash; Statisk CWE-til-teknik tabel (33 CWE-poster → ATT&CK-teknikker). Ingen API-kald.
- **2 afhængigheder** &mdash; `@modelcontextprotocol/sdk` og `zod`. Intet andet.

---

## Begrænsninger

- NVD API uden `NVD_API_KEY` er begrænset til 5 forespørgsler per 30 sekunder. Angiv nøglen til produktionsbrug
- GitHub Advisory-søgning uden `GITHUB_TOKEN` er begrænset til 60 forespørgsler per time
- VulnCheck, Vulners og AttackerKB kræver API-nøgler for fuld funktionalitet
- Exploit-søgning bruger GitHub repository-søgning, som har egne rate limits
- MSF-modulmetadata (~15MB) indlæses ved første brug — første `msf_check`-kald er langsommere
- CVSS v4.0-scoring bruger MacroVector-approksimation (præcis specifikation er meget kompleks)
- ATT&CK-kortlægning dækker 33 CWE-poster — sjældne CWE'er kortlægges muligvis ikke
- macOS / Linux (Windows ikke testet)

---

## Del af MCP Security Suite

| Projekt | Domæne | Værktøjer |
|---------|--------|-----------|
| [hackbrowser-mcp](https://github.com/badchars/hackbrowser-mcp) | Browserbaseret sikkerhedstest | 39 værktøjer, Firefox, injektionstest |
| [cloud-audit-mcp](https://github.com/badchars/cloud-audit-mcp) | Cloud-sikkerhed (AWS/Azure/GCP) | 38 værktøjer, 60+ kontroller |
| [github-security-mcp](https://github.com/badchars/github-security-mcp) | GitHub-sikkerhedsposture | 39 værktøjer, 45 kontroller |
| **cve-mcp** | Sårbarhedsintelligens | 41 værktøjer, 11 kilder |

---

<p align="center">
<b>Kun til autoriseret sikkerhedstest og -vurdering.</b><br>
Sørg altid for, at du har korrekt autorisation, før du tester systemer.
</p>

<p align="center">
  <a href="LICENSE">MIT-licens</a> &bull; Bygget med Bun + TypeScript
</p>
