Skip to main content
Glama

eurlex_metadata

Read-onlyIdempotent

Fetches EU legal act metadata—dates, in-force status, authors, legal basis, EuroVoc descriptors, and directory codes—by CELEX ID, ELI, or Official Journal reference.

Instructions

Fetches metadata for an EU legal act: dates (document, entry into force, application, end of validity, transposition), in-force status, authors, legal basis (CELEX IDs of the acts it is based on), EuroVoc descriptors, and directory codes. date_entry_into_force and date_application are distinct (e.g. the GDPR entered into force on 2016-05-24 but applies from 2018-05-25); dates_effect lists every effect date with its type. Identify the act by celex_id (e.g. "32024R1689"), by eli (e.g. "reg/2016/679" or a full ELI URL), or by oj_ref (post-2023 Official Journal reference, e.g. "OJ:L_202401689") — provide exactly one.

Input Schema

NameRequiredDescriptionDefault
eliNoEuropean Legislation Identifier (ELI), short or full form, e.g. "reg/2016/679" or "http://data.europa.eu/eli/reg/2016/679/oj" (GDPR). Resolved to a CELEX ID via Cellar. Provide exactly one of celex_id, eli, or oj_ref.
oj_refNoOfficial Journal reference in the post-2023 scheme, e.g. "OJ:L_202401689" (AI Act). Resolved to a CELEX ID via Cellar. Provide exactly one of celex_id, eli, or oj_ref.
celex_idNoCELEX identifier, e.g. "32024R1689" (AI Act). Provide exactly one of celex_id, eli, or oj_ref.
languageNoLanguage of the title and EuroVoc labels, as a Cellar 3-letter code (any of the 24 official EU languages, e.g. DEU, ENG, FRA, POL, SPA)ENG

Output Schema

NameRequiredDescriptionDefault
titleYes
authorsYes
celex_idYes
in_forceYesIn-force status, or null when unknown
eurlex_urlYes
legal_basisYesCELEX IDs of the acts this act is based on
dates_effectYesAll entry-into-force and application dates Cellar holds for the act, ascending, each with its type and article note. Empty when Cellar holds none.
date_documentYesISO date, or null when absent
resource_typeYes
directory_codesYesDirectory-code entries as "{code}: {label}", or the bare code when unlabelled
date_applicationYesISO date from which the act (or its remaining provisions) applies, or null when the act has no separate application date or the type could not be determined
eurovoc_conceptsYes
date_transpositionYesISO date, or null when absent
date_end_of_validityYesISO date, or null when absent or the open-ended 9999-12-31 sentinel
date_entry_into_forceYesISO date the act entered into force, or null when absent. Distinct from date_application: e.g. the GDPR entered into force on 2016-05-24 but applies from 2018-05-25. See dates_effect for every date Cellar holds.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changedv2.4.4
    • removedInput schema / additionalProperties
      Removed value: -false
  2. Addedv2.4.2
  3. Removedv2.3.0
  4. First observedv2.2.0

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover readOnly, idempotent, non-destructive, and open-world, so the bar is lower. The description still adds real domain behavior: that eli/oj_ref are resolved to a CELEX ID, the distinction between date_entry_into_force and date_application (with the GDPR example), and that dates_effect lists effect dates by type. It does not say what happens on resolution failure or ambiguous input, but with annotations and an output schema this is solid.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the verb and resource, then the returned fields, then the identifier options. Three sentences, no filler; the GDPR parenthesis earns its place by disambiguating two easily confused date fields.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read-only metadata lookup, the description plus annotations, full parameter coverage, and an output schema leave nothing an agent needs in order to call it correctly; it even clarifies the entry-into-force vs application-date semantics that would otherwise be a common mistake.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents every parameter including the exactly-one-of constraint and the language enum with its default. The description's identifier examples and the GDPR date illustration add little beyond what is in the schema; baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (fetches) and resource (metadata for an EU legal act) and enumerates the exact fields returned: dates, in-force status, authors, legal basis, EuroVoc descriptors, directory codes. This clearly distinguishes it from siblings like eurlex_fetch (full text), eurlex_summary, or eurlex_search.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The field enumeration makes the use case clear (you want dates/status/authors, not text), and the identifier rules ('provide exactly one' of celex_id, eli, oj_ref) constrain invocation. However, it never explicitly names a sibling or says when NOT to use this tool versus eurlex_fetch or eurlex_consolidated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.