Lex-Ray
Server Details
Structured EU and UK legislation: public metadata, free sample articles, and entitled full text.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 3 tools
Each tool has a clearly distinct role: about_this_server is help/tier documentation, search_instruments resolves names/ids to bibliographic records, and get_legislation fetches a single act by id or name. The descriptions explicitly frame search as the resolver that feeds get, leaving no real overlap.
All names are snake_case with a consistent verb_noun style (get_legislation, search_instruments), so the set reads predictably. The only deviation is about_this_server, which is a noun phrase rather than an action, but that is conventional for a help tool.
Three tools is lean but well matched to a read-only lookup service: resolve a name, fetch an act, and explain access tiers. Access tiers are folded into one retrieval tool rather than spawning several, which keeps the surface small without feeling arbitrary.
The surface covers the core lifecycle of a legislation lookup — discovery, name resolution, and full retrieval with currency and pending-amendment metadata. Gaps are minor (no explicit list/browse or citation-building operation), and agents can work around them via search.
Available Tools
3 toolsabout_this_serverARead-onlyIdempotentInspect
What this MCP server is, what each access tier includes, and how to obtain access. Call this first if you are unsure what the server offers, or after any tool refuses you — the refusal names a tier, and this tool explains what that tier costs and what it adds. Requires no credentials.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the safe-read profile (readOnly, idempotent, non-destructive), so the description is not the sole carrier. It still adds genuine context beyond them: 'Requires no credentials' and the fact that other tools' refusals name an access tier, which tells the agent this call cannot fail on auth.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences, front-loaded with the tool's content and followed by the call condition. Every clause carries information; no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no input parameters and no output schema, an agent needs only to know when to call it and what it yields conceptually (tiers and their cost/benefit), both of which the description supplies.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there is nothing for the description to disambiguate; baseline for a parameterless tool is 4. No misleading parameter claims are made.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific purpose: explaining what the server is, what each access tier includes, and how to obtain access. This is unmistakably a meta/documentation tool, cleanly distinguished from the data-retrieval siblings get_legislation and search_instruments.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit trigger conditions: 'Call this first if you are unsure what the server offers, or after any tool refuses you.' It even explains how a refusal (naming a tier) maps back to this tool, leaving no inference required.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_legislationARead-onlyIdempotentInspect
Retrieve one act by CELEX ID, Lex-Ray ID, nickname, or uk-/eu- prefix. 'meta' is the bibliographic record (titles, dates, Official Journal reference, EuroVoc concepts, amendments and relationships to other acts) and needs no credentials. 'data' adds the parsed legal content — recitals, articles, annexes, definitions — and 'full' adds the rendered HTML. Every level carries a currency block: the day the answer was computed for, the commencement state on that day, and which version of the act is in force. Every answer also carries pending_amendments: proposals that propose to amend this act, each labelled in_flight / concluded / unknown, stamped with the reading date it was resolved against. These are PROPOSED, not enacted — never quote one as law.
| Name | Required | Description | Default |
|---|---|---|---|
| detail | No | Level of detail: 'meta' (titles, dates, OJ reference, classifications) | meta |
| celex_id | Yes | The CELEX ID, Lex-Ray ID, nickname, or jurisdiction-prefixed nickname (e.g., '32016R0679', 'FCA-TS-s140', 'gdpr', 'uk-gdpr') | |
| fetch_if_missing | No | Live fetch fallback: false only for this caller; unknown acts return structured not_found without an outbound EUR-Lex fetch |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the read-only/idempotent/non-destructive profile, and the description layers on genuinely new behavior: credential-free meta access, the per-level payload contents, the currency block (computation day, commencement state, in-force version), and the pending_amendments labelling with an explicit warning that these are proposals, not law. That is unusually rich disclosure for a read tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the retrieval verb and identifier forms, then organized level-by-level, with no filler sentences. It runs long for a three-parameter tool, but every sentence (particularly the pending_amendments caveat) carries operational weight.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description carries the return-value burden and does so thoroughly: per-level contents, the currency block, and pending_amendments semantics are all spelled out. Combined with annotations covering the safety profile, an agent has everything needed to call and interpret this tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, and the description does add meaning for the detail parameter by explaining what each level returns. However, it describes three levels (meta/data/full) while the schema enum permits only "meta", a mismatch that could lead an agent to request an unsupported value; fetch_if_missing is not addressed in prose.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ("Retrieve one act") plus the four acceptable identifier forms and the three detail levels, so the purpose is unmistakable. It does not name the sibling search_instruments, so the differentiation from a search tool is left implicit rather than explicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description conveys real context — meta needs no credentials, data/full add parsed content and HTML — which implies when each level is appropriate. But it never says when to reach for this tool versus search_instruments, nor does it state any exclusions or prerequisites for a failed lookup.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_instrumentsARead-onlyIdempotentInspect
Find EU legislation and UK legislation by keyword, acronym (GDPR, DORA, AIA), the common name practitioners use ('Market Abuse Regulation', 'MLRs', 'UK GDPR'), CELEX ID or Lex-Ray id. Matching is case-insensitive and an exact name ranks ahead of partial title matches. Returns an envelope whose 'matches' array carries the bibliographic record for each match — titles, id, jurisdiction (eu/uk), Official Journal reference, dates — plus a currency block giving the commencement state as at today, so a match that is expired or not yet applying says so rather than reading as current law. When several instruments share the exact name searched, 'ambiguous' is true and 'disambiguation' lists them: choose by jurisdiction and title rather than taking the first. When a curated common name settles it, 'preferred' names that act and 'alternatives' the others sharing the name. Use this to resolve a name to an id before calling the other tools. Requires no credentials.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of results (1-50, default 10) | |
| query | Yes | Search term - can be a keyword (e.g., 'artificial intelligence'), acronym (e.g., 'GDPR', 'AIA'), or CELEX ID (e.g., '32016R0679') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnly, idempotent, non-destructive), yet the description adds substantial non-obvious behavior: case-insensitive matching, exact-name ranking over partial title matches, envelope shape, a currency/commencement block that flags expired or not-yet-applying law, and the ambiguous/disambiguation/preferred/alternatives fields. It also declares "Requires no credentials," which no annotation supplies.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose and the resolve-id-before-other-tools instruction are front-loaded in the first and last sentences, and each middle sentence carries distinct return-shape information that is not stated elsewhere. The single dense paragraph is longer than strictly necessary and would scan better as bullets, costing it a point.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description carries the full burden of describing the return value and does so: the matches array contents, the currency block, and the ambiguity handling fields. Combined with the credential note and the pre-call routing advice, an agent has everything needed to invoke and interpret this tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3, but the description extends the query parameter's semantics beyond the schema by admitting practitioner common names ('Market Abuse Regulation', 'MLRs', 'UK GDPR') and Lex-Ray ids, which the schema does not mention. Limit is left entirely to the schema, which documents it adequately.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Find) and resource (EU and UK legislation) and enumerates the accepted query forms — keyword, acronym, common name, CELEX ID, Lex-Ray id — which an agent cannot infer from the name alone. It also implicitly separates itself from get_legislation by framing the task as resolving a name to an id, so the sibling boundary is legible.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly instructs "Use this to resolve a name to an id before calling the other tools," giving clear when-to-use context, and adds tie-breaking advice (choose by jurisdiction and title rather than taking the first). It stops short of naming get_legislation or stating a when-not condition, so it is strong but not fully routing-complete.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
3 tool updates
- First observed
about_this_server - First observed
get_legislation - First observed
search_instruments
Related MCP Connectors
Provenance-backed EU and UK legislation for AI agents, addressable to the individual provision.
Temporal search and comparison for official Luxembourg and reviewed EU law, with provenance.
EUR-Lex MCP — official EU law, article-level.
Every document the Publications Office of the European Union publishes — legislation, treaties…
Related MCP Servers
- AlicenseNot gradedqualityFmaintenanceProvides structured access to EU treaties, regulations, directives, and CJEU case law via 14 tools for searching, retrieving, and analyzing legislation and court decisions.Apache 2.0

Moonlit Legal Researchofficial
AlicenseNot gradedqualityCmaintenanceOfficial European law, expanding globally: 20M+ documents, 35+ jurisdictions, verifiable citations.MIT- AlicenseAqualityBmaintenanceProvides deterministic, read-only retrieval of authoritative EU legal materials, including legislation, case law, and EDPB/EDPS documents, with exact text, structural identifiers, and provenance.16MIT
- AlicenseAqualityBmaintenanceMCP server for EU law via the EUR-Lex / Cellar SPARQL endpoint — legislation (ELI/CELEX) and CJEU case-law (ECLI) with verifiable citations.366 npm1MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.