Pod

Available as Markdown and JSON. Pod is also available over MCP.

Reported issues for eur-lex-mcp-server

Pod holds 10 of 10 GitHub reports that passed its relevance review. This can include external user reports, maintainer-confirmed bugs, and concrete feature gaps. Treat them as evidence to inspect, not a count of distinct defects.

Back to eur-lex-mcp-server.

Most discussed

bug(cellar-sparql): a timed-out query is retried four times, so a call runs far past its timeout bound

Server version

0.11.0

mcp-ts-core version

^0.12.8

Runtime

Node via built dist/index.js

Runtime version

Node >=24

Transport

Streamable HTTP

Description

CellarSparqlService.execute bounds each HTTP attempt with AbortSignal.timeout(effectiveTimeoutMs) but wraps the attempt in withRetry, and a client-side abort is not classified as non-retryable. Only HTTP 400 and Virtuoso syntax errors carry retryable: false; a timeout falls through to the default…

Read the thread · 2026-09-10 · closed · 2 comments

bug(search): reject impossible and inverted date ranges

Server version

0.9.10

mcp-ts-core version

^0.12.3

Runtime

Bun

Runtime version

Bun 1.4.0

Transport

HTTP (Streamable HTTP)

OS

macOS 26.1 arm64

Description

The date_from/date_to filters on eurlex_search_documents and eurlex_get_cases validate only the YYYY-MM-DD string shape (z.string().regex(/^\d{4}-\d{2}-\d{2}$/), declared identically in both tools). Neither tool checks that the value is a real calendar date, and neither checks that `date_from…

Read the thread · 2026-08-31 · closed · 2 comments

bug(eurlex_get_relations): filter cross-act consolidations on the work-URI path

Server version

0.10.0

mcp-ts-core version

^0.12.3

Runtime

Bun

Runtime version

Bun 1.4.0

Transport

HTTP (Streamable HTTP)

OS

macOS 26.1 arm64

Description

eurlex_get_relations returns different consolidated_version results for the same CELLAR work depending on whether it is addressed by CELEX or work_uri. The CELEX path filters cross-act consolidations using the source act core, while the first-class work_uri path passes no source CELEX to the…

Read the thread · 2026-08-31 · closed · 2 comments

feat(eurlex_browse_subjects): match EuroVoc alternative labels, not prefLabel alone

Server version

0.9.8

mcp-ts-core version

0.10.14

Runtime

Bun

Runtime version

Bun 1.3.x

Transport

HTTP (Streamable HTTP)

Description

eurlex_browse_subjects matches the keyword against skos:prefLabel only (eurlex-browse-subjects.tool.ts, the ?concept skos:prefLabel ?label + CONTAINS(LCASE(STR(?label)), …) pattern). EuroVoc's non-preferred terms — the exact phrases people actually type — are carried as SKOS alternative labels and are never searched, so…

Read the thread · 2026-08-21 · closed · 2 comments

feat(eurlex_get_document): validate the CELEX shape before the CELLAR roundtrip

Use case

A CELEX identifier that can never be valid ("0", a stray word, a whitespace fragment) passed to eurlex_get_document, eurlex_get_relations, or the eurlex://document/{celexNumber} resources currently pays a live CELLAR SPARQL round-trip (measured 3.7 to 4.6 s) only to get a generic not_found whose recovery hint sends the caller to eurlex_lookup_celex. Rejecting the shape before the round-trip saves the latency and gives immediate, specific guidance.

Proposal…

Read the thread · 2026-08-21 · closed · 2 comments

feat(eurlex_get_document): eurovoc_subjects and legal_basis are opaque URIs with no resolution path

Use case

eurlex_get_document returns a document's subject classification and legal basis as bare URIs. Fetching the GDPR gives:

"eurovoc_subjects": [
  "http://eurovoc.europa.eu/2338", "http://eurovoc.europa.eu/2828",
  "http://eurovoc.europa.eu/453",  "http://eurovoc.europa.eu/5181", …
],
"legal_basis": ["http://publications.europa.eu/resource/cellar/fc797fa2-af0e-4cbd-8e74-5ed41139e4dc"]

Nine numeric EuroVoc URIs and one CELLAR UUID. Neither is interpretable, and the…

Read the thread · 2026-07-26 · closed · 2 comments

feat(eurlex_lookup_celex): return a human-readable resource type

Use case

eurlex_lookup_celex still returns the raw CDM authority URI in resource_type, while eurlex_search_documents, eurlex_get_cases, eurlex_get_document, and eurlex://document/{celexNumber} all resolve the same field to a human-readable label. The tool's own description says it returns "document type", and its text formatter prints the same raw URI as **Type:**, so both the structured and text-rendered output are equally opaque.

Related: #4, #35

Proposed behavior…

Read the thread · 2026-07-13 · closed · 2 comments

feat(eurlex_get_relations): expose national transposition measures

Use case

EU-law researchers need to trace a directive to the member-state measures that implement it without constructing CELLAR CDM queries themselves. eurlex_get_relations and eurlex://document/{celexNumber}/relations already advertise national transposition as a first-class relationship, but neither currently exposes it.

Proposed behavior

Add national_transposition as an incoming relation type over cdm:measure_national_implementing_implements_resource_legal: the related…

Read the thread · 2026-07-13 · closed · 2 comments

Most recent

bug(pagination): prove continuation and return exhausted pages

Server version

0.10.0

mcp-ts-core version

^0.12.3

Runtime

Bun

Runtime version

Bun 1.4.0

Transport

stdio

OS

Any (handler-level behavior)

Description

eurlex_search_documents, eurlex_get_cases, eurlex_browse_subjects, and eurlex_get_relations currently mark a page as truncated whenever its returned row count reaches limit. That is not proof of another row. They also use their initial empty-result errors for an offset past an otherwise valid result…

Read the thread · 2026-08-31 · closed · 1 comment

feat(document-relations): add actionable relation-traversal guidance

Use case

eurlex://document/{celexNumber}/relations is a summary resource with a per-type, per-direction cap of 25. When the summary omits additional relation rows, callers need a concrete route to the pageable eurlex_get_relations tool without treating the resource as a directly resumable page.

Related: #72

Proposed behavior

After #72 makes the shared relation traversal prove whether another row exists, add a continuation object only when this resource's summary has more valid…

Read the thread · 2026-08-22 · closed · 1 comment

The remaining reports are on the project's issue tracker.