Skip to main content
Glama

这是什么

ensmcp 是一个 MCP(模型上下文协议)服务器,将 ENS Navegable(RD 311/2022附件II)的安全措施提供给 Claude Desktop、Claude Code 及任何其他 MCP 客户端使用。它是一个独立服务器,与 CCN、CCN-CERT 或 CNI 无隶属关系,也未获得其支持或维护。

数据以快照形式随包分发,因此服务器可即时响应并离线运行。默认模式为 offline:不启动 Chrome 也不访问网络。--check-updates 用于检查官方来源而不替换快照,--live 可临时采用实时数据。

除附件II外,还集成了 CCN-STIC 808 指南(RD 311/2022版)的验证问卷:每项措施的审计问题、对RD条款的核查以及审计员可能要求的文件证据。

主要特性

特性

描述

基于 stdio 的 MCP 服务器

可集成到 Claude Desktop、Claude Code 及其他 MCP 客户端

离线运行

完整语料以快照形式随包分发

确定性快照

默认模式始终提供打包的语料

显式检查

--check-updates 检测变更而不替换所提供的数据

适用性矩阵

计算规范性基础,用于准备适用性声明

CCN-STIC 808 审计

审计大纲、基本要求、RD条款及文件证据

Related MCP server: nist-mcp

可用工具

附件II查询

Tool

Args

描述

list_categories

附件II的类别及其分组(orgopmp)。

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节),标记为「类别」的措施按系统类别执行,保护维度的措施按该维度的级别执行,未评级的维度将排除仅保护该维度的措施。

审计范围

如果DdA回答的是*「我需要实施什么?」,那么 alcance_auditoria 回答的是「审计员会问我什么?」*。它针对每项适用措施,返回累积到其要求级别的验证要求,以及指南要求的最低成熟度级别:

类别

最低成熟度级别

基础

L2 — 可复现,但凭直觉

中等

L3 — 已定义流程

高级

L4 — 已管理且可度量

这个细节很重要:ENS Navegable 标注为「基础/中等/高级类别」的区间,根据 CCN-STIC 808 §5 是累积性的——「基础类别」意味着对所有类别都适用,而非仅适用于基础系统。中等类别系统需要回答基础中等的全部问题。对于一个 C=高、I=中、D=低、A=中、T=中的系统,实际大纲是 382 个问题(其中136个为基本要求,不满足将阻止认证),而非其区间的73个。

requisitos_articulosevidencias_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

启用实时检查:

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),将所有依赖——运行时和开发依赖一起——固定到精确版本和哈希,并带有 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. Fork 本仓库

  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

请确保所有质量和安全门禁在发送 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