eu-reg-mcp
This server gives AI agents cited
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@eu-reg-mcpsearch for Binance on the MiCAR register"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
eu-reg-mcp
An MCP server that gives AI agents cited, review-gated grounding in EU regulation. Agents answering crypto or AI-compliance questions can check a live official register and cite pinpoint provisions instead of guessing.
Five tools:
Tool | What it does | Needs |
| Look up an entity by name or LEI in the ESMA interim MiCAR register: white papers (Titles II–IV), authorised CASPs, non-compliant entities | — |
| Current register totals and white paper format coverage | — |
| Register movement: new filings, changed entries, removals (withdrawal tracking) | — |
| Deterministic Annex I–III lint of a draft white paper: cited candidate findings |
|
| EU AI Act risk-tier classification with pinpoint Art. 5 / Annex III / GPAI citations |
|
Register data comes from the MiCAR Register Observatory, which snapshots the public ESMA register weekly (Art. 109 VO (EU) 2023/1114). The linter is micar-whitepaper-linter (36 rules mapped to Annex I–III); the classifier is eu-ai-act-classifier.
Install
Claude Code
claude mcp add eu-reg -- uvx --from git+https://github.com/sebastianfoerste/eu-reg-mcp eu-reg-mcpClaude Desktop (claude_desktop_config.json)
{
"mcpServers": {
"eu-reg": {
"command": "uvx",
"args": ["--from", "git+https://github.com/sebastianfoerste/eu-reg-mcp", "eu-reg-mcp"]
}
}
}The three register tools work with no configuration and no API key. The lint and classify tools need their optional extras:
uv pip install 'eu-reg-mcp[lint] @ git+https://github.com/sebastianfoerste/eu-reg-mcp'
uv pip install 'eu-reg-mcp[classify] @ git+https://github.com/sebastianfoerste/eu-reg-mcp'Note: the linter and classifier packages are source-available under their own licenses (portfolio display, reference, and evaluation use), not MIT — see their repositories before production use. Without the extras, both tools return an install hint instead of failing.
Related MCP server: attestix
Try it
Ask an agent with this server connected:
"Is
<entity>on the MiCAR register, and what format is its white paper?""What changed on the MiCAR register recently — any removals?"
"Classify this AI system under the EU AI Act" (paste a system profile; call with an empty string to get the schema).
Guardrails
Every response carries its framing: register results are facts from a public register with the snapshot date; lint and classification outputs are candidate flags from deterministic rules, pending human legal review. Extraction artifacts exist. Nothing this server returns is a legal assessment of any entity or legal advice — that is a design contract, not a disclaimer.
Development
git clone https://github.com/sebastianfoerste/eu-reg-mcp
cd eu-reg-mcp
make install && make testTests run offline against fixtures. The server itself is MIT-licensed.
Available Tools
5 toolsclassify_eu_ai_act_systemA
Classify an AI system's EU AI Act risk tier with pinpoint citations.
Pass a SystemProfile as JSON; pass an empty string to get the schema.
Requires the optional classify extra; degrades to an install hint.
| Name | Required | Description | Default |
|---|---|---|---|
| profile_json | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, but description reveals key behavior: the tool requires an optional extra and degrades to an install hint if missing. Also states it provides 'pinpoint citations'. Does not explain error handling for invalid input, but covers main behavioral aspects.
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 concise sentences, front-loaded with purpose, no redundant information. 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 the tool's single parameter and presence of output schema, the description covers necessary context: both usage modes and installation requirement. No missing critical details.
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 has one parameter with 0% descriptive coverage; description fully compensates by explaining that empty string retrieves schema and non-empty JSON classifies. Adds clear semantics beyond raw type definition.
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 the tool classifies an AI system's EU AI Act risk tier, with specific verb ('Classify') and resource ('EU AI Act risk tier'). It distinguishes from sibling tools which focus on MiCAR regulation.
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?
Describes when to use (passing a SystemProfile JSON) and an alternative mode (empty string for schema). Mentions dependency on optional extra. No explicit exclusion of when not to use, but context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lint_micar_whitepaperA
Lint a draft MiCAR white paper (JSON) against Annex I-III rules.
Returns cited candidate findings pending human review. Requires the
optional lint extra; degrades to an install hint when absent.
| Name | Required | Description | Default |
|---|---|---|---|
| whitepaper_json | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears full burden. It discloses that results are pending human review and that the tool degrades gracefully when the dependency is absent. However, it does not describe side effects, authorization needs, or output format specifics beyond mentioning 'cited candidate findings'.
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 concise sentences that deliver purpose, key constraints, and behavioral notes without excess. Front-loaded with the primary action.
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 there is an output schema (not shown), the description adequately hints at return type. It covers main functionality and a dependency caveat. However, it could mention error cases or what 'install hint' entails.
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 only parameter, 'whitepaper_json', has no schema description (0% coverage). The description compensates by clarifying it is the 'draft MiCAR white paper (JSON)', adding semantic meaning about the expected input format and content.
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 uses a specific verb 'lint' and identifies the resource as a 'draft MiCAR white paper (JSON)' against specific rules (Annex I-III). This clearly distinguishes it from sibling tools like classify_eu_ai_act_system or search_micar_register.
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 states the tool returns 'candidate findings pending human review' and mentions a required optional dependency (lint extra), giving context on when to use it. However, it does not explicitly state when not to use it or provide alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
micar_register_changesC
Recent register movement: new filings, changed entries, removals.
change_type: all | added | changed | removed.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| change_type | No | all |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of disclosing behavioral traits. It does not state that the operation is read-only or non-destructive, nor does it mention any rate limits or side effects. The brief description only implies a query-like operation.
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 very short (two sentences) and front-loads the purpose. It avoids unnecessary words, though it could benefit from slightly more detail without losing conciseness.
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 tool's simplicity (two optional parameters, output schema present), the description is minimal but somewhat adequate. It explains the core purpose and one parameter, but lacks details on the limit parameter and usage context. The presence of an output schema mitigates the need to describe return values, but overall completeness is mediocre.
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 schema has 0% description coverage, so the description must explain parameters. It describes change_type with allowed values 'all | added | changed | removed', adding meaning beyond the schema. However, the limit parameter is not explained at all, making the description only partially helpful.
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 the tool shows 'Recent register movement: new filings, changed entries, removals.' It indicates the tool retrieves recent changes, which is specific and differentiates from summary or search tools in the sibling list, though it lacks an explicit verb like 'list' or 'get'.
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?
No guidance on when to use this tool versus alternatives such as micar_register_summary or search_micar_register. The description does not mention context, prerequisites, or exclusions, leaving the agent to infer usage without direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
micar_register_summaryA
Current totals per MiCAR register and white paper format coverage.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It states the output is 'current totals' and 'coverage', which is adequate for a simple read-only tool. However, it does not disclose update frequency, data sources, or any potential limitations.
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 sentence with no fluff. It packs the essential information efficiently, making it easy to parse.
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 tool's simplicity (no parameters, single output) and the presence of an output schema, the description is largely complete. It lacks detail about what 'totals' and 'coverage' entail, but the output schema presumably fills those gaps.
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 schema coverage is 100% (empty). Thus, the description does not need to add parameter meaning. It implicitly communicates that no input is required, which is sufficient.
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 the tool provides 'current totals per MiCAR register and white paper format coverage'. It uses a specific resource (MiCAR register) and implies a verb (returns/provides). It distinguishes from sibling tools like 'search_micar_register' or 'lint_micar_whitepaper' which have different purposes.
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 offers no guidance on when to use this tool versus alternatives. It does not mention any prerequisites, exclusions, or context for selection. The agent must infer usage from the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_micar_registerA
Search the ESMA interim MiCAR register by entity name or LEI.
query: entity-name substring (case-insensitive) or an exact LEI. register_slug: all | other-wp | emt-wp | art-wp | casps | ncasp. member_state: optional two-letter code (DE, IE, MT, ...).
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | ||
| member_state | No | ||
| register_slug | No | all |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. While it describes what the tool does, it does not disclose behavioral traits such as whether the operation is read-only, authentication requirements, or rate limits. The return format is also not mentioned.
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 very concise, with a single clear sentence for the purpose and three short lines for parameter details. No extraneous information; 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?
The description lacks information about the output, despite an output schema existing. It also does not explain the register_slug codes (e.g., what 'other-wp' means). Given the tool's moderate complexity, more context would be beneficial.
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?
With 0% schema description coverage, the description compensates well by explaining that query is a case-insensitive substring or exact LEI, register_slug lists possible values, and member_state is a two-letter code. It adds meaning beyond the schema, though defaults are not mentioned.
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 the tool searches the ESMA interim MiCAR register by entity name or LEI. It distinguishes from sibling tools like micar_register_changes and micar_register_summary, which have different purposes.
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 implies usage for searching the register but does not explicitly state when to use this tool over alternatives. No when-not or exclusion criteria are provided, leaving the agent to infer from sibling tool names.
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.
5 tool updates
v0.1.0- First observed
classify_eu_ai_act_system - First observed
lint_micar_whitepaper - First observed
micar_register_changes - First observed
micar_register_summary - First observed
search_micar_register
TDQS
Each tool targets a distinct regulatory framework or operation: AI Act classification, MiCAR whitepaper linting, and three distinct register queries (changes, summary, search). Descriptions clearly differentiate purposes, leaving no ambiguity.
Tool names use snake_case but mix verb-first (classify_eu_ai_act_system, lint_micar_whitepaper) and noun-first (micar_register_changes, micar_register_summary, search_micar_register). While descriptive, the pattern is not uniform, causing moderate inconsistency.
With 5 tools covering two regulatory domains, the count is well-scoped. Each tool serves a clear purpose without redundancy or unnecessary expansion.
The tool set covers key functionalities for AI Act classification and MiCAR white paper linting and register querying. However, a dedicated tool for retrieving full register entry details beyond search is missing, and AI Act coverage lacks compliance or summarization tools.
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
MCP server for AI agents to plan, verify, and deploy Cloudflare-native apps.
- UnifAPIOAuthcom.unifapi
Hosted MCP server for live public-data APIs and Skills for AI agents.
MCP server for building and testing AI agents with multi-model experimentation and insights.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceMCP server for AI compliance auditing. Scores agent outputs for hallucination liability under the EU AI Act, issues verifiable compliance stamps, and tracks audit history by agent.MIT
- AlicenseNot gradedqualityBmaintenanceMCP server for compliance automation of AI agents, enabling EU AI Act compliance, verifiable credentials, and decentralized identity management with 47 tools across 9 modules.17Apache 2.0
- 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
Appeared in Searches
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/sebastianfoerste/eu-reg-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server