ensmcp
これは何か
ensmcp は、ENS Navegable(RD 311/2022 附属書II)のセキュリティ対策を Claude Desktop、Claude Code、その他のMCPクライアントで利用できるようにする MCP(Model Context Protocol)サーバーです。これは独立したサーバーであり、CCN、CCN-CERT、CNIとは提携・支援・保守の関係はありません。
データはスナップショットとしてパッケージに同梱されているため、サーバーは即座に応答し、オフラインでも動作します。デフォルトモードは offline で、Chromeを起動せずネットワークにもアクセスしません。--check-updates はスナップショットを置き換えずに公式ソースを確認し、--live はライブデータを一時的に採用できます。
附属書IIに加えて、CCN-STIC 808ガイド(RD 311/2022版)の検証質問票も組み込んでいます:対策ごとの監査質問、RDの条文に関するチェック、監査人が要求できる文書的証拠です。
主な特徴
特徴 | 説明 |
stdio上のMCPサーバー | Claude Desktop、Claude Code、その他のMCPクライアントに統合可能 |
オフラインで動作 | 完全なコーパスがスナップショットとしてパッケージに同梱 |
決定的スナップショット | デフォルトモードは常にパッケージ化されたコーパスを提供 |
明示的な確認 |
|
適用可能性マトリックス | 適用可能性宣言の準備のための規範的基盤を計算 |
CCN-STIC 808監査 | 監査項目、必須要件、RDの条文、文書的証拠 |
Related MCP server: nist-mcp
利用可能なツール
附属書IIの照会
Tool | Args | 説明 |
| — | 附属書IIのカテゴリをグループ( |
|
| カテゴリ、セキュリティ次元、またはレベルでフィルタリングした対策。 |
|
| 正確なコードによる対策(例: |
|
| コード、タイトル、説明、RDの条文のテキスト検索(大文字小文字とアクセントを無視)。 |
適用可能性宣言と監査
Tool | Args | 説明 |
|
| DdA準備のための規範的マトリックス基盤:各次元( |
| DdAと同じ | システムの監査項目:適用可能な対策と、その累積された検証質問、および要求される最低成熟度レベル。 |
|
| CCN-STIC 808質問票の生データ。対策別または区分別で、必須要件をマーク。 |
| — | RDの条文に関する監査チェック(正式なDdA、カテゴリ分類、INES...)。 |
|
| 監査人が要求できる文書。対策別。 |
ステータスと更新
Tool | Args | 説明 |
| — | 公式サイトを今すぐ確認し、データが変更されていれば更新する。 |
| — | 提供中のデータの出所と鮮度。 |
対策が返す内容
各対策には2つのテキストが含まれ、両方が必要です: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]、いずれか1つで十分)を区別します:これらを混同すると、実装すべき内容が変わります。
適用可能性宣言
ENSはシステム全体に1つのレベルを適用するのではなく、次元ごとに1つ適用します。各次元を評価し、ツールはそのシステムが満たすべき内容を返します:
{
"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 --liveENSMCP_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 chromiumpyproject.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コントリビューション
コントリビューションを歓迎します。
リポジトリをフォークする
機能ブランチを作成する(
git checkout -b feature/nueva-funcionalidad)変更をコミットする(
git commit -m 'Añade nueva funcionalidad')ブランチをプッシュする(
git push origin feature/nueva-funcionalidad)Pull Requestを開く
PRを送信する前に、すべての品質・セキュリティゲートがエラーや警告なしで通過することを確認してください。
プロジェクトを支援する
このプロジェクトが役に立つと思ったら、開発を支援できます:
著者
Marc Rivero López | @seifreed
リポジトリ: github.com/seifreed/ensmcp
Maintenance
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
- AlicenseAqualityDmaintenanceProvides 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.41MIT
- AlicenseAqualityDmaintenanceProvides 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.201MIT
- AlicenseNot gradedqualityDmaintenanceProvides offline full-text search across 35,000+ Swiss laws from all cantons and federal level using SQLite FTS5 indexing. Enables querying laws, articles, and metadata through natural language.1MIT
- AlicenseAqualityFmaintenanceEnables querying Portuguese cybersecurity regulations, guidance, advisories, and frameworks from CNCS via MCP-compatible clients.6Apache 2.0
Related MCP Connectors
Offline methodology engine for authorized penetration testing, CTF, and security research.
Offline US medical code lookup and crosswalk — ICD-10-CM/PCS, HCPCS Level II, RxNorm. Keyless.
Offline, keyless lookup of the US civil aircraft registry — decode N-numbers, search records.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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