Search EU legislation, CJEU case law, and treaties; traverse the CELLAR relationship graph; resolve EuroVoc concepts via MCP. STDIO or Streamable HTTP.
Strong definition quality across 5 well-designed tools. All tools have clear verb-noun naming, comprehensive descriptions (190-450 chars, within the 194-char baseline), and detailed JSON Schema input parameters with type constraints and descriptions. Output schemas are documented in descriptions. Tool names are action-oriented and unambiguous. Parameters include proper validation constraints (patterns, enums, min/max bounds). Error handling guidance is embedded in descriptions. Minor gaps: output field documentation could be more explicit (the response shape is inferred from description text rather than formally documented), and no explicit error recovery guidance in tool definitions themselves.
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.
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.
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.
Output schemas not formally documented in JSON Schema format. Descriptions state what is returned ('each case with its court, date, and type') but do not provide an explicit JSON Schema object definition of the response structure. LLMs cannot introspect response fields for downstream tool chaining without seeing formal types.
No explicit error recovery guidance in tool definitions. Descriptions explain constraints and valid inputs but do not include actionable error messages or recovery paths. E.g., 'If date_from is invalid, call eurlex_lookup_celex first to confirm the act exists.' would guide agent error handling.
Inferred effective spec: 2026-07-28+.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 69 | 2026-07-28+ | v2 |
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.
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.
eurlex_get_document 'select' parameter uses nested object structure but documentation is sparse on field discovery. The parameter accepts { articles, chapters, recitals, annexes } but lacks example invocation or guidance on when to use it vs. outline mode. Ambiguity may cause agents to misuse this complex parameter.