<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> |
  <strong>Polski</strong> |
  <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">Wywiad CVE i podatności dla agentów AI.</h3>

<p align="center">
  NVD, EPSS, CISA KEV, GitHub Advisory, OSV, Shodan, VulnCheck, Vulners, Nuclei, Metasploit, CIRCL, AttackerKB i MITRE ATT&amp;CK &mdash; zunifikowane w jednym serwerze MCP.<br>
  Twój agent AI otrzymuje <b>wywiad o podatnościach na żądanie</b>, a nie 200-stronicowy raport.
</p>

<br>

<p align="center">
  <a href="#problem">Problem</a> &bull;
  <a href="#czym-się-różni">Czym się różni</a> &bull;
  <a href="#szybki-start">Szybki start</a> &bull;
  <a href="#co-potrafi-agent-ai">Co potrafi agent AI</a> &bull;
  <a href="#dokumentacja-narzędzi-41-narzędzi">Narzędzia</a> &bull;
  <a href="#źródła-danych">Źródła danych</a> &bull;
  <a href="#architektura">Architektura</a> &bull;
  <a href="CONTRIBUTING.md">Współtworzenie</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="Licencja"></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 narzędzi">
  <img src="https://img.shields.io/badge/sources-11-ef4444" alt="11 źródeł">
</p>

---

## Problem

Wywiad o podatnościach jest rozproszony po wielu bazach danych. NVD zawiera szczegóły CVE. EPSS podaje prawdopodobieństwo eksploatacji. CISA KEV śledzi aktywnie wykorzystywane podatności. GitHub Advisory obejmuje pakiety open source. OSV mapuje podatności na konkretne wersje pakietów. Shodan śledzi ekspozycję w internecie. Nuclei i Metasploit informują, czy istnieje działający exploit. Żadne pojedyncze narzędzie ich nie agreguje i żadne nie współpracuje z agentami AI.

```
Tradycyjny przepływ pracy:
  szukaj w NVD szczegółów CVE             →  nawiguj po nieporęcznym web UI
  sprawdź EPSS pod kątem ryzyka           →  oddzielne API, oddzielny format
  sprawdź status CISA KEV                 →  pobierz ręcznie JSON feed
  szukaj w GitHub advisories              →  kolejny interfejs
  odpytaj OSV o wpływ na pakiety          →  inne API, inny schemat
  sprawdź Shodan pod kątem ekspozycji     →  oddzielna subskrypcja
  szukaj exploitów Nuclei/MSF             →  ręczne wyszukiwanie na GitHub
  mapuj do technik ATT&CK                 →  oddzielne wyszukiwanie MITRE
  skoreluj wszystko                       →  kopiuj-wklej do arkusza kalkulacyjnego
  ──────────────────────────────────
  Łącznie: 30+ minut na CVE, dłużej przy masowej analizie
```

**cve-mcp** daje Twojemu agentowi AI 41 narzędzi przez [Model Context Protocol](https://modelcontextprotocol.io). Agent odpytuje 11 źródeł równolegle, koreluje dane, wykrywa sygnały uzbrojenia, oblicza wyniki ryzyka i mówi Ci dokładnie, co jest ważne.

```
Z cve-mcp:
  Ty: "Priorytetyzuj te 10 CVE według rzeczywistego ryzyka eksploatacji"

  Agent: → pobiera wyniki CVSS z NVD
         → pobiera prawdopodobieństwo eksploatacji EPSS dla każdego
         → sprawdza CISA KEV pod kątem aktywnej eksploatacji
         → weryfikuje krzyżowo GitHub advisories pod kątem łatek
         → "3 są krytyczne: CVE-2024-3400 (EPSS 97%, w KEV),
            CVE-2023-44487 (HTTP/2 rapid reset, EPSS 96%),
            CVE-2021-44228 (Log4Shell, EPSS 97%, w KEV).
            Oto łatki i dotknięte wersje..."
```

---

## Czym się różni

Istniejące narzędzia dają surowe dane. cve-mcp daje Twojemu agentowi AI zdolność do rozumowania o podatnościach.

<table>
<thead>
<tr>
<th></th>
<th>Tradycyjne narzędzia</th>
<th>cve-mcp</th>
</tr>
</thead>
<tbody>
<tr>
<td><b>Interfejs</b></td>
<td>Web UI / CLI / surowe wywołania API</td>
<td>MCP &mdash; agent AI wywołuje narzędzia konwersacyjnie</td>
</tr>
<tr>
<td><b>Źródła danych</b></td>
<td>Jedna baza danych na raz</td>
<td>11 źródeł równolegle: NVD, EPSS, KEV, GHSA, OSV, Shodan, VulnCheck, Vulners, Nuclei, Metasploit, CIRCL</td>
</tr>
<tr>
<td><b>Ocena ryzyka</b></td>
<td>Tylko CVSS (powaga, nie eksploatowalność)</td>
<td>CVSS &times; EPSS &times; KEV &times; Mnożnik exploita (Nuclei/MSF) = rzeczywiste ryzyko</td>
</tr>
<tr>
<td><b>Korelacja</b></td>
<td>Ręczne kopiuj-wklej</td>
<td>Agent wzbogaca: "CVSS 9.8, EPSS 97%, KEV, szablon Nuclei istnieje, moduł MSF dostępny, mapuje do T1190"</td>
</tr>
<tr>
<td><b>Masowa analiza</b></td>
<td>Jeden CVE na raz</td>
<td>Agent priorytetyzuje 50 CVE w jednej konwersacji</td>
</tr>
<tr>
<td><b>Wpływ na pakiety</b></td>
<td>Oddzielne wyszukiwanie OSV/GHSA</td>
<td>Agent automatycznie znajduje dotknięte pakiety + wersje</td>
</tr>
<tr>
<td><b>Zależności</b></td>
<td>Ciężkie narzędzia CLI, środowiska Python</td>
<td>2 zależności runtime, uruchamiane przez npx</td>
</tr>
</tbody>
</table>

---

## Szybki start

### Opcja 1: npx (bez instalacji)

```bash
npx cve-mcp
```

### Opcja 2: Klonowanie

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

### Zmienne środowiskowe (wszystkie opcjonalne)

```bash
# Zwiększa limit szybkości NVD z 5 do 50 żądań na 30 sekund
export NVD_API_KEY=twoj-klucz-api-nvd

# Włącza wyszukiwanie GitHub Advisory (60 → 5000 żądań/godzinę)
export GITHUB_TOKEN=ghp_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

# VulnCheck rozszerzony KEV, wyszukiwanie CPE, PURL
export VULNCHECK_API_KEY=your-vulncheck-key

# Vulners wyszukiwanie podatności w ponad 200 źródłach
export VULNERS_API_KEY=your-vulners-key

# Oceny społeczności AttackerKB
export ATTACKERKB_API_KEY=your-attackerkb-key
```

Wszystkie są opcjonalne. Serwer działa bez nich — niektóre narzędzia mają po prostu niższe limity szybkości lub ograniczone dane.

### Połącz ze swoim agentem AI

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

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

# Z lokalnym klonem
claude mcp add cve-mcp -- bun run /ścieżka/do/cve-mcp/src/index.ts
```

</details>

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

Dodaj do `~/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 / inni klienci MCP</b></summary>

Ten sam format konfiguracji JSON. Wskaż komendę na `npx cve-mcp` lub ścieżkę instalacji.

</details>

### Zacznij odpytywać

```
Ty: "Co wiesz o CVE-2024-3400?"
```

To wszystko. Agent zajmie się resztą.

---

## Co potrafi agent AI

### Reagowanie na incydenty

```
Ty: "Zostaliśmy trafieni przez CVE-2024-3400. Daj mi wszystko."

Agent: → cve_enrich {cveId: "CVE-2024-3400"}
       → NVD: PAN-OS command injection, CVSS 10.0
       → EPSS: 97.2% prawdopodobieństwo eksploatacji
       → KEV: Dodano 2024-04-12, termin 2024-05-01
       → Shodan: 4 CPE, eksponowany w internecie
       → Nuclei: Szablon detekcji istnieje (krytyczny)
       → Metasploit: Moduł exploita dostępny (doskonały rang)
       → "Krytyczny. Uzbrojony — moduły Nuclei i MSF istnieją.
          PAN-OS GlobalProtect, wersje < 10.2.9-h1.
          Natychmiast zastosuj łatkę. Termin CISA: 1 maja."
```

### Priorytetyzacja podatności

```
Ty: "Priorytetyzuj te CVE z naszego skanu: CVE-2021-44228, CVE-2024-3400,
      CVE-2023-44487, CVE-2024-21762, CVE-2023-4966"

Agent: → cve_prioritize {cves: [...]}
       → Rankuje według CVSS × EPSS × mnożnik KEV
       → "#1: CVE-2024-3400 (ryzyko: 19.44, CVSS 10.0, EPSS 97%, KEV)
          #2: CVE-2021-44228 (ryzyko: 19.40, CVSS 10.0, EPSS 97%, KEV)
          #3: CVE-2023-4966 (ryzyko: 19.10, CVSS 9.4, EPSS 97%, KEV)
          Wszystkie 5 są w CISA KEV — natychmiast załataj wszystkie."
```

### Audyt zależności

```
Ty: "Sprawdź, czy lodash 4.17.20 i django 3.2.0 mają znane podatności"

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 podatności (prototype pollution)
          django 3.2.0: 12 podatności (SQL injection, XSS)
          Zaktualizuj lodash do 4.17.21+, django do 4.2+"
```

### Monitorowanie zagrożeń

```
Ty: "Jakie CVE mają teraz największe prawdopodobieństwo eksploatacji?"

Agent: → cve_trending {limit: 10, minEpss: 0.9}
       → "Top 10 według prawdopodobieństwa eksploatacji:
          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)
          ..."
```

### Szczegółowa analiza CVSS (v3.1 i v4.0)

```
Ty: "Rozłóż ten wektor 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"

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 — Wynik: 9.3 (KRYTYCZNY)
          Atak sieciowy, niska złożoność, brak wymagań ataku.
          Brak uprawnień, brak interakcji użytkownika.
          System podatny: pełny wpływ na C/I/A.
          Systemy następcze: brak wpływu."
```

### Mapowanie ATT&CK

```
Ty: "Mapuj CVE-2024-3400 do technik MITRE ATT&CK"

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

---

## Dokumentacja narzędzi (41 narzędzi)

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

| Narzędzie | Opis |
|-----------|------|
| `nvd_search` | Wyszukaj CVE po słowach kluczowych, powadze, CWE, zakresie dat |
| `nvd_get` | Pobierz pełne szczegóły CVE (CVSS, CWE, CPE, referencje) |
| `nvd_recent` | Ostatnio opublikowane/zmodyfikowane CVE |
| `cve_by_product` | Wyszukaj CVE po nazwie produktu (dopasowanie słów kluczowych CPE) |

</details>

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

| Narzędzie | Opis |
|-----------|------|
| `epss_score` | Prawdopodobieństwo eksploatacji EPSS dla jednego lub więcej CVE |
| `epss_top` | Najwyższe CVE według prawdopodobieństwa eksploatacji |

</details>

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

| Narzędzie | Opis |
|-----------|------|
| `kev_check` | Sprawdź, czy CVE znajdują się w katalogu CISA Known Exploited Vulnerabilities |
| `kev_search` | Szukaj w KEV po dostawcy, produkcie lub słowie kluczowym |
| `kev_recent` | Ostatnio dodane wpisy KEV |

</details>

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

| Narzędzie | Opis |
|-----------|------|
| `ghsa_search` | Wyszukaj zalecenia bezpieczeństwa GitHub po słowach kluczowych, ekosystemie, powadze |
| `ghsa_get` | Pobierz szczegóły zalecenia po GHSA ID lub CVE ID |

</details>

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

| Narzędzie | Opis |
|-----------|------|
| `osv_query` | Odpytaj podatności dla konkretnej wersji pakietu |
| `osv_get` | Pobierz szczegóły podatności po OSV/GHSA/CVE ID |
| `osv_batch` | Wsadowe odpytywanie wielu pakietów naraz |

</details>

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

| Narzędzie | Opis |
|-----------|------|
| `exploit_search` | Wyszukaj publiczne exploity PoC (repozytoria GitHub) |

</details>

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

| Narzędzie | Opis |
|-----------|------|
| `shodan_cve` | Wyszukiwanie CVE przez Shodan CVEDB (EPSS, KEV, CPE zintegrowane, bez autoryzacji) |
| `shodan_product` | Znajdź CVE po nazwie produktu/dostawcy przez Shodan |
| `shodan_ip_vulns` | Pobierz znane podatności dla adresu IP (InternetDB) |

</details>

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

| Narzędzie | Opis |
|-----------|------|
| `vulncheck_kev` | Rozszerzony katalog KEV (~80% więcej wpisów niż CISA) |
| `vulncheck_cpe` | Wyszukiwanie CVE po ciągu CPE |
| `vulncheck_purl` | Wyszukiwanie CVE po Package URL (purl) |

</details>

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

| Narzędzie | Opis |
|-----------|------|
| `vulners_lookup` | Szczegóły CVE z Vulners (ponad 200 źródeł, referencje exploitów) |
| `vulners_search` | Wyszukiwanie pełnotekstowe w bazie danych Vulners |

</details>

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

| Narzędzie | Opis |
|-----------|------|
| `nuclei_check` | Sprawdź, czy istnieje szablon detekcji Nuclei dla CVE |
| `msf_check` | Sprawdź, czy istnieje moduł exploita Metasploit dla CVE |

</details>

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

| Narzędzie | Opis |
|-----------|------|
| `cpe_search` | Szukaj w słowniku CPE NVD po słowach kluczowych |
| `cpe_match` | Pobierz dopasowania CPE dla konkretnego CVE |

</details>

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

| Narzędzie | Opis |
|-----------|------|
| `circl_cve` | Wzbogacenie CVE z CIRCL (CAPEC, alternatywne referencje, wektory wpływu) |

</details>

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

| Narzędzie | Opis |
|-----------|------|
| `attackerkb_assess` | Oceny społeczności AttackerKB (wartość dla atakującego, eksploatowalność) |

</details>

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

| Narzędzie | Opis |
|-----------|------|
| `cve_to_attack` | Mapuj ID CWE z CVE do technik i taktyk MITRE ATT&CK |

</details>

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

| Narzędzie | Opis |
|-----------|------|
| `cwe_lookup` | Wyszukaj słabość CWE po ID lub szukaj po słowach kluczowych (statyczna BD) |
| `cwe_get` | Pełne szczegóły CWE z API MITRE (ponad 1000 CWE, środki zaradcze, przykłady) |
| `cwe_hierarchy` | Hierarchia rodzic/dziecko CWE z API MITRE |
| `cwe_top25` | MITRE CWE Top 25 najniebezpieczniejszych słabości oprogramowania |

</details>

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

| Narzędzie | Opis |
|-----------|------|
| `cvss_parse` | Parsuj i wyjaśnij wektor CVSS v3.1 lub v4.0 z obliczeniem wyniku |

</details>

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

| Narzędzie | Opis |
|-----------|------|
| `cve_enrich` | Pełne wzbogacenie: NVD + EPSS + KEV + GHSA + OSV + Shodan + Nuclei + MSF równolegle |
| `cve_prioritize` | Rankuj CVE według ryzyka (CVSS &times; EPSS &times; KEV &times; Mnożnik exploita) |
| `cve_trending` | Aktualnie trendujące CVE według prawdopodobieństwa eksploatacji |
| `cve_compare` | Porównanie dwóch CVE obok siebie |
| `cve_list_sources` | Wyświetl wszystkie 11 źródeł danych i ich dostępność |
| `cve_report` | Wygeneruj raport o podatnościach w formacie markdown |

</details>

---

## Źródła danych

| Źródło | Uwierzytelnianie | Co dostarcza |
|--------|-------------------|-------------|
| [NVD](https://nvd.nist.gov/) | Opcjonalny `NVD_API_KEY` | Szczegóły CVE, wyniki CVSS, mapowania CWE, dotknięte produkty CPE, referencje |
| [EPSS](https://www.first.org/epss/) | Brak | Wynik prawdopodobieństwa eksploatacji (0-1) i ranking percentylowy |
| [CISA KEV](https://www.cisa.gov/known-exploited-vulnerabilities-catalog) | Brak | Znane wykorzystywane podatności z terminami naprawczymi |
| [GitHub Advisory](https://github.com/advisories) | Opcjonalny `GITHUB_TOKEN` | Zalecenia bezpieczeństwa open source, dotknięte pakiety, powaga |
| [OSV](https://osv.dev/) | Brak | Dane o podatnościach na poziomie pakietów w 16+ ekosystemach |
| [Shodan CVEDB](https://cvedb.shodan.io/) | Brak | Wyszukiwanie CVE ze zintegrowanym EPSS/KEV/CPE, skanowanie podatności IP |
| [VulnCheck](https://vulncheck.com/) | Opcjonalny `VULNCHECK_API_KEY` | Rozszerzony KEV (~80% więcej wpisów), wyszukiwanie podatności CPE/PURL |
| [Vulners](https://vulners.com/) | Opcjonalny `VULNERS_API_KEY` | Wyszukiwanie podatności w ponad 200 źródłach, referencje exploitów |
| [Nuclei Templates](https://github.com/projectdiscovery/nuclei-templates) | Brak | Sprawdzanie istnienia szablonów detekcji CVE (powaga, tagi) |
| [Metasploit](https://github.com/rapid7/metasploit-framework) | Brak | Sprawdzanie istnienia modułów exploitów (typ, rang, ścieżka) |
| [CIRCL](https://cve.circl.lu/) | Brak | Wzbogacenie CVE z mapowaniem CAPEC, alt. referencje, wektory wpływu |
| [AttackerKB](https://attackerkb.com/) | Opcjonalny `ATTACKERKB_API_KEY` | Oceny społeczności (wartość dla atakującego, oceny eksploatowalności) |
| [MITRE ATT&CK](https://attack.mitre.org/) | Brak | Mapowanie CWE-do-ATT&CK (taktyki, techniki) |
| [MITRE CWE](https://cwe-api.mitre.org/) | Brak | Pełna baza CWE (ponad 1000 słabości, hierarchia, środki zaradcze) |

### Formuła wyniku ryzyka

```
Wynik ryzyka = CVSS Base Score × EPSS Score × Mnożnik KEV × Mnożnik Exploita

Gdzie:
  CVSS Base Score    = 0-10 (powaga z NVD)
  EPSS Score         = 0-1 (prawdopodobieństwo eksploatacji z FIRST)
  Mnożnik KEV        = 2 jeśli w CISA KEV, 1 w przeciwnym razie
  Mnożnik Exploita   = 1.5 jeśli szablon Nuclei LUB moduł Metasploit istnieje, 1 w przeciwnym razie
```

To daje praktyczny wynik ryzyka, który równoważy powagę (CVSS) z rzeczywistym prawdopodobieństwem eksploatacji (EPSS), znaną aktywną eksploatacją (KEV) i sygnałami uzbrojenia (publiczne narzędzia exploitów).

---

## Architektura

```
src/
├── index.ts                    Punkt wejścia + MCP stdio
├── types/
│   └── index.ts                ToolDef, ToolContext, ToolResult, typy API
├── protocol/
│   ├── tools.ts                41 definicji narzędzi (schematy Zod)
│   └── mcp-server.ts           Serwer MCP + transport stdio
├── nvd/
│   ├── index.ts                NVD API v2 — wyszukiwanie, pobieranie, ostatnie
│   └── cpe.ts                  Wyszukiwanie produktów/CPE
├── epss/
│   └── index.ts                EPSS — wynik, top
├── kev/
│   └── index.ts                KEV — sprawdzanie, wyszukiwanie, ostatnie (cache)
├── ghsa/
│   └── index.ts                GitHub Advisory — wyszukiwanie, pobieranie
├── osv/
│   └── index.ts                OSV — zapytanie, pobieranie, wsadowe
├── exploit/
│   └── index.ts                Wyszukiwanie PoC przez repozytoria GitHub
├── shodan/
│   └── index.ts                Shodan CVEDB + InternetDB (bez autoryzacji)
├── vulncheck/
│   └── index.ts                VulnCheck KEV, CPE, PURL
├── vulners/
│   └── index.ts                Vulners wyszukiwanie + sprawdzanie
├── nuclei/
│   └── index.ts                Sprawdzanie istnienia szablonów Nuclei
├── metasploit/
│   └── index.ts                Sprawdzanie modułów MSF (metadane w cache)
├── cpe/
│   └── index.ts                API słownika CPE NVD
├── circl/
│   └── index.ts                Wzbogacenie CVE CIRCL
├── attackerkb/
│   └── index.ts                Oceny AttackerKB
├── attack/
│   └── index.ts                Mapowanie CWE → MITRE ATT&CK
├── cwe/
│   └── index.ts                API CWE (MITRE) + statyczny fallback
├── cvss/
│   └── index.ts                Parser CVSS v3.1 + v4.0 + kalkulator
├── meta/
│   ├── enrich.ts               Pełne wzbogacenie CVE (8 źródeł równolegle)
│   ├── prioritize.ts           Ranking CVE oparty na ryzyku
│   ├── trending.ts             Trendujące CVE według EPSS
│   ├── compare.ts              Porównanie CVE obok siebie
│   └── sources.ts              Kontrola zdrowia 11 źródeł
└── utils/
    ├── rate-limiter.ts          Kolejkowy rate limiter
    └── cache.ts                 Cache TTL
```

**Decyzje projektowe:**

- **Wywiad, nie audyt** &mdash; W przeciwieństwie do [cloud-audit-mcp](https://github.com/badchars/cloud-audit-mcp) i [github-security-mcp](https://github.com/badchars/github-security-mcp), to jest narzędzie do danych. Brak CheckResult, brak akumulacji wyników. Każde zapytanie jest niezależne i bezstanowe.
- **Równoległe wzbogacanie** &mdash; `cve_enrich` wywołuje 8 źródeł przez `Promise.allSettled`. Jeśli jedno źródło jest niedostępne, reszta nadal zwraca dane.
- **Wykrywanie uzbrojenia** &mdash; Sprawdza istnienie szablonów Nuclei i modułów Metasploit, aby oznaczyć CVE z publicznymi narzędziami exploitów.
- **Współdzielony rate limiter** &mdash; Wszystkie moduły NVD dzielą jedną instancję `RateLimiter` (6s między żądaniami) aby uniknąć błędów 429.
- **Cache KEV + MSF** &mdash; Katalog KEV (~1200 wpisów) i metadane modułów MSF (~15MB) ładowane raz, cache z TTL 1 godziny.
- **CWE tryb dualny** &mdash; MITRE CWE REST API dla pełnych szczegółów (ponad 1000 CWE), z 40+ wpisami statycznym fallbackiem gdy API jest niedostępne.
- **CVSS v3.1 + v4.0** &mdash; Automatycznie wykrywa wersję z prefiksu wektora. V4.0 używa podejścia MacroVector.
- **Mapowanie ATT&CK** &mdash; Statyczna tabela CWE-do-techniki (33 wpisy CWE → techniki ATT&CK). Brak wywołań API.
- **2 zależności** &mdash; `@modelcontextprotocol/sdk` i `zod`. Nic więcej.

---

## Ograniczenia

- NVD API bez `NVD_API_KEY` jest ograniczone do 5 żądań na 30 sekund. Ustaw klucz do użytku produkcyjnego
- Wyszukiwanie GitHub Advisory bez `GITHUB_TOKEN` jest ograniczone do 60 żądań na godzinę
- VulnCheck, Vulners i AttackerKB wymagają kluczy API dla pełnej funkcjonalności
- Wyszukiwanie exploitów używa wyszukiwania repozytoriów GitHub, które ma własne limity szybkości
- Metadane modułów MSF (~15MB) ładowane przy pierwszym użyciu — pierwsze wywołanie `msf_check` jest wolniejsze
- Punktacja CVSS v4.0 używa aproksymacji MacroVector (dokładna specyfikacja jest bardzo złożona)
- Mapowanie ATT&CK obejmuje 33 wpisy CWE — nietypowe CWE mogą nie być mapowane
- macOS / Linux (Windows nie testowany)

---

## Część MCP Security Suite

| Projekt | Domena | Narzędzia |
|---------|--------|-----------|
| [hackbrowser-mcp](https://github.com/badchars/hackbrowser-mcp) | Testy bezpieczeństwa w przeglądarce | 39 narzędzi, Firefox, testy iniekcji |
| [cloud-audit-mcp](https://github.com/badchars/cloud-audit-mcp) | Bezpieczeństwo chmury (AWS/Azure/GCP) | 38 narzędzi, 60+ kontroli |
| [github-security-mcp](https://github.com/badchars/github-security-mcp) | Postawa bezpieczeństwa GitHub | 39 narzędzi, 45 kontroli |
| **cve-mcp** | Wywiad o podatnościach | 41 narzędzi, 11 źródeł |

---

<p align="center">
<b>Wyłącznie do autoryzowanych testów i ocen bezpieczeństwa.</b><br>
Zawsze upewnij się, że masz odpowiednie upoważnienie przed testowaniem systemów.
</p>

<p align="center">
  <a href="LICENSE">Licencja MIT</a> &bull; Zbudowane z Bun + TypeScript
</p>
