← Back to search

io.github.cyanheads/eur-lex-mcp-server

cyanheads streamable_http Scanned 23d ago

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

B
87.4 / 100

Versions

0.1.1latest
first seen Jun 5, 2026
PermissionsTool SafetyAuthAnnotationsCode QualityStabilitySpecVuln HistoryAuthorTransparencyCommunity

Tools 7

eurlex_search_documents
annotations: verified low

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. Corrigenda are excluded by default so primary acts fill the page (set include_corrigenda to include them). Returns a page of CELEX numbers, work URIs, type labels, dates, and titles, newest first, each flagged with is_consolidated and is_corrigendum. At least one filter is required.

input object
readOnlyHint true openWorldHint true
eurlex_get_document
annotations: verified low

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. Every body returned in one call is capped at 100,000 characters — paged and full windows page onward with offset/limit; use outline: true for a heading map and select to pull specific articles, chapters, recitals, or annexes, reading a selected section on its own from the offset and chars in selected_sections.

input object
readOnlyHint true openWorldHint true idempotentHint true
eurlex_get_cases
annotations: verified low

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.

input object
readOnlyHint true openWorldHint true
eurlex_browse_subjects
annotations: verified low

Search the EuroVoc thesaurus, resolving a keyword into concept URIs usable in the eurovoc_concept subject filter of eurlex_search_documents. Matches both preferred and alternative (non-preferred) labels, so a common synonym reaches the concept it stands for. Returns each concept URI, its preferred label in the requested language, code, broader (parent) label, and the alternative label that matched when one did, ordered alphabetically by preferred label.

input object output object concept_code string
readOnlyHint true openWorldHint true idempotentHint true
eurlex_lookup_celex
annotations: verified low

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.

date string input object output object work_uri string celex_number string
readOnlyHint true openWorldHint true idempotentHint true
eurlex_get_relations
annotations: verified low

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, national transposition measures, 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.

input object
readOnlyHint true openWorldHint true idempotentHint true
eurlex_query_sparql
annotations: verified low

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.

input object total number output object
readOnlyHint true openWorldHint true

Permissions 3

network medium
Server uses network capabilities via: fetch()
shell high
Server uses shell capabilities via: child_process, spawn(), spawnSync()
env_vars low
Server uses env_vars capabilities via: process.env

Scan Findings 24

info
Tool 'eurlex_search_documents' annotations are consistent annotation_checker · 80%
info
Tool 'eurlex_get_document' annotations are consistent annotation_checker · 80%
info
Tool 'eurlex_get_cases' annotations are consistent annotation_checker · 80%
info
Tool 'eurlex_browse_subjects' annotations are consistent annotation_checker · 80%
info
Tool 'eurlex_lookup_celex' annotations are consistent annotation_checker · 80%
info
Tool 'eurlex_get_relations' annotations are consistent annotation_checker · 80%
info
Tool 'eurlex_query_sparql' annotations are consistent annotation_checker · 80%
info
Sandbox failed to start for behavioral verification behavioral_verifier · 100%
info
package.json metadata manifest_parser · 100%
info
Tool: eurlex_search_documents manifest_parser · 75%
info
Tool: eurlex_get_document manifest_parser · 75%
info
Tool: eurlex_get_cases manifest_parser · 75%
info
Tool: eurlex_browse_subjects manifest_parser · 75%
info
Tool: eurlex_lookup_celex manifest_parser · 75%
info
Tool: eurlex_get_relations manifest_parser · 75%
info
Tool: eurlex_query_sparql manifest_parser · 75%
info
Required env vars (4) manifest_parser · 80%
info
Sandbox failed to start for output poisoning scan output_poisoning · 100%
medium
Permission: network access detected permission_analyzer · 70%
high
Permission: shell access detected permission_analyzer · 95%
low
Permission: env_vars access detected permission_analyzer · 90%
info
SBOM generated: 13 components sbom_generator · 100%
high
Hardcoded Password found in cyanheads-eur-lex-mcp-server-3582fcf/framework-skills/api-utils/references/security.md secret_scanner · 65%
medium
No build provenance detected (SLSA L0) slsa_assessor · 90%