enforcement_status
Check the current CSRD enforcement phase-in schedule and Member State transposition status to assess compliance requirements.
Instructions
Current CSRD enforcement phase-in schedule + Member State transposition status.
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:461-507 (handler)The enforcement_status function is a tool decorated with @mcp.tool() that returns CSRD enforcement phase-in schedule, member state transposition status, current date, and omnibus simplification proposal info as JSON. It is read-only, idempotent, and takes an optional api_key parameter.
@mcp.tool() def enforcement_status(api_key: str = "") -> str: """Current CSRD enforcement phase-in schedule + Member State transposition status. 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/2464 (CSRD) + Directive (EU) 2013/34/EU (Accounting Directive, amended)", "standards": "Commission Delegated Regulation (EU) 2023/2772 — ESRS Set 1", "phases": ENFORCEMENT_PHASES, "current_date_utc": now.isoformat(), "immediate_priority": "~12,000 companies with first reports due in 2025-2026. Double materiality + ESRS gap analysis takes 9-12 months.", "omnibus_simplification_proposal": "Commission proposed 'omnibus simplification package' in 2025 — may delay phase-in for medium-large entities. Monitor official EUR-Lex updates.", }, indent=2) - server.py:461-462 (registration)The @mcp.tool() decorator on enforcement_status registers it as an MCP tool in the FastMCP server.
@mcp.tool() def enforcement_status(api_key: str = "") -> str: - server.py:86-91 (helper)ENFORCEMENT_PHASES is a list of dictionaries defining the CSRD phase-in schedule for FY2024-FY2028, used as the 'phases' value in enforcement_status's output.
ENFORCEMENT_PHASES = [ {"fy": "2024", "who": "Large public-interest entities (>500 employees)", "report_due": "2025"}, {"fy": "2025", "who": "Other large companies (meeting 2 of: >250 employees, €50M turnover, €25M balance sheet)", "report_due": "2026"}, {"fy": "2026", "who": "Listed SMEs", "report_due": "2027 (with possible 2-year opt-out to 2028)"}, {"fy": "2028", "who": "Non-EU parents with EU turnover >€150M + EU subsidiary/branch", "report_due": "2029"}, ]