bdu-fstec-mcp

mcp
Security Audit
Warn
Health Warn
  • License — License: MIT
  • Description — Repository has a description
  • Active repo — Last push 0 days ago
  • Low visibility — Only 5 GitHub stars
Code Pass
  • Code scan — Scanned 12 files during light audit, no dangerous patterns found
Permissions Pass
  • Permissions — No dangerous permissions requested

No AI report is available for this listing yet.

SUMMARY

MCP-сервер для БДУ ФСТЭК (86 000+ российских уязвимостей). Поиск через SQLite FTS5 с фильтрами по CVSS/опасности/году/вендору, обратный маппинг CVE→БДУ. Обход геоблока через GitHub-зеркало.

README.md

bdu-fstec-mcp

CI
License: MIT
Python
BDU records

EN: MCP server that gives Claude (or any MCP client) full-text search over the Russian FSTEC vulnerability database (БДУ ФСТЭК, ~100k records): filters by CVSS / severity / vendor / exploit, CVE → BDU mapping. Works outside Russia via a GitHub-hosted mirror.

MCP-сервер, дающий Claude (и любому MCP-клиенту) доступ к БДУ ФСТЭК — российской базе данных угроз безопасности информации. Работает без геоблокировки: снимок хранится в публичном зеркале как готовая SQLite-база и раздаётся через raw.githubusercontent.com.

Зачем

  • bdu.fstec.ru геоблокирует всё, что не Россия: Claude Cloud, GitHub Actions ubuntu-latest, AWS, GCP — туда не попадут.
  • В российской ИБ-compliance (152-ФЗ, 187-ФЗ, ГОСТ Р 57580) ключевой идентификатор уязвимости — BDU:YYYY-NNNNN, не CVE.
  • В awesome-mcp-servers до сих пор нет MCP для БДУ.

Возможности

Четыре инструмента поверх 99 397 записей (снимок 07.11.2026, источник обновлён 06.11.2026):

  • search_bdu_vulnerabilities — поиск с ранжированием по FTS5 и фильтрами:
    • полнотекстовый запрос с корректной токенизацией кириллицы;
    • min_cvss, min_severity (низкий/средний/высокий/критический);
    • year (год обнаружения);
    • vendor (подстрока имени вендора);
    • has_exploit (только уязвимости с известным эксплойтом).
  • get_bdu_vulnerability — полная запись по идентификатору БДУ.
  • find_bdu_by_cve — обратный маппинг CVE → БДУ.
  • get_bdu_stats — статистика снимка и проверка актуальности.

Производительность

Операция Время (~99k записей)
Холодный старт (скачать ~60 МБ SQLite + распаковать) 5–10 с, один раз
Последующие старты <50 мс
search_bdu_vulnerabilities c FTS5 1–30 мс
Фильтр-only (year/severity/cvss) <5 мс (composite-индексы)
find_bdu_by_cve 1–5 мс
get_bdu_vulnerability <5 мс

FTS5 — unicode61 remove_diacritics 2 с BM25-ранжированием, snippet-подсветкой через «…». Запросы на русском автоматически превращаются в префиксный поиск с обрезкой последних двух букв для простой морфологии (инъекция → инъекц*), так что склонения и падежи находятся.

Установка

pip install bdu-fstec-mcp

Или локально:

git clone https://github.com/velvetway/bdu-fstec-mcp
cd bdu-fstec-mcp
pip install -e .

Запуск в Claude Code

В ~/.claude/settings.json:

{
  "mcpServers": {
    "bdu-fstec": { "command": "bdu-fstec-mcp" }
  }
}

Запуск в Claude Desktop

В claude_desktop_config.json (macOS: ~/Library/Application Support/Claude/, Windows: %APPDATA%\Claude\):

{
  "mcpServers": {
    "bdu-fstec": { "command": "bdu-fstec-mcp" }
  }
}

Если bdu-fstec-mcp не находится в PATH, укажите полный путь (which bdu-fstec-mcp) или запускайте через uvx bdu-fstec-mcp.

CLI

bdu-fstec-mcp            # запустить stdio-сервер (по умолчанию)
bdu-fstec-mcp run        # то же самое
bdu-fstec-mcp stats      # показать статистику локального снимка
bdu-fstec-mcp refresh    # принудительно перекачать свежий снимок

Переменные окружения

Переменная По умолчанию Описание
BDU_FSTEC_DB_URL адрес в зеркале URL к bdu.sqlite.gz.
BDU_FSTEC_STATS_URL адрес в зеркале URL к stats.json.
BDU_FSTEC_CACHE_DIR $XDG_CACHE_HOME/bdu-fstec-mcp Каталог локального кэша.
BDU_FSTEC_STALENESS_DAYS 30 После скольких дней предупреждать о старом снимке.
BDU_FSTEC_REQUEST_TIMEOUT 120 Таймаут HTTP-запросов (с).

Пример диалога

Я: Что есть у ФСТЭК по CVE-2024-1086?

Claude (вызывает find_bdu_by_cve("CVE-2024-1086")):

Найдена 1 запись БДУ — BDU:2024-01187, use-after-free в nft_verdict_init() ядра Linux, CVSS 7.8. Подтверждена производителем, эксплойт существует. Затронуты Astra Linux Special Edition 1.7, РЕД ОС 7.3, Альт 8 СП и ещё 10 дистрибутивов.

Я: Критические уязвимости Astra Linux за 2025 год, где есть эксплойт.

Claude (вызывает search_bdu_vulnerabilities(query="Astra Linux", min_severity="критический", year=2025, has_exploit=true)):

Найдено 4 результата…

Архитектура

src/bdu_fstec_mcp/
    __init__.py       пакетные константы
    _config.py        конфигурация через env
    _cli.py           CLI-обёртка (run/refresh/stats)
    cache.py          скачивание и staleness-проверка снимка
    store.py          SQLite+FTS5 запросы и DTO-гидратация
    models.py         неизменяемые dataclass-модели
    formatters.py     pretty-print для LLM
    server.py         MCP stdio-сервер и диспетчер тулов

Данные живут в отдельном репозитории bdu-fstec-mirror. MCP их только читает.

Разработка

pip install -e '.[dev]'
pytest          # 48 тестов, ~4 с

Покрыты: FTS5-экранирование, фильтры, маппинг CVE→БДУ, скачивание и fallback кэша, staleness-проверки, форматтеры.

Правовая сторона

  • Данные БДУ — публичная информация, размещённая ФСТЭК России на https://bdu.fstec.ru.
  • Проект не аффилирован с ФСТЭК России.
  • Код — MIT. Данные остаются собственностью ФСТЭК России.
  • При ссылке на результаты указывайте источник.

Связанные проекты

  • velvetway/minreestr-mcp — MCP для поиска российского ПО в каталоге Минцифры / каталогпо.рф.
  • velvetway/bdu-fstec-mirror — зеркало БДУ, источник данных для этого MCP.

Reviews (0)

No results found