Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
cve-mcp-server — MCP-сервер промышленного уровня, предоставляющий Claude 27 инструментов киберразведки через 21 API — поиск CVE, оценка EPSS, CISA KEV, MITRE ATT&CK, Shodan, VirusTotal и многое другое. | Kitploit
Инструменты/GitHubGitHub/mukul975/cve-mcp-server
OSINT (Разведка открытых источников)РазведкаСканеры уязвимостейАнализ уязвимостейСбор информацииDevSecOpsРазведка угрозРеагирование на ИнцидентыБезопасность API
GitHubmukul975/cve-mcp-server

cve-mcp-server

MCP-сервер промышленного уровня, предоставляющий Claude 27 инструментов киберразведки через 21 API — поиск CVE, оценка EPSS, CISA KEV, MITRE ATT&CK, Shodan, VirusTotal и многое другое.

1.1k18572 месяцев назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться
РепозиторийСайт

🛡️ CVE MCP Server

CVE MCP Server

AI-аналитика безопасности у вас под рукой — 28 инструментов + оркестратор triage_cve одним вызовом, 24 источника данных, один протокол. GARS-2026 Survey Python 3.10+ License: MIT MCP Compatible Security Tool FastMCP

Сервер Model Context Protocol (MCP) промышленного уровня, превращающий Claude в аналитика безопасности полного спектра. Вместо того чтобы жонглировать 15+ вкладками браузера с NVD, EPSS, CISA KEV, Shodan, VirusTotal и GreyNoise, задайте Claude один вопрос и получите скоррелированную аналитику за считанные секунды. Создан на Python, FastMCP, httpx, aiosqlite, Pydantic v2 и defusedxml.

Проблема: триаж одного CVE означает запросы к NVD за CVSS-оценками, к EPSS за вероятностью эксплуатации, к CISA KEV за статусом активной эксплуатации, к GitHub за патчами и к VirusTotal за связями с вредоносным ПО — а затем мысленную корреляцию всего этого. Для 50 CVE это потерянный целый день.

Решение: CVE MCP Server даёт Claude прямой доступ к 28 инструментам безопасности через 24 API — во главе с однокомандным оркестратором triage_cve. Спросите «Нужно ли нам пропатчить CVE-2024-3400?» — и Claude параллельно обратится ко всем релевантным источникам, рассчитает комплексную оценку риска (с жёстким приоритетом CISA KEV) и выдаст приоритезированную рекомендацию с доказательствами.


🌍 GARS-2026 — Глобальное исследование готовности к агентному ИИ

Я провожу глобальное академическое исследование, измеряющее, насколько специалисты по безопасности, разработчики и корпоративные команды на самом деле готовы к агентному ИИ — MCP-серверам, вызову инструментов, управлению и рабочим процессам с участием человека.

Если вы используете этот репозиторий, ваш ответ станет по-настоящему ценной точкой данных.

📋 Пройдите опрос (10 минут): Опрос

  • 60 вопросов · Анонимно · Под руководством SRH Berlin
  • Вы получите 50 токенов Casky за ранний доступ к casky.ai
  • Результаты публикуются в открытом доступе под лицензией CC-BY 4.0

📑 Оглавление

  • Архитектура
  • Каталог инструментов
  • Установка
  • Настройка API-ключей
  • Конфигурация
  • Быстрый старт
  • Примеры использования
  • Пояснение оценки риска
  • Источники данных
  • Запуск тестов
  • Глубокое погружение в архитектуру
  • Безопасность и конфиденциальность
  • Устранение неполадок
  • Дорожная карта и известные ограничения
  • Внесение вклада
  • Лицензия

🏗️ Архитектура```

┌─────────────────────────────────────────────────────────────────────┐ │ Claude Desktop / Claude Code │ │ (MCP Client via stdio) │ └──────────────────────────────┬──────────────────────────────────────┘ │ Model Context Protocol (stdio) ▼ ┌─────────────────────────────────────────────────────────────────────┐ │ CVE MCP Server (Python) │ │ ┌─────────────┐ ┌──────────────┐ ┌───────────────┐ │ │ │ 27 MCP │ │ Composite │ │ SQLite Cache │ │ │ │ Tools │ │ Risk Engine │ │ + Audit Log │ │ │ └──────┬──────┘ └──────┬───────┘ └───────┬───────┘ │ │ │ │ │ │ │ ┌──────┴────────────────┴───────────────────┴──────┐ │ │ │ Async HTTP Client (httpx) │ │ │ │ Rate Limiter · Response Cache │ │ │ └──────────────────────┬───────────────────────────┘ │ └─────────────────────────┼───────────────────────────────────────────┘ │ HTTPS (outbound only) ┌───────────────┼───────────────────────────┐ ▼ ▼ ▼ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │ VULNERABILITY│ │ NETWORK │ │ THREAT │ │ INTELLIGENCE │ │ INTELLIGENCE │ │ INTELLIGENCE │ ├──────────────┤ ├──────────────┤ ├──────────────┤ │ NVD API 2.0 │ │ AbuseIPDB │ │ VirusTotal │ │ EPSS / FIRST │ │ GreyNoise v3 │ │ MalwareBazaar│ │ CISA KEV │ │ Shodan │ │ ThreatFox │ │ OSV.dev │ │ CIRCL PDNS │ │ Ransomwhere │ │ GitHub GHSA │ │ │ │ AlienVault │ │ MITRE ATT&CK │ │ │ │ URLScan.io │ └──────────────┘ └──────────────┘ └──────────────┘

root@kitploit:~
Весь трафик — **только исходящий HTTPS** — входящие порты не открываются. Ключи API загружаются из переменных окружения и никогда не логируются. Приватные/внутренние IP-адреса блокируются во всех инструментах поиска.

---

## 🔍 Каталог инструментов (28 инструментов)

### ⭐ Оркестрация (v0.2.0) — начните здесь

| Tool | Description | API Key Required | Example Usage |
|------|-------------|-----------------|---------------|
| `triage_cve` | Однокомандная триажирование, которая параллельно распределяет NVD + EPSS + CISA KEV (+ публичный PoC для `depth != "quick"`), вычисляет комплексный показатель риска с жёстким переопределением KEV, переключается на VulnCheck NVD++, когда NIST NVD ограничивает запросы, а при `depth="deep"` выдаёт решение SSVC v2 с гейтингом | Бесплатно / без ключа (ключ рекомендуется) | `triage_cve("CVE-2021-44228", depth="deep")` |

> **Также доступно через MCP-примитивы** — Ресурсы: `kev://catalog`, `epss://scores/{cve_id}`, `manifest://tool-hash` (SHA-256 по зарегистрированной поверхности инструмента, для обнаружения несанкционированного вмешательства). Промпты: `patch_decision`, `compare_and_prioritize`, `dependency_triage`.

### Базовая аналитика уязвимостей (8 инструментов)

| Tool | Description | API Key Required | Example Usage |
|------|-------------|-----------------|---------------|
| `lookup_cve` | Получить подробную запись CVE из NVD, включая оценки CVSS, CWE, затронутые продукты, ссылки и хронологию | Бесплатно / без ключа (ключ рекомендуется) | `lookup_cve("CVE-2024-3400")` |
| `search_cves` | Искать CVE в NVD по ключевому слову, названию продукта, уровню серьезности или диапазону дат | Бесплатно / без ключа (ключ рекомендуется) | `search_cves(keyword="Apache Log4j", severity="CRITICAL")` |
| `get_epss_score` | Получить вероятность эксплуатации EPSS (0–1) и процентиль для одного или нескольких CVE | Бесплатно / без ключа | `get_epss_score("CVE-2024-3400")` |
| `check_kev_status` | Проверить, присутствует ли CVE в каталоге Known Exploited Vulnerabilities от CISA | Бесплатно / без ключа | `check_kev_status("CVE-2021-44228")` |
| `get_cvss_details` | Разобрать и объяснить векторную строку CVSS v3.1 с разбивкой по каждой метрике | Бесплатно / без ключа | `get_cvss_details("CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H")` |
| `get_cwe_info` | Найти сведения о Common Weakness Enumeration по идентификатору CWE во встроенной базе данных | Бесплатно / без ключа | `get_cwe_info("CWE-79")` |
| `get_cve_references` | Извлечь и категоризировать все ссылки на источники для CVE (патчи, бюллетени, эксплойты) | Бесплатно / без ключа (ключ рекомендуется) | `get_cve_references("CVE-2023-44487")` |
| `bulk_cve_lookup` | Пакетно получить сведения для до 20 CVE за один вызов с параллельным обогащением | Бесплатно / без ключа (ключ рекомендуется) | `bulk_cve_lookup(["CVE-2024-3400", "CVE-2023-44487"])` |

### Аналитика эксплойтов и атак (4 инструмента)

| Tool | Description | API Key Required | Example Usage |
|------|-------------|-----------------|---------------|
| `search_exploits` | Искать на GitHub публичные эксплойты proof-of-concept и репозитории с кодом эксплойтов | `GITHUB_TOKEN` (необязательно) | `search_exploits("CVE-2024-3400")` |
| `get_mitre_techniques` | Сопоставить CVE или CWE с соответствующими техниками, тактиками и мерами смягчения MITRE ATT&CK | Бесплатно / без ключа | `get_mitre_techniques("CVE-2021-44228")` |
| `check_poc_availability` | Определить, существует ли известный код proof-of-concept для CVE в нескольких источниках | `GITHUB_TOKEN` (необязательно) | `check_poc_availability("CVE-2024-3400")` |
| `get_attack_patterns` | Получить сведения о шаблонах атак CAPEC, связанных с CWE или CVE | Бесплатно / без ключа | `get_attack_patterns("CWE-89")` |

### Этап 3: Расширенный анализ рисков и отчётность (4 инструмента)

| Tool | Description | API Key Required | Example Usage |
|------|-------------|-----------------|---------------|
| `calculate_risk_score` | Вычислить комплексный показатель риска от 0 до 100 с использованием CVSS, EPSS, статуса KEV и наличия PoC | Бесплатно / без ключа (ключ рекомендуется) | `calculate_risk_score("CVE-2024-3400")` |
| `generate_risk_report` | Сформировать оформленный отчёт по безопасности для руководства по одному или нескольким CVE с рекомендациями | Бесплатно / без ключа (ключ рекомендуется) | `generate_risk_report(["CVE-2024-3400", "CVE-2023-44487"])` |
| `prioritize_cves` | Ранжировать список CVE по комплексному показателю риска для приоритизации триажа | Бесплатно / без ключа (ключ рекомендуется) | `prioritize_cves(["CVE-2024-3400", "CVE-2023-4966", "CVE-2023-44487"])` |
| `get_trending_cves` | Получить популярные CVE на основе высоких показателей EPSS и недавних добавлений в KEV | Бесплатно / без ключа | `get_trending_cves(days=7, min_epss=0.5)` |

### Сетевая аналитика (4 инструмента)

| Tool | Description | API Key Required | Example Usage |
|------|-------------|-----------------|---------------|
| `lookup_ip_reputation` | Проверить историю злоупотреблений IP-адреса и показатель уверенности через AbuseIPDB | `ABUSEIPDB_API_KEY` | `lookup_ip_reputation("185.220.101.34")` |
| `check_ip_noise` | Запросить в GreyNoise данные об активности сканирования/атак с IP, классификацию и связанные CVE | `GREYNOISE_API_KEY` | `check_ip_noise("185.220.101.34")` |
| `shodan_host_lookup` | Получить открытые порты, сервисы, баннеры и уязвимости для IP через Shodan | `SHODAN_API_KEY` | `shodan_host_lookup("8.8.8.8")` |
| `passive_dns_lookup` | Получить исторические данные разрешения DNS для домена из CIRCL Passive DNS | `CIRCL_PDNS_USER` + `CIRCL_PDNS_PASSWORD` | `passive_dns_lookup("example.com")` |

### Аналитика угроз (4 инструмента)

| Tool | Description | API Key Required | Example Usage |
|------|-------------|-----------------|---------------|
| `virustotal_lookup` | Проанализировать хеши файлов, URL, домены или IP-адреса с помощью 70+ антивирусных движков | `VIRUSTOTAL_API_KEY` | `virustotal_lookup(hash="44d88612fea8a8f36de82e1278abb02f")` |
| `search_malware` | Искать образцы вредоносного ПО в MalwareBazaar по хешу, тегу или сигнатуре | `ABUSECH_AUTH_KEY` (необязательно) | `search_malware(tag="Emotet")` |
| `search_iocs` | Запросить в ThreatFox индикаторы компрометации, связанные с семействами вредоносного ПО | `ABUSECH_AUTH_KEY` (необязательно) | `search_iocs(malware="CobaltStrike")` |
| `check_ransomware` | Найти адреса платежей программ-вымогателей и данные транзакций из Ransomwhere | Бесплатно / без ключа | `check_ransomware(address="bc1q...")` |

### DevSecOps (3 инструмента)

| Tool | Description | API Key Required | Example Usage |
|------|-------------|-----------------|---------------|
| `scan_dependencies` | Проверить названия и версии пакетов через OSV.dev на наличие известных уязвимостей | Бесплатно / без ключа | `scan_dependencies(ecosystem="PyPI", packages={"requests": "2.28.0"})` |
| `scan_github_advisories` | Искать GitHub Security Advisories по экосистеме, пакету или уровню серьезности | `GITHUB_TOKEN` (необязательно) | `scan_github_advisories(ecosystem="pip", package="django")` |
| `urlscan_check` | Отправить URL на сканирование или получить предыдущие результаты сканирования из URLScan.io | `URLSCAN_API_KEY` | `urlscan_check("https://suspicious-site.com")` |

---

## 📦 Установка

### Предварительные требования

- **Python 3.10+** (рекомендуются 3.11 или 3.12)
- Менеджер пакетов **pip** или **uv**
- **Git** для клонирования репозитория
- Терминал с доступом к переменным окружения

### Пошаговая настройка```bash
# 1. Clone the repository
git clone https://github.com/mukul975/cve-mcp-server.git
cd cve-mcp-server

# 2. Create and activate a virtual environment
python -m venv venv

# macOS / Linux:
source venv/bin/activate

# Windows (PowerShell):
.\venv\Scripts\Activate.ps1

# Windows (CMD):
venv\Scripts\activate.bat

# 3. Install dependencies
pip install -e .

# 4. Copy and configure environment variables
cp .env.example .env
# Edit .env with your API keys (see API Keys Setup section below)

# 5. Verify the server starts
python -m cve_mcp.server

Использование uv (более быстрая альтернатива)```bash

git clone https://github.com/mukul975/cve-mcp-server.git cd cve-mcp-server uv venv source .venv/bin/activate # or .venv\Scripts\activate on Windows uv pip install -e . cp .env.example .env

root@kitploit:~
### С тестовыми зависимостями```bash
pip install -e ".[test]"

🔑 Настройка API-ключей

API-ключи организованы по приоритету — сначала получите ключи Уровня 1 для максимального охвата с помощью бесплатных инструментов, затем постепенно добавляйте Уровень 2 и Уровень 3 по мере необходимости.

Уровень 1: Высокий приоритет (бесплатно, мгновенный доступ, максимальный охват)

Уровень 2: Рекомендуемые (бесплатные аккаунты, существенная польза)

Уровень 3: Необязательные (расширенная аналитика)

⚡ Старт без ключей: Восемь инструментов работают без какого-либо API-ключа — EPSS, CISA KEV, OSV.dev, MITRE ATT&CK, поиск по CWE, разбор CVSS, Ransomwhere и NVD (с пониженной скоростью). Вы можете начать использовать сервер немедленно и добавлять ключи постепенно.


⚙️ Конфигурация

Переменные окружения (.env.example)```env

NVD API key — free at https://nvd.nist.gov/developers/request-an-api-key

Without key: 5 req/30s | With key: 50 req/30s

NVD_API_KEY=

GitHub token — increases rate limit from 60/hr to 5000/hr (no scopes needed)

GITHUB_TOKEN=

Threat intelligence keys (all optional — tools degrade gracefully without them)

ABUSEIPDB_KEY= # https://www.abuseipdb.com/account/api VIRUSTOTAL_KEY= # https://www.virustotal.com/gui/join-us URLSCAN_KEY= # https://urlscan.io/user/signup SHODAN_KEY= # https://account.shodan.io/register

GreyNoise — uses /v3/ip/{ip} endpoint (NOT the deprecated /v3/community)

GREYNOISE_API_KEY= # https://viz.greynoise.io/signup

CIRCL Passive DNS — requires partner registration

CIRCL_PDNS_USER= CIRCL_PDNS_PASS=

Optional overrides

CACHE_DB_PATH= # defaults to ~/.cve-mcp/cache.db AUDIT_LOG_PATH= # defaults to ~/.cve-mcp/audit.log REQUEST_TIMEOUT=30 # HTTP timeout in seconds MAX_RETRIES=3 # retries on transient errors

root@kitploit:~
### Конфигурация Claude Desktop

**macOS:** `~/Library/Application Support/Claude/claude_desktop_config.json`
**Windows:** `%APPDATA%\Claude\claude_desktop_config.json````json
{
  "mcpServers": {
    "cve-mcp": {
      "command": "python",
      "args": ["-m", "cve_mcp.server"],
      "cwd": "/absolute/path/to/cve-mcp-server",
      "env": {
        "NVD_API_KEY": "your-key-here",
        "GITHUB_TOKEN": "ghp_xxxxxxxxxxxxxxxxxxxx",
        "ABUSEIPDB_KEY": "your-abuseipdb-key",
        "GREYNOISE_API_KEY": "your-greynoise-key",
        "SHODAN_KEY": "your-shodan-key"
      }
    }
  }
}

⚠️ Важно: Всегда используйте абсолютные пути. Полностью завершите работу Claude Desktop (Cmd+Q / Alt+F4) после изменения конфигурации — перезагрузки недостаточно.

Конфигурация Claude Code```bash

Basic setup

claude mcp add cve-mcp -- python -m cve_mcp.server

With environment variables (repeat -e for each key)

claude mcp add cve-mcp -e NVD_API_KEY=your_key -e VULNCHECK_TOKEN=your_token -- python -m cve_mcp.server

Or just run from the project directory — python-dotenv auto-loads .env on startup

Verify it's connected

claude mcp list

root@kitploit:~
---

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

### Шаг 1: Установка (2 минуты)```bash
git clone https://github.com/mukul975/cve-mcp-server.git
cd cve-mcp-server
python -m venv venv && source venv/bin/activate
pip install -e .

Шаг 2: Сначала протестируйте бесплатные инструменты

Файл .env не нужен. Добавьте сервер в Claude Desktop или Claude Code и попробуйте:

«Что такое CVE-2021-44228? Активно ли она эксплуатируется?»

Claude будет использовать lookup_cve (NVD), get_epss_score (EPSS) и check_kev (CISA KEV) — всё бесплатно, никакие ключи не требуются.

«Проверьте эти Python-пакеты на уязвимости: requests 2.28.0, flask 2.2.0, django 3.2.0»

Шаг 3: Добавьте свой первый ключ для 10× производительности```bash

echo 'NVD_API_KEY=your-key-here' > .env

root@kitploit:~
Запросите бесплатный ключ NVD на [nvd.nist.gov](https://nvd.nist.gov/developers/request-an-api-key) — мгновенно по электронной почте, повышает лимит запросов с **5 до 50 запросов за 30 секунд**.

### Шаг 4: Режим полной мощности

После добавления ключей уровня 1 и уровня 2:

> **"Рассчитайте оценку риска для CVE-2024-3400 и скажите, нужно ли патчить немедленно."**

---

## 💬 Примеры использования

### Сценарий 1: "Стоит ли патчить Log4Shell немедленно?"

> **Вы:** Проанализируйте, требует ли CVE-2021-44228 (Log4Shell) немедленного исправления. Дайте оценку риска и вашу рекомендацию.

Claude оркестрирует несколько инструментов за кулисами:```
→ lookup_cve("CVE-2021-44228")
  CVSS 3.1: 10.0 (CRITICAL) | AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H

→ get_epss_score("CVE-2021-44228")
  EPSS: 0.97531 (97.5%) | Percentile: 99.99%

→ check_kev("CVE-2021-44228")
  ✅ IN CISA KEV — Added 2021-12-10 | Known ransomware use: Yes

→ check_poc_exists("CVE-2021-44228")
  ✅ WEAPONIZED — 300+ public PoC repositories found

→ calculate_risk_score("CVE-2021-44228")
  Risk Score: 97/100 (CRITICAL) | Urgency: PATCH IMMEDIATELY

Ответ Claude: "CVE-2021-44228 получает 97/100 (КРИТИЧЕСКИЙ). Удалённое выполнение кода в Apache Log4j, CVSS 10.0, вероятность EPSS 97.5%, подтверждённая активная эксплуатация в CISA KEV, включая кампании программ-вымогателей, 300+ публичных эксплойтов. Немедленно примените патч."

Сценарий 2: "Просканируй мой Python requirements.txt"

Вы: Просканируй эти зависимости: requests==2.28.0, flask==2.2.0, django==3.2.0, pillow==9.0.0, cryptography==37.0.0``` → scan_dependencies(ecosystem="PyPI", packages={...}) Found 12 vulnerabilities across 4 packages

root@kitploit:~
**Ответ Claude:** "Обнаружено **12 уязвимостей** в ваших пакетах. **Требуется немедленное действие:** Django 3.2.0 (3 критические CVE, включая SQL-инъекцию), Pillow 9.0.0 (переполнение кучи), cryptography 37.0.0 (цепочка OpenSSL). Обновите до: django>=4.2.16, pillow>=10.3.0, cryptography>=42.0.0."

### Сценарий 3: "Расследование подозрительного IP-адреса"

> **Вы:** Проверьте подозрительный IP-адрес 185.220.101.34 — является ли он вредоносным?```
→ check_ip_reputation("185.220.101.34")
  AbuseIPDB Confidence: 100% | Reports: 4,832 | ISP: Tor Exit Node

→ check_ip_noise("185.220.101.34")
  GreyNoise: MALICIOUS | Tags: [Tor Exit Node, Web Scanner]
  CVEs targeted: CVE-2024-3400, CVE-2023-46805

→ shodan_host_lookup("185.220.101.34")
  Open ports: 22, 80, 443, 9001 | OS: Linux

Ответ Claude: "185.220.101.34 — известный выходной узел Tor, оценённый AbuseIPDB как 100% вредоносный, с 4832 жалобами. GreyNoise подтверждает активное сканирование CVE-2024-3400 (Palo Alto) и CVE-2023-46805 (Ivanti). Рекомендация: заблокировать на межсетевом экране."

Сценарий 4: "Создать отчёт по безопасности для руководства"

Вы: Создайте отчёт по безопасности для руководства: CVE-2024-3400, CVE-2023-44487, CVE-2023-4966, CVE-2024-21887``` → compare_cves([...]) Compiles: NVD, EPSS, KEV, PoC availability, MITRE ATT&CK mapping Generates: Ranked risk table, remediation timeline, executive summary

root@kitploit:~
---

## 📊 Объяснение оценки риска

Инструмент `calculate_risk_score` выдаёт **композитную оценку риска от 0 до 100** на основе взвешивания четырёх независимых сигналов.

### Формула```
Risk Score = (CVSS × 0.20) + (EPSS × 0.35) + (KEV × 0.30) + (PoC × 0.15)

Множители повышения

  • KEV + активный PoC → ×1.15
  • CVSS ≥ 9.0 + EPSS > 0.7 → ×1.10
  • Опубликован < 7 дней назад → ×1.05

Максимальный балл ограничен 100.

Оценка риска — v1 (2026-06)

Числовой оценщик использует scoring_version 1.0 (указывается в triage_cve, calculate_risk_score и health_check). Линейная взвешенная сумма выше — это значение по умолчанию v1 для числового балла, с одним жёстким переопределением:

  • Жёсткое переопределение CISA KEV: CVE из списка KEV подтверждённо эксплуатируется в реальной среде — это самый сильный сигнал эксплуатации. Его метка никогда не может быть ниже CRITICAL, а его балл ограничен снизу значением ≥ 76, независимо от CVSS/EPSS. (CVE из KEV с низким CVSS и низким EPSS всё равно возвращает CRITICAL / 76.)
  • CVSS рассматривается как сигнал серьёзности, а не вероятности эксплуатации (согласно Allodi & Massacci 2014); сигнал эксплуатации несут EPSS и KEV.
  • Экспериментальное пороговое решение SSVC v2 (модель CISA Deployer → Act / Attend / Track* / Track) доступно через triage_cve(depth="deep") как качественная, объяснимая альтернатива числовому баллу от 0 до 100.

Почему именно такие веса?

EPSS получает наибольший вес (35%), потому что это лучший предиктор фактической эксплуатации — значительно лучше, чем один лишь CVSS. CVSS 10.0 с EPSS 0.01 теоретически опасен, но практически маловероятен. KEV с весом 30% — это эталонная истина: подтверждённая эксплуатация, а не прогноз. CVSS с весом 20% даёт контекст серьёзности для новых CVE с недостаточными данными EPSS. PoC с весом 15% отражает, что публичные эксплойты значительно ускоряют реальные атаки.


🆕 Что нового в v0.2.0

  • Оркестратор triage_cve — один вызов инструмента, который параллельно опрашивает NVD + EPSS + CISA KEV (+ поиск публичных PoC для depth != "quick"), вычисляет составной балл риска и возвращает аккуратный отчёт. depth принимает значения quick / standard (по умолчанию) / deep; deep дополнительно возвращает пороговое решение SSVC v2.
  • Новые вышестоящие источники — VulnCheck NVD++ (прозрачный резервный источник NVD, автоматически используемый внутри triage_cve, когда NIST NVD недоступен или ограничивает запросы), CIRCL hashlookup и range API сервиса HIBP Pwned Passwords.
  • Оценка с жёстким переопределением KEV + scoring_version — CVE из списка KEV всегда имеют метку CRITICAL (балл ≥ 76); версия скоринга указывается в triage_cve и health_check.
  • HTTP-транспорт — установите MCP_TRANSPORT=http, чтобы обслуживать streamable-HTTP на (по умолчанию , без сохранения состояния) вместо stdio. Поставляется с .

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


🧪 Запуск тестов```bash

Run the full test suite

pytest tests/ -v

Run specific test files

pytest tests/test_validators.py tests/test_risk_scorer.py -v

Run with coverage

pytest tests/ -v --cov=src/cve_mcp --cov-report=term-missing

root@kitploit:~
### Тестирование с MCP Inspector```bash
npx @modelcontextprotocol/inspector python -m cve_mcp.server

Opens at http://localhost:6274 — интерактивно тестируйте каждый инструмент, просматривайте входные схемы и проверяйте форматы ответов.

Что покрывают тесты

  • Модульные тесты: расчёт оценки риска, разбор CVSS-векторов, проверка входных данных
  • Интеграционные тесты: регистрация инструментов, проверка параметров, обработка ошибок при отсутствующих ключах
  • Тесты кэша: запись кэша SQLite, истечение TTL, попадание/промах кэша
  • Тесты безопасности: блокировка частных IP-адресов, защита от XML-бомб (defusedxml), очистка входных данных

🏛️ Подробный разбор архитектуры

Структура файлов```

src/cve_mcp/ ├── server.py # FastMCP server — all 27 @mcp.tool() definitions ├── config.py # Environment config and API base URLs ├── models.py # Pydantic models (CVERecord, KEVEntry, EPSSScore, ...) ├── audit.py # Rotating audit log (50MB, 5 backups) ├── api/ │ ├── nvd_client.py # NVD REST API v2.0 │ ├── osv_client.py # OSV.dev package vulnerability API │ ├── epss_client.py # FIRST EPSS API │ ├── kev_client.py # CISA KEV catalog │ ├── ip_intel.py # AbuseIPDB + GreyNoise │ ├── domain_intel.py # crt.sh + CIRCL passive DNS │ ├── shodan_client.py # Shodan host intelligence │ ├── hash_intel.py # MalwareBazaar + VirusTotal │ ├── url_safety.py # URLScan.io │ ├── malware_intel.py # ThreatFox IOC lookup │ ├── ransomware_intel.py# Ransomwhere Bitcoin address lookup │ ├── exploit_intel.py # GitHub PoC/exploit search │ ├── vendor_advisory.py # MSRC + Red Hat + Ubuntu advisories │ ├── attack_mapping.py # MITRE ATT&CK STIX mapping │ ├── cve_timeline.py # CVE event timeline builder │ ├── dependency_scan.py # OSV-based dependency scanning │ ├── poc_checker.py # GitHub + Exploit-DB + Nuclei PoC search │ ├── report_generator.py# Vuln report + CVE comparison matrix │ └── rate_limiter.py # Token bucket rate limiter for NVD ├── cache/ │ └── sqlite_cache.py # Async SQLite cache with per-key TTL └── utils/ ├── validators.py # CVE ID normalization, IP/hash validation └── risk_scorer.py # Composite risk score computation

root@kitploit:~
### Стратегия кэширования

| Ресурс | TTL |
|----------|-----|
| Записи CVE (NVD) | 1 час |
| Оценки EPSS | 6 часов |
| Каталог KEV | 1 час |
| IP / домен intel | 1 час |
| CSV Exploit-DB | 24 часа |
| Данные ATT&CK STIX | 24 часа |
| Intel по программам-вымогателям | 24 часа |

### Журнал аудита

Каждый вызов инструмента записывается в `~/.cve-mcp/audit.log`:```json
{
  "timestamp": "2026-04-14T10:23:45.123Z",
  "tool": "lookup_cve",
  "parameters": {"cve_id": "CVE-2024-3400"},
  "duration_ms": 342,
  "cache_hit": false,
  "status": "ok"
}

API keys and response payloads are never written to audit logs.


🔐 Security and privacy

What data leaves your machine

  • Outbound HTTPS only — no inbound ports opened, no telemetry
  • CVE IDs, IPs, hashes, domains, and package names are sent to respective APIs for lookup
  • API responses are cached locally in SQLite — cached data stays on your machine

Private IP blocking

All network intelligence tools block private and reserved IP ranges before any external API call:

  • 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16 (RFC 1918)
  • 127.0.0.0/8 (loopback), 169.254.0.0/16 (link-local)
  • ::1, fc00::/7 (IPv6 private)

API key protection

  • Keys loaded from environment variables only — never hardcoded
  • .env is gitignored
  • Keys never logged, cached, or included in audit entries

XML safety

defusedxml is used for all XML parsing to prevent XML bomb attacks (billion laughs, XXE injection).


🔧 Troubleshooting

Server won't start```bash

Ensure virtual environment is activated and package is installed

pip install -e . python --version # must be 3.10+

root@kitploit:~
**Claude Desktop не показывает значок молотка (🔨)**
- Проверьте наличие синтаксических ошибок JSON (висячих запятых) в вашем конфиге
- Используйте **абсолютные пути** — относительные пути молча не работают
- Полностью закройте Claude Desktop (Cmd+Q / Alt+F4) и перезапустите

### Превышен лимит запросов NVD```bash
# Add your free NVD API key to .env
NVD_API_KEY=your-key-here
# https://nvd.nist.gov/developers/request-an-api-key

Сервер автоматически ставит избыточные запросы в очередь, но с ключом вы получаете 10× пропускную способность.

GreyNoise 401 Unauthorized```bash

Verify your key works:

curl -H "key: YOUR_KEY" https://api.greynoise.io/v3/ip/8.8.8.8

The server uses /v3/ip/{ip} — NOT the deprecated /v3/community endpoint

root@kitploit:~
### Проблемы с кодировкой в Windows```powershell
$env:PYTHONUTF8 = "1"
$env:PYTHONIOENCODING = "utf-8"

🗺️ Дорожная карта и известные ограничения

Что сервер НЕ делает

  • Нет активного сканирования — только разведка/поиск, не проверяет вашу инфраструктуру
  • Нет операций записи — только чтение из внешних API (кроме отправок в URLScan)
  • Нет оценки CVSS v4.0 — встроенный калькулятор поддерживает только v3.1; оценки v4.0 из NVD отображаются, но не пересчитываются

Известные ограничения API

  • NVD возвращает максимум 2 000 результатов на запрос
  • Оценок EPSS для совсем новых CVE (младше 24 часов) может ещё не существовать
  • CISA KEV обновляется только в рабочие дни США
  • Community-тариф GreyNoise: 50 запросов в неделю
  • Бесплатный тариф VirusTotal: 4 запроса в минуту
  • CIRCL PDNS требует ручной регистрации и одобрения
  • Ransomwhere вводит 90-дневное эмбарго на новые адреса

Планируемые улучшения

  • Локальный калькулятор CVSS v4.0
  • Webhook/оповещения о добавлениях в KEV и изменениях оценки EPSS в списке отслеживания CVE
  • Экспорт в STIX 2.1 для интеграции с SIEM
  • Docker-контейнер с развёртыванием без установки
  • Потоковый HTTP-транспорт (MCP SSE)
  • Дополнительные источники: Censys, SecurityTrails, VulnCheck

🤝 Вклад в проект

Вклад приветствуется.

Добавление нового инструмента

  1. Добавьте функцию инструмента в server.py с декоратором @mcp.tool()

  2. Добавьте проверку входных данных в utils/validators.py

  3. Реализуйте API-клиент в api/

  4. Добавьте тесты в tests/

  5. Обновите этот README```python @mcp.tool() async def my_new_tool(param: str, ctx: Context = None) -> str: """ One-line description for Claude to know when to use this tool.

    Args: param: Description of the parameter """ app = _get_app(ctx)

    validate → cache check → API call → cache write → audit → return

root@kitploit:~
### Требования к тестированию

- Все новые инструменты должны иметь как минимум один офлайн-тест с имитированными ответами
- Изменения оценки риска должны включать тестовые примеры для проверки формулы
- Сетевые инструменты должны включать тест, проверяющий блокировку частных IP-адресов
- Все тесты должны проходить: `pytest tests/ -v`

---

## 📄 Лицензия

Лицензия MIT — см. [LICENSE](https://github.com/mukul975/cve-mcp-server/blob/main/LICENSE) для подробностей.```
Copyright (c) 2025-2026 Mahipal Jangra (mukul975)

Создано с 🔐 Mahipal Jangra · Берлин, Германия
Превращаем разведданные безопасности в разговор.

Скачать инструмент
Переменная окруженияЧто даётКак получитьЛимиты бесплатного тарифаОбязательно?
NVD_API_KEYПоиск в NVD в 10× быстрее (50 запросов/30 сек вместо 5)Запросить на nvd.nist.gov50 запросов за 30 секундНеобязательно, но настоятельно рекомендуется
GITHUB_TOKENПоиск по GitHub Advisory + поиск эксплойтов PoCСоздать PAT на github.com/settings/tokens5 000 запросов/часНеобязательно (60/час без него)
Переменная окруженияЧто даётКак получитьЛимиты бесплатного тарифаОбязательно?
ABUSEIPDB_KEYПроверка репутации IP-адресовЗарегистрироваться на abuseipdb.com1 000 проверок/деньТребуется для IP-инструментов
VIRUSTOTAL_KEYСканирование файлов/URL/доменов/IP на вредоносное ПОЗарегистрироваться на virustotal.com500 обращений/день, 4/минТребуется для VT-инструментов
GREYNOISE_API_KEYАналитика шума/скан-активности IPЗарегистрироваться на viz.greynoise.io50 запросов/неделю (community)Требуется для инструментов GreyNoise
SHODAN_KEYРазведка хостов/портов/сервисовЗарегистрироваться на account.shodan.ioБазовые проверки хостов (бесплатный тариф)Требуется для инструментов Shodan
Переменная окруженияЧто даётКак получитьЛимиты бесплатного тарифаОбязательно?
URLSCAN_KEYСканирование URL и анализ веб-сайтовЗарегистрироваться на urlscan.io5 000 публичных сканирований/деньНеобязательно
CIRCL_PDNS_USERЗапросы CIRCL Passive DNSЗапросить доступ на circl.luТолько для партнёровНеобязательно
CIRCL_PDNS_PASSАутентификация CIRCL Passive DNSПредоставляется при регистрации в CIRCLТолько для партнёровНеобязательно
КомпонентВесЧто учитывает
Базовый балл CVSS v3.120%Теоретическая наихудшая серьёзность
Вероятность EPSS35%Статистическая вероятность эксплуатации в ближайшие 30 дней
Статус CISA KEV30%Подтверждённая активная эксплуатация в реальной среде
Доступность PoC15%Публичный код эксплойта снижает порог входа для атакующих
БаллМеткаРекомендуемое действие
0 – 25LOWЗапланировать на ближайшее окно обслуживания
26 – 50MEDIUMУстановить исправление в течение 30 дней согласно SLA
51 – 75HIGHУстановить исправление в течение 7 дней; эскалировать руководителю команды
76 – 100CRITICALУстановить исправление в течение 24–48 часов. Аварийное окно изменений.
HOST:PORT
0.0.0.0:8000
Dockerfile
  • Ресурсы и промпты — ресурсы kev://catalog, epss://scores/{cve_id} и manifest://tool-hash (SHA-256 по зарегистрированной поверхности инструментов); промпты patch_decision, compare_and_prioritize и dependency_triage.
  • Модель безопасности — сервер никогда не регистрирует обработчик sampling и никогда не отправляет sampling/createMessage (вектор атаки MCP-sampling от Unit 42); новые исходящие пути вносятся в список разрешённых по схеме/хосту (allowlist).
  • №ИсточникПредоставляемые данныеАутентификацияЛимит запросов (бесплатно)
    1NVDДетали CVE, CVSS, CWE, CPEзаголовок apiKey (необязательно)5 запросов/30 с (50 с ключом)
    2EPSSВероятность эксплуатации и процентилиНет1 000 запросов/мин
    3CISA KEVКаталог активно эксплуатируемых CVEНетСтатический файл
    4OSV.devУязвимости пакетов с открытым исходным кодомНетОпубликованного лимита нет
    5GitHub AdvisoriesУведомления GHSA, исправления, затронутые версииBearer-токен60/час (5 000 с PAT)
    6MITRE ATT&CKTTP, техники, меры смягченияНетОпубликованного лимита нет
    7AbuseIPDBУровень доверия по злоупотреблениям IP, отчёты, ISP, геоданныезаголовок Key1 000 проверок/день
    8GreyNoiseШумовая/сканерная активность IP, классификациязаголовок key50 запросов/неделю
    9ShodanОткрытые порты, сервисы, баннеры, CVEquery-параметр keyБазовые запросы
    10VirusTotalРезультаты сканирования несколькими антивирусами, репутациязаголовок x-apikey500/день, 4/мин
    11MalwareBazaarОбразцы вредоносного ПО, хеши, сигнатурызаголовок Auth-KeyДобросовестное использование
    12ThreatFoxIOC, связанные с семействами вредоносного ПОзаголовок Auth-KeyДобросовестное использование
    13RansomwhereBTC-адреса и транзакции программ-вымогателейНетОпубликованного лимита нет
    14URLScan.ioСканирование URL, скриншоты, DOMзаголовок API-Key5 000 публичных сканирований/день
    15CIRCL PDNSИсторические записи пассивного DNSHTTP Basic AuthДоступ для партнёров
    16GitHub Code SearchПоиск репозиториев с PoC-эксплойтамиBearer-токенОбщие с GHSA лимиты
    17Exploit-DBCSV публичной базы эксплойтовНетОпубликованного лимита нет
    18Nuclei TemplatesШаблоны обнаружения от сообществаНетОпубликованного лимита нет
    19MSRCУведомления безопасности MicrosoftНетОпубликованного лимита нет
    20Red Hat SecurityУведомления Red Hat о CVEНетОпубликованного лимита нет
    21Ubuntu SecurityТрекер CVE UbuntuНетОпубликованного лимита нет
    22VulnCheck NVD++Записи CVE в схеме NVD (прозрачный резервный источник NVD)Bearer-токен (бесплатный Community)Согласно тарифу VulnCheck Community
    23CIRCL hashlookupМетаданные заведомо безопасных файлов (NSRL и др.), hashlookup:trustНетПо мере возможности
    24HIBP Pwned PasswordsКоличество утечек паролей через range API с k-анонимностьюНетЖёсткого лимита нет