mcpField
M
mcp-eu-sparql

mcp-eu-sparql

Local
github.com/matematicsolutionsLegal & Government1Updated 2w ago

About mcp-eu-sparql

An MCP server for searching EU legislation, Court of Justice case law, and national data-protection authority decisions. It queries the Publications Office SPARQL endpoint and GDPRhub live, with citation metadata in responses.

Key features

  1. 01Search acts by CELEX or date range
  2. 02Search CJEU cases by query or ECLI
  3. 03Search GDPRhub decisions and commentary
  4. 04Return structured legal citations

Use cases

  1. 01Find an EU act by its CELEX number
  2. 02Search CJEU opinions within a date range
  3. 03Look up national data-protection decisions
  4. 04Provide citations for legal research

MCP support

Exposes five search tools to MCP clients over stdio. Responses include structured citations with identifiers, dates, URLs, and snippets where available.

Configuration

Local server config is the same for every client. Copy it into your client’s MCP config file.

mcp.json · Universal config
{
"mcpServers": {
"matematicsolutions-mcp-eu-sparql": {
"command": "npx",
"args": [
"-y",
"@matematicsolutions/mcp-eu-sparql"
]
}
}
}
Run commandnpx -y @matematicsolutions/mcp-eu-sparql

Local servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.

Packages
npm@matematicsolutions/mcp-eu-sparql1.2.1

Tools

5

Saved tool list · updated 2w ago

ParameterTypeRequiredDescription
langenumNoISO 639-3 language code for the title (POL/ENG/FRA/DEU). Defaults to POL.POL | ENG | FRA | DEU
celexstringYesCELEX number, e.g. '32016R0679' (GDPR).

Details

From the project README

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

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.

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.