Command Palette

Search for a command to run...

UnylyUnyly
Browse all

Bdu Fstec

FreeNot checked

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

GitHubEmbed

About

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

README

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 для БДУ.

Возможности

Четыре инструмента поверх 86 664 записей (снимок 18.04.2026, источник обновлён 31.12.2025):

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

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

Операция Время (86k записей)
Холодный старт (скачать ~50 МБ SQLite + распаковать) 5–10 с, один раз
Последующие старты <50 мс
search_bdu_vulnerabilities c FTS5 1–20 мс
Фильтр-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" }
  }
}

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          # 35 тестов, <1 с

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

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

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

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

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

from github.com/velvetway/bdu-fstec-mcp

Install Bdu Fstec in Claude Desktop, Claude Code & Cursor

Recommended · one command, every IDE
unyly install bdu-fstec-mcp

Installs into Claude Desktop, Claude Code, Cursor & VS Code — handles npx, uvx and build-from-source repos for you.

First time? Get the CLI: curl -fsSL https://unyly.org/install | sh

Or configure manually

Run in your terminal:

claude mcp add bdu-fstec-mcp -- uvx --from git+https://github.com/velvetway/bdu-fstec-mcp bdu-fstec-mcp

FAQ

Is Bdu Fstec MCP free?

Yes, Bdu Fstec MCP is free — one-click install via Unyly at no cost.

Does Bdu Fstec need an API key?

No, Bdu Fstec runs without API keys or environment variables.

Is Bdu Fstec hosted or self-hosted?

A hosted option is available: Unyly runs the server in the cloud, no local setup required.

How do I install Bdu Fstec in Claude Desktop, Claude Code or Cursor?

Open Bdu Fstec on unyly.org, pick your client tab (Claude Desktop, Claude Code, Cursor) and press Install — the config is generated automatically, no JSON editing.

Related MCPs

Compare Bdu Fstec with

Not sure what to pick?

Find your stack in 60 seconds

Author?

Embed badge for your README

Browse similar

All ai MCPs