# Lexiara (remote · lexiara.org)

Provenance-backed EU and UK legislation for AI agents, addressable to the individual provision.

- Trust score: 77/100 (medium)
- Change this week: +3
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-10-04

## Components

- remote · `lexiara.org`: 77/100 (this document), [markdown](https://verifymcp.io/servers/org-lexiara-lexiara/lexiara.md), [page](https://verifymcp.io/servers/org-lexiara-lexiara/lexiara)

## Channel facts

- Endpoint: `https://lexiara.org/mcp`
- Transports: `streamable-http`
- Auth: `none`
- Version: `1.0.0`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-10-04.

- **Endpoint Security**: 63/100
  - The endpoint's TLS certificate is valid, in date, and uses a strong key.
  - No authorisation is required to call this server. Every tool declares its destructiveHint and none is destructive, so open access doesn't expose one.
  - HTTPS check failed: the endpoint is reachable over plaintext HTTP.
  - HSTS check failed: the Strict-Transport-Security header is absent.
  - DNSSEC check failed: this domain isn't protected by DNSSEC.
- **Transport & Reachability**: 100/100
  - Verified streamable-http transport via a live MCP handshake.
- **Schema Quality & AI Usability**: 68/100
  - AI-judged instruction clarity (excellent).
  - Context-footprint check failed: tool/resource definitions use about 6774 tokens (~218/item across 31 items; 31 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 93/100
  - Stability observed for 28 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 100% of tool parameters carry a description.
  - Structured output schemas are declared (100% of tools); any adoption earns full credit.
- **Tool Safety**: 100/100
  - No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.
  - We read all 31 captured tool definition(s), and no name or description among them implies an irreversible operation.
  - An AI judge read all 32 captured unit(s) of tool text and found none that tries to manipulate the model reading it.
- **Capabilities**: 60/100
  - Spec-recency check failed: implements MCP spec 2025-06-18; the latest is 2026-07-28.

## Install

### How do I install the Lexiara MCP server?

Lexiara is a hosted endpoint at https://lexiara.org/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

### Claude

```bash
claude mcp add --transport http org-lexiara-lexiara 'https://lexiara.org/mcp'
```

### Cursor

```json
{
  "mcpServers": {
    "org-lexiara-lexiara": {
      "url": "https://lexiara.org/mcp"
    }
  }
}
```

### VS Code

```json
{
  "servers": {
    "org-lexiara-lexiara": {
      "type": "http",
      "url": "https://lexiara.org/mcp"
    }
  }
}
```

### Codex

```toml
[mcp_servers.org-lexiara-lexiara]
url = "https://lexiara.org/mcp"
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "org-lexiara-lexiara": {
      "type": "remote",
      "url": "https://lexiara.org/mcp",
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add org-lexiara-lexiara --url 'https://lexiara.org/mcp' --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  org-lexiara-lexiara:
    url: "https://lexiara.org/mcp"
```

### Netclaw

```json
{
  "McpServers": {
    "org-lexiara-lexiara": {
      "Transport": "http",
      "Url": "https://lexiara.org/mcp"
    }
  }
}
```

### Vellum

```bash
assistant mcp add org-lexiara-lexiara -t streamable-http -u 'https://lexiara.org/mcp'
```

### Other

```json
{
  "mcpServers": {
    "org-lexiara-lexiara": {
      "type": "http",
      "url": "https://lexiara.org/mcp"
    }
  }
}
```

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-10-04 (score 77, +1)

- [cosmetic] “explore_role_requirements” added an optional parameter “term”
- [cosmetic] “explore_role_requirements” added an optional parameter “work”

### 2026-10-03 (score 76, 0)

- [security] Tool “find_national_implementations” rewrote its description, which is the text the model reads
- [functional regression] Schema quality: 5650 → 6722
- [functional] New tool “concept_family”
- [functional] New tool “explore_role_requirements”
- [functional] New tool “get_saved_role_view”
- [functional] New tool “list_concepts”
- [functional] New tool “list_saved_role_views”
- [functional] New tool “list_work_versions”
- [cosmetic] “lookup_provision” reworded the description of “expression”

### 2026-10-02 (score 76, +1)

No change was recorded against any check on this day. Stability & Change Management went from 83 to 87. That category is still filling its 30-day observation window: 25 days of observed history at the previous scan, 26 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-09-29 (score 75, +1)

No change was recorded against any check on this day. Stability & Change Management went from 73 to 77. That category is still filling its 30-day observation window: 22 days of observed history at the previous scan, 23 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-09-28 (score 74, 0)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-09-27 (score 74, +1)

No change was recorded against any check on this day. Stability & Change Management went from 67 to 70. That category is still filling its 30-day observation window: 20 days of observed history at the previous scan, 21 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-09-26 (score 73, +55)

- [security regression] HTTPS: unverified → fail
- [security improvement] Authorization: unverified → partial
- [security improvement] Injection markers: unverified → pass
- [security improvement] Transport: fail → pass
- [functional regression] MCP protocol: unverified → fail
- [functional improvement] Tool coverage: unverified → 100
- [functional improvement] Stability: unverified → 0.67

### 2026-09-25 (score 18, −54)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

## MCP tools (31)

### `search` (~56 tokens)

Search Lexiara legislation

Search Lexiara's bounded EU and UK legislation corpus. Returns compact, citable results with opaque ids; pass an id unchanged to fetch for the provision text and provenance.

Input parameters:

- `query` (string, required): Natural-language or keyword search over legislation.

Output parameters:

- `results` (array)

### `fetch` (~88 tokens)

Fetch a Lexiara provision

Retrieve one search result by its opaque id, including provision text, canonical URL, authority status and source provenance. metadata.structure provides parent/child addresses; an empty container text does not mean the law is absent. Use child apiHref links or lookup_provision with sourceLang to traverse. Use ids returned by search without editing them.

Input parameters:

- `id` (string, required): Opaque identifier returned by the search tool.

Output parameters:

- `id` (string)
- `metadata` (object)
- `text` (string)
- `title` (string)
- `url` (string): Absolute canonical Lexiara URL.

### `lookup_provision` (~563 tokens)

Look up a provision's text

Authoritative text of one provision, with in-force window, repealed/prospective status, concept tags, transposition edges and full provenance. `stand` says what date the served text speaks as of (`consolidated` with a date, `as-adopted`, or `unknown`) and carries the one-line `sentence` to show a reader — answer questions about currency from it, not from `inForce`, which is when the version's validity starts. Use `asAt` (YYYY-MM-DD) for point-in-time law only where the held expression has an explicit validity window covering that date. Otherwise the tool returns the stable `date_not_covered` refusal; omit `asAt` to request current text. Machine translation is not exposed through this connector because generating a new rendering is not a read-only action. Use sourceLang to select a held source language (three-letter code), including with asAt; this never translates. structure carries immediate parent/child addresses in the selected expression. An empty container text is not missing law: follow children with the same sourceLang and asAt. Use term_languages for authentic multilingual terminology held by the corpus. `gated.citedByArticle` says HOW MANY provisions of other instruments name this article and names those instruments; the rows themselves — which provision, which citation — come from provision_context.

The provision text is always free. Only the derived counts (`gated.citedByArticle`, `gated.nationalMandate`) and the analysis behind them require an API key on a signed-in account.

Input parameters:

- `asAt` (string): Optional real calendar date YYYY-MM-DD. Text is returned only from a held expression whose explicit validity window covers that day; otherwise `date_not_covered` is returned. Omit for current text.
- `eId` (string, required): Provision identifier: 'sec_4' (section 4), 'art_2__para_1' (article 2(1)), 'sch_9' (Schedule 9). Use search or history endpoints to discover eIds.
- `expression` (string): Optional exact expression UUID from list_work_versions or an ingestion result handle. Preserves the selected expression and language; use only a handle returned by Lexiara.
- `sourceLang` (string): Stored three-letter source language, e.g. eng or fra. Selects held text, never generates translation.
- `work` (string, required): ELI URI of the instrument, e.g. 'http://www.legislation.gov.uk/id/ukpga/1994/23' (UK VAT Act 1994) or 'http://data.europa.eu/eli/dir/2006/112/oj' (EU VAT Directive).

### `list_work_versions` (~172 tokens)

List held official EU text versions

Find same-language publisher expressions for one EU act. Each entry has an exact expression ID, source hash and a consolidation marker or as-adopted label. These markers identify text; they do not prove when it applied. Pass a returned expression ID to lookup_provision to read that exact text. Use asAt only when the source carries an explicit validity window.

Input parameters:

- `sourceLang` (string): Optional held three-letter EU source language, e.g. fra or ita.
- `work` (string, required): ELI URI of the instrument, e.g. 'http://www.legislation.gov.uk/id/ukpga/1994/23' (UK VAT Act 1994) or 'http://data.europa.eu/eli/dir/2006/112/oj' (EU VAT Directive).

### `search_legislation` (~117 tokens)

Full-text search across the corpus

Ranked full-text search over provision text. Results carry work, eId, status and provenance — feed a hit's work+eId to lookup_provision for the complete payload.

Input parameters:

- `jurisdiction` (string): ISO country filter, e.g. 'UK', 'FR', 'EU'.
- `language` (string): Restrict to a text language, e.g. 'eng'.
- `limit` (number): Maximum hits, default 10.
- `query` (string, required): Search terms, e.g. 'zero-rating of food'.

### `explore_role_requirements` (~275 tokens)

Explore requirements by legal role

Research source-bound EU role requirements with exact passages, act-specific definitions, conditions, unknown facts and EN/FR/DE/IT official source availability. Select multiple roles and an optional activity, product, Spain or France, and date. Country links carry their relationship type and review state. Informative national text appears only as a separate research lead, not verified country coverage. An absent link is a coverage gap, never proof that national law is absent. This is a bounded research aid, not a compliance verdict. Uses the ordinary signed-in Nexus allowance.

Input parameters:

- `activity` (string): Activity from the response catalogue, e.g. selling-online.
- `asAt` (string): YYYY-MM-DD; only source-supported dates are shown.
- `country` (string): ES or FR for national connections.
- `product` (string): Product from the response catalogue, e.g. consumer-goods.
- `roles` (string): Comma-separated scoped role keys, e.g. crd:trader,gpsr:manufacturer. Omit to see all current candidates.
- `term` (string): Optional actor label or exact phrase in a candidate quotation. Discovery only; shared labels do not equate legal definitions or establish applicability.
- `work` (string): Optional legislation ELI; scope candidates and legal roles to this act.

### `list_saved_role_views` (~51 tokens)

List your saved role research

List private role and country research views belonging to the connected account. Each view is a snapshot for comparison, not a compliance verdict. Read-only; saving and deleting views require a person's own HTTP account access.

### `get_saved_role_view` (~69 tokens)

Recheck a saved role research view

Recheck current official passages and connections against a private saved view. The change list separates later publisher versions, parser corrections, newly acquired material and review status; inspect the cited current result before relying on a connection. Read-only.

Input parameters:

- `id` (string, required): UUID returned by list_saved_role_views.

### `provision_context` (~218 tokens)

What a provision cites, and what changed it

The cross-reference neighbourhood of a provision plus its amendment history. Use this when a provision's relevance is not on its face: a duty that says 'the information referred to in Article 6(1)' is silent about what that information now includes, and about which amending act put it there. Returns citations both ways and the amending acts marked on this provision and on the ones it cites. `citedByArticle` answers the inbound question at ARTICLE granularity — which provisions of other instruments name THIS article — split into `eu` and `national` by the citing instrument's jurisdiction, and distinct from `citedBy`, which is act-level and returns the same list on every provision of the act.

Lexiara Nexus data requires an API key on a signed-in account. The free plan carries a monthly Nexus allowance; the legislative text itself is always free.

Input parameters:

- `eId` (string, required): Provision identifier, e.g. 'art_7__para_1'.
- `work` (string, required): ELI of the instrument.

### `define_term` (~221 tokens)

Where the law defines a phrase

The definition of a term of art, and the provision that gives it. Ask this BEFORE search_legislation whenever the question is what a phrase means ('durable medium', 'taxable person'): search returns provisions that USE a phrase, this returns the law that DEFINES it, verbatim. A term defined by several instruments returns several rows — the scope of each definition is the instrument carrying it, so check the work before applying one.

The definition text is always free. Only the adoption resolution (`adopts`, which act a borrowed definition comes from) is Lexiara Nexus data requiring an API key on a signed-in account.

Input parameters:

- `jurisdiction` (string): ISO country filter, e.g. 'UK', 'FR', 'EU'.
- `limit` (number): Maximum definitions, default 8.
- `term` (string, required): The phrase, e.g. 'durable medium'. Matched exactly (case-insensitive).
- `work` (string): ELI or official number of the borrowing/defining instrument; scopes the term to that instrument.

### `work_glossary` (~271 tokens)

Every term an instrument defines

The act's glossary: every term it defines, alphabetical, with the publisher's own wording verbatim and the provision that defines each one. Use it to orient in an unfamiliar instrument, or to check what a term means IN THIS ACT rather than in the corpus at large — several instruments define 'consumer' differently and all are right within their own scope.

AN EMPTY GLOSSARY IS ABOUT OUR READER, NOT THE ACT. Extraction reads the drafting constructions it has been taught and coverage is uneven across legal traditions; `provisions` is returned so a zero can be read against the size of the instrument. Do not report it as 'this act defines no terms'.

A NULL definition means one of two things: `borrowed` true means the act takes the meaning from another instrument and states none of its own; otherwise the wording could not be delimited. `count` is three populations (`defines`, `adoptsCount`, `undelimited`) — never quote it as one.

The definitions are free. Only the `adopts` resolution (which act a borrowed definition comes from) is Lexiara Nexus data requiring an API key on a signed-in account.

Input parameters:

- `work` (string, required): ELI or official number of the instrument, e.g. '32011L0083'.

### `term_languages` (~277 tokens)

The same defined term in the act's other authentic languages

How an act words one of its defined terms in each language version held. NOT a translation: an EU instrument is equally authentic in all 24 official languages (Regulation No 1/1958, article 4), so each wording is the law in that language. Use it to answer 'what do the German and French texts call this?' — e.g. 'commercial guarantee of durability' is 'gewerbliche Haltbarkeitsgarantie' and 'garantie commerciale de durabilité'.

The term may be given in ANY language held, so the German words find the English definition just as well as the other way round.

SCOPE: this is the EU act's own wording per language. It is NOT how a Member State's transposing legislation words it — a national implementation may lawfully choose different wording, and reaching it means following a transposition link that carries a method and a confidence (find_national_implementations). Nothing here is inferred.

Input parameters:

- `jurisdiction` (string): ISO country filter, e.g. 'UK', 'FR', 'EU'.
- `limit` (number): Maximum terms, default 8.
- `term` (string, required): The phrase, in any language held. Matched exactly (case-insensitive).
- `work` (string): Scope to one instrument (ELI or official number).

### `list_concepts` (~258 tokens)

The defined terms the corpus leans on most

Terms of art ranked by how many instruments in this corpus DEFINE them, BORROW them from another act (followed through every intermediate act — an act that takes 'video-sharing platform' from the DSA, which takes it from the AVMSD, counts for the AVMSD's definition) or CITE a defining provision. Nothing in the list was chosen by hand. `tier` 'pivotal' means at least one act is written around the term — its duties are addressed to it, its other definitions build on it, its title and headings name it; 'shared' is a label many acts define, each for itself, that none turns on ('specified', 'prescribed'). Use it to find the anchoring concepts of an area — 'producer', 'economic operator', 'controller' — then call concept_family for one of them.

Each count is its own population: `reachWorks` is their union by work, never their sum. Quote them under their own names.

Input parameters:

- `jurisdiction` (string): Only concepts that reach this jurisdiction, e.g. 'EU', 'GB', 'ES'.
- `limit` (number): Maximum concepts: 50, 100 (default), 200 or 500.

### `concept_family` (~273 tokens)

Every meaning the corpus gives one defined term

One defined term across the whole corpus: each distinct WORDING with the publisher's own text and the instruments that write it, every instrument that borrows it (with the chain of acts it passes through), the instruments that cite a defining provision, and the term's labels in the act's other authentic EU languages. Ask this when a term is defined differently in different instruments ('producer' under WEEE, the Batteries Regulation and the PPWR) and the answer depends on which. Each instrument carries `pivotWhy`: why the term matters in THAT act ('carries 38 duties · 6 other definitions build on it').

Meanings are separated on facts only: identical words are grouped, different words are listed apart, and a borrowing is attached to what the borrowing act names. Never state that two different wordings mean the same thing on the strength of this tool. A query by a borrower's own label (an alias) returns the family it borrows into.

The definitions and defining instruments are free. The borrowing chains and citations are Lexiara Nexus data requiring an API key on a signed-in account; without one the arrays are empty and `gated` says how many were withheld.

Input parameters:

- `term` (string, required): The defined term, e.g. 'producer'. Matched exactly (case-insensitive).

### `provisions_by_concept` (~140 tokens)

Provisions tagged with a concept

Cross-jurisdiction view of one legal concept: every provision tagged with the given EuroVoc concept, with tagging method and confidence. E.g. 'eurovoc:4585' (VAT), 'eurovoc:4392' (VAT rate). The language-neutral way to line up EU and national law on the same subject.

Input parameters:

- `conceptId` (string, required): Namespaced concept id, e.g. 'eurovoc:4585'.
- `jurisdiction` (string): ISO country filter, e.g. 'UK', 'FR', 'EU'.
- `minConfidence` (number): Drop tags below this confidence (0-1).

### `related_works` (~146 tokens)

Instrument-level relationships

Edges between instruments: which national laws transpose a directive (direction 'in'), or what an instrument implements/amends (direction 'out'). Instrument-level; for article-level links use find_national_implementations.

Input parameters:

- `direction` (string): 'in' = edges pointing at this work (default), 'out' = from it.
- `eli` (string, required): ELI URI of the instrument, e.g. 'http://www.legislation.gov.uk/id/ukpga/1994/23' (UK VAT Act 1994) or 'http://data.europa.eu/eli/dir/2006/112/oj' (EU VAT Directive).

### `work_mentions` (~215 tokens)

Who names this act, provision by provision

The act-level overview: every provision of every instrument in this corpus that names the given act, grouped by citing instrument, with the article of the act each citation resolved to (`targetEId`, null where the citation is act-level — which is most of them, and is not a defect). Each instrument also carries `adoptions`: definitions it BORROWS from this act rather than writing, which is a different claim and is counted apart, never summed with the citations. Use related_works for the same question at instrument level, which is public. A row asserts that the provision NAMES this act, and nothing about whether it implements or corresponds to it.

Lexiara Nexus data requires an API key on a signed-in account. The free plan carries a monthly Nexus allowance; the legislative text itself is always free.

Input parameters:

- `eli` (string, required): ELI URI or official number of the instrument — a French code has only the latter.
- `limit` (number): Maximum citing provisions, default 500, cap 2000.

### `provision_history` (~185 tokens)

A provision's version history

Prior and successor versions of one provision across consolidations — how the text got to its current form.

Lexiara Nexus data requires an API key on a signed-in account. The free plan carries a monthly Nexus allowance; the legislative text itself is always free.

Input parameters:

- `eId` (string, required): Provision identifier: 'sec_4' (section 4), 'art_2__para_1' (article 2(1)), 'sch_9' (Schedule 9). Use search or history endpoints to discover eIds.
- `work` (string, required): ELI URI of the instrument, e.g. 'http://www.legislation.gov.uk/id/ukpga/1994/23' (UK VAT Act 1994) or 'http://data.europa.eu/eli/dir/2006/112/oj' (EU VAT Directive).

### `find_national_implementations` (~226 tokens)

Article-level national implementations

National provisions implementing one EU provision, with method and confidence per link. DERIVED data, not published by any authority: treat links not marked method='human' as leads to verify, and say so when citing. Check evidenceStatus: a current national consolidated reading aid may be informative rather than authoritative, and older links may be stale.

Lexiara Nexus data requires an API key on a signed-in account. The free plan carries a monthly Nexus allowance; the legislative text itself is always free.

Input parameters:

- `eId` (string, required): Provision identifier: 'sec_4' (section 4), 'art_2__para_1' (article 2(1)), 'sch_9' (Schedule 9). Use search or history endpoints to discover eIds.
- `jurisdiction` (string): ISO country filter, e.g. 'UK', 'FR', 'EU'.
- `minConfidence` (number): Drop links below this confidence (0-1).
- `work` (string, required): ELI of the EU instrument, e.g. the VAT Directive.

### `guidance_for_provision` (~334 tokens)

Guidance on one provision

Sections of official GUIDANCE that discuss one provision — Commission notices and guidelines on the act, quoted verbatim with the section number the publisher prints, so an answer can cite '§2.8 of the UCPD Guidance' and be checked. 

EVERY ROW IS NON-BINDING (`binding: false`). This is the enforcing body's own reading, not law: only the instrument's text has legal force, and only a court settles what it means. Never present a guidance section as the rule; cite it as guidance, name the document, and keep it separate from the provision text `lookup_provision` returns.

Lexiara Nexus data requires an API key on a signed-in account. The free plan carries a monthly Nexus allowance; the legislative text itself is always free.

Input parameters:

- `eId` (string, required): Provision identifier: 'sec_4' (section 4), 'art_2__para_1' (article 2(1)), 'sch_9' (Schedule 9). Use search or history endpoints to discover eIds.
- `includeActLevel` (boolean): Also return sections that name the act but no article. Off by default: a notice's introduction cites the whole directive and would otherwise appear under every article of it.
- `work` (string, required): ELI URI of the instrument, e.g. 'http://www.legislation.gov.uk/id/ukpga/1994/23' (UK VAT Act 1994) or 'http://data.europa.eu/eli/dir/2006/112/oj' (EU VAT Directive).

### `list_topics` (~89 tokens)

Curated topics under a subject

Curated obligation topics ('Pre-contract information') under a subject head, each with a one-paragraph orientation and per-jurisdiction anchor counts. Descriptions with editorialStatus='draft' are UNREVIEWED model drafts — say so if you quote one. Feed a result's conceptId to get_topic.

Input parameters:

- `subject` (string, required): Subject head concept id, e.g. 'local:consumer'.

### `get_topic` (~107 tokens)

One topic: orientation, notes, anchored provisions, links

Everything a topic page shows: the orientation paragraph (with its draft/published editorial status), per-jurisdiction legal-status notes (GB notes carry the assimilated-law caveat), anchored provisions with anchor provenance, article-level transposition links (method, confidence, review verdict — anything not method='human' is evidence, not a finding), and related instruments from Lexiara Nexus.

Input parameters:

- `conceptId` (string, required): Topic concept id, e.g. 'local:topic-pre-contract-information'.

### `recent_changes` (~124 tokens)

What changed in the corpus

Change feed: provisions added or modified, filterable by jurisdiction, concept and date. `detectedAt` is when Lexiara observed the change — legal in-force dates come only from the provision itself.

Input parameters:

- `concept` (string): Restrict to one concept id, e.g. 'eurovoc:4585'.
- `jurisdiction` (string): ISO country filter, e.g. 'UK', 'FR', 'EU'.
- `limit` (number): Maximum items, default 50.
- `since` (string): ISO date: only changes detected after this.

### `list_review_queue` (~337 tokens)

What is waiting for a human verdict

The AUTO-GATED backlog from one place, newest first: unreviewed article-level transposition links with BOTH provision texts side by side and the stored reasoning, model/low-confidence concept tags, draft topic descriptions and jurisdiction notes, and recorded findings (gaps and divergences a round could not decide). Filter by kind, vertical and jurisdiction. EVERYTHING HERE IS UNREVIEWED EVIDENCE — cite none of it as a finding. This tool is READ-ONLY: verdicts are set only by a human with a 'reviewer' key, and no MCP tool can set one.

Input parameters:

- `chars` (number): Characters of provision text per side. Omit for the WHOLE text, which is the default: a character budget once hid two parts of a French code article and produced two false absences.
- `jurisdiction` (string): ISO country filter, e.g. 'UK', 'FR', 'EU'.
- `kind` (string): Comma-separated kinds: transposition, tag, topic-description, jurisdiction-note, finding. Omit for all.
- `limit` (number): Maximum items, default 20, max 100.
- `lowConfidence` (number): Also list non-model classifier tags at or below this confidence. Omit for model tags only — the keyword baseline's weak tail is 24 000 rows and would bury the 157 links a verdict changes.
- `offset` (number): Skip this many items — the queue is paged, not sampled.
- `vertical` (string): Vertical id, e.g. 'eu-consumer', 'fr-consumer', 'es-consumer'.

### `list_follows` (~106 tokens)

The law this key follows

The instruments, provisions, subjects, jurisdictions and verticals this API key follows. READ-ONLY: creating or removing a follow is an HTTP POST/DELETE to /v1/follows, and no tool here dispatches one. (The one tool in this catalogue that writes anything is request_ingestion, which asks for a law and touches no follow.) Requires the caller's OWN key — the shared demo key is refused, since a follow list under it would be shared with strangers.

### `follow_updates` (~244 tokens)

Graded developments in the law you follow

The digest: every change the corpus observed on followed law, each with a SIGNIFICANCE grade and the reasoning behind it — 'major' (a new consolidation whose version point advanced, a provision appearing, a provision now repealed), 'minor' (wording changed, or the stored text moved while the publisher's version point did not), 'housekeeping' (first ingest, bulk churn from a version substitution). The grade is LEXIARA'S ASSERTION, not the publisher's: treat 'major' as a prompt to read the instrument, never as a finding about it, and cite the instrument rather than the digest. `reach` says how a development arrived — 'direct', or 'via-transposition' when it is on the other side of a transposition edge from what was followed, in which case the link itself is unreviewed evidence like any other relationship in Lexiara Nexus.

Input parameters:

- `limit` (number): Maximum developments, default 100.
- `minSignificance` (string): Floor for this call: major | minor | housekeeping.
- `since` (string): ISO timestamp. Omit to use each follow's own last read.

### `get_coverage` (~192 tokens)

What the corpus contains, and how fresh

Per-source coverage and freshness. Call this first when unsure whether Lexiara holds the law you need — absence of coverage means 'not here', never 'does not exist'.

Pass `work` to ask about ONE instrument. The answer then says which kind of absence it is: `metadata-only` (the instrument is known and no text is held), `language-not-held`, or `not-held`. Each carries `requestable` and a `request_hint` you pass to request_ingestion.

Input parameters:

- `language` (string): Optional ISO 639-3 code, e.g. 'fra', to ask about one language version.
- `work` (string): Optional: ask about ONE instrument by CELEX, ELI or official number. The answer then carries `requested.gap` — metadata-only, language-not-held or not-held — or `requested.held: true` when the corpus…

### `request_ingestion` (~785 tokens)

Ask Lexiara to acquire a missing law

When a lookup returns `coverage` with `requestable: true`, ask for the missing instrument instead of stopping or guessing. Give the CELEX (or an EU ELI), the language and the version point; say WHY in one or two sentences; state any testable expectations. Lexiara validates the target, fetches the publisher's own bytes, reads them through the same parser and the same fail-closed checks every other act goes through, and returns handles you repeat your original lookup with.

WHAT THIS TOOL IS NOT. It never fetches a URL you supply — the target must resolve to a publisher identifier this service derives itself, and `proposed_sources` is recorded as a note for a human and is never dereferenced. It states nothing about what the law means: acquiring an act makes the publisher's text addressable and does nothing else.

EXPECTATIONS ARE HYPOTHESES, NOT INSTRUCTIONS. `has_article`, `has_annex`, `mentions` (three words or more), `min_provisions`, `language_is` are checked against the stored rows after publication and reported as matched, contradicted or not_verifiable. A contradicted expectation is reported and the publisher's text is left exactly as published — nothing is invented, translated or back-dated to satisfy one.

Identical targets from different callers JOIN one acquisition; your rationale stays private to your account. Re-send the same `idempotency_key` to get the same request back rather than a second one. Jobs are asynchronous: read `retry_after`, then poll get_ingestion_request. This tool creates a request: an OAuth grant with only `read` cannot call it; reconnect and approve the explicit `ingestion:request` consent. Existing read grants remain read-only.

Input parameters:

- `celex` (string): CELEX id of the act, e.g. '32024L0825', or a dated consolidation '02005L0029-20220528'.
- `eli` (string): An EU ELI on the Publications Office's own domain, if you have no CELEX.
- `evidence_path` (array): The shortest path from held material to the missing target: each step a { from, relationship, to } you observed. Private, and evidence for a human, never an instruction.
- `expectations` (array): Up to ten predicates, each naming exactly one of has_article, has_annex, mentions, min_provisions, language_is.
- `idempotency_key` (string): Your own key for this request. The same key returns the same request.
- `intent` (string, required): What kind of gap this is. `derived_references` refreshes derived references for a held work; missing_component and repair against an act already held re-read THAT expression rather than creating a se…
- `language` (string): ISO 639-3 language wanted, e.g. 'eng', 'fra'. Default 'eng'.
- `origin` (object): Lexiara handles you started from (work, eId, expression id). Private.
- `proposed_sources` (array): Official identifiers or locators you believe serve this act. RECORDED AS TEXT AND NEVER FETCHED.
- `rationale` (string): One or two sentences: the question, and why this evidence is needed. Private to your account.
- `requested_bounds` (object): maxBytes / maxSeconds you are willing to spend. May only NARROW the server's budget; a larger number is ignored.
- `role` (string): 'law' (default) or 'guidance' for a Commission notice.
- `version` (string): 'as-adopted' (default), the publisher's consolidation date as YYYY-MM-DD, or 'unresolved' when you genuinely do not know — which returns a question, not a job.

### `list_ingestion_requests` (~69 tokens)

Your ingestion request history

List up to the latest 50 ingestion requests belonging to your account, newest first. Each row includes private status fields such as `intent`, `created_at` and `origin`; another account's requests are never returned. This is read-only and does not start, repeat or alter acquisition work.

### `get_ingestion_request` (~124 tokens)

How an ingestion request is going

State, stage, reason code and the time to wait before asking again, for one request you made. States: already_available, queued, running, available, partial, needs_clarification, needs_source_approval, failed, confirmed_unavailable. A fetch that timed out is `failed` and will be retried; `confirmed_unavailable` is the publisher itself saying it does not hold that manifestation, which is a different fact. Readable only by the account that made the request.

Input parameters:

- `request_id` (string, required): The request_id request_ingestion returned.

### `get_ingestion_result` (~161 tokens)

What an ingestion request produced

The published handles — expression id, work ELI, the /v1/works/text and /v1/provisions addresses — plus the source manifest (publisher URL, content hash, bytes, retrieval time, parser version) and the expectation results. Repeat your original lookup with the handles. Pass `expressionId` as the exact `expression` query parameter to `/v1/works/text` or `/v1/provisions` to preserve the acquired expression and language. Cite the source URL in the manifest, not this tool. `coverage: complete_for_scope` means the DECLARED SCOPE was acquired and checked — never that all law applicable to a question has been found.

Input parameters:

- `request_id` (string, required): The request_id request_ingestion returned.

## Diagnostics

Captured diagnostic sections: TLS, DNSSEC, Authorisation, Transports. The full working is on the page: https://verifymcp.io/servers/org-lexiara-lexiara/lexiara#diagnostics

## Score history

- 2026-10-04: 77
- 2026-10-03: 76
- 2026-10-02: 76
- 2026-10-01: 75
- 2026-09-30: 75
- 2026-09-29: 75
- 2026-09-28: 74
- 2026-09-27: 74
- 2026-09-26: 73
- 2026-09-25: 18
- 2026-09-24: 72
- 2026-09-23: 72
- 2026-09-22: 71
- 2026-09-21: 71
- 2026-09-20: 70
- 2026-09-19: 70
- 2026-09-18: 70
- 2026-09-17: 69
- 2026-09-16: 69
- 2026-09-15: 68
- 2026-09-14: 68
- 2026-09-13: 67
- 2026-09-12: 67
- 2026-09-11: 67
- 2026-09-10: 66
- 2026-09-09: 65
- 2026-09-08: 65
- 2026-09-07: 65
- 2026-09-06: 64

## Common questions

### What is the Lexiara MCP server?

Lexiara is an MCP server listed in the public MCP registry as org.lexiara/lexiara. Provenance-backed EU and UK legislation for AI agents, addressable to the individual provision. This page covers its hosted endpoint (https://lexiara.org/mcp).

### Is the Lexiara MCP server safe to use?

Lexiara scores 77 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

### What tools does the Lexiara MCP server expose?

Lexiara exposes 31 tools: search, fetch, lookup_provision, list_work_versions, search_legislation, and 26 more. Their descriptions and schemas cost roughly 6,493 tokens of context every time the server is loaded.

### Does the Lexiara MCP server require authentication?

No. We connected to Lexiara without credentials and it answered, so anything it exposes is reachable by anyone who knows the address.

### Is the Lexiara MCP server still maintained?

Lexiara is still listed as active in the MCP registry. We last reached this channel on 4 October 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

## Links

- Remote endpoint: https://lexiara.org/mcp
- Repository: https://github.com/thomasmackie/legal-landscape
- Website: https://lexiara.org/mcp
- Changelog RSS feed: https://verifymcp.io/servers/org-lexiara-lexiara/lexiara.xml
- Changelog JSON feed: https://verifymcp.io/servers/org-lexiara-lexiara/lexiara.json
- HTML version of this page: https://verifymcp.io/servers/org-lexiara-lexiara/lexiara
