{"name":"org.lexiara/lexiara","slug":"lexiara","title":"Lexiara","description":"Provenance-backed EU and UK legislation for AI agents, addressable to the individual provision.","url":"https://mcp.market/server/lexiara","rating":null,"grade":"C","score":69,"certified":false,"status":"active","category":"other","tags":[],"presence":{"score":8,"stars":null,"forks":null,"downloads_week":null,"last_push_at":null,"license":null},"uptime":{"percent":100,"checks":5,"ok":5,"last_checked_at":"2026-09-20T18:55:57.506Z","last_ok_at":"2026-09-20T18:55:57.506Z","latency_ms":362},"claimed":false,"transport":"remote","callable_via_gateway":true,"default_price_micros":0,"repository":"https://github.com/thomasmackie/legal-landscape","website":"https://lexiara.org/mcp","version":"1.0.0","remotes":[{"type":"streamable-http","url":"https://lexiara.org/mcp"}],"packages":[],"tools":[{"name":"define_term","description":"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.\n\nThe 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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"term":{"type":"string","description":"The phrase, e.g. 'durable medium'. Matched exactly (case-insensitive)."},"jurisdiction":{"type":"string","description":"ISO country filter, e.g. 'UK', 'FR', 'EU'."},"limit":{"type":"number","description":"Maximum definitions, default 8."}},"required":["term"]}},{"name":"fetch","description":"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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"id":{"type":"string","description":"Opaque identifier returned by the search tool."}},"required":["id"],"additionalProperties":false}},{"name":"find_national_implementations","description":"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.\n\nLexiara 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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"work":{"type":"string","description":"ELI of the EU instrument, e.g. the VAT Directive."},"eId":{"type":"string","description":"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":{"type":"string","description":"ISO country filter, e.g. 'UK', 'FR', 'EU'."},"minConfidence":{"type":"number","description":"Drop links below this confidence (0-1)."}},"required":["work","eId"]}},{"name":"follow_updates","description":"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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"since":{"type":"string","description":"ISO timestamp. Omit to use each follow's own last read."},"minSignificance":{"type":"string","description":"Floor for this call: major | minor | housekeeping."},"limit":{"type":"number","description":"Maximum developments, default 100."}}}},{"name":"get_coverage","description":"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'.\n\nPass `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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"work":{"type":"string","description":"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 holds it."},"language":{"type":"string","description":"Optional ISO 639-3 code, e.g. 'fra', to ask about one language version."}}}},{"name":"get_ingestion_request","description":"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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"request_id":{"type":"string","description":"The request_id request_ingestion returned."}},"required":["request_id"]}},{"name":"get_ingestion_result","description":"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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"request_id":{"type":"string","description":"The request_id request_ingestion returned."}},"required":["request_id"]}},{"name":"get_topic","description":"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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"conceptId":{"type":"string","description":"Topic concept id, e.g. 'local:topic-pre-contract-information'."}},"required":["conceptId"]}},{"name":"guidance_for_provision","description":"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. \n\nEVERY 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.\n\nLexiara 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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"work":{"type":"string","description":"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)."},"eId":{"type":"string","description":"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":{"type":"boolean","description":"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."}},"required":["work","eId"]}},{"name":"list_follows","description":"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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{}}},{"name":"list_ingestion_requests","description":"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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{},"additionalProperties":false}},{"name":"list_review_queue","description":"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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"kind":{"type":"string","description":"Comma-separated kinds: transposition, tag, topic-description, jurisdiction-note, finding. Omit for all."},"vertical":{"type":"string","description":"Vertical id, e.g. 'eu-consumer', 'fr-consumer', 'es-consumer'."},"jurisdiction":{"type":"string","description":"ISO country filter, e.g. 'UK', 'FR', 'EU'."},"limit":{"type":"number","description":"Maximum items, default 20, max 100."},"offset":{"type":"number","description":"Skip this many items — the queue is paged, not sampled."},"chars":{"type":"number","description":"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."},"lowConfidence":{"type":"number","description":"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."}}}},{"name":"list_topics","description":"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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"subject":{"type":"string","description":"Subject head concept id, e.g. 'local:consumer'."}},"required":["subject"]}},{"name":"lookup_provision","description":"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.\n\nThe 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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"work":{"type":"string","description":"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)."},"eId":{"type":"string","description":"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":{"type":"string","description":"Optional exact expression UUID, normally from an ingestion result handle. Preserves the selected expression and language; use only a handle returned by Lexiara."},"sourceLang":{"type":"string","description":"Stored three-letter source language, e.g. eng or fra. Selects held text, never generates translation."},"asAt":{"type":"string","description":"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."}},"required":["work","eId"]}},{"name":"provision_context","description":"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.\n\nLexiara 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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"work":{"type":"string","description":"ELI of the instrument."},"eId":{"type":"string","description":"Provision identifier, e.g. 'art_7__para_1'."}},"required":["work","eId"]}},{"name":"provision_history","description":"Prior and successor versions of one provision across consolidations — how the text got to its current form.\n\nLexiara 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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"work":{"type":"string","description":"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)."},"eId":{"type":"string","description":"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."}},"required":["work","eId"]}},{"name":"provisions_by_concept","description":"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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"conceptId":{"type":"string","description":"Namespaced concept id, e.g. 'eurovoc:4585'."},"jurisdiction":{"type":"string","description":"ISO country filter, e.g. 'UK', 'FR', 'EU'."},"minConfidence":{"type":"number","description":"Drop tags below this confidence (0-1)."}},"required":["conceptId"]}},{"name":"recent_changes","description":"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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"jurisdiction":{"type":"string","description":"ISO country filter, e.g. 'UK', 'FR', 'EU'."},"concept":{"type":"string","description":"Restrict to one concept id, e.g. 'eurovoc:4585'."},"since":{"type":"string","description":"ISO date: only changes detected after this."},"limit":{"type":"number","description":"Maximum items, default 50."}}}},{"name":"related_works","description":"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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"eli":{"type":"string","description":"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)."},"direction":{"type":"string","enum":["in","out"],"description":"'in' = edges pointing at this work (default), 'out' = from it."}},"required":["eli"]}},{"name":"request_ingestion","description":"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.\n\nWHAT 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.\n\nEXPECTATIONS 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.\n\nIdentical 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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"celex":{"type":"string","description":"CELEX id of the act, e.g. '32024L0825', or a dated consolidation '02005L0029-20220528'."},"eli":{"type":"string","description":"An EU ELI on the Publications Office's own domain, if you have no CELEX."},"language":{"type":"string","description":"ISO 639-3 language wanted, e.g. 'eng', 'fra'. Default 'eng'."},"version":{"type":"string","description":"'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."},"role":{"type":"string","enum":["law","guidance"],"description":"'law' (default) or 'guidance' for a Commission notice."},"intent":{"type":"string","enum":["new_work","missing_component","language_counterpart","version","repair","derived_references"],"description":"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 second one beside it."},"rationale":{"type":"string","description":"One or two sentences: the question, and why this evidence is needed. Private to your account."},"origin":{"type":"object","description":"Lexiara handles you started from (work, eId, expression id). Private.","additionalProperties":true},"evidence_path":{"type":"array","description":"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.","items":{"type":"object","additionalProperties":true}},"proposed_sources":{"type":"array","description":"Official identifiers or locators you believe serve this act. RECORDED AS TEXT AND NEVER FETCHED.","items":{"type":"string"}},"expectations":{"type":"array","description":"Up to ten predicates, each naming exactly one of has_article, has_annex, mentions, min_provisions, language_is.","items":{"type":"object","additionalProperties":true}},"idempotency_key":{"type":"string","description":"Your own key for this request. The same key returns the same request."},"requested_bounds":{"type":"object","description":"maxBytes / maxSeconds you are willing to spend. May only NARROW the server's budget; a larger number is ignored.","additionalProperties":true}},"required":["intent"]}},{"name":"search","description":"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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"query":{"type":"string","description":"Natural-language or keyword search over legislation."}},"required":["query"],"additionalProperties":false}},{"name":"search_legislation","description":"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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"query":{"type":"string","description":"Search terms, e.g. 'zero-rating of food'."},"jurisdiction":{"type":"string","description":"ISO country filter, e.g. 'UK', 'FR', 'EU'."},"language":{"type":"string","description":"Restrict to a text language, e.g. 'eng'."},"limit":{"type":"number","description":"Maximum hits, default 10."}},"required":["query"]}},{"name":"term_languages","description":"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é'.\n\nThe term may be given in ANY language held, so the German words find the English definition just as well as the other way round.\n\nSCOPE: 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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"term":{"type":"string","description":"The phrase, in any language held. Matched exactly (case-insensitive)."},"work":{"type":"string","description":"Scope to one instrument (ELI or official number)."},"jurisdiction":{"type":"string","description":"ISO country filter, e.g. 'UK', 'FR', 'EU'."},"limit":{"type":"number","description":"Maximum terms, default 8."}},"required":["term"]}},{"name":"work_glossary","description":"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.\n\nAN 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'.\n\nA 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.\n\nThe 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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"work":{"type":"string","description":"ELI or official number of the instrument, e.g. '32011L0083'."}},"required":["work"]}},{"name":"work_mentions","description":"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.\n\nLexiara 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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"eli":{"type":"string","description":"ELI URI or official number of the instrument — a French code has only the latter."},"limit":{"type":"number","description":"Maximum citing provisions, default 500, cap 2000."}},"required":["eli"]}}],"scan":{"score":69,"grade":"C","scanned_at":"2026-09-20T05:07:51.825Z","report":{"scannerVersion":"0.1.9","scannedAt":"2026-09-20T05:07:51.682Z","components":{"code":{"score":-1,"max":25,"notes":["remote-only server, no package to scan"]},"reliability":{"score":20,"max":20,"notes":["remote reachable in 1038ms"]},"poisoning":{"score":15,"max":15,"notes":["25 tool descriptions checked"]},"auth":{"score":10,"max":15,"notes":["open endpoint, read-only tools"]},"maintenance":{"score":3,"max":15,"notes":["repository not readable: repo not found"]},"identity":{"score":4,"max":10,"notes":["verified namespace with website, no repo"]}},"findings":[],"inputs":{"probes":[{"url":"https://lexiara.org/mcp","reachable":true,"authRequired":false,"latencyMs":1038,"serverInfo":{"name":"lexiara","version":"1.0.0"}}],"packages":[],"repo":{"found":false,"owner":"thomasmackie","repo":"legal-landscape","error":"repo not found"},"icon":{"url":"https://lexiara.org/favicon.svg","source":"site"},"presence":{"stars":null,"forks":null,"downloadsWeek":null,"license":null,"lastPushAt":null,"score":8}}}},"grade_history":[],"reviews":[]}