mcp-eu-sparql
This server lets you search EU legal acts and CJEU case law via EUR-Lex/Cellar SPARQL, plus national GDPR enforcement decisions via GDPRhub.
search_by_celex: retrieve an EU act or judgment by CELEX number (e.g. GDPR, Schrems II), with localized titles and EUR-Lex URLs.
search_by_date_range: find EU legal acts published between dates, optionally filtered by document type (REG/DIR/DEC/RECO/OPIN), up to 50 results.
search_cjeu: search CJEU judgments, orders, and Advocate-General opinions with optional keyword, date range, document type, language, and limit.
search_cjeu_by_ecli: look up a CJEU judgment using an ECLI identifier (e.g. ECLI:EU:C:2020:559).
search_gdprhub: full-text search in GDPRhub for national data-protection authority decisions and GDPR article commentary, with CC BY-NC-SA license flagged.
Every tool returns structured citations (title, url, celex, ecli, publication_date, document_type, snippet, license) suitable for rendering in a citation panel.
Provides access to EU law and CJEU case law through the Publications Office SPARQL endpoint (EUR-Lex/Cellar), enabling searches by CELEX number, date range, document type, and ECLI identifier.
mcp-eu-sparql
Installation (one command)
Published on npm + the MCP Registry (io.github.matematicsolutions/mcp-eu-sparql). Run without cloning:
npx -y @matematicsolutions/mcp-eu-sparqlMCP client configuration (stdio):
{ "mcpServers": { "mcp-eu-sparql": { "command": "npx", "args": ["-y", "@matematicsolutions/mcp-eu-sparql"] } } }(Building from source - below.)
MCP server for EU law and CJEU case law via the Publications Office SPARQL endpoint (Cellar / EUR-Lex), plus national data-protection authority decisions via GDPRhub.
CJEU corpus in Cellar (SPARQL COUNT, 2026-07-08): 34,261 judgments (JUDG), 8,362 orders (ORDER), 14,480 Advocate-General opinions (OPIN_AG) - 57,103 judgments and opinions in total, each with CELEX + ECLI.
Related MCP server: cellar-wrapper
Tools
search_by_celex(celex, lang?)- act or judgment by CELEX number (e.g.32016R0679= GDPR,62018CJ0311= Schrems II).search_by_date_range(date_from, date_to, document_type?, lang?, limit?)acts within a date range, optionally narrowed to a type (REG / DIR / DEC / RECO / OPIN).
search_cjeu(query?, date_from?, date_to?, document_type?, lang?, limit?)- judgments (JUDG), orders (ORDER) and Advocate-General opinions (OPIN_AG) of the Court of Justice of the EU; optional keyword in the title (parties to the case, case number, keywords of the judgment).search_cjeu_by_ecli(ecli, lang?)- CJEU judgment by ECLI identifier (e.g.ECLI:EU:C:2020:559= Schrems II).search_gdprhub(query, limit?)- full-text search in GDPRhub (the noyb project wiki): decisions of national data-protection authorities across the EU + commentary on GDPR articles. Content license: CC BY-NC-SA 4.0 - flagged in thelicensefield of every citation.
Every response includes structuredContent.citations with the fields title, url,
celex?, ecli?, publication_date?, document_type?, snippet?, license? -
Patron reads this field and renders it in the UI panel as the "EU legal acts (EUR-Lex / CJEU)" section.
Stack
Node 18+
@modelcontextprotocol/sdkStdio transport (like
mcp-saos)Backend: HTTP POST to
https://publications.europa.eu/webapi/rdf/sparqlwithformat=application/sparql-results+json; GET tohttps://gdprhub.eu/api.php(MediaWiki API)
Build + run
npm install
npm run build
node dist/index.js # starts the server on stdioWiring into Patron
In patron/backend/mcp-servers.json:
[
{
"name": "saos",
"transport": "stdio",
"command": "node",
"args": ["C:/Users/<YOUR-USER>/mcp-saos/dist/index.js"]
},
{
"name": "eu-sparql",
"transport": "stdio",
"command": "node",
"args": ["C:/Users/<YOUR-USER>/mcp-eu-sparql/dist/index.js"]
}
]Tests
npm run drift # offline: INSTRUCTIONS consistent with TOOLS and ErrorCode
npm run test:offline # offline: query builders + parsers on fixtures (no network)
npm run smoke # live: all 5 tools against Cellar + GDPRhubLicense
MIT.
Part of MateMatic
This connector queries its source live. It is one of the Polish and EU source connectors bundled in PATRON and works with any MCP client.
Poland, one server for all sources: prawo-pl-mcp · each source on its own: mcp-saos · mcp-nsa · mcp-isap · mcp-krs · mcp-eureka · kio-orzeczenia-mcp
European Union: mcp-eu-sparql (this repo) (live) · mcp-eu-compliance (offline corpus)
A prepared corpus of Polish and EU law with a citation graph: Repertorium
mcp-saos, mcp-nsa, mcp-isap, mcp-krs and mcp-eu-sparql share one structuredContent.citations
contract: each tool returns an array of {title, url, snippet?, ...metadata}
that legal agents can render directly in their citation panel.
See matematicsolutions/.github for the full org profile.
Available Tools
3 toolssearch_by_celexARead-onlyIdempotent
Znajdz akt prawny UE po numerze CELEX. Numer CELEX jest unikalny i identyfikuje akt niezaleznie od jezyka. Przyklady: 32016R0679 (RODO), 31995L0046 (uchylony dyrektywa o ochronie danych), 62022CJ0252 (orzeczenie CJEU). Zwraca tytul w wybranym jezyku + EUR-Lex URL.
Inputs: celex (required), lang.
search_by_date_rangeARead-onlyIdempotent
Znajdz akty prawne UE z zakresu dat (po dacie dokumentu). Opcjonalnie filtruj po typie (REG=rozporzadzenie, DIR=dyrektywa, DEC=decyzja, RECO=zalecenie, OPIN=opinia). Maks. 50 wynikow na zapytanie. Uzyteczne do przegladu aktow z konkretnego okresu legislacyjnego.
Inputs: date_from (required), date_to (required), document_type, lang, +1 more.
search_cjeuARead-onlyIdempotent
Wyszukaj orzeczenia Trybunalu Sprawiedliwosci UE (CJEU) - wyroki (JUDG) i postanowienia (ORDER). Opcjonalnie zawez do zakresu dat. Zwraca CELEX (np. 62022CJ0252), date wydania, tytul (jezyk wg lang) i EUR-Lex URL.
Inputs: date_from, date_to, lang, limit.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 3 tools
Each tool targets a distinct search dimension: CELEX number, date range with type filter, and CJEU rulings. There is no overlap in functionality.
Two tools follow 'search_by_<criterion>' pattern, while the third uses 'search_cjeu', which is slightly inconsistent but still clear and predictable.
Three tools cover the core search needs for EU law (specific ID, date range, case law), though a keyword search tool could be added for completeness.
The set covers specific ID lookup, date-based filtering, and case law search, but lacks a general free-text keyword search, which is a notable gap for a legal research server.
Maintenance
Related MCP Connectors
EUR-Lex MCP — official EU law, article-level.
Eurlex MCP client: Access EU law & Official Journal. https://www.lexsocket.ai/
Temporal search and comparison for official Luxembourg and reviewed EU law, with provenance.
Auditable MCP server for PubMed, Europe PMC, ClinicalTrials.gov, and bioRxiv/medRxiv queries
Related MCP Servers
- AlicenseNot gradedqualityFmaintenanceMCP server covering French law via the PISTE platform: 62 tools wrapping the full Légifrance API (legislation, codes, Journal Officiel, jurisprudence…)4AGPL 3.0
- AlicenseNot gradedqualityDmaintenanceA community-maintained MCP server that simplifies access to EU legal and legislative data from the CELLAR service, supporting lookups, metadata retrieval, relation checks, and monitoring.2MIT

conformi-searchofficial
AlicenseAqualityAmaintenanceInstallable MCP server for EU legal research with verifiable CELEX citations from the EUR-Lex corpus (DE/EN/FR).21MIT- AlicenseAqualityCmaintenanceMCP server for Polish legislation (ISAP / Sejm) — search acts (Dz.U., M.P.) and fetch full texts with ELI identifiers and verifiable citations.3103 npm1MIT