# eur-lex-mcp-server MCP server

Search EU legislation, CJEU case law, and treaties; traverse CELLAR graph; browse EuroVoc concepts.

## Links
- Registry page: https://www.getdrio.com/mcp/io-github-cyanheads-eur-lex-mcp-server
- Repository: https://github.com/cyanheads/eur-lex-mcp-server

## Install
- Command: `npx -y @cyanheads/eur-lex-mcp-server`
- Endpoint: https://eur-lex.caseyjhand.com/mcp
- Auth: Not captured

## Setup notes
- Package: Npm @cyanheads/eur-lex-mcp-server v0.1.2
- Environment variable: CELLAR_SPARQL_ENDPOINT (default http://publications.europa.eu/webapi/rdf/sparql)
- Environment variable: EURLEX_CONTENT_BASE_URL (default https://eur-lex.europa.eu)
- Environment variable: SPARQL_QUERY_TIMEOUT_MS (default 55000)
- Environment variable: MAX_SPARQL_RESULTS (default 100)
- Environment variable: MCP_LOG_LEVEL (default info)
- Package: Npm @cyanheads/eur-lex-mcp-server v0.1.2
- Environment variable: MCP_HTTP_HOST (default 127.0.0.1)
- Environment variable: MCP_HTTP_PORT (default 3010)
- Environment variable: MCP_HTTP_ENDPOINT_PATH (default /mcp)
- Environment variable: MCP_PUBLIC_URL
- Environment variable: MCP_AUTH_MODE (default none)
- Environment variable: MCP_LOG_LEVEL (default info)
- Environment variable: CELLAR_SPARQL_ENDPOINT (default http://publications.europa.eu/webapi/rdf/sparql)
- Environment variable: EURLEX_CONTENT_BASE_URL (default https://eur-lex.europa.eu)
- Environment variable: SPARQL_QUERY_TIMEOUT_MS (default 55000)
- Environment variable: MAX_SPARQL_RESULTS (default 100)
- Remote endpoint: https://eur-lex.caseyjhand.com/mcp

## Tools
- eurlex_lookup_celex (Resolve EU Legal Citation) - Resolve an EU legal citation — a CELEX number or ELI URI — to its canonical CELLAR work, confirming it exists before you fetch or traverse it. Returns the work URI, confirmed CELEX number, document type, and date. Endpoint: https://eur-lex.caseyjhand.com/mcp
- eurlex_browse_subjects (Browse EuroVoc Subjects) - Search the EuroVoc thesaurus, resolving a keyword into concept URIs usable in the eurovoc_concept subject filter of eurlex_search_documents. Returns each concept URI, its preferred label in the requested language, code, and broader (parent) label, ordered alphabetically by label. Endpoint: https://eur-lex.caseyjhand.com/mcp
- eurlex_search_documents (Search EU Documents) - Search EU legislation, treaties, and preparatory acts across the CELLAR corpus by document type, date range, EuroVoc subject, author institution, and in-force status. Keyword matches English titles and CELEX strings only — there is no full-text body search. Returns a page of CELEX numbers, work URIs, type labels, dates, and titles, newest first, each flagged with is_consolidated. At least one filter is required. Endpoint: https://eur-lex.caseyjhand.com/mcp
- eurlex_get_cases (Search CJEU/GC Case Law) - Search CJEU and General Court case law — judgments, orders, and Advocate General opinions — by case number, court, case type, keyword, and date range. By default only these primary records are returned; derivative judicial information notices, case abstracts, summaries, and corrigenda are excluded so distinct cases fill the page (set include_derivative to include them). Keyword matches English case titles (which carry party names) and CELEX strings; there is no full-text body search. Returns each case with its court, date, and type, plus — parsed from the title where present — the parties, subject matter, and case reference. Endpoint: https://eur-lex.caseyjhand.com/mcp
- eurlex_get_document (Get EU Document) - Fetch the metadata and full text of an EU act by CELEX number, ELI URI, or work URI. Returns structured metadata (title, date, type, author institution, legal basis, EuroVoc subjects, in-force status) plus the act body as HTML, Markdown, or Formex4 XML, defaulting to English with automatic fallback. Large bodies are paged by default (offset/limit with has_more) or returned whole with content_mode "full"; use outline: true for a heading map and select to pull specific articles, chapters, recitals, or annexes. Endpoint: https://eur-lex.caseyjhand.com/mcp
- eurlex_get_relations (Get CELLAR Relationship Graph) - Traverse the one-hop CDM relationship graph of an EU act: what it amends or is amended by, what it repeals or is repealed by (explicit and implicit), its consolidated versions, its legal basis, and works that cite it. Returns direct relations only, paginated per relation type and direction. Requires a CELEX number or CELLAR work URI. Endpoint: https://eur-lex.caseyjhand.com/mcp
- eurlex_query_sparql (Raw CELLAR SPARQL Query) - Run a raw, read-only SPARQL SELECT against the CELLAR Virtuoso endpoint — an escape hatch for CDM ontology traversals the curated tools do not cover. Only SELECT is accepted; update forms and ASK/CONSTRUCT/DESCRIBE are rejected before execution, and results are capped at 100. The cdm:, skos:, and xsd: prefixes are auto-injected. Endpoint: https://eur-lex.caseyjhand.com/mcp

## Resources
Not captured

## Prompts
- eurlex_comparative_analysis - Frame a comparative legal analysis of a policy domain across EU and US law, driving eurlex_search_documents and eurlex_get_document for the EU side and courtlistener_search_opinions for the US counterpart. Arguments: domain, focus

## Metadata
- Owner: io.github.cyanheads
- Version: 0.1.2
- Runtime: Npm
- Transports: STDIO, HTTP
- License: Not captured
- Language: Not captured
- Stars: Not captured
- Updated: Jun 6, 2026
- Source: https://registry.modelcontextprotocol.io
