Skip to main content
Glama

mcp-eu-compliance

MCP server exposing an offline corpus of EU law (EUR-Lex, full text) in local SQLite FTS5, with compliance tools. Snippets returned verbatim from the database (zero-LLM) - each with a CELEX id and EUR-Lex URL. Anti-hallucination by mechanism, not by trust in the model.

Scope (14 regulations, digital/data/cyber): GDPR, AI Act, DORA, NIS2, eIDAS 2.0, CRA, DSA, DMA, Data Act, DGA, LED, ePrivacy, Cybersecurity Act, CER.

Complementary to mcp-eu-sparql: that one discovers acts live (SPARQL Cellar), this one provides verbatim text + offline compliance analysis (no network at runtime).

Installation

npm install            # Node 22.5+ (node:sqlite built-in)
npm run fetch-corpus   # downloads regulations.db (~36 MB) from Ansvar (Apache-2.0)
npm run build
npm start

Configuration in the MCP client (e.g. mcp-servers.json):

{
  "name": "eu-compliance",
  "command": "node",
  "args": ["/path/to/mcp-eu-compliance/dist/index.js"]
}

Related MCP server: astra-knowledge-base-mcp

Tools

Tool

Description

eu_search(query, regulations?, limit?)

Full-text (FTS5) across articles, verbatim snippets.

eu_article(regulation, article_number)

Full article text + title + chapter + CELEX.

eu_compare(query, regulations?)

The same topic across several regulations at once (e.g. incident reporting DORA vs NIS2 vs CRA).

eu_check_applicability(sector, subsector?)

Which of the 14 regulations apply to a sector, with confidence level and basis article.

eu_evidence(regulation, article?)

Evidence artifacts (audit) - which document/log/certificate proves compliance.

Each tool returns structuredContent.citations (regulation, CELEX, EUR-Lex URL, snapshot).

Examples

  • "Compare incident reporting timelines across DORA, NIS2, and CRA" -> eu_compare

  • "What does GDPR Article 33 require?" -> eu_article

  • "Which EU regulations apply to a bank?" -> eu_check_applicability(sector=financial, subsector=bank)

  • "What audit evidence does DORA Article 17 require?" -> eu_evidence

Disclaimers

  • Snapshot, not the authentic source. The authentic version = Official Journal of the EU. The connector returns a point-in-time snapshot; verify currency in EUR-Lex (CELEX). Freshness -> mcp-eu-sparql (live).

  • Applicability rules are expert guidance, not a binding legal assessment. Sector-specific realities may require your own analysis.

  • Reference material, not legal advice.

License and attribution

Citation: MateMatic Solutions (2026), mcp-eu-compliance, https://github.com/matematicsolutions/mcp-eu-compliance, MIT.

Available Tools

5 tools
eu_articleA
Read-onlyIdempotent

Pelny tekst artykulu (verbatim) po identyfikatorze regulacji i numerze artykulu, wraz z tytulem i rozdzialem. Bledy: out_of_scope (regulacja poza 6 ICP), missing_arg (brak article_number), not_found (artykul/regulacja nie ma w snapshot).

Inputs: regulation (required), article_number (required).

eu_check_applicabilityA
Read-onlyIdempotent

Ktore z 6 regulacji UE dotycza danego sektora (i opcjonalnie podsektora). Zwraca reguly stosowalnosci z poziomem pewnosci i artykulem-podstawa. To wskazowka ekspercka, nie wiazaca ocena prawna. Bledy: missing_arg (brak sector), corpus_error.

Inputs: sector (required), subsector.

eu_compareA
Read-onlyIdempotent

Porownanie tego samego zagadnienia w kilku regulacjach naraz. Dla kazdej regulacji zwraca najlepiej pasujacy artykul (snippet verbatim). Np. obowiazek zgloszenia incydentu w DORA vs NIS2 vs CRA. Bledy: empty_query, corpus_error.

Inputs: query (required), regulations.

eu_evidenceA
Read-onlyIdempotent

Artefakty dowodowe (audit) wymagane przez regulacje - jaki dokument/log/certyfikat udowadnia zgodnosc, dla jakiego artykulu, z pytaniami audytora. Opcjonalnie zawezone do jednego artykulu. Bledy: out_of_scope, corpus_error.

Inputs: regulation (required), article.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A4.1/5.0

    Scored across 5 tools

    Disambiguation5/5

    Each tool has a clearly distinct purpose: eu_article retrieves a specific article by ID, eu_check_applicability determines which regulations apply to a sector, eu_compare compares topics across regulations, eu_evidence provides audit evidence, and eu_search performs full-text search. There is no ambiguity between them.

    Naming Consistency4/5

    All tools use the 'eu_' prefix, but the second part mixes verb and noun forms (e.g., eu_article vs eu_check_applicability). While readable and predictable, the pattern is not perfectly consistent, which lowers the score slightly.

    Tool Count5/5

    With 5 tools, the server is well-scoped for its purpose of querying EU compliance regulations. Each tool provides essential functionality without redundancy or unnecessary bloat.

    Completeness4/5

    The tool set covers key operations: retrieving articles, checking applicability, comparing regulations, obtaining evidence, and searching. Missing a tool to list all articles by regulation, but that can be approximated via search. Minor gap, but overall coverage is solid.

    Maintenance

    ActivityMaintained
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      A
      quality
      D
      maintenance
      Local-first RAG indexing and semantic search MCP server. Enables document retrieval and context-aware queries using local embedding models.
      3
      8 npm
      MIT
    • A
      license
      Not graded
      quality
      D
      maintenance
      MCP server that grounds AI answers in a local, maintained knowledge base and optionally fills gaps from the web, fully local with SQLite.
      AGPL 3.0