Skip to main content
Glama

Что это такое

ensmcp — это MCP-сервер (Model Context Protocol), который предоставляет меры безопасности из ENS Navegable (Приложение II к RD 311/2022) для Claude Desktop, Claude Code и любого другого MCP-клиента. Это независимый сервер, не аффилированный с CCN, CCN-CERT или CNI и не поддерживаемый ими.

Данные включены в пакет в виде снимка (snapshot), поэтому сервер отвечает мгновенно и работает без подключения к сети. Режим по умолчанию — offline: он не открывает Chrome и не обращается к сети. --check-updates проверяет официальный источник, не заменяя снимок, а --live позволяет временно использовать живые данные.

Помимо Приложения II, сервер включает проверочный вопросник из руководства CCN-STIC 808 (редакция для RD 311/2022): аудиторские вопросы по каждой мере, проверки по статьям RD и документальные доказательства, которые может запросить аудитор.

Основные характеристики

Характеристика

Описание

MCP-сервер через stdio

Интегрируется в Claude Desktop, Claude Code и другие MCP-клиенты

Работает без сети

Полный корпус включён в пакет в виде снимка

Детерминированный снимок

Режим по умолчанию всегда отдаёт упакованный корпус

Явная проверка

--check-updates обнаруживает изменения, не заменяя отдаваемые данные

Матрица применимости

Рассчитывает нормативную базу для подготовки Декларации о применимости

Аудит CCN-STIC 808

Программа аудита, существенные требования, статьи RD и документальные доказательства

Related MCP server: nist-mcp

Доступные инструменты

Просмотр Приложения II

Tool

Args

Описание

list_categories

Категории Приложения II с их группой (org, op, mp).

list_measures

category_code?, dimension?, level?

Меры с фильтрацией по категории, измерению безопасности или уровню.

get_measure

code

Одна мера по точному коду (напр. "org.1"), с текстом из RD, усилениями и уровнями.

search_measures

query

Поиск по тексту в коде, названии, описании и формулировке RD (без учёта регистра и диакритики).

Декларация о применимости и аудит

Tool

Args

Описание

declaracion_aplicabilidad

confidencialidad?, integridad?, disponibilidad?, autenticidad?, trazabilidad?

Базовая нормативная матрица для подготовки DdA: оценивается каждое измерение (bajo/medio/alto или опущено) и возвращаются требуемые меры с их усилениями.

alcance_auditoria

те же, что и для DdA

Программа аудита системы: применимые меры с накопленными проверочными вопросами и минимально требуемым уровнем зрелости.

requisitos_auditoria

code?, level?

Сырой вопросник CCN-STIC 808, по мере или по диапазону, с пометкой существенных требований.

requisitos_articulos

Аудиторские проверки по статьям RD (формальная DdA, категоризация, INES...).

evidencias_auditoria

code?

Документация, которую может запросить аудитор, по мере.

Состояние и обновление

Tool

Args

Описание

refresh_live_page

Проверяет официальный сайт сейчас и обновляет данные, если они изменились.

snapshot_status

Источник и свежесть отдаваемых данных.

Что возвращает мера

Каждая мера содержит два текста, и нужны оба: norm_text — это формулировка из RD 311/2022 (что мера требует), а description — вопросник CCN-STIC 808 (что аудитор спрашивает). Усиления идут в паре с уровнем, который их требует, и с их формулировкой в RD:

{
  "code": "mp.s.4",
  "title": "Protección frente a denegación de servicio",
  "description": "Categoría Media 1.1 ¿Se ha planificado y dotado al sistema de capacidad suficiente ...?",
  "norm_text": "Se establecerán medidas preventivas frente a ataques de denegación de servicio ...",
  "category_code": "mp.s",
  "dimensions": ["disponibilidad"],
  "levels": ["medio", "alto"],
  "reinforcements": [
    { "code": "R1", "level": "alto", "alternative": false, "text": "R1-Detección y reacción. ..." }
  ],
  "raw_levels": { "bajo": "n.a.", "medio": "aplica", "alto": "+ R1" }
}

alternative различает обязательные усиления (+ R1 + R2) и альтернативные (+ [R1 o R2], где достаточно любого одного): их путаница меняет то, что нужно внедрять.

Декларация о применимости

ENS не применяет один уровень ко всей системе: он применяет по одному на каждое измерение. Каждое измерение оценивается, и инструмент возвращает то, что должна выполнять данная система:

{
  "categoria_sistema": "alta",
  "measures": [
    { "code": "op.acc.5", "title": "Mecanismo de autenticación (usuarios externos)",
      "required_level": "alto",
      "required_reinforcements": [
        { "code": "R2", "alternative": true,  "text": "R2-..." },
        { "code": "R5", "alternative": false, "text": "R5-..." }
      ] }
  ]
}

Правило вытекает из RD 311/2022: категория системы — это наибольший из оценённых уровней (Приложение I, п. 4), меры с пометкой «Categoría» требуются в соответствии с категорией системы, меры, защищающие измерения, — в соответствии с уровнем этих измерений, а неоценённое измерение исключает меры, защищающие только его.

Объём аудита

Если DdA отвечает на вопрос «что мне нужно внедрить?», то alcance_auditoria отвечает на вопрос «о чём меня спросит аудитор?». Для каждой применимой меры возвращаются проверочные требования, накопленные до её требуемого уровня, и минимальный уровень зрелости, который требует руководство:

Категория

Минимальный уровень зрелости

BÁSICA

L2 — Воспроизводимый, но интуитивный

MEDIA

L3 — Определённый процесс

ALTA

L4 — Управляемый и измеримый

Этот нюанс важен: диапазоны, которые ENS Navegable помечает как «Categoría Básica / Media / Alta», являются накопительными согласно CCN-STIC 808 §5 — «Categoría Básica» означает требуемое для всех категорий, а не только для базовых систем. Система средней категории отвечает на вопросы базовой и средней. Для системы C=alto, I=medio, D=bajo, A=medio, T=medio реальная программа — это 382 вопроса (136 существенных, невыполнение которых блокирует сертификацию), а не 73 из её диапазона.

requisitos_articulos и evidencias_auditoria покрывают вторую половину аудита: проверки по статьям RD (существует ли DdA и подписана ли она, формально ли категоризирована система, сообщается ли в INES...) и 365 документальных доказательств, которые предлагает руководство. Эти данные взяты из CCN-STIC 808; ENS Navegable их не публикует.

Откуда берутся данные

  • src/ensmcp/data/anexo_ii.json — корпус ENS Navegable (меры, тексты RD, вопросник, применимость по уровням), захваченный с официального сайта. Каждый запрос — это поиск в памяти.

  • src/ensmcp/data/guia_808.json — данные, извлечённые из руководства CCN-STIC 808, с указанием источника (само руководство не распространяется повторно). snapshot_status показывает, из какой редакции взяты данные.

Для пересоздания снимка:

python scripts/build_snapshot.py

Сервер не открывает Chrome и не использует сеть по умолчанию. Для явной проверки изменений:

ensmcp --offline
ensmcp --check-updates
ensmcp --live

Также можно настроить через ENSMCP_MODE=offline|check-updates|live.

Требования

  • Python 3.12-3.14

Только для обновления снимка (refresh_live_page, проверка при запуске, scripts/build_snapshot.py) дополнительно нужны:

  • Установленный Google Chrome

  • Дисплей (или xvfb на серверах без него)

Установка

Для использования сервера из PyPI:

pip install ensmcp
ensmcp --offline

Для включения live-проверки:

pip install "ensmcp[live]"
ensmcp --check-updates

Разработка

git clone https://github.com/seifreed/ensmcp.git
cd ensmcp
python3 -m venv venv
source venv/bin/activate  # Windows: venv\Scripts\activate
pip install -r pylock.toml   # versiones exactas, verificadas por hash
pip install -e . --no-deps   # el propio paquete, sin re-resolver
patchright install chromium

На свежеустановленном Linux может дополнительно понадобиться:

patchright install-deps chromium

pyproject.toml — единственное место, где объявляются зависимости; pylock.toml — это артефакт, сгенерированный из него (PEP 751), который фиксирует все зависимости — runtime и dev вместе — с точными версиями и хэшами, с маркерами для Windows, Linux и macOS на x64 и ARM. Для обновления зависимостей отредактируйте диапазоны в pyproject.toml и перегенерируйте:

uv pip compile pyproject.toml --all-extras --universal --python-version 3.12 \
  --format pylock.toml -o pylock.toml

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

python -m ensmcp

Настройте его в MCP-клиенте (напр. Claude Desktop / Claude Code), указав интерпретатор виртуального окружения:

{
  "mcpServers": {
    "ensmcp": { "command": "ensmcp", "args": ["--offline"] }
  }
}

Больше ничего настраивать не нужно: запросы обрабатываются из снимка пакета.

Для решений о соответствии приоритет имеют BOE, Технические инструкции по безопасности, действующие официальные руководства и критерии соответствующего аудиторского или сертификационного органа.

Для ручной проверки:

npx @modelcontextprotocol/inspector venv/bin/python -m ensmcp

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

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

  1. Сделайте форк репозитория

  2. Создайте свою ветку функциональности (git checkout -b feature/nueva-funcionalidad)

  3. Закоммитьте изменения (git commit -m 'Añade nueva funcionalidad')

  4. Запушьте ветку (git push origin feature/nueva-funcionalidad)

  5. Откройте Pull Request

Убедитесь, что все gates качества и безопасности проходят без ошибок и предупреждений перед отправкой PR.

Поддержите проект

Если этот проект полезен для вас, вы можете поддержать его развитие:

Автор


A
license - permissive license
A
quality
A
maintenance

Maintenance

Maintainers
Response time
1wRelease cycle
2Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • A
    license
    A
    quality
    D
    maintenance
    Provides instant access to authoritative security documentation from organizations like OWASP, NIST, and major cloud providers through natural language semantic search. It enables users to retrieve security best practices, frameworks, and vulnerability information directly from a locally cached knowledge base.
    4
    1
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    Provides structured access to the full NIST cybersecurity catalog, including SP 800/1800 publications, security controls, CSF 2.0, and the NVD database. It enables AI assistants to search and retrieve cybersecurity standards, CVEs, and compliance guidance directly from a local SQLite index.
    20
    1
    MIT

View all related MCP servers

Related MCP Connectors

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/seifreed/ensmcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server