io.github.matematicsolutions/mcp-eu-sparql

Official registry Other

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

What can you do with io.github.matematicsolutions/mcp-eu-sparql?

  • search_by_celex(celex, lang?) - act or judgment by CELEX number
  • search_by_date_range(date_from, date_to, document_type?, lang?, limit?)
  • search_cjeu(query?, date_from?, date_to?, document_type?, lang?, limit?) -
  • search_cjeu_by_ecli(ecli, lang?) - CJEU judgment by ECLI
  • search_gdprhub(query, limit?) - full-text search in

Install

Add this to your client's MCP configuration (Claude Desktop: claude_desktop_config.json; Cursor: .cursor/mcp.json; VS Code and others use the same "mcpServers" shape).

NPM package @matematicsolutions/mcp-eu-sparql
Claude Code
claude mcp add mcp-eu-sparql -- npx -y @matematicsolutions/mcp-eu-sparql@1.2.1
JSON configuration (Claude Desktop, Cursor, VS Code)
{
    "mcpServers": {
        "mcp-eu-sparql": {
            "command": "npx",
            "args": [
                "-y",
                "@matematicsolutions/mcp-eu-sparql@1.2.1"
            ]
        }
    }
}

Documentation

From the project's README on GitHub, refreshed weekly. Links open on GitHub.

Contents
  1. mcp-eu-sparql
  2. Installation (one command)
  3. Tools
  4. Stack
  5. Build + run
  6. Wiring into Patron
  7. Tests
  8. License
  9. Part of MateMatic

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-sparql

MCP 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.

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

npm install
npm run build
node dist/index.js   # starts the server on stdio

Wiring 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 + 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.

Frequently asked questions

What is io.github.matematicsolutions/mcp-eu-sparql?

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

How do I install io.github.matematicsolutions/mcp-eu-sparql?

It runs on your machine. In Claude Code: claude mcp add mcp-eu-sparql -- npx -y @matematicsolutions/mcp-eu-sparql@1.2.1. For other clients, paste the JSON configuration from this page into their MCP settings.

Does io.github.matematicsolutions/mcp-eu-sparql need an API key?

Its registry entry lists no required key or secret. Some features may still need an account with the service it connects to.

Is io.github.matematicsolutions/mcp-eu-sparql open source?

Yes. Its code is on GitHub under the MIT license.

Who maintains io.github.matematicsolutions/mcp-eu-sparql?

It is published by matematicsolutions. AI.tn lists it but does not maintain or endorse it.

From the official MCP Registry. Listing is not an endorsement: review a server's code and permissions before giving it access to your data.