<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> |
  <strong>Русский</strong> |
  <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 и уязвимостей для AI-агентов.</h3>

<p align="center">
  NVD, EPSS, CISA KEV, GitHub Advisory, OSV, Shodan, VulnCheck, Vulners, Nuclei, Metasploit, CIRCL, AttackerKB и MITRE ATT&amp;CK &mdash; объединены в одном MCP-сервере.<br>
  Ваш AI-агент получает <b>разведку уязвимостей по запросу</b>, а не 200-страничный отчёт.
</p>

<br>

<p align="center">
  <a href="#проблема">Проблема</a> &bull;
  <a href="#чем-отличается">Чем отличается</a> &bull;
  <a href="#быстрый-старт">Быстрый старт</a> &bull;
  <a href="#что-может-ai-агент">Что может AI-агент</a> &bull;
  <a href="#справочник-инструментов-41-инструмент">Инструменты</a> &bull;
  <a href="#источники-данных">Источники данных</a> &bull;
  <a href="#архитектура">Архитектура</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="Лицензия"></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 инструмент">
  <img src="https://img.shields.io/badge/sources-11-ef4444" alt="11 источников">
</p>

---

## Проблема

Разведка уязвимостей разбросана по множеству баз данных. NVD содержит детали CVE. EPSS показывает вероятность эксплуатации. CISA KEV отслеживает активно эксплуатируемые уязвимости. GitHub Advisory охватывает пакеты с открытым исходным кодом. OSV сопоставляет уязвимости с конкретными версиями пакетов. Shodan отслеживает подверженность в интернете. Nuclei и Metasploit сообщают о наличии рабочих эксплойтов. Ни один инструмент не объединяет их все, и ни один не работает с AI-агентами.

```
Традиционный рабочий процесс:
  поиск в NVD по деталям CVE              →  навигация по неуклюжему веб-интерфейсу
  проверка EPSS на риск эксплуатации      →  отдельное API, отдельный формат
  проверка статуса CISA KEV               →  скачивание JSON-фида вручную
  поиск в GitHub advisories               →  ещё один интерфейс
  запрос OSV по влиянию на пакеты         →  другое API, другая схема
  проверка Shodan на подверженность        →  отдельная подписка
  поиск эксплойтов Nuclei/MSF             →  ручной поиск на GitHub
  маппинг на техники ATT&CK               →  отдельный запрос к MITRE
  корреляция всего                        →  копировать-вставить в таблицу
  ──────────────────────────────────
  Итого: 30+ минут на CVE, больше для массовой сортировки
```

**cve-mcp** даёт вашему AI-агенту 41 инструмент через [Model Context Protocol](https://modelcontextprotocol.io). Агент запрашивает 11 источников параллельно, коррелирует данные, обнаруживает сигналы вооружения, рассчитывает оценки рисков и сообщает вам именно то, что важно.

```
С cve-mcp:
  Вы: "Приоритизируй эти 10 CVE по фактическому риску эксплуатации"

  Агент: → получает оценки CVSS из NVD
         → получает вероятность эксплуатации EPSS для каждого
         → проверяет CISA KEV на активную эксплуатацию
         → перекрёстно проверяет GitHub advisories на наличие патчей
         → "3 критических: CVE-2024-3400 (EPSS 97%, в KEV),
            CVE-2023-44487 (HTTP/2 rapid reset, EPSS 96%),
            CVE-2021-44228 (Log4Shell, EPSS 97%, в KEV).
            Вот патчи и затронутые версии..."
```

---

## Чем отличается

Существующие инструменты дают необработанные данные. cve-mcp даёт вашему AI-агенту способность рассуждать об уязвимостях.

<table>
<thead>
<tr>
<th></th>
<th>Традиционные инструменты</th>
<th>cve-mcp</th>
</tr>
</thead>
<tbody>
<tr>
<td><b>Интерфейс</b></td>
<td>Web UI / CLI / прямые вызовы API</td>
<td>MCP &mdash; AI-агент вызывает инструменты в диалоге</td>
</tr>
<tr>
<td><b>Источники данных</b></td>
<td>Одна база данных за раз</td>
<td>11 источников параллельно: NVD, EPSS, KEV, GHSA, OSV, Shodan, VulnCheck, Vulners, Nuclei, Metasploit, CIRCL</td>
</tr>
<tr>
<td><b>Оценка рисков</b></td>
<td>Только CVSS (серьёзность, не эксплуатируемость)</td>
<td>CVSS &times; EPSS &times; KEV &times; множитель эксплойта (Nuclei/MSF) = реальный риск</td>
</tr>
<tr>
<td><b>Корреляция</b></td>
<td>Ручное копирование-вставка</td>
<td>Агент обогащает: "CVSS 9.8, EPSS 97%, KEV, шаблон Nuclei существует, модуль MSF доступен, маппится на T1190"</td>
</tr>
<tr>
<td><b>Массовая сортировка</b></td>
<td>По одному CVE за раз</td>
<td>Агент приоритизирует 50 CVE за один разговор</td>
</tr>
<tr>
<td><b>Влияние на пакеты</b></td>
<td>Отдельный поиск OSV/GHSA</td>
<td>Агент автоматически находит затронутые пакеты + версии</td>
</tr>
<tr>
<td><b>Зависимости</b></td>
<td>Тяжёлые CLI-инструменты, окружения Python</td>
<td>2 runtime-зависимости, запускается через npx</td>
</tr>
</tbody>
</table>

---

## Быстрый старт

### Вариант 1: npx (без установки)

```bash
npx cve-mcp
```

### Вариант 2: Клонирование

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

### Переменные окружения (необязательно)

```bash
# Увеличивает лимит NVD с 5 до 50 запросов за 30 секунд
export NVD_API_KEY=ваш-ключ-api-nvd

# Включает поиск GitHub Advisory (60 → 5000 запросов/час)
export GITHUB_TOKEN=ghp_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

# Расширенный KEV, CPE, PURL поиск VulnCheck
export VULNCHECK_API_KEY=ваш-ключ-vulncheck

# Поиск уязвимостей Vulners по 200+ источникам
export VULNERS_API_KEY=ваш-ключ-vulners

# Оценки сообщества AttackerKB
export ATTACKERKB_API_KEY=ваш-ключ-attackerkb
```

Все переменные необязательны. Сервер работает без них — некоторые инструменты просто имеют более низкие лимиты или ограниченные данные.

### Подключение к AI-агенту

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

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

# С локальным клоном
claude mcp add cve-mcp -- bun run /путь/к/cve-mcp/src/index.ts
```

</details>

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

Добавьте в `~/Library/Application Support/Claude/claude_desktop_config.json`:

```json
{
  "mcpServers": {
    "cve-mcp": {
      "command": "npx",
      "args": ["cve-mcp"],
      "env": {
        "NVD_API_KEY": "необязательный-ключ",
        "GITHUB_TOKEN": "необязательный-токен",
        "VULNCHECK_API_KEY": "необязательный-ключ",
        "VULNERS_API_KEY": "необязательный-ключ",
        "ATTACKERKB_API_KEY": "необязательный-ключ"
      }
    }
  }
}
```

</details>

<details>
<summary><b>Cursor / Windsurf / другие MCP-клиенты</b></summary>

Тот же формат JSON-конфигурации. Укажите команду на `npx cve-mcp` или путь установки.

</details>

### Начните запрашивать

```
Вы: "Что ты знаешь о CVE-2024-3400?"
```

Вот и всё. Агент сделает остальное.

---

## Что может AI-агент

### Реагирование на инциденты

```
Вы: "Нас атаковали через CVE-2024-3400. Дай мне всё."

Агент: → cve_enrich {cveId: "CVE-2024-3400"}
       → NVD: PAN-OS command injection, CVSS 10.0
       → EPSS: 97.2% вероятность эксплуатации
       → KEV: Добавлено 2024-04-12, срок 2024-05-01
       → Shodan: 4 CPE, доступен из интернета
       → Nuclei: Шаблон обнаружения существует (critical)
       → Metasploit: Модуль эксплойта доступен (excellent rank)
       → "Критический. Вооружён — существуют модули Nuclei и MSF.
          PAN-OS GlobalProtect, версии < 10.2.9-h1.
          Патчите немедленно. Срок CISA: 1 мая."
```

### Приоритизация уязвимостей

```
Вы: "Приоритизируй эти CVE из нашего скана: CVE-2021-44228, CVE-2024-3400,
      CVE-2023-44487, CVE-2024-21762, CVE-2023-4966"

Агент: → cve_prioritize {cves: [...]}
       → Ранжирует по CVSS × EPSS × множитель KEV
       → "#1: CVE-2024-3400 (риск: 19.44, CVSS 10.0, EPSS 97%, KEV)
          #2: CVE-2021-44228 (риск: 19.40, CVSS 10.0, EPSS 97%, KEV)
          #3: CVE-2023-4966 (риск: 19.10, CVSS 9.4, EPSS 97%, KEV)
          Все 5 в CISA KEV — патчите все немедленно."
```

### Аудит зависимостей

```
Вы: "Проверь, есть ли у lodash 4.17.20 и django 3.2.0 известные уязвимости"

Агент: → osv_batch {queries: [
          {package: "lodash", version: "4.17.20", ecosystem: "npm"},
          {package: "django", version: "3.2.0", ecosystem: "PyPI"}
       ]}
       → "lodash 4.17.20: 3 уязвимости (prototype pollution)
          django 3.2.0: 12 уязвимостей (SQL injection, XSS)
          Обновите lodash до 4.17.21+, django до 4.2+"
```

### Мониторинг угроз

```
Вы: "Какие CVE наиболее вероятно будут эксплуатироваться прямо сейчас?"

Агент: → cve_trending {limit: 10, minEpss: 0.9}
       → "Топ-10 по вероятности эксплуатации:
          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 (v3.1 и v4.0)

```
Вы: "Разбери этот 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"

Агент: → 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 — Оценка: 9.3 (КРИТИЧЕСКИЙ)
          Сетевая атака, низкая сложность, без требований к атаке.
          Привилегии не требуются, взаимодействие пользователя не нужно.
          Уязвимая система: полное влияние на C/I/A.
          Последующие системы: без влияния."
```

### Маппинг ATT&CK

```
Вы: "Сопоставь CVE-2024-3400 с техниками MITRE ATT&CK"

Агент: → cve_to_attack {cweIds: ["CWE-77"]}
       → "CWE-77 (Command Injection) маппится на:
          T1059 — Command and Scripting Interpreter (Execution)
          T1190 — Exploit Public-Facing Application (Initial Access)"
```

---

## Справочник инструментов (41 инструмент)

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

| Инструмент | Описание |
|------------|----------|
| `nvd_search` | Поиск CVE по ключевым словам, серьёзности, CWE, диапазону дат |
| `nvd_get` | Получение полных деталей CVE (CVSS, CWE, CPE, ссылки) |
| `nvd_recent` | Недавно опубликованные/изменённые CVE |
| `cve_by_product` | Поиск CVE по названию продукта (совпадение ключевых слов CPE) |

</details>

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

| Инструмент | Описание |
|------------|----------|
| `epss_score` | Вероятность эксплуатации EPSS для одного или нескольких CVE |
| `epss_top` | Топ CVE по вероятности эксплуатации |

</details>

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

| Инструмент | Описание |
|------------|----------|
| `kev_check` | Проверка наличия CVE в каталоге CISA Known Exploited Vulnerabilities |
| `kev_search` | Поиск в KEV по вендору, продукту или ключевому слову |
| `kev_recent` | Недавно добавленные записи KEV |

</details>

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

| Инструмент | Описание |
|------------|----------|
| `ghsa_search` | Поиск рекомендаций безопасности GitHub по ключевым словам, экосистеме, серьёзности |
| `ghsa_get` | Получение деталей рекомендации по GHSA ID или CVE ID |

</details>

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

| Инструмент | Описание |
|------------|----------|
| `osv_query` | Запрос уязвимостей для конкретной версии пакета |
| `osv_get` | Получение деталей уязвимости по OSV/GHSA/CVE ID |
| `osv_batch` | Пакетный запрос нескольких пакетов одновременно |

</details>

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

| Инструмент | Описание |
|------------|----------|
| `exploit_search` | Поиск публичных PoC-эксплойтов (репозитории GitHub) |

</details>

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

| Инструмент | Описание |
|------------|----------|
| `shodan_cve` | Поиск CVE через Shodan CVEDB (интеграция EPSS, KEV, CPE, без аутентификации) |
| `shodan_product` | Поиск CVE по имени продукта/вендора через Shodan |
| `shodan_ip_vulns` | Получение известных уязвимостей для IP-адреса (InternetDB) |

</details>

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

| Инструмент | Описание |
|------------|----------|
| `vulncheck_kev` | Расширенный каталог KEV (~80% больше записей, чем CISA) |
| `vulncheck_cpe` | Поиск CVE по строке CPE |
| `vulncheck_purl` | Поиск CVE по Package URL (purl) |

</details>

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

| Инструмент | Описание |
|------------|----------|
| `vulners_lookup` | Детали CVE из Vulners (200+ источников, ссылки на эксплойты) |
| `vulners_search` | Полнотекстовый поиск уязвимостей по базе Vulners |

</details>

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

| Инструмент | Описание |
|------------|----------|
| `nuclei_check` | Проверка существования шаблона обнаружения Nuclei для CVE |
| `msf_check` | Проверка существования модуля эксплойта Metasploit для CVE |

</details>

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

| Инструмент | Описание |
|------------|----------|
| `cpe_search` | Поиск в словаре NVD CPE по ключевому слову |
| `cpe_match` | Получение совпадений CPE для конкретного CVE |

</details>

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

| Инструмент | Описание |
|------------|----------|
| `circl_cve` | Обогащение CVE из CIRCL (маппинг CAPEC, альтернативные ссылки, векторы воздействия) |

</details>

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

| Инструмент | Описание |
|------------|----------|
| `attackerkb_assess` | Оценки сообщества из AttackerKB (ценность для атакующего, эксплуатируемость) |

</details>

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

| Инструмент | Описание |
|------------|----------|
| `cve_to_attack` | Маппинг CWE ID из CVE на техники и тактики MITRE ATT&CK |

</details>

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

| Инструмент | Описание |
|------------|----------|
| `cwe_lookup` | Поиск слабости CWE по ID или ключевым словам (статическая БД) |
| `cwe_get` | Полные детали CWE из MITRE API (1000+ CWE, меры, примеры) |
| `cwe_hierarchy` | Иерархия родитель/потомок CWE из MITRE API |
| `cwe_top25` | MITRE CWE Top 25 Most Dangerous Software Weaknesses |

</details>

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

| Инструмент | Описание |
|------------|----------|
| `cvss_parse` | Разбор и объяснение вектора CVSS v3.1 или v4.0 с расчётом оценки |

</details>

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

| Инструмент | Описание |
|------------|----------|
| `cve_enrich` | Полное обогащение: NVD + EPSS + KEV + GHSA + OSV + Shodan + Nuclei + MSF параллельно |
| `cve_prioritize` | Ранжирование CVE по риску (CVSS &times; EPSS &times; KEV &times; множитель эксплойта) |
| `cve_trending` | Актуально трендовые CVE по вероятности эксплуатации |
| `cve_compare` | Сравнение двух CVE бок о бок |
| `cve_list_sources` | Список всех 11 источников данных и их доступность |
| `cve_report` | Генерация отчёта об уязвимостях в формате markdown |

</details>

---

## Источники данных

| Источник | Аутентификация | Что предоставляет |
|----------|----------------|-------------------|
| [NVD](https://nvd.nist.gov/) | Необязательный `NVD_API_KEY` | Детали CVE, оценки CVSS, маппинги CWE, затронутые продукты CPE, ссылки |
| [EPSS](https://www.first.org/epss/) | Нет | Оценка вероятности эксплуатации (0-1) и процентильный ранг |
| [CISA KEV](https://www.cisa.gov/known-exploited-vulnerabilities-catalog) | Нет | Известные эксплуатируемые уязвимости со сроками устранения |
| [GitHub Advisory](https://github.com/advisories) | Необязательный `GITHUB_TOKEN` | Рекомендации безопасности для открытого кода, затронутые пакеты, серьёзность |
| [OSV](https://osv.dev/) | Нет | Данные об уязвимостях на уровне пакетов в 16+ экосистемах |
| [Shodan CVEDB](https://cvedb.shodan.io/) | Нет | Поиск CVE с интеграцией EPSS/KEV/CPE, сканирование уязвимостей IP |
| [VulnCheck](https://vulncheck.com/) | Необязательный `VULNCHECK_API_KEY` | Расширенный KEV (~80% больше записей), поиск по CPE/PURL |
| [Vulners](https://vulners.com/) | Необязательный `VULNERS_API_KEY` | Поиск уязвимостей по 200+ источникам, ссылки на эксплойты |
| [Nuclei Templates](https://github.com/projectdiscovery/nuclei-templates) | Нет | Проверка наличия шаблона обнаружения CVE (серьёзность, теги) |
| [Metasploit](https://github.com/rapid7/metasploit-framework) | Нет | Проверка наличия модуля эксплойта (тип, ранг, путь) |
| [CIRCL](https://cve.circl.lu/) | Нет | Обогащение CVE с маппингом CAPEC, альтернативные ссылки, векторы воздействия |
| [AttackerKB](https://attackerkb.com/) | Необязательный `ATTACKERKB_API_KEY` | Оценки сообщества (ценность для атакующего, рейтинг эксплуатируемости) |
| [MITRE ATT&CK](https://attack.mitre.org/) | Нет | Маппинг CWE на техники ATT&CK (тактики, техники) |
| [MITRE CWE](https://cwe-api.mitre.org/) | Нет | Полная база данных CWE (1000+ слабостей, иерархия, меры) |

### Формула оценки риска

```
Оценка риска = CVSS Base Score × EPSS Score × Множитель KEV × Множитель эксплойта

Где:
  CVSS Base Score       = 0-10 (серьёзность из NVD)
  EPSS Score            = 0-1 (вероятность эксплуатации из FIRST)
  Множитель KEV         = 2, если в CISA KEV, 1 в остальных случаях
  Множитель эксплойта   = 1.5, если существует шаблон Nuclei ИЛИ модуль Metasploit, 1 в остальных случаях
```

Это даёт практическую оценку риска, которая балансирует серьёзность (CVSS) с реальной вероятностью эксплуатации (EPSS), известной активной эксплуатацией (KEV) и сигналами вооружения (публичный инструментарий эксплойтов).

---

## Архитектура

```
src/
├── index.ts                    Точка входа + MCP stdio
├── types/
│   └── index.ts                ToolDef, ToolContext, ToolResult, типы API
├── protocol/
│   ├── tools.ts                41 определение инструментов (схемы Zod)
│   └── mcp-server.ts           MCP-сервер + stdio-транспорт
├── nvd/
│   ├── index.ts                NVD API v2 — поиск, получение, недавние
│   └── cpe.ts                  Поиск продуктов/CPE
├── epss/
│   └── index.ts                EPSS — оценка, топ
├── kev/
│   └── index.ts                KEV — проверка, поиск, недавние (кэш)
├── ghsa/
│   └── index.ts                GitHub Advisory — поиск, получение
├── osv/
│   └── index.ts                OSV — запрос, получение, пакетный
├── exploit/
│   └── index.ts                Поиск PoC через репозитории GitHub
├── shodan/
│   └── index.ts                Shodan CVEDB + InternetDB (без аутентификации)
├── vulncheck/
│   └── index.ts                VulnCheck KEV, CPE, PURL
├── vulners/
│   └── index.ts                Vulners поиск + запрос
├── nuclei/
│   └── index.ts                Проверка наличия шаблона Nuclei
├── metasploit/
│   └── index.ts                Проверка модуля MSF (кэшированные метаданные)
├── cpe/
│   └── index.ts                NVD CPE dictionary API
├── circl/
│   └── index.ts                CIRCL обогащение CVE
├── attackerkb/
│   └── index.ts                Оценки AttackerKB
├── attack/
│   └── index.ts                CWE → MITRE ATT&CK маппинг
├── cwe/
│   └── index.ts                CWE API (MITRE) + статический фоллбэк
├── cvss/
│   └── index.ts                CVSS v3.1 + v4.0 парсер + калькулятор
├── meta/
│   ├── enrich.ts               Полное обогащение CVE (8 источников параллельно)
│   ├── prioritize.ts           Ранжирование CVE на основе рисков
│   ├── trending.ts             Трендовые CVE по EPSS
│   ├── compare.ts              Сравнение CVE бок о бок
│   └── sources.ts              Проверка здоровья 11 источников
└── utils/
    ├── rate-limiter.ts          Очередной rate limiter
    └── cache.ts                 TTL-кэш
```

**Проектные решения:**

- **Разведка, не аудит** &mdash; В отличие от [cloud-audit-mcp](https://github.com/badchars/cloud-audit-mcp) и [github-security-mcp](https://github.com/badchars/github-security-mcp), это инструмент для данных. Нет CheckResult, нет накопления результатов. Каждый запрос независим и не хранит состояние.
- **Параллельное обогащение** &mdash; `cve_enrich` вызывает 8 источников через `Promise.allSettled`. Если один источник недоступен, остальные всё равно возвращают данные.
- **Обнаружение вооружения** &mdash; Проверяет наличие шаблонов Nuclei и модулей Metasploit для выявления CVE с публичным инструментарием эксплойтов.
- **Общий rate limiter** &mdash; Все модули NVD используют один экземпляр `RateLimiter` (6 секунд между запросами) для избежания ошибок 429.
- **Кэширование KEV + MSF** &mdash; Каталог KEV (~1200 записей) и метаданные модулей MSF (~15МБ) загружаются один раз, кэшируются с TTL 1 час.
- **CWE двойной режим** &mdash; MITRE CWE REST API для полных деталей (1000+ CWE) со статическим фоллбэком (40+ записей), когда API недоступен.
- **CVSS v3.1 + v4.0** &mdash; Автоопределение версии по префиксу вектора. V4.0 использует подход оценки MacroVector.
- **Маппинг ATT&CK** &mdash; Статическая таблица CWE-к-технике (33 записи CWE → техники ATT&CK). Без API-вызовов.
- **2 зависимости** &mdash; `@modelcontextprotocol/sdk` и `zod`. Больше ничего.

---

## Ограничения

- NVD API без `NVD_API_KEY` ограничен 5 запросами за 30 секунд. Установите ключ для продакшена
- Поиск GitHub Advisory без `GITHUB_TOKEN` ограничен 60 запросами в час
- VulnCheck, Vulners и AttackerKB требуют API-ключей для полной функциональности
- Поиск эксплойтов использует поиск репозиториев GitHub, у которого свои лимиты
- Метаданные модулей MSF (~15МБ) загружаются при первом использовании — первый вызов `msf_check` медленнее
- Оценка CVSS v4.0 использует аппроксимацию MacroVector (точная спецификация очень сложна)
- Маппинг ATT&CK охватывает 33 записи CWE — редкие CWE могут не маппиться
- macOS / Linux (Windows не тестировался)

---

## Часть MCP Security Suite

| Проект | Область | Инструменты |
|--------|---------|-------------|
| [hackbrowser-mcp](https://github.com/badchars/hackbrowser-mcp) | Тестирование безопасности через браузер | 39 инструментов, Firefox, тестирование инъекций |
| [cloud-audit-mcp](https://github.com/badchars/cloud-audit-mcp) | Облачная безопасность (AWS/Azure/GCP) | 38 инструментов, 60+ проверок |
| [github-security-mcp](https://github.com/badchars/github-security-mcp) | Состояние безопасности GitHub | 39 инструментов, 45 проверок |
| **cve-mcp** | Разведка уязвимостей | 41 инструмент, 11 источников |

---

<p align="center">
<b>Только для авторизованного тестирования и оценки безопасности.</b><br>
Всегда убеждайтесь, что у вас есть надлежащая авторизация перед тестированием систем.
</p>

<p align="center">
  <a href="LICENSE">Лицензия MIT</a> &bull; Создано с помощью Bun + TypeScript
</p>
