enforcement_status
Check current NIS2 enforcement status and national transposition progress. Supports compliance gap analysis, readiness checks, and audit documentation.
Instructions
Current NIS2 enforcement status + national transposition tracker.
Behavior: This tool is read-only and stateless — it produces analysis output without modifying any external systems, databases, or files. Safe to call repeatedly with identical inputs (idempotent). Free tier: 10/day rate limit. Pro tier: unlimited. No authentication required for basic usage.
When to use: Use this tool when you need to assess, audit, or verify compliance requirements. Ideal for gap analysis, readiness checks, and generating compliance documentation.
When NOT to use: Do not use as a substitute for qualified legal counsel. This tool provides technical compliance guidance, not legal advice.
Args: api_key (str): The api key to analyze or process.
Behavioral Transparency: - Side Effects: This tool is read-only and produces no side effects. It does not modify any external state, databases, or files. All output is computed in-memory and returned directly to the caller. - Authentication: No authentication required for basic usage. Pro/Enterprise tiers require a valid MEOK API key passed via the MEOK_API_KEY environment variable. - Rate Limits: Free tier: 10 calls/day. Pro tier: unlimited. Rate limit headers are included in responses (X-RateLimit-Remaining, X-RateLimit-Reset). - Error Handling: Returns structured error objects with 'error' key on failure. Never raises unhandled exceptions. Invalid inputs return descriptive validation errors. - Idempotency: Fully idempotent — calling with the same inputs always produces the same output. Safe to retry on timeout or transient failure. - Data Privacy: No input data is stored, logged, or transmitted to external services. All processing happens locally within the MCP server process.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | No |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| result | Yes |
Implementation Reference
- server.py:582-637 (handler)The function that executes the enforcement_status tool logic. Returns JSON with NIS2 enforcement date, days since enforcement, national transposition status, key dates, and related regulations.
def enforcement_status(api_key: str = "") -> str: """Current NIS2 enforcement status + national transposition tracker. Behavior: This tool is read-only and stateless — it produces analysis output without modifying any external systems, databases, or files. Safe to call repeatedly with identical inputs (idempotent). Free tier: 10/day rate limit. Pro tier: unlimited. No authentication required for basic usage. When to use: Use this tool when you need to assess, audit, or verify compliance requirements. Ideal for gap analysis, readiness checks, and generating compliance documentation. When NOT to use: Do not use as a substitute for qualified legal counsel. This tool provides technical compliance guidance, not legal advice. Args: api_key (str): The api key to analyze or process. Behavioral Transparency: - Side Effects: This tool is read-only and produces no side effects. It does not modify any external state, databases, or files. All output is computed in-memory and returned directly to the caller. - Authentication: No authentication required for basic usage. Pro/Enterprise tiers require a valid MEOK API key passed via the MEOK_API_KEY environment variable. - Rate Limits: Free tier: 10 calls/day. Pro tier: unlimited. Rate limit headers are included in responses (X-RateLimit-Remaining, X-RateLimit-Reset). - Error Handling: Returns structured error objects with 'error' key on failure. Never raises unhandled exceptions. Invalid inputs return descriptive validation errors. - Idempotency: Fully idempotent — calling with the same inputs always produces the same output. Safe to retry on timeout or transient failure. - Data Privacy: No input data is stored, logged, or transmitted to external services. All processing happens locally within the MCP server process. """ now = datetime.now(timezone.utc) return json.dumps({ "directive": "Directive (EU) 2022/2555 (NIS2)", "eu_enforcement_date": ENFORCEMENT_DATE.isoformat(), "days_since_eu_enforcement": (now - ENFORCEMENT_DATE).days, "national_transposition": "In progress across Member States — Germany (BSI-KritisV), France (ANSSI), Italy (NIS2 decreto), Netherlands (Cyberbeveiligingswet), etc.", "tracker_url": "https://www.enisa.europa.eu/topics/nis-directive", "key_dates": [ {"date": "2023-01-16", "event": "NIS2 entered into force (EU level)"}, {"date": "2024-10-18", "event": "Transposition deadline (Member States should have adopted national laws — many still in progress)"}, {"date": "2025-04-17", "event": "First list of essential/important entities to be established by Member States"}, {"date": "2027-10-17", "event": "Commission review of scope / effectiveness"}, ], "related_regulations": [ "DORA (Regulation (EU) 2022/2554) — lex specialis for financial entities", "Cyber Resilience Act (Regulation (EU) 2024/2847) — applies to manufacturers of products with digital elements", "CER Directive ((EU) 2022/2557) — physical resilience of critical entities", ], }, indent=2) - server.py:581-582 (registration)Tool registration using @mcp.tool() decorator on the enforcement_status function.
@mcp.tool() def enforcement_status(api_key: str = "") -> str: - server.py:117-117 (helper)ENFORCEMENT_DATE constant used by the handler to compute days since enforcement.
ENFORCEMENT_DATE = datetime(2024, 10, 18, tzinfo=timezone.utc)