Skip to main content
Glama

EU AI Act MCP Server

License: MIT npm version Smithery listing Test

An open-source Model Context Protocol (MCP) server that gives LLMs structured intelligence about the EU AI Act (Regulation (EU) 2024/1689, as amended by the Digital Omnibus, Regulation (EU) 2026/1744).

Built by Lexbeam Software - an agentic AI implementation boutique for regulated workflows.

What's new in 1.5.0

Version 1.5.0 adds euaiact_assess_system, one bounded decision call over a sparse, normalized system profile.

  • Three independent blocks: legal classification, qualitative impact, and implementation readiness. Impact cannot change legal classification, and a legal route never implies evidence completeness or approval.

  • Fail-closed conclusions: decisive missing facts make only their affected blocks undetermined, with stable IDs and questions. Unverified free text cannot satisfy a decisive legal predicate.

  • Grounded and reproducible: every finding resolves to supplied facts or disclosed missing facts and carries complete official-text provenance. Results bind to the sealed four-source corpus and have RFC 8785 golden hashes.

  • Compatibility pinned: all nine existing tools retain byte-identical behavior for the same fixed inputs and corpus. The assessment tool is registered additively as tool 10.

Full release history: CHANGELOG.md.

Related MCP server: ai-economy-infrastructure

Quick Start

npx (no install)

npx -y @lexbeam-software/eu-ai-act-mcp

Claude Desktop

Add to claude_desktop_config.json:

{
  "mcpServers": {
    "eu-ai-act": {
      "command": "npx",
      "args": ["-y", "@lexbeam-software/eu-ai-act-mcp"]
    }
  }
}

Smithery

npx -y @smithery/cli@latest mcp add lexbeam-software/eu-ai-act

Direct MCP endpoint: https://mcp.lexbeam.com/mcp (health check at /health). Open, no auth required.

The Smithery-hosted endpoint https://eu-ai-act--lexbeam-software.run.tools requires Smithery authentication and returns 401 without it.

From source

git clone https://github.com/lexbeam-software/eu-ai-act-mcp.git
cd eu-ai-act-mcp
npm install
npm run build
npm start        # stdio transport
npm run start:http  # streamable HTTP (for Smithery/Railway)

Tools

Tool

Description

euaiact_classify_system

Classify an AI system's risk level (prohibited / high-risk / limited / minimal) from free text or structured signals. Returns matched signals, missing signals, and follow-up questions.

euaiact_check_deadlines

Implementation milestones with days remaining, next_milestone shortcut, only_upcoming filter, and the enacted Digital Omnibus (Regulation (EU) 2026/1744) status.

euaiact_get_obligations

Specific compliance obligations by role (provider/deployer) and risk level, including GPAI (Art. 51-56) and universal AI literacy (Art. 4).

euaiact_answer_question

Keyword FAQ search (lexical matching with stopword filtering, tie handling and abstention) across 24 curated EU AI Act questions; echoes your question and names the matched entry.

euaiact_calculate_penalty

Calculate maximum fines by violation type, turnover, SME status (Art. 99(6)) and SMC status (Art. 99(6a), tiers 99(4)-(5) only), with a comparative non-SME vs SME block.

euaiact_get_article

Retrieve an operational summary and EUR-Lex URL for a specific article. Covers 28 curated articles between Art. 3 and Art. 113 (including the new Art. 4a), not the full act.

euaiact_check_gpai_systemic_risk

Check whether a GPAI model crosses the 10²⁵ FLOPs threshold and return Art. 53 + Art. 55 obligations plus the Art. 52 notification duty.

euaiact_assess_art6_3_exception

Walk through the Art. 6(3) "no significant risk" exception with explicit profiling block and Art. 6(4) / Art. 49(2) reminders.

euaiact_annex_iv_checklist

Return all nine Annex IV technical-documentation items, optionally as a markdown checklist.

euaiact_assess_system

Assess a normalized system profile with separate legal-classification, qualitative-impact, and evidence-readiness blocks. Sparse decisive facts fail closed; every finding carries fact IDs and official provenance.

Resources

URI

Description

euaiact://timeline

Key implementation milestones of the EU AI Act.

euaiact://risk-levels

Overview of the four risk categories.

euaiact://annex/iii

Full Annex III high-risk AI categories (1-8) with descriptions, examples, and article references.

euaiact://annex/iv

Full Annex IV technical-documentation items (1-9).

euaiact://omnibus

The Digital Omnibus on AI (Regulation (EU) 2026/1744) as enacted: amended dates, deltas, and source status per item.

Prompts

  • classify-my-system - guided classification using euaiact_classify_system with signal inference

  • compliance-checklist - risk-level + role obligations checklist, including Annex IV for high-risk

  • penalty-risk-assessment - penalty calculation with SME comparative

  • ground-citation - retrieve an operational summary + EUR-Lex URL, then verify definitive wording in the official source before quoting

Knowledge Base

Curated, structured data covering:

  • 8 Annex III high-risk categories with keyword matching and examples

  • 10 prohibited AI practices: Art. 5(1)(a)-(h), plus (ba) and (bb) applying from 2 December 2026

  • Art. 6(3) exception conditions with the profiling block rule

  • Art. 50 transparency triggers (chatbots, deepfakes, emotion recognition, machine-readable marking)

  • 8 implementation milestones with dynamic days-remaining calculation

  • Digital Omnibus (enacted) status and impact assessment

  • Provider obligations (13 for high-risk, 8 for GPAI including Art. 53 + Art. 55)

  • Deployer obligations (9 for high-risk)

  • Limited-risk transparency obligations (4 under Art. 50)

  • Universal AI literacy (Art. 4)

  • Penalty framework with SME protection logic (Art. 99)

  • 24 FAQ entries with article references and Lexbeam knowledge-base links

  • 28 article summaries with EUR-Lex URLs to the consolidated text

  • Annex IV (9 documentation items) (new in 1.1.0)

Load-bearing dates, thresholds, amounts and exceptions are checked on every build by a claim matrix (test-claims.mjs) against a pinned, hash-verified copy of the consolidated act (law/). Coverage is the matrix, not a blanket claim.

Regulatory Accuracy

This server tracks the current state of the EU AI Act (Regulation 2024/1689) as amended by the Digital Omnibus on AI, Regulation (EU) 2026/1744, published in the Official Journal on 24 July 2026 and in force from 27 July 2026. The amended application dates are served as operative law. Article-level wording was verified against the enacted OJ text on 26 and 27 July 2026, delta by delta against the 43 numbered amendments in Article 1 of the amending act. No Omnibus delta was left unresolved in that reconciliation. The Art. 49 registration duty for self-assessed not-high-risk systems, previously carried as unresolved, SURVIVES: the enacted act does not amend Art. 49 and deletes only Annex VIII Section B points 7 and 9.

Operative dates as amended:

  • 2 Feb 2025 - Prohibited practices (Art. 5) + AI literacy (Art. 4), in effect

  • 2 Aug 2025 - GPAI model obligations, in effect

  • 2 Aug 2026 - Art. 50 transparency, and Commission GPAI enforcement powers and fines. Not deferred

  • 2 Dec 2026 - The two new Art. 5 prohibitions (non-consensual intimate material, CSAM), and the Art. 111(4) deadline for synthetic-content systems already on the market to meet Art. 50(2)

  • 2 Aug 2027 - Legacy GPAI models (Art. 111(3)), unchanged

  • 2 Dec 2027 - High-risk Annex III obligations. Deferred from 2 Aug 2026

  • 2 Aug 2028 - High-risk Annex I regulated products. Deferred from 2 Aug 2027

Development

npm install
npm run build        # typescript -> dist/
node test.mjs         # full suite incl. ten agent journeys
node test-claims.mjs  # 108-check matrix: pinned law corpus vs served facts
node test-schemas.mjs # post-serialization output-schema gate
node law/fetch.mjs verify # verify all 4 pinned legal documents
npm --prefix compiler test # deterministic compiler: 6 tests
npm run dev          # stdio dev server
npm run dev:http     # HTTP dev server

Disclaimer

This MCP server is a structured information tool that returns references to and summaries of Regulation (EU) 2024/1689. It provides general information only and does not constitute legal advice. Whether a service falls within a national regulated legal-services regime must be verified against current official sources and, where necessary, with qualified local counsel. This tool cannot replace that review, and its use does not establish a lawyer-client relationship. For implementation support, visit lexbeam.com/kontakt.

License

MIT. See LICENSE. Regulation text summarised in src/knowledge/articles.ts and src/knowledge/annex-iv.ts is derived from Regulation (EU) 2024/1689 as amended; EUR-Lex content is reused under the conditions of Commission Decision 2011/833/EU (preserve attribution, do not distort the meaning of the source).

About Lexbeam

Lexbeam Software builds agentic AI for compliance, legal operations, internal audit, and risk workflows.

Give us one ugly, regulation-heavy workflow. We'll turn it into a working AI system fast.

Available Tools

10 tools
euaiact_annex_iv_checklistAnnex IV Technical Documentation ChecklistA
Read-onlyIdempotent

The nine titles and descriptions summarise Annex IV. sub_items are non-binding implementation prompts, are not verbatim Annex IV text, and do not create additional legal requirements. Under Article 11(1), SMEs, including start-ups, and SMCs may provide the Annex IV elements in a simplified manner only by using the Commission form referred to in that paragraph.

ParametersJSON Schema
NameRequiredDescriptionDefault
formatNoOutput shape: 'json' returns structured items; 'checklist' adds a markdown checklist string.json
sme_simplifiedNoIndicate whether SME-simplified preparation is being used (Art. 11(1) second subparagraph).

Output Schema

ParametersJSON Schema
NameRequiredDescription
itemsYes
sme_noteNo
total_itemsYes
guidance_noteYes
relevant_articlesYes
checklist_markdownNo

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and idempotentHint=true, so the description doesn't need to restate safety. It adds valuable context about the non-binding nature of sub_items and the legal simplification pathway for SMEs, which goes beyond the annotations. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, focused paragraph that front-loads the core purpose and then adds important legal context. It is concise and every sentence adds value, though it could be slightly more structured with explicit headings or bullet points for the nine titles.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's moderate complexity (2 optional params, output schema present, read-only annotations), the description covers the essential purpose, legal caveats, and simplification pathway. It doesn't detail the nine titles themselves, but that's likely the tool's output, and the output schema exists. The description is complete enough for an agent to select and invoke it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents both parameters (format and sme_simplified) with descriptions. The tool description adds no additional parameter semantics beyond what the schema provides, but the schema is sufficient, so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool provides the nine titles and descriptions summarising Annex IV, with sub_items as non-binding implementation prompts. It distinguishes itself from siblings by focusing specifically on the Annex IV technical documentation checklist, which is a distinct resource from classification, deadlines, obligations, etc.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains the nature of the content (non-binding prompts) and clarifies the legal context regarding SMEs and SMCs under Article 11(1). It implies when to use this tool (when needing Annex IV documentation guidance) but does not explicitly contrast with alternatives like euaiact_get_article or euaiact_get_obligations, though the specificity of Annex IV makes the use case clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

euaiact_answer_questionEU AI Act FAQA
Read-onlyIdempotent

Search frequently asked questions about the EU AI Act and get best-match answers with article references. Covers classification, deadlines, roles, governance, documentation, risk assessment, penalties, GPAI systemic risk, FRIA, transparency, and sector-specific guidance.

ParametersJSON Schema
NameRequiredDescriptionDefault
questionYesUser question about the EU AI Act

Output Schema

ParametersJSON Schema
NameRequiredDescription
answerYes
questionYes
confidenceYes
lexbeam_urlNo
matched_questionNo
article_referencesYes

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare readOnly and idempotent, so the bar is lower. The description adds context by claiming 'best-match answers' and 'article references,' which implies ranking behavior and output structure, beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, informative sentence that covers function, scope, and output references without excess. Front-loaded with action and resource.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given simple schema and annotations, the description covers the purpose, scope, and output (references). It could mention limitations or fallback behavior, but it's sufficiently complete for a Q&A tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has one parameter with a clear description ('User question about the EU AI Act'). The tool description adds no additional parameter context, but since the schema coverage is 100%, a 3 is acceptable.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Search frequently asked questions about the EU AI Act and get best-match answers with article references.' It uses a specific verb (search) and resource (FAQ) and differentiates from siblings like get_article by focusing on question-answer style.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implicitly indicates when to use this tool (for general FAQ-style questions) by enumerating covered topics, but it does not explicitly contrast it with alternatives like checking specific articles or deadlines. The 'Covers...' list provides usage context but lacks explicit when-not guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

euaiact_assess_art6_3_exceptionAssess Art. 6(3) 'No Significant Risk' ExceptionB
Read-onlyIdempotent

Walk through the Art. 6(3) exception for Annex III high-risk AI systems. An Annex III system is NOT high-risk only if the provider affirmatively assesses no significant risk to health, safety, or fundamental rights, AND the system falls under one of the four conditions: (a) narrow procedural task, (b) improves prior human activity, (c) detects patterns without replacing human assessment, (d) preparatory task. Set no_significant_risk_to_health_safety_fundamental_rights=true only when that threshold has been assessed. CRITICAL: The exception does NOT apply if the system performs profiling of natural persons (Art. 6(3), third subparagraph). Providers invoking the exception must document the assessment (Art. 6(4)) and still register in the EU database (Art. 49(2)).

ParametersJSON Schema
NameRequiredDescriptionDefault
annex_iii_numberNoAnnex III category number (1-8). Provide if known - helps the response reference the right rules.
preparatory_taskNoArt. 6(3)(d): intended to perform a preparatory task for an assessment relevant to an Annex III use case.
performs_profilingYesDoes the system perform profiling of natural persons? If true, Art. 6(3) exception is UNAVAILABLE regardless of other conditions (Art. 6(3), third subparagraph).
documented_assessmentNoHas the provider documented the Art. 6(3) exception assessment? Required by Art. 6(4) regardless of which condition applies.
narrow_procedural_taskNoArt. 6(3)(a): intended to perform a narrow procedural task (e.g. transform unstructured to structured data, classify documents, detect duplicates).
improves_prior_human_activityNoArt. 6(3)(b): intended to improve the result of a previously completed human activity (e.g. improve drafting style).
detects_patterns_without_replacing_human_reviewNoArt. 6(3)(c): intended to detect decision-making patterns or deviations, not replace/influence human assessment without proper review.
no_significant_risk_to_health_safety_fundamental_rightsNoHas the provider affirmatively assessed that the system does not pose a significant risk of harm to health, safety, or fundamental rights, including by not materially influencing decision-making outcomes? Required for Art. 6(3).

Output Schema

ParametersJSON Schema
NameRequiredDescription
reasoningYes
registration_dutyYes
relevant_articlesYes
exception_availableYes
conditions_evaluatedYes
documentation_reminderYes
profiling_blocks_exceptionYes

TDQS

B3.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description is transparent about being an assessment/walk-through tool, and does not contradict the read-only annotation. It clearly states that profiling disables the exception, which is a critical behavioral aspect. No conflicts with annotations are present.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is verbose and largely redundant with the schema, repeating all conditions and legal references. While it is structured, it could be condensed significantly without losing essential information, making it less concise than ideal.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description provides important legal context (Art. 6(3), 6(4), 49(2)) and states the documentation and registration requirements. However, it does not explain the tool's output structure or return values, leaving some contextual gaps for a complex assessment tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Since the schema provides 100% coverage with detailed per-parameter descriptions, the baseline is 3. The description adds minimal extra nuance, such as the condition for setting 'no_significant_risk', but largely repeats the schema, so it does not elevate the score.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function: walking through the Art. 6(3) exception for Annex III high-risk AI systems. It specifies the legal basis and the key conditions, making the purpose unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for assessing whether an Annex III system qualifies for the exception, and mentions documentation requirements. However, it lacks explicit guidance on when to choose this tool over siblings like euaiact_assess_system, and does not provide clear when-not-to-use scenarios.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

euaiact_assess_systemAssess an AI System Under the EU AI ActA
Read-onlyIdempotent

Assess one normalized EU AI Act system profile against the pinned sealed corpus. Returns separate legal-classification, impact, and implementation-readiness blocks with field-level facts, decisive missing facts, complete finding provenance, warnings, and recommended atomic follow-up calls. Sparse inputs fail closed. Impact never changes legal classification, and classification never implies implementation readiness.

ParametersJSON Schema
NameRequiredDescriptionDefault
gpaiNo
annex_iNo
identityNo
annex_iiiNo
free_textNo
geographyNo
role_factsNo
intended_useNo
transparencyNo
profile_versionYes
decision_contextNo
controls_and_evidenceNo
article_5_prohibitionsNo
biometric_and_practicesNo
public_authority_and_friaNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
corpusYes
impactYes
statusYes
findingsYes
warningsYes
facts_usedYes
assumptionsYes
missing_factsYes
server_versionYes
contract_versionYes
runtime_metadataNo
legal_classificationYes
recommended_next_callsYes
implementation_readinessYes

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations (readOnlyHint, idempotentHint, openWorldHint=false), the description adds meaningful behavior: 'Sparse inputs fail closed' and 'Impact never changes legal classification, and classification never implies implementation readiness.' It also describes output composition and provenance, matching the read-only assessment nature without contradicting annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three dense sentences, each earning its place: what the tool does, what it returns, and key behavioral caveats. Key points are front-loaded, with no filler or repetition of schema details.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a complex tool with 15 parameters and nested objects, the description covers the core purpose, output structure, fail-closed behavior, and logical independence of results. The presence of a rich input schema and output schema lowers the burden, though it doesn't mention how to construct the profile or the required profile_version.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% and the description does not explain individual parameters like profile_version, identity, gpai, or annex_iii. The phrase 'one normalized EU AI Act system profile' gives only a general sense of the top-level object; with 15 nested parameters this is insufficient compensation for missing schema descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb 'Assess' with a clear resource: 'one normalized EU AI Act system profile against the pinned sealed corpus.' It distinguishes from siblings by promising 'separate legal-classification, impact, and implementation-readiness blocks,' which differentiates it from euaiact_classify_system and other narrower assess_* tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The context is clear: use this when you have a normalized profile and want a broad assessment with classification, impact, and readiness in one call. However, it never names sibling alternatives or provides explicit when-not-to-use guidance, so it doesn't reach the highest standard.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

euaiact_calculate_penaltyCalculate EU AI Act PenaltiesA
Read-onlyIdempotent

Calculates the maximum possible fine for an EU AI Act violation based on violation type, global annual turnover, SME status and SMC (small mid-cap) status. Implements the Art. 99 penalty framework including the SME/startup lower-of rule (Art. 99(6), tiers 99(3)-(5)) and the narrower SMC rule (Art. 99(6a), tiers 99(4)-(5) only; no SMC cap on Art. 5 fines and none under Art. 101). Returns a comparative block so the agent can show the SME reduction to the user.

ParametersJSON Schema
NameRequiredDescriptionDefault
is_smcNoWhether the entity is a small mid-cap (SMC): Art. 99(6a) applies the lower-of rule ONLY to the Art. 99(4) and 99(5) tiers, not to Art. 99(3) prohibited-practice fines and not to Art. 101
is_smeNoWhether the entity is an SME or startup (eligible for lower fines under Art. 99(6), covering paragraphs 3, 4 and 5)
violation_typeYesType of AI Act violation: 'prohibited' (Art. 5), 'high_risk' (Art. 99(4) operator/notified-body/transparency obligations), 'gpai' (Art. 101 general-purpose AI model provider infringements), or 'false_info' (Art. 99(5) misleading notified bodies or national competent authorities; GPAI-provider false information falls under Art. 101)
annual_turnover_eurYesGlobal annual turnover in EUR (a non-negative, finite number)

Output Schema

ParametersJSON Schema
NameRequiredDescription
is_smcYes
is_smeYes
max_fineYes
comparativeNo
tier_detailsYes
violation_typeYes
annual_turnover_eurYes

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the readOnlyHint and idempotentHint annotations, the description adds meaningful behavioral detail: input to Art. 99 penalty framework, the SME lower-of rule, the narrower SMC rule, the exclusion of SMC caps for Art. 5 fines, and the comparative-return block. It also does not contradict the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with a complete one-sentence summary, followed by a dense but useful legal-behavior sentence and one return-value sentence. There is no filler, repetition, or unnecessary detail.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a legal-calculation tool with four parameters, the description covers the calculation inputs, the exact provisions implemented, the important exceptions, and the output purpose. It is sufficiently complete for an agent to select and invoke the tool correctly, especially given the rich schema and output-schema context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Input schema already covers 100% of parameters with solid descriptions and an enum, so the baseline is 3. The tool description adds value by explaining how these parameters combine under specific legal provisions, especially SME/SMC treatment and the returned comparative result, above the schema-level definitions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The first sentence states a specific action and resource: 'Calculates the maximum possible fine for an EU AI Act violation' and names the exact inputs. This clearly distinguishes the tool from sibling tools about classification, deadlines, obligations, and article lookup.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description makes the intended use-case obvious: penalty calculation for EU AI Act violations using turnover and SME/SMC status. It does not contain explicit 'when not to use' wording or name alternatives, but none of the sibling tools compete for the same job, so the context is clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

euaiact_check_deadlinesCheck EU AI Act Implementation DeadlinesA
Read-onlyIdempotent

Returns key implementation milestones and deadlines for the EU AI Act with days remaining, a next_milestone shortcut, and a summary of the Digital Omnibus. The milestone timeline always reflects the operative law. Set include_pending_omnibus: true to also receive the structured Digital Omnibus pack (each item source-status labelled; its status and enacted fields carry the current legislative state). Use only_upcoming: true to drop past milestones.

ParametersJSON Schema
NameRequiredDescriptionDefault
areaNoOptional filter by compliance area (e.g. 'GPAI', 'high-risk', 'prohibited')
only_upcomingNoIf true, return only milestones that have not yet come into effect.
include_pending_omnibusNoIf true, also return the structured Digital Omnibus pack with per-item source-status labels. OFF by default: the milestone timeline always reflects the operative law only. Check the pack's `status` and `enacted` fields for its current legislative state; non-enacted content must not be treated as current law.

Output Schema

ParametersJSON Schema
NameRequiredDescription
milestonesYes
next_milestoneYes
digital_omnibusYes
pending_omnibusYes

TDQS

A4.3/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly=true, idempotent=true, and openWorld=false, giving the agent safety confidence. The description goes further by disclosing versioning behavior ('always reflects the operative law'), the source-status labeling of the omnibus pack, and the crucial legal caution that 'non-enacted content must not be treated as current law.' This is exactly the kind of consequential behavior (legislative state accuracy) an agent needs disclosed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, zero filler, front-loaded with the core purpose. The second sentence is dense, but the density reflects the legal nuance being communicated. Code-formatted parameters and a well-placed 'important' caution after the parameter description make it scannable. The density is justified by the high-stakes legal context.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a compliance-relevant legal tool, the description covers versioning ('operative law'), pending-legislation safety, and parameter default behavior, even addressing how an output schema exists. Minor gaps like timezone for 'days remaining' or error behavior are not material enough to detract from what is otherwise a complete picture.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 100% schema coverage, baseline is 3. The description adds value by clarifying the default behavior ('OFF by default: the milestone timeline always reflects the operative law only') and connecting the `include_pending_omnibus` output to its `status` and `enacted` fields, which helps the agent reason about conditional response validation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with 'Returns key implementation milestones and deadlines for the EU AI Act with days remaining, a `next_milestone` shortcut, and a summary of the Digital Omnibus' — a specific verb+resource+scope statement that clearly distinguishes it from siblings like euaiact_get_obligations or euaiact_calculate_penalty. The mention of the `next_milestone` shortcut and the Digital Omnibus summary adds distinctive detail beyond a generic 'check deadlines' description.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use the tool — for operative-law-accurate milestone lookups — but never explicitly names alternatives or states when NOT to use it. The phrase 'The milestone timeline always reflects the operative law' gives clear context for trust boundaries, but there's no cross-reference to siblings like 'use get_obligations for obligations' or 'use answer_question for interpretive questions.'

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

euaiact_check_gpai_systemic_riskCheck GPAI Model Systemic Risk ClassificationA
Read-onlyIdempotent

Determine whether a general-purpose AI model qualifies as a GPAI model with systemic risk under Art. 51. This tool uses an adjudicated conservative boundary at or above 10^25 cumulative training FLOPs for the Art. 51(2) presumption. The Commission may also designate models with equivalent capabilities or impact under Art. 51(1)(b). Returns baseline GPAI obligations under Art. 53 plus systemic-risk-only obligations under Art. 55, and the Art. 52 notification duty.

ParametersJSON Schema
NameRequiredDescriptionDefault
model_nameNoOptional model name for traceability in the response.
training_flopsNoCumulative training compute in FLOPs (e.g. 2e25). The adjudicated product boundary triggers the Art. 51(2) presumption at or above 1e25. Omit if unknown; the tool then abstains instead of answering.
commission_designatedNoWhether the Commission has formally designated the model as GPAI with systemic risk under Art. 51(1)(b).

Output Schema

ParametersJSON Schema
NameRequiredDescription
model_nameYes
flops_thresholdYes
notification_dutyYes
relevant_articlesYes
crosses_flops_thresholdYes
systemic_risk_designationYes
is_gpai_with_systemic_riskYes
baseline_obligations_art_53Yes
systemic_risk_obligations_art_55Yes

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already provide readOnlyHint: true and idempotentHint: true. The description adds critical behavioral context: the specific 10^25 FLOPs threshold ('adjudicated conservative boundary'), that it 'returns' specific obligations (Art. 53, 55, 52 notification duty), and that it can abstain when training_flops is omitted. This meaningfully enriches the safety profile beyond what annotations declare.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, well-structured, front-loads the core purpose in sentence one, then details the threshold and return values. No filler. Loses a point for the potential 10^25 vs 1e25 notational discrepancy that could cost a reader a second to reconcile.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the output schema exists, the description need not list return types. For a legal determination tool with three optional params, it covers the test logic, edge case (abstain on unknown), and obligations scoping well. The slight ambiguity around what happens with conflicting inputs (e.g., high FLOPs but commission_designated: false) keeps it from a 5.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with rich parameter descriptions already documenting the default abstain behavior on training_flops and the commission_designated flag semantics. The description adds the overall threshold (10^25) that complements but doesn't conflict with the schema's 1e25 mention—actually introducing a slight inconsistency: description says 'at or above 10^25' while schema says 'at or above 1e25' (which are the same, but described with different significant figures, potentially confusing). Moderate value added beyond schema, which is already strong.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Determine') and names the exact resource (general-purpose AI model systemic risk classification under Art. 51). It clearly distinguishes from siblings like euaiact_assess_system (which assesses broader system risk) and names the specific Art. 52/53/55 obligations returned, making its scope unmistakable.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use this tool versus alternatives by specificity ('GPAI model with systemic risk under Art. 51') and names the sibling alternative implicitly through distinct scope (e.g., it's not about penalties or deadlines). It lacks explicit 'use instead of X' language but provides clear context for models versus systems, distinguishing it from euaiact_assess_system and euaiact_classify_system without naming them.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

euaiact_classify_systemClassify AI System Under EU AI ActA
Read-onlyIdempotent

Classify an AI system's risk level under the EU AI Act (Regulation 2024/1689). Accepts a free-text description, a use_case, and/or structured signals (domain, biometric flags, synthetic content, etc.). Signals take precedence over text matching for deterministic classification. Returns risk classification, applicable Annex III category, relevant articles, provider/deployer determination, matched signals, and follow-up questions the agent should relay. Note: Art. 6(3) exceptions require documented justification and cannot be auto-applied; use euaiact_assess_art6_3_exception.

ParametersJSON Schema
NameRequiredDescriptionDefault
roleNounknown
signalsNo
use_caseNoSpecific context where the system is deployed
descriptionNoFree-text description of the AI system and its functionalities

Output Schema

ParametersJSON Schema
NameRequiredDescription
basisYes
caveatYes
confidenceYes
lexbeam_urlNo
next_questionsYes
matched_signalsYes
missing_signalsYes
relevant_articlesYes
annex_iii_categoryYes
role_determinationYes
obligations_summaryYes
risk_classificationYes

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the readOnly and idempotent annotations, the description discloses deterministic signal precedence, the output contents, and a hard limitation: Art. 6(3) exceptions cannot be auto-applied. There is no contradiction with the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded, with each sentence serving a purpose: purpose, inputs, precedence, outputs, and exception handling. It avoids repeating annotation or schema details.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a complex legal classifier with many signal fields and an output schema, this description is remarkably complete. It covers input modes, deterministic behavior, key outputs, and a procedural limitation, while the existing output schema covers the detailed return structure.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description adds meaning by explaining the relationship and precedence between free-text/use_case inputs and structured signals. However, with only 50% schema coverage, it does not fully describe every parameter such as role, though the schema's detailed nested property descriptions partially compensate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource: 'Classify an AI system's risk level under the EU AI Act,' including the regulation number. It also enumerates concrete outputs and points to a sibling tool for Art. 6(3) exceptions, clearly differentiating its classification scope.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It states acceptable input combinations (free-text, use_case, structured signals) and gives a clear precedence rule for signals over text. It explicitly names a when-not-to-use case (Art. 6(3) exceptions) and directs the agent to euaiact_assess_art6_3_exception.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

euaiact_get_articleGet EU AI Act Article SummaryA
Read-onlyIdempotent

Retrieve an operational summary of a specific article of the EU AI Act (Regulation 2024/1689), plus a stable EUR-Lex URL to the canonical text. Supports a subset of the most-cited articles (Art. 3, 4, 5, 6, 9-17, 26, 27, 43, 47, 49, 50, 51, 53, 55, 72, 73, 99, 100, 113). For articles outside this subset the tool returns the EUR-Lex base URL. The summary is not statutory text: follow the URL and verify the official provision before quoting it.

ParametersJSON Schema
NameRequiredDescriptionDefault
articleYesArticle number (e.g. '5', '6', '50', 'Art. 99'). Case-insensitive; 'Art.' prefix optional.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
articleYes
availableYes
eurlex_urlYes

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the readOnlyHint/idempotentHint annotations, the description reveals critical behavioral details: only a subset of articles is supported, unsupported articles return the EUR-Lex base URL, and the summary is not statutory text requiring verification via the official link. This is exactly the kind of non-obvious context an agent needs to avoid hallucinating that an article was retrieved when it was not.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences of dense, non-redundant prose. The most important information (what it retrieves) comes first, followed by scope caveats and a legal disclaimer. Every sentence earns its place—no filler or repetition of the schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only lookup tool with an output schema, this description is complete: it covers the return value (summary + URL), scope limits (article subset), failure mode (base URL fallback), and a caution about non-statutory text. Given the presence of a well-defined output schema and annotations, no additional documentation of return values or safety profile is needed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with a well-specified format (case-insensitive, optional 'Art.' prefix). The description adds complementary value by explicitly enumerating the supported article ranges (Art. 3, 4, 5, 6, 9-17, etc.) and the fallback behavior, which directly informs parameter usage without duplicating the schema's format notes.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb+resource structure ('Retrieve an operational summary of a specific article of the EU AI Act (Regulation 2024/1689), plus a stable EUR-Lex URL') that precisely scopes the tool's function. It clearly distinguishes itself from siblings like euaiact_check_deadlines or euaiact_calculate_penalty by focusing on article retrieval, making the domain boundary obvious.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The context for when to use this tool (retrieving article summaries from a known subset) is clearly implied through the supported-articles list and fallback behavior. However, there is no explicit when-not-to-use guidance, exclusions, or named alternatives from the sibling tools, which would have elevated this dimension.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

euaiact_get_obligationsGet Obligations by Role and Risk LevelA
Read-onlyIdempotent

Returns specific compliance obligations for providers or deployers based on AI system risk level.

ParametersJSON Schema
NameRequiredDescriptionDefault
roleYesProvider or deployer role
risk_levelYesAI system risk level. Use 'gpai' for general-purpose AI model obligations (Art. 51-56).
filter_keywordNoOptional keyword filter for obligations
annex_iii_pointNoIf high_risk_source is annex_iii, the Annex III point number. Point 2 has special Art. 49/27 treatment.
high_risk_sourceNoFor high-risk systems, whether classification comes from Annex III/Art. 6(2), Annex I/Art. 6(1), or is unknownunknown
gpai_model_placed_on_market_before_2025_08_02NoFor GPAI providers, whether the model was placed on the market before 2 August 2025, triggering the Art. 111(3) transition to 2 August 2027.

Output Schema

ParametersJSON Schema
NameRequiredDescription
roleYes
penaltiesYes
risk_levelYes
lexbeam_urlNo
obligationsYes

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and idempotentHint=true. The description adds that it returns obligations but does not elaborate on any non-obvious behaviors or constraints beyond what annotations and schema provide.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence with no wasted words. It is front-loaded with the action and resource.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the output schema exists, parameter count is manageable, and annotations cover safety, the description is sufficient. It does not need to explain return values or additional context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema fully documents each parameter. The tool description adds no new parameter meaning beyond stating that obligations are returned based on role and risk level.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'returns' and resource 'compliance obligations', and specifies the key parameters (role and risk level). It distinguishes from siblings like euaiact_classify_system and euaiact_get_article.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage by naming the parameters but does not explicitly state when to use this tool vs alternatives, nor when not to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 8 tool updatesv1.5.0
    • Changedeuaiact_annex_iv_checklist2 fields changed
      • addedOutput schema / properties / guidance_note
        Added value: +{
        +  "type": "string"
        +}
      • changedOutput schema / required
        Previous value: -[
        -  "items",
        -  "total_items",
        -  "relevant_articles"
        -]New value: +[
        +  "items",
        +  "guidance_note",
        +  "total_items",
        +  "relevant_articles"
        +]
    • Changedeuaiact_answer_question1 field changed
      • addedOutput schema / properties / matched_question
        Added value: +{
        +  "type": "string"
        +}
    • Changedeuaiact_assess_art6_3_exception2 fields changed
      • changedInput schema / properties / annex_iii_number / description
        Previous value: -"Annex III category number (1-8). Provide if known — helps the response reference the right rules."New value: +"Annex III category number (1-8). Provide if known - helps the response reference the right rules."
      • changedInput schema / properties / performs_profiling / description
        Previous value: -"Does the system perform profiling of natural persons? If true, Art. 6(3) exception is UNAVAILABLE regardless of other conditions (Art. 6(3) second subparagraph)."New value: +"Does the system perform profiling of natural persons? If true, Art. 6(3) exception is UNAVAILABLE regardless of other conditions (Art. 6(3), third subparagraph)."
    • Addedeuaiact_assess_system
    • Changedeuaiact_calculate_penalty6 fields changed
      • changedInput schema / properties / annual_turnover_eur / description
        Previous value: -"Global annual turnover in EUR"New value: +"Global annual turnover in EUR (a non-negative, finite number)"
      • addedInput schema / properties / annual_turnover_eur / minimum
        Added value: +0
      • addedInput schema / properties / is_smc
        Added value: +{
        +  "default": false,
        +  "description": "Whether the entity is a small mid-cap (SMC): Art. 99(6a) applies the lower-of rule ONLY to the Art. 99(4) and 99(5) tiers, not to Art. 99(3) prohibited-practice fines and not to Art. 101",
        +  "type": "boolean"
        +}
      • changedInput schema / properties / is_sme / description
        Previous value: -"Whether the entity is an SME or startup (eligible for lower fines under Art. 99(6))"New value: +"Whether the entity is an SME or startup (eligible for lower fines under Art. 99(6), covering paragraphs 3, 4 and 5)"
      • addedOutput schema / properties / is_smc
        Added value: +{
        +  "type": "boolean"
        +}
      • changedOutput schema / required
        Previous value: -[
        -  "violation_type",
        -  "is_sme",
        -  "annual_turnover_eur",
        -  "max_fine",
        -  "tier_details"
        -]New value: +[
        +  "violation_type",
        +  "is_sme",
        +  "is_smc",
        +  "annual_turnover_eur",
        +  "max_fine",
        +  "tier_details"
        +]
    • Changedeuaiact_check_deadlines2 fields changed
      • changedInput schema / properties / include_pending_omnibus / description
        Previous value: -"If true, also return the structured Digital Omnibus pack (proposal + political agreement). OFF by default: the milestone timeline always reflects current OJ law only. The pending pack is NOT enacted law and is labelled with its source status."New value: +"If true, also return the structured Digital Omnibus pack with per-item source-status labels. OFF by default: the milestone timeline always reflects the operative law only. Check the pack's `status` and `enacted` fields for its current legislative state; non-enacted content must not be treated as current law."
      • changedOutput schema / properties / pending_omnibus / anyOf
        Previous value: -[
        -  {
        -    "additionalProperties": false,
        -    "properties": {
        -      "coverage_note": {
        -        "type": "string"
        -      },
        -      "deltas": {
        -        "items": {
        -          "additionalProperties": false,
        -          "properties": {
        -            "article": {
        -              "type": "string"
        -            },
        -            "change": {
        -              "type": "string"
        -            },
        -            "effective_date": {
        -              "type": "string"
        -            },
        -            "note": {
        -              "type": "string"
        -            },
        -            "source_id": {
        -              "type": "string"
        -            },
        -            "source_status": {
        -              "$ref": "#/properties/pending_omnibus/anyOf/0/properties/high_risk_timeline/properties/mechanism_source_status"
        -            }
        -          },
        -          "required": [
        -            "article",
        -            "change",
        -            "source_status",
        -            "source_id"
        -          ],
        -          "type": "object"
        -        },
        -        "type": "array"
        -      },
        -      "enacted": {
        -        "const": false,
        -        "type": "boolean"
        -      },
        -      "high_risk_timeline": {
        -        "additionalProperties": false,
        -        "properties": {
        -          "backstop": {
        -            "additionalProperties": false,
        -            "properties": {
        -              "annex_i_art_6_1": {
        -                "type": "string"
        -              },
        -              "annex_iii_art_6_2": {
        -                "type": "string"
        -              }
        -            },
        -            "required": [
        -              "annex_iii_art_6_2",
        -              "annex_i_art_6_1"
        -            ],
        -            "type": "object"
        -          },
        -          "backstop_source_status": {
        -            "$ref": "#/properties/pending_omnibus/anyOf/0/properties/high_risk_timeline/properties/mechanism_source_status"
        -          },
        -          "current_law": {
        -            "additionalProperties": false,
        -            "properties": {
        -              "annex_i_art_6_1": {
        -                "type": "string"
        -              },
        -              "annex_iii_art_6_2": {
        -                "type": "string"
        -              }
        -            },
        -            "required": [
        -              "annex_iii_art_6_2",
        -              "annex_i_art_6_1"
        -            ],
        -            "type": "object"
        -          },
        -          "mechanism": {
        -            "type": "string"
        -          },
        -          "mechanism_source_status": {
        -            "enum": [
        -              "enacted_oj",
        -              "commission_proposal",
        -              "political_agreement",
        -              "commission_guideline_draft",
        -              "commission_guideline_final",
        -              "commission_study",
        -              "code_under_assessment",
        -              "code_adequate_voluntary_tool"
        -            ],
        -            "type": "string"
        -          },
        -          "note": {
        -            "type": "string"
        -          }
        -        },
        -        "required": [
        -          "mechanism",
        -          "mechanism_source_status",
        -          "backstop",
        -          "backstop_source_status",
        -          "current_law",
        -          "note"
        -        ],
        -        "type": "object"
        -      },
        -      "name": {
        -        "type": "string"
        -      },
        -      "political_agreement": {
        -        "additionalProperties": false,
        -        "properties": {
        -          "date": {
        -            "type": "string"
        -          },
        -          "source_id": {
        -            "type": "string"
        -          }
        -        },
        -        "required": [
        -          "date",
        -          "source_id"
        -        ],
        -        "type": "object"
        -      },
        -      "proposal": {
        -        "additionalProperties": false,
        -        "properties": {
        -          "celex": {
        -            "type": "string"
        -          },
        -          "com": {
        -            "type": "string"
        -          },
        -          "date": {
        -            "type": "string"
        -          },
        -          "procedure": {
        -            "type": "string"
        -          },
        -          "source_id": {
        -            "type": "string"
        -          }
        -        },
        -        "required": [
        -          "com",
        -          "celex",
        -          "date",
        -          "procedure",
        -          "source_id"
        -        ],
        -        "type": "object"
        -      },
        -      "warning": {
        -        "type": "string"
        -      }
        -    },
        -    "required": [
        -      "name",
        -      "enacted",
        -      "proposal",
        -      "political_agreement",
        -      "high_risk_timeline",
        -      "deltas",
        -      "coverage_note",
        -      "warning"
        -    ],
        -    "type": "object"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "additionalProperties": false,
        +    "properties": {
        +      "coverage_note": {
        +        "type": "string"
        +      },
        +      "deltas": {
        +        "items": {
        +          "additionalProperties": false,
        +          "properties": {
        +            "article": {
        +              "type": "string"
        +            },
        +            "change": {
        +              "type": "string"
        +            },
        +            "effective_date": {
        +              "type": "string"
        +            },
        +            "note": {
        +              "type": "string"
        +            },
        +            "source_id": {
        +              "type": "string"
        +            },
        +            "source_status": {
        +              "$ref": "#/properties/pending_omnibus/anyOf/0/properties/status"
        +            }
        +          },
        +          "required": [
        +            "article",
        +            "change",
        +            "source_status",
        +            "source_id"
        +          ],
        +          "type": "object"
        +        },
        +        "type": "array"
        +      },
        +      "enacted": {
        +        "type": "boolean"
        +      },
        +      "enactment": {
        +        "additionalProperties": false,
        +        "properties": {
        +          "celex": {
        +            "type": [
        +              "string",
        +              "null"
        +            ]
        +          },
        +          "council_adoption": {
        +            "type": "string"
        +          },
        +          "entry_into_force": {
        +            "type": [
        +              "string",
        +              "null"
        +            ]
        +          },
        +          "ep_endorsement": {
        +            "type": "string"
        +          },
        +          "oj_publication_date": {
        +            "type": [
        +              "string",
        +              "null"
        +            ]
        +          },
        +          "status": {
        +            "$ref": "#/properties/pending_omnibus/anyOf/0/properties/status"
        +          }
        +        },
        +        "required": [
        +          "status",
        +          "ep_endorsement",
        +          "council_adoption",
        +          "celex",
        +          "oj_publication_date",
        +          "entry_into_force"
        +        ],
        +        "type": "object"
        +      },
        +      "high_risk_timeline": {
        +        "additionalProperties": false,
        +        "properties": {
        +          "application_dates": {
        +            "additionalProperties": false,
        +            "properties": {
        +              "annex_i_art_6_1": {
        +                "type": "string"
        +              },
        +              "annex_iii_art_6_2": {
        +                "type": "string"
        +              }
        +            },
        +            "required": [
        +              "annex_iii_art_6_2",
        +              "annex_i_art_6_1"
        +            ],
        +            "type": "object"
        +          },
        +          "application_dates_source_status": {
        +            "$ref": "#/properties/pending_omnibus/anyOf/0/properties/status"
        +          },
        +          "current_law": {
        +            "additionalProperties": false,
        +            "properties": {
        +              "annex_i_art_6_1": {
        +                "type": "string"
        +              },
        +              "annex_iii_art_6_2": {
        +                "type": "string"
        +              }
        +            },
        +            "required": [
        +              "annex_iii_art_6_2",
        +              "annex_i_art_6_1"
        +            ],
        +            "type": "object"
        +          },
        +          "note": {
        +            "type": "string"
        +          },
        +          "superseded_proposal_mechanism": {
        +            "type": "string"
        +          },
        +          "superseded_proposal_mechanism_source_status": {
        +            "$ref": "#/properties/pending_omnibus/anyOf/0/properties/status"
        +          }
        +        },
        +        "required": [
        +          "superseded_proposal_mechanism",
        +          "superseded_proposal_mechanism_source_status",
        +          "application_dates",
        +          "application_dates_source_status",
        +          "current_law",
        +          "note"
        +        ],
        +        "type": "object"
        +      },
        +      "name": {
        +        "type": "string"
        +      },
        +      "political_agreement": {
        +        "additionalProperties": false,
        +        "properties": {
        +          "date": {
        +            "type": "string"
        +          },
        +          "source_id": {
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "date",
        +          "source_id"
        +        ],
        +        "type": "object"
        +      },
        +      "proposal": {
        +        "additionalProperties": false,
        +        "properties": {
        +          "celex": {
        +            "type": "string"
        +          },
        +          "com": {
        +            "type": "string"
        +          },
        +          "date": {
        +            "type": "string"
        +          },
        +          "procedure": {
        +            "type": "string"
        +          },
        +          "source_id": {
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "com",
        +          "celex",
        +          "date",
        +          "procedure",
        +          "source_id"
        +        ],
        +        "type": "object"
        +      },
        +      "status": {
        +        "enum": [
        +          "enacted_oj",
        +          "official_consolidated_snapshot_non_authentic",
        +          "commission_proposal",
        +          "political_agreement",
        +          "adopted_pending_publication",
        +          "commission_guideline_draft",
        +          "commission_guideline_final",
        +          "commission_study",
        +          "code_under_assessment",
        +          "code_adequate_voluntary_tool"
        +        ],
        +        "type": "string"
        +      },
        +      "warning": {
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "name",
        +      "enacted",
        +      "status",
        +      "enactment",
        +      "proposal",
        +      "political_agreement",
        +      "high_risk_timeline",
        +      "deltas",
        +      "coverage_note",
        +      "warning"
        +    ],
        +    "type": "object"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
    • Changedeuaiact_check_gpai_systemic_risk5 fields changed
      • changedInput schema / properties / training_flops / description
        Previous value: -"Cumulative training compute in FLOPs (e.g. 2e25). Art. 51(2) presumes systemic risk when > 1e25."New value: +"Cumulative training compute in FLOPs (e.g. 2e25). The adjudicated product boundary triggers the Art. 51(2) presumption at or above 1e25. Omit if unknown; the tool then abstains instead of answering."
      • addedInput schema / properties / training_flops / minimum
        Added value: +0
      • changedOutput schema / properties / crosses_flops_threshold / type
        Previous value: -"boolean"New value: +[
        +  "boolean",
        +  "null"
        +]
      • changedOutput schema / properties / is_gpai_with_systemic_risk / type
        Previous value: -"boolean"New value: +[
        +  "boolean",
        +  "null"
        +]
      • changedOutput schema / properties / systemic_risk_designation / enum
        Previous value: -[
        -  "threshold_met",
        -  "commission_designated",
        -  "none"
        -]New value: +[
        +  "threshold_met",
        +  "commission_designated",
        +  "none",
        +  "undetermined"
        +]
    • Changedeuaiact_classify_system2 fields changed
      • addedInput schema / properties / signals / properties / social_scoring_unjustified_or_disproportionate
        Added value: +{
        +  "description": "Social scoring leads to detrimental or unfavourable treatment that is unjustified or disproportionate to the social behaviour or its gravity (Art. 5(1)(c)(ii))",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / signals / properties / social_scoring_unrelated_context
        Added value: +{
        +  "description": "Social scoring leads to detrimental or unfavourable treatment in social contexts unrelated to the contexts in which the data was originally generated or collected (Art. 5(1)(c)(i))",
        +  "type": "boolean"
        +}
  2. 5 tool updatesv1.3.0
    • Changedeuaiact_assess_art6_3_exception1 field changed
      • addedInput schema / properties / no_significant_risk_to_health_safety_fundamental_rights
        Added value: +{
        +  "description": "Has the provider affirmatively assessed that the system does not pose a significant risk of harm to health, safety, or fundamental rights, including by not materially influencing decision-making outcomes? Required for Art. 6(3).",
        +  "type": "boolean"
        +}
    • Changedeuaiact_calculate_penalty2 fields changed
      • changedInput schema / properties / violation_type / description
        Previous value: -"Type of AI Act violation: 'prohibited' (Art. 5), 'high_risk' (Annex III obligations), or 'false_info' (misleading regulators)"New value: +"Type of AI Act violation: 'prohibited' (Art. 5), 'high_risk' (Art. 99(4) operator/notified-body/transparency obligations), 'gpai' (Art. 101 general-purpose AI model provider infringements), or 'false_info' (Art. 99(5) misleading notified bodies or national competent authorities; GPAI-provider false information falls under Art. 101)"
      • changedInput schema / properties / violation_type / enum
        Previous value: -[
        -  "prohibited",
        -  "high_risk",
        -  "false_info"
        -]New value: +[
        +  "prohibited",
        +  "high_risk",
        +  "gpai",
        +  "false_info"
        +]
    • Changedeuaiact_check_deadlines3 fields changed
      • addedInput schema / properties / include_pending_omnibus
        Added value: +{
        +  "description": "If true, also return the structured Digital Omnibus pack (proposal + political agreement). OFF by default: the milestone timeline always reflects current OJ law only. The pending pack is NOT enacted law and is labelled with its source status.",
        +  "type": "boolean"
        +}
      • addedOutput schema / properties / pending_omnibus
        Added value: +{
        +  "anyOf": [
        +    {
        +      "additionalProperties": false,
        +      "properties": {
        +        "coverage_note": {
        +          "type": "string"
        +        },
        +        "deltas": {
        +          "items": {
        +            "additionalProperties": false,
        +            "properties": {
        +              "article": {
        +                "type": "string"
        +              },
        +              "change": {
        +                "type": "string"
        +              },
        +              "effective_date": {
        +                "type": "string"
        +              },
        +              "note": {
        +                "type": "string"
        +              },
        +              "source_id": {
        +                "type": "string"
        +              },
        +              "source_status": {
        +                "$ref": "#/properties/pending_omnibus/anyOf/0/properties/high_risk_timeline/properties/mechanism_source_status"
        +              }
        +            },
        +            "required": [
        +              "article",
        +              "change",
        +              "source_status",
        +              "source_id"
        +            ],
        +            "type": "object"
        +          },
        +          "type": "array"
        +        },
        +        "enacted": {
        +          "const": false,
        +          "type": "boolean"
        +        },
        +        "high_risk_timeline": {
        +          "additionalProperties": false,
        +          "properties": {
        +            "backstop": {
        +              "additionalProperties": false,
        +              "properties": {
        +                "annex_i_art_6_1": {
        +                  "type": "string"
        +                },
        +                "annex_iii_art_6_2": {
        +                  "type": "string"
        +                }
        +              },
        +              "required": [
        +                "annex_iii_art_6_2",
        +                "annex_i_art_6_1"
        +              ],
        +              "type": "object"
        +            },
        +            "backstop_source_status": {
        +              "$ref": "#/properties/pending_omnibus/anyOf/0/properties/high_risk_timeline/properties/mechanism_source_status"
        +            },
        +            "current_law": {
        +              "additionalProperties": false,
        +              "properties": {
        +                "annex_i_art_6_1": {
        +                  "type": "string"
        +                },
        +                "annex_iii_art_6_2": {
        +                  "type": "string"
        +                }
        +              },
        +              "required": [
        +                "annex_iii_art_6_2",
        +                "annex_i_art_6_1"
        +              ],
        +              "type": "object"
        +            },
        +            "mechanism": {
        +              "type": "string"
        +            },
        +            "mechanism_source_status": {
        +              "enum": [
        +                "enacted_oj",
        +                "commission_proposal",
        +                "political_agreement",
        +                "commission_guideline_draft",
        +                "commission_guideline_final",
        +                "commission_study",
        +                "code_under_assessment",
        +                "code_adequate_voluntary_tool"
        +              ],
        +              "type": "string"
        +            },
        +            "note": {
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "mechanism",
        +            "mechanism_source_status",
        +            "backstop",
        +            "backstop_source_status",
        +            "current_law",
        +            "note"
        +          ],
        +          "type": "object"
        +        },
        +        "name": {
        +          "type": "string"
        +        },
        +        "political_agreement": {
        +          "additionalProperties": false,
        +          "properties": {
        +            "date": {
        +              "type": "string"
        +            },
        +            "source_id": {
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "date",
        +            "source_id"
        +          ],
        +          "type": "object"
        +        },
        +        "proposal": {
        +          "additionalProperties": false,
        +          "properties": {
        +            "celex": {
        +              "type": "string"
        +            },
        +            "com": {
        +              "type": "string"
        +            },
        +            "date": {
        +              "type": "string"
        +            },
        +            "procedure": {
        +              "type": "string"
        +            },
        +            "source_id": {
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "com",
        +            "celex",
        +            "date",
        +            "procedure",
        +            "source_id"
        +          ],
        +          "type": "object"
        +        },
        +        "warning": {
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "name",
        +        "enacted",
        +        "proposal",
        +        "political_agreement",
        +        "high_risk_timeline",
        +        "deltas",
        +        "coverage_note",
        +        "warning"
        +      ],
        +      "type": "object"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ]
        +}
      • changedOutput schema / required
        Previous value: -[
        -  "milestones",
        -  "next_milestone",
        -  "digital_omnibus"
        -]New value: +[
        +  "milestones",
        +  "next_milestone",
        +  "digital_omnibus",
        +  "pending_omnibus"
        +]
    • Changedeuaiact_classify_system6 fields changed
      • addedInput schema / properties / signals / properties / biometric_publicly_accessible_space
        Added value: +{
        +  "description": "Real-time remote biometric identification takes place in publicly accessible spaces (Art. 5(1)(h))",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / signals / properties / biometric_remote_identification
        Added value: +{
        +  "description": "System performs remote biometric identification, not merely one-to-one biometric verification",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / signals / properties / biometric_sole_purpose_verification
        Added value: +{
        +  "description": "Biometric use is solely to verify that a specific natural person is the person they claim to be, which is excluded from Annex III(1)(a)",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / signals / properties / performs_social_scoring
        Added value: +{
        +  "description": "System evaluates or classifies natural persons or groups over time based on social behaviour or personal/personality characteristics, leading to detrimental treatment (Art. 5(1)(c))",
        +  "type": "boolean"
        +}
      • changedInput schema / properties / signals / properties / performs_social_scoring_by_public_authority / description
        Previous value: -"System is used by or on behalf of a public authority to score natural persons (Art. 5(1)(c))"New value: +"Legacy alias: public-authority social scoring. Art. 5(1)(c) is not limited to public authorities."
      • addedInput schema / properties / signals / properties / requires_third_party_conformity_assessment
        Added value: +{
        +  "description": "The product or AI system is required to undergo third-party conformity assessment under the applicable Annex I legislation",
        +  "type": "boolean"
        +}
    • Changedeuaiact_get_obligations3 fields changed
      • addedInput schema / properties / annex_iii_point
        Added value: +{
        +  "description": "If high_risk_source is annex_iii, the Annex III point number. Point 2 has special Art. 49/27 treatment.",
        +  "maximum": 8,
        +  "minimum": 1,
        +  "type": "integer"
        +}
      • addedInput schema / properties / gpai_model_placed_on_market_before_2025_08_02
        Added value: +{
        +  "description": "For GPAI providers, whether the model was placed on the market before 2 August 2025, triggering the Art. 111(3) transition to 2 August 2027.",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / high_risk_source
        Added value: +{
        +  "default": "unknown",
        +  "description": "For high-risk systems, whether classification comes from Annex III/Art. 6(2), Annex I/Art. 6(1), or is unknown",
        +  "enum": [
        +    "annex_iii",
        +    "annex_i",
        +    "unknown"
        +  ],
        +  "type": "string"
        +}
  3. 9 tool updatesv1.1.5
    • First observedeuaiact_annex_iv_checklist
    • First observedeuaiact_answer_question
    • First observedeuaiact_assess_art6_3_exception
    • First observedeuaiact_calculate_penalty
    • First observedeuaiact_check_deadlines
    • First observedeuaiact_check_gpai_systemic_risk
    • First observedeuaiact_classify_system
    • First observedeuaiact_get_article
    • First observedeuaiact_get_obligations

TDQS

A4/5.0
Disambiguation3/5

Most tools have distinct purposes (deadlines, penalties, articles, GPAI), but there is overlap between euaiact_classify_system, euaiact_assess_system, and euaiact_assess_art6_3_exception. classify_system and assess_system both determine risk level, with assess_system being more comprehensive, potentially causing an agent to pick the wrong one. The descriptions help clarify, but boundaries are not perfectly crisp.

Naming Consistency4/5

All tools share the 'euaiact_' prefix and most follow verb_noun style (classify_system, check_deadlines, get_obligations, answer_question, calculate_penalty, get_article, check_gpai_systemic_risk, assess_system). The sole exception is euaiact_annex_iv_checklist, which is a noun phrase rather than verb_noun, creating a minor but noticeable deviation from the otherwise consistent pattern.

Tool Count5/5

With 10 tools, the server is well-scoped for its purpose. Each tool addresses a distinct aspect of the EU AI Act (classification, deadlines, obligations, penalties, article lookup, GPAI, exceptions, annexes, and comprehensive assessment), and none feel redundant enough to be cut. The count sits comfortably in the ideal 3-15 range.

Completeness5/5

The tool set covers the major pillars of the EU AI Act: classification, timelines, obligations, penalties, specific risk checks (GPAI, Art. 6(3)), and a comprehensive system assessment. The inclusion of both a quick classification tool and a full assessment tool provides depth, and the FAQ and article retrieval cover edge cases. No obvious dead ends or missing lifecycle steps for a knowledge/reference server.

Maintenance

ActivityMaintained
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

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

Related MCP Connectors

Related MCP Servers

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/lexbeam-software/eu-ai-act-mcp'

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