Mcp Eu Sparql

io.github.matematicsolutionsPublished by GitHub account matematicsolutionsv1.2.1Updated Oct 25, 2026

EU legislation and CJEU case law via Publications Office SPARQL (Cellar) + GDPRhub DPA decisions.

Overview

AI-generated overview

Local MCP server that lets an assistant search EU legislation and CJEU case law via the Publications Office SPARQL endpoint, plus GDPR-related DPA decisions on,

What you can do
Look up EU legal acts and judgments by CELEX number or by date range, optionally narrowed by document type and language. Search CJEU judgments, orders and Advocate-General opinions by keyword, date or document type, or retrieve a judgment by ECLI identifier. Full-text search GDPRhub for national data-protection authority decisions and GDPR article commentary. Return structured citations with title, URL, CELEX, ECLI, date, type, snippet and license for each result.
When to use it
Useful when an assistant needs to answer questions about EU law, GDPR, or Court of Justice case law with traceable citations, or to find national data-protection decisions. Suited to legal research and compliance work rather than general web search.
Requirements
Runs locally over stdio via npx from the npm package, requiring Node.js 18 or later. Needs outbound network access to the EU Publications Office SPARQL endpoint and the GDPRhub MediaWiki API. No accounts, API keys, environment variables or headers are declared.
Before you install
Queries are sent live to third-party services (the EU Publications Office and GDPRhub), so search terms leave the machine. GDPRhub content is licensed CC BY-NC-SA 4.0, which restricts commercial reuse; the license is reported in each citation. Results are read-only lookups, but coverage and accuracy depend on the upstream sources.

Installation

In SourceWeft

  1. Open Mcp Eu Sparql in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README

mcp-eu-sparql

Installation (one command)

Published on npm + the MCP Registry (io.github.matematicsolutions/mcp-eu-sparql). Run without cloning:

bash
npx -y @matematicsolutions/mcp-eu-sparql

MCP client configuration (stdio):

json
{ "mcpServers": { "mcp-eu-sparql": { "command": "npx", "args": ["-y", "@matematicsolutions/mcp-eu-sparql"] } } }

(Building from source - below.)

[MCP] [License: MIT] [Node]

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.

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 the license field 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/sdk
  • Stdio transport (like mcp-saos)
  • Backend: HTTP POST to https://publications.europa.eu/webapi/rdf/sparql with format=application/sparql-results+json; GET to https://gdprhub.eu/api.php (MediaWiki API)

Build + run

bash
npm installnpm run buildnode dist/index.js   # starts the server on stdio

Wiring into Patron

In patron/backend/mcp-servers.json:

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

bash
npm run drift          # offline: INSTRUCTIONS consistent with TOOLS and ErrorCodenpm run test:offline   # offline: query builders + parsers on fixtures (no network)npm run smoke          # live: all 5 tools against Cellar + GDPRhub

License

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.

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.

Source: README.md at commit 1fa0c02

Tools

0
SourceWeft has not started this package in its sandbox yet, so its tools are not known.

Version history

2
  1. v1.2.1LatestOct 13, 2026
  2. v1.2.0Sep 16, 2026

Score

50% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts

    Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.

  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts