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.

Listed use, not sector

Annex III regulates uses, not sectors. Set signals.domain to an Annex III area only when the system itself performs a use listed there; a system that merely operates in that sector gets "other". Two calls to euaiact_classify_system, both for systems in the employment sector:

In the sector, not a listed use. Returns limited (Art. 50(1) transparency).

{
  "description": "An HR chatbot answers employees' questions about the holiday policy and where to find the travel expense form.",
  "signals": { "domain": "other", "interacts_with_natural_persons": true }
}

A listed use. Returns high-risk (Annex III(4)).

{
  "description": "Our ATS screens incoming CVs against the job spec and auto-rejects anyone missing the right keywords before a recruiter looks.",
  "signals": { "domain": "employment" }
}

The classifier trusts the signal: the same chatbot sent with "domain": "employment" comes back high-risk. Leave domain out when the description does not tell you which it is.

Related MCP server: ai-economy-infrastructure

What's new in 1.6.0

Version 1.6.0 corrects what a calling agent is told, and measures what it then does.

  • Listed uses, not sectors: signals.domain names an Annex III area only when the system itself performs a use Annex III lists for it. Until now the field read as the sector a system operates in, and an agent that filled it faithfully got a school timetable, a payroll check and a court budgeting tool back as high-risk. Measured with one agent model on 358 descriptions: 46 of 106 non-regulated systems were wrongly regulated under the old tool definition and none under the new one, while recognition of regulated systems held (181 and 179 of 252). See evals/front-door.

  • Signals first: the tool description tells the agent to derive the structured signals from the user's description itself. Free text alone is only keyword-matched.

  • A callable assessment: the euaiact_assess_system description states the fact shape and a useful minimum profile.

  • Releases with two human steps and no token: a GitHub release stages the package on npm over trusted publishing, and it becomes public only when a maintainer approves it with 2FA. A weekly job checks every lexbeam.com link the server publishes, and a version bump no longer moves a pinned hash.

Full release history: CHANGELOG.md.

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 structured signals that the calling agent derives from the user's description; free text alone is a keyword fallback. 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  # 124-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
node evals/front-door/score.mjs evals/front-door/agent-args-1.6.0.json # the front door, measured
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. HOW TO BUILD THE PROFILE: every fact is an object {fact_id, value, origin, verification, evidence_reference_ids}. For a fact the user told you, use origin "explicit_structured_input", verification "caller_asserted", evidence_reference_ids [] and any unique lowercase fact_id such as "identity.system_name". A useful minimum is identity.system_name, intended_use.intended_purpose (intended_use also needs reasonably_foreseeable_uses, which may be []), role_facts.roles, geography with jurisdictions, affected_person_groups and one of used_in_eu, placed_on_eu_market or output_used_in_eu, and decision_context.decision_consequence. Set annex_iii.domain and annex_iii.annex_iii_point only when the system itself performs a use Annex III lists for that area, never because it operates in that sector. Supply only facts you were given: a missing decisive fact comes back in missing_facts with the question to ask.

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/5.0
Behavior5/5

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

Adds substantial behavioral context beyond the readOnly/idempotent/openWorld annotations: 'Sparse inputs fail closed', 'Impact never changes legal classification', and 'classification never implies implementation readiness'. It also discloses how missing facts are returned ('missing_facts with the question to ask') and that output includes provenance, warnings, and recommended follow-up calls. 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 long but well-structured: purpose and outputs first, then behavioral traits, then a clearly marked profile-building section. Every sentence carries useful information, and the length is justified by the 0% schema coverage, though the minimum-profile list is dense and could be slightly tightened.

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, nested objects, and no schema descriptions, the description covers the essential workflow: what the tool returns, fail-closed behavior, minimum required facts, and how missing facts surface. An output schema exists, so return-value details need not be spelled out. Some advanced optional sections are unaddressed, but the 'supply only facts you were given' guidance mitigates that gap.

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 description coverage is 0%, so the description carries the full burden. It compensates well by defining the fact-object shape (fact_id, value, origin, verification, evidence_reference_ids), prescribing origin/verification values, listing a useful minimum profile, and giving guidance on annex_iii usage. However, several top-level sections (e.g., article_5_prohibitions, controls_and_evidence) receive no parameter-level explanation, so coverage is not exhaustive.

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?

States a specific verb and resource ('Assess one normalized EU AI Act system profile against the pinned sealed corpus') and enumerates the three output blocks (legal-classification, impact, implementation-readiness). The scope is clear, but it never explicitly names or contrasts sibling tools like euaiact_classify_system, so differentiation is only implicit.

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 'HOW TO BUILD THE PROFILE' section gives detailed input-construction guidance, which is useful for invoking this tool, but there is no explicit statement of when to choose this tool over siblings, nor any 'use classify_system instead when...' exclusion. Usage context is implied rather than stated.

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). HOW TO CALL: derive the structured signals from the user's description yourself and pass them together with description. The result is decided deterministically on the signals; free text alone is only matched against keywords and often returns insufficient_information. Set a signal only when the description supports it and leave it out otherwise; never guess, and never infer signals.domain from the sector a system operates in (read that field's description). A decisive signal you could not set comes back in missing_signals with the question to ask the user; ask, then call again. 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

A5/5.0
Behavior5/5

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

Annotations already indicate readOnlyHint and idempotentHint, and the description adds important behavioral context beyond those: classification is deterministic on signals, free text alone often returns insufficient_information, missing decisive signals are returned as missing_signals with questions to relay, and Art. 6(3) exceptions cannot be auto-applied. This gives the agent an accurate model of how the tool behaves.

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 dense but every sentence earns its place: purpose, calling convention, signal-setting rules, failure behavior, return contents, and an exception routing note. The critical HOW TO CALL guidance is front-loaded, and no filler or redundant restatement is present.

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 complex nested signals schema, the annotations, and the presence of an output schema, the description is complete enough for an agent to call the tool correctly. It covers the workflow, the main error case (insufficient_information), what to do about missing signals, and what the response contains, while the schema covers the individual parameter details.

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

Parameters5/5

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

With schema description coverage at 50%, the description compensates strongly. It explains how to construct the central signals object, warns against guessing, clarifies that signals.domain must not be inferred from sector, and directs the agent to read the field description. It also explains the role of description as insufficient on its own, which is not obvious from the schema alone.

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 states a specific verb and resource: classify an AI system's risk level under the EU AI Act (Regulation 2024/1689). It also clarifies the deterministic signal-based behavior and the exact outputs returned, making it clear what this tool does and distinguishing it from a generic assessment tool.

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?

The description gives explicit how-to-call instructions: derive structured signals from the user's description, pass them with description, set signals only when supported, never guess, and ask follow-up questions before calling again. It also names a specific sibling (euaiact_assess_art6_3_exception) for the Art. 6(3) case, which is a clear alternative-selection rule.

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

A4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint and idempotentHint, and the description does not contradict these. However, the description adds little behavioral detail beyond what annotations provide—it doesn't mention pagination, filtering nuances, or conditional parameter behaviors. The bar is lower with annotations, so a 3 is appropriate.

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, well-structured sentence that front-loads the core purpose. It contains no filler or redundant information, making it highly concise and easy to parse.

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?

With an output schema and rich input schema, the description covers the essential context. It could mention conditional parameter relationships (e.g., high_risk_source relevant only for high-risk), but the schema handles those details. Overall, the description is adequate for agent invocation.

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 input schema provides 100% coverage with descriptions for all 6 parameters, including complex ones like gpai_model_placed_on_market_before_2025_08_02. The tool description adds no extra parameter semantics beyond the schema, so baseline 3 is warranted.

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'), the resource ('specific compliance obligations'), and the scope ('for providers or deployers based on AI system risk level'). It distinguishes this tool from siblings like euaiact_classify_system and euaiact_get_article by focusing on obligations retrieval rather than classification or raw article text.

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 provides clear context on when to use the tool: when you need obligations for a given role and risk level. It does not explicitly mention alternatives or exclusions, but the input criteria are defined, giving the agent clear guidance on matching user intent to this tool.

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.

  1. 1 tool updatev1.6.0
    • Changedeuaiact_classify_system1 field changed
      • changedInput schema / properties / signals / properties / domain / description
        Previous value: -"Primary sector where the system operates"New value: +"The Annex III area whose LISTED use the system itself performs. Annex III regulates specific uses, never a sector: choose an area only when the system does one of the uses listed for it below, and choose `other` when it merely operates in that sector (a utility's billing chatbot, a school timetable, a payroll check, fleet maintenance for the police, appointment booking at an immigration office, a court-room scheduler, legal research for a law firm). Leave it out when the description does not let you tell. Listed uses: biometrics: for remote biometric identification, biometric categorisation according to sensitive or protected attributes, or emotion recognition of natural persons, in so far as their use is permitted under Union or national law. Sole-purpose biometric verification to confirm that a specific natural person is who they claim to be is excluded from Annex III(1)(a). | critical_infrastructure: as safety components in the management and operation of critical digital infrastructure, road traffic, or the supply of water, gas, heating, and electricity. | education: to determine access to or admission to educational and vocational training institutions, to evaluate learning outcomes, to assess the appropriate level of education, or to monitor and detect prohibited behaviour during tests. | employment: for recruitment, selection, job advertising targeting, application filtering, candidate evaluation, promotion and termination decisions, task allocation, and monitoring or evaluation of work performance and behaviour. | essential_services: for the specific essential-service use cases listed in Annex III(5): public-authority eligibility decisions for essential public assistance benefits and services, creditworthiness or credit scoring of natural persons (with the exception of AI systems used for the purpose of detecting financial fraud, Annex III(5)(b)), risk assessment and pricing for life and health insurance, and emergency-call classification, dispatch, prioritisation, or emergency healthcare triage. | law_enforcement: by or on behalf of law enforcement authorities for victim risk assessment, polygraphs and similar tools, evaluation of evidence reliability, assessing the risk of a natural person offending or re-offending, assessment of personality traits or past criminal behaviour of natural persons or groups, or profiling natural persons in criminal detection, investigation, or prosecution. | migration: by competent public authorities in migration, asylum, and border control as polygraphs or similar tools, for assessing risks posed by natural persons entering a Member State, for examining applications for asylum, visa, and residence permits, and for detecting, recognising, or identifying natural persons in border control. Verification of travel documents is excluded from Annex III(7)(d). | justice: to assist judicial authorities in researching and interpreting facts and law and in applying the law to concrete facts, or to be used to influence the outcome of elections or referendums or the voting behaviour of natural persons. Campaign administration or logistics tools are excluded where natural persons are not directly exposed to the output. | health, gpai, product_safety: not Annex III areas; use them for a health context, a general-purpose AI model, or a safety component of a product under Annex I."
  2. 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"
        +}
  3. 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"
        +}
  4. 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

Scored across 10 tools

Disambiguation4/5

Most tools target a distinct legal concept: classification, system assessment, penalties, deadlines, GPAI systemic risk, articles, and obligations. The only meaningful overlap is between euaiact_classify_system and euaiact_assess_system, since both can return legal classification, but their differing input modes and detailed descriptions keep them separable.

Naming Consistency4/5

All tools share the euaiact_ prefix and mostly follow a verb_noun snake_case pattern, such as answer_question, classify_system, calculate_penalty, and check_deadlines. The main deviation is euaiact_annex_iv_checklist, which is a noun phrase, though it remains clear and readable.

Tool Count5/5

Ten tools is well-scoped for an EU AI Act compliance server. Each tool covers a major workflow—FAQ lookup, classification, assessment, Annex IV, Art. 6(3), penalties, deadlines, GPAI, article retrieval, and obligations—without redundant or overwhelming coverage.

Completeness4/5

The server covers the core compliance lifecycle: risk classification, system assessment, exceptions, obligations, penalties, deadlines, and GPAI-specific checks. Minor gaps include article lookup only supporting a subset of articles and no generic search over all provisions, but most user-facing compliance workflows are supported.

Maintenance

ActivityActive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers