sovereign-ai-act-mcp
This server gives AI agents trustworthy, verbatim EU AI Act expertise through four callable MCP tools.
Classify an AI system – Describe any AI use-case in plain language and get its risk tier (prohibited / high-risk / limited / minimal), the exact Annex III category, and the binding Articles.
Look up any Article verbatim – Retrieve the official text of Articles 1–113, including amended versions.
Search the entire EU AI Act – Full-text keyword search across all Articles, Recitals, and Annexes.
Get compliance deadlines & fines – See the staggered application dates (updated for the Digital Omnibus) and Article 99 penalty tiers.
Multi-language support – All tools can respond in all 24 official EU languages.
No API key required – Works out of the box with Claude Desktop, Cursor, VS Code, Windsurf, Cline, and other MCP clients.
◆ Sovereign AI Act — MCP server
Give your AI agent a trustworthy EU AI Act expert.
This Model Context Protocol server exposes Leo — the deterministic classifier for Regulation (EU) 2024/1689 (the EU AI Act), as amended by Regulation (EU) 2026/1744 (the Digital Omnibus on AI, in force 27 July 2026) — as callable tools. Every answer is grounded verbatim in the official law. Leo never guesses.
When a user asks an AI "is my AI system high-risk under the EU AI Act?", the honest answer must cite the actual law — not a hallucination. This server lets your agent do exactly that.
🛠️ Tools
Tool | What it does |
| Plain-language AI description → risk tier (prohibited / high-risk / limited / minimal) + the exact Annex III category and binding Articles. |
| Verbatim text of any Article (1–113 of the 2024 text; amended articles are flagged on the site). |
| Full-text search across Articles, Recitals and Annexes. |
| The application dates in force under Regulation (EU) 2026/1744 (statuses computed at call time) and the Article 99 fine tiers. |
Related MCP server: ai-economy-infrastructure
🚀 Install (Claude Desktop)
Add to your claude_desktop_config.json:
{
"mcpServers": {
"sovereign-ai-act": {
"command": "npx",
"args": ["-y", "sovereign-ai-act-mcp"]
}
}
}Restart Claude, then ask: "Is an AI that screens job applicants high-risk under the EU AI Act?" — Claude calls Leo and answers with the exact Articles.
Works the same in Cursor, VS Code, Windsurf, Cline, and any MCP-capable client.
⚡ Try the API directly (no install, no key)
curl -X POST https://www.regulatoryai.eu/api/classify \
-H "content-type: application/json" \
-d '{"description":"AI that screens job applicants and ranks CVs"}'{
"ok": true,
"tier": "high_risk",
"classifications": [{
"tier": "high_risk",
"rule": "Employment, recruitment & worker management (Annex III.4)",
"annex": "III.4",
"articles": [6, 9, 10, 11, 13, 14, 15],
"severity": "HIGH — conformity assessment + risk management + ..."
}]
}Also: GET /api/article/{1-113} · GET /api/search?q=...
💎 Why trust it
Verbatim law. All 113 Articles, 180 Recitals and 13 Annexes loaded word-for-word from the EU Publications Office (CELEX 32024R1689).
Deterministic. A rule engine, not a guess — every verdict cites the Article that binds you.
EU-sovereign. Operated by Dominion Intelligence AB, hosted in the EU.
24 languages. Ask in your own language.
⚙️ Config
SOVEREIGN_API_BASE— override the API base URL (defaulthttps://www.regulatoryai.eu).No API key required.
Indicative classification grounded in the official text — not legal advice. Powered by Sovereign AI Act · © Dominion Intelligence AB
Available Tools
4 toolsclassify_ai_systemARead-onlyIdempotent
Classify an AI system under the EU AI Act (Regulation (EU) 2024/1689). Give a plain-language description of what the system does and it returns the risk tier (prohibited / high_risk / limited / minimal), the exact Annex III category where applicable, and the binding Articles — every reference grounded verbatim in the law. USE THIS when the user asks whether an AI system is high-risk or prohibited, what obligations apply to it, or which Articles bind a specific AI use-case. For looking up one known Article use lookup_article; for keyword search use search_eu_ai_act.
| Name | Required | Description | Default |
|---|---|---|---|
| description | Yes | Plain-language description of the AI system: what it does, who it affects, and the context of use. The more specific, the more precise the classification. | |
| language | No | Language for the answer, as an ISO 639-1 code — one of the EU AI Act's 24 official languages (e.g. 'en' English, 'de' German, 'fr' French, 'es' Spanish, 'sv' Swedish). Defaults to 'en'. | en |
| full | No | When true, include the verbatim cited Article/Annex text in the response (longer). When false (default), return the classification and references only. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint, idempotentHint, openWorldHint. Description adds behavioral context: it returns risk tier, category, Articles grounded verbatim in law, and uses EU AI Act regulation number. No contradictions, but no additional detail on auth or side effects beyond what annotations imply.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences plus usage guidance. Front-loaded with core purpose, efficiently covers usage, returns, and alternatives. Every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, description adequately explains return values (risk tier, category, Articles). It doesn't specify exact format but is sufficient for agent to understand output. All parameters are documented.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%. Description adds value: for 'description' it explains specificity improves precision and gives examples; for 'language' it lists language codes and explains they are EU official languages; for 'full' it clarifies inclusion of verbatim text.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states it classifies AI systems under the EU AI Act, returning risk tier, Annex III category, and binding Articles. It distinguishes from sibling tools (lookup_article, search_eu_ai_act) by specifying its unique purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says 'USE THIS when the user asks whether an AI system is high-risk or prohibited, what obligations apply, or which Articles bind a specific AI use-case.' It also names alternatives: 'For looking up one known Article use lookup_article; for keyword search use search_eu_ai_act.'
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_compliance_deadlinesARead-onlyIdempotent
Return the canonical EU AI Act application timeline (the staggered dates each obligation starts to apply, reflecting the Digital Omnibus adjustment) together with the penalty/fine tiers under Article 99. Takes no arguments. USE THIS when the user asks when the EU AI Act (or a specific obligation) applies, what the key compliance deadlines are, or how large the fines can be.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, indicating safe, idempotent reads. The description adds context about the output including the Digital Omnibus adjustment and fine tiers, enhancing transparency 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with zero waste: first sentence explains what it returns, second sentence provides usage guidance. Information is front-loaded and efficiently presented.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite no output schema, the description adequately explains the tool's output (timeline and fine tiers). For a parameterless, read-only tool, this is sufficient for the agent to understand what to expect.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has no parameters, and the description states 'Takes no arguments.' With 100% schema coverage and zero parameters, the baseline is 4; the description adds no further meaning needed beyond confirming no arguments.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states the tool returns the EU AI Act application timeline and penalty/fine tiers under Article 99, specifying it takes no arguments. This clearly distinguishes it from siblings like search_eu_ai_act and classify_ai_system.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit guidance: 'USE THIS when the user asks when the EU AI Act applies, what the key compliance deadlines are, or how large the fines can be.' This clearly tells the agent when to invoke this tool versus alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lookup_articleARead-onlyIdempotent
Return the verbatim text of one specific EU AI Act Article (1–113), exactly as published in the Official Journal of the EU. USE THIS when the user names or asks for a known Article number (e.g. 'show me Article 6', 'what does Article 5 say'). For keyword/topic search across the whole law use search_eu_ai_act; to classify a system use classify_ai_system.
| Name | Required | Description | Default |
|---|---|---|---|
| number | Yes | The Article number to retrieve, an integer from 1 to 113. Examples: 5 (prohibited practices), 6 (high-risk classification), 9 (risk management), 14 (human oversight), 50 (transparency), 99 (penalties). | |
| language | No | Language for the answer, as an ISO 639-1 code — one of the EU AI Act's 24 official languages (e.g. 'en' English, 'de' German, 'fr' French, 'es' Spanish, 'sv' Swedish). Defaults to 'en'. | en |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate read-only and idempotent behavior. The description adds that the text is verbatim and from the Official Journal, enhancing transparency 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three clear, front-loaded sentences with no redundant information. Every sentence adds value: core function, usage guidance, alternatives.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity of the tool and absence of output schema, the description fully explains what the tool returns and the constraints on input parameters. Sufficient for an AI agent to understand usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers 100% of parameters with descriptions and examples. The tool description does not add new parameter information beyond what the schema provides, so baseline score applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the tool returns verbatim text of a specific EU AI Act article, distinguishing it from sibling tools for keyword search or classification.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly specifies when to use this tool (user names an article number) and provides alternatives for other use cases, with clear references to sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_eu_ai_actARead-onlyIdempotent
Full-text keyword search across the entire EU AI Act corpus — all Articles (1–113), Recitals (1–180) and Annexes (I–XIII) — returning the provisions that match your terms, each grounded verbatim in the law. USE THIS when you want to find where a topic, term or obligation is addressed but do not know the Article number (e.g. 'where does the law cover human oversight?', 'find biometric categorisation', 'rules for GPAI'). To fetch one known Article use lookup_article; to assess a specific system's risk tier use classify_ai_system.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Keyword(s) or short phrase to search for across the EU AI Act. Use legal/topic terms rather than full questions for best matches. | |
| language | No | Language for the answer, as an ISO 639-1 code — one of the EU AI Act's 24 official languages (e.g. 'en' English, 'de' German, 'fr' French, 'es' Spanish, 'sv' Swedish). Defaults to 'en'. | en |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and openWorldHint=true, so the safety and idempotency are clear. The description adds context about returning verbatim provisions and covering all Articles, Recitals, and Annexes, which is useful but does not detail pagination or result limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single paragraph that efficiently covers purpose, when to use, parameter hints, and sibling differentiation. Every sentence serves a clear role, with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given it is a search tool with no output schema, the description sufficiently explains what is returned (provisions matching terms, grounded verbatim). It could mention that results include identifiers (Article/Recital/Annex numbers), but the level of detail is adequate for an AI agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%: both 'query' and 'language' have solid descriptions and examples. The description adds value with guidance to 'Use legal/topic terms rather than full questions for best matches', which goes beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it performs full-text keyword search across the entire EU AI Act corpus, returning provisions grounded verbatim. It distinguishes itself from siblings by specifying when to use lookup_article and classify_ai_system, naming them explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly advises to USE THIS when searching by topic without knowing the Article number, and provides contrasting use cases for siblings (e.g., 'to fetch one known Article use lookup_article; to assess risk tier use classify_ai_system').
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
4 tool updates
v1.3.0- Changed
classify_ai_system7 fields changed- added
Input schema / additionalPropertiesAdded value: +false - changed
Input schema / properties / description / descriptionPrevious value: -"Plain-language description of the AI system and what it does."New value: +"Plain-language description of the AI system: what it does, who it affects, and the context of use. The more specific, the more precise the classification." - added
Input schema / properties / description / examplesAdded value: +[ + "An AI that screens and ranks job applicants' CVs for a recruiter", + "A chatbot that answers customer questions on an e-commerce website", + "Real-time facial recognition used by police in public spaces", + "A credit-scoring model that decides who gets a consumer loan" +] - added
Input schema / properties / description / minLengthAdded value: +4 - changed
Input schema / properties / full / descriptionPrevious value: -"Include the verbatim cited Article/Annex text. Default false."New value: +"When true, include the verbatim cited Article/Annex text in the response (longer). When false (default), return the classification and references only." - changed
Input schema / properties / language / descriptionPrevious value: -"ISO 639-1 code (en, de, fr, es, it, sv, …). Default en."New value: +"Language for the answer, as an ISO 639-1 code — one of the EU AI Act's 24 official languages (e.g. 'en' English, 'de' German, 'fr' French, 'es' Spanish, 'sv' Swedish). Defaults to 'en'." - added
Input schema / properties / language / enumAdded value: +[ + "bg", + "cs", + "da", + "de", + "el", + "en", + "es", + "et", + "fi", + "fr", + "ga", + "hr", + "hu", + "it", + "lt", + "lv", + "mt", + "nl", + "pl", + "pt", + "ro", + "sk", + "sl", + "sv" +]
- Changed
get_compliance_deadlines1 field changed- added
Input schema / additionalPropertiesAdded value: +false
- Changed
lookup_article7 fields changed- added
Input schema / additionalPropertiesAdded value: +false - changed
Input schema / properties / language / descriptionPrevious value: -"ISO 639-1 code. Default en."New value: +"Language for the answer, as an ISO 639-1 code — one of the EU AI Act's 24 official languages (e.g. 'en' English, 'de' German, 'fr' French, 'es' Spanish, 'sv' Swedish). Defaults to 'en'." - added
Input schema / properties / language / enumAdded value: +[ + "bg", + "cs", + "da", + "de", + "el", + "en", + "es", + "et", + "fi", + "fr", + "ga", + "hr", + "hu", + "it", + "lt", + "lv", + "mt", + "nl", + "pl", + "pt", + "ro", + "sk", + "sl", + "sv" +] - changed
Input schema / properties / number / descriptionPrevious value: -"Article number, 1–113."New value: +"The Article number to retrieve, an integer from 1 to 113. Examples: 5 (prohibited practices), 6 (high-risk classification), 9 (risk management), 14 (human oversight), 50 (transparency), 99 (penalties)." - added
Input schema / properties / number / examplesAdded value: +[ + 5, + 6, + 14, + 50, + 99 +] - added
Input schema / properties / number / maximumAdded value: +113 - added
Input schema / properties / number / minimumAdded value: +1
- Changed
search_eu_ai_act6 fields changed- added
Input schema / additionalPropertiesAdded value: +false - changed
Input schema / properties / language / descriptionPrevious value: -"ISO 639-1 code. Default en."New value: +"Language for the answer, as an ISO 639-1 code — one of the EU AI Act's 24 official languages (e.g. 'en' English, 'de' German, 'fr' French, 'es' Spanish, 'sv' Swedish). Defaults to 'en'." - added
Input schema / properties / language / enumAdded value: +[ + "bg", + "cs", + "da", + "de", + "el", + "en", + "es", + "et", + "fi", + "fr", + "ga", + "hr", + "hu", + "it", + "lt", + "lv", + "mt", + "nl", + "pl", + "pt", + "ro", + "sk", + "sl", + "sv" +] - changed
Input schema / properties / query / descriptionPrevious value: -"Search terms, e.g. 'biometric', 'human oversight', 'GPAI'."New value: +"Keyword(s) or short phrase to search for across the EU AI Act. Use legal/topic terms rather than full questions for best matches." - added
Input schema / properties / query / examplesAdded value: +[ + "human oversight", + "biometric categorisation", + "general-purpose AI systemic risk", + "conformity assessment", + "fundamental rights impact assessment" +] - added
Input schema / properties / query / minLengthAdded value: +2
4 tool updates
v0.1.0- First observed
classify_ai_system - First observed
get_compliance_deadlines - First observed
lookup_article - First observed
search_eu_ai_act
TDQS
Each tool has a distinct purpose: classification of AI systems, compliance deadlines, specific article lookup, and full-text search. No overlap or ambiguity.
All tool names follow a consistent verb_noun pattern in snake_case (e.g., classify_ai_system, get_compliance_deadlines). No deviations.
Four tools cover the core needs for EU AI Act queries: classification, deadlines, article lookup, and search. The scope is well-balanced without excess.
The tools cover classification, deadlines, article retrieval, and search. Minor gap: no tool for summarizing or comparing obligations, but search and lookup can compensate.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
AI governance MCP server for EU AI Act compliance and jurisdiction verification
EU compliance corpus across 8 frameworks (NIS2, DORA, AI Act, ISO 27001 + more) via MCP.
EU AI Act uyum MCP sunucusu — risk sınıflandırma (madde atıflı), rol bazlı yükümlülük listesi…
Official Microsoft Learn MCP Server – real-time, trusted docs & code samples for AI and LLMs.
Related MCP Servers
- AlicenseAqualityBmaintenanceEU AI Act Compliance - MCP server providing AI-powered tools and automation by MEOK AI Labs11171MIT
- AlicenseAqualityDmaintenanceAn MCP server for AI economy infrastructure with built-in EU AI Act compliance, supporting risk management, transparency, and bias detection.10MIT
- AlicenseAqualityDmaintenanceMCP server for EU AI Act compliance, providing risk classification of AI features and Article 50 transparency notices.21Apache 2.0
- AlicenseAqualityAmaintenanceAn MCP server providing structured intelligence about the EU AI Act, including risk classification, deadline tracking, obligations, penalties, and article lookups.103733MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/saidbazyar/sovereign-ai-act-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server