MCP
Endpunkt
Version 1.0.0https://lexipedia.io/mcpVerfügbare Tools
14 Toolssearch
Nur lesbarSearch Lexipedia
Parameter
modeUse lexical, the default, unless you have a reason not to. lexical matches the query's words and is right for references, docket numbers, names, abbreviations and exact terms. semantic finds the passages closest in meaning, in any language: use it for a question or a concept described in your own words, which a court may have phrased differently. semantic currently covers Federal Supreme Court decisions published in the official reports (BGE/ATF) only; for any other kind it returns nothing, which says nothing about whether a source exists. Filters in the query still apply in semantic mode, joined to the words by AND.
- lexical | semantic
queryLucene search query. Use this single string for both search terms and filters. - Plain words: national languages - Exact phrases: "good faith" - Mandatory quoting: wrap every multi-word phrase in double quotes. This includes values after a field such as document_title:"code of obligations" and every multi-word alternative in an OR group such as ("plan social" OR "social plan" OR "indemnité de départ"). An unquoted field value ends at the first space; document_title:code of obligations does not search that complete law title. - Boolean operators: contract AND lease, contract OR lease, contract NOT lease - Required/prohibited clauses: +contract -lease - Groups: (contract OR lease) AND nullity - Public snake_case field queries: document_title:constitution, language:en, jurisdiction:ch-vd - Ranges: decision_date:[2020-01-01 TO 2024-12-31] - Trailing wildcards/prefixes: nation*, citation:ATF*, citation:4A* - Fuzzy terms: constitution~1 - Phrase proximity: "good faith"~5 - Boosts: document_title:constitution^2 Public field names: - abbreviation, active_in, canton, chamber, citation, citator, citing, clerks, collection, content, council, council_year, court, court_name, court_tier, decision_date, document_number, document_title, document_title_short, faction, government_level, id, in_force_since, in_force_to, judges, jurisdiction, kind, language, legal_area, legal_form, level, municipality, notice_kind, outcome, parties, party, publication_date, publication_status, regest, register, scope, seat, section_number, section_title, source, status, summary, uid Where the text is: - Every kind is indexed twice: once whole (number, title, dates, a decision's regest) and once split into the chunks that carry its full text. A search always reaches both, and returns one result per document: the document itself, or the chunk of it that matched best (type `decision_chunk`, `legislation_chunk`, …), which names its document and links to it. The register (people, organizations, the gazette): - `person` results are people the Swiss public registers list: every lawyer in a cantonal bar register (firm, town, published decisions naming them as counsel) and everyone in the Parliament register (National Councillors, Councillors of States, federal councillors) with party, parliamentary group and chamber. Bern and Ticino publish no machine-readable bar register. - `organization` results are every entity in the commercial register (companies, foundations, associations, cooperatives; active, in liquidation and struck) and the political parties. An entity answers to its name, its former names and translations, its UID in any notation (CHE-123.456.789, CHE123456789, 123456789), and the names of the people its register entry lists, current and former. So a person's name finds the entities they sit on. - `notice` results are the commercial-register notices of the Swiss Official Gazette of Commerce (SHAB/FOSC/FUSC) since 2016: entries, changes (officers, capital, name, seat, statutes) and deletions, dated, in their original wording. Their text names people and entities, so a name finds the notices that entered or struck that person, for every canton. - `trademark` results are the Swiss trademarks of the IPI's register (Swissreg): marks in force, pending applications and deleted marks, each with its holder (the commercial-register entity where it was recognised: org_id is its UID), its Nice classes and its goods and services, which are searched. A brand name finds the mark and its holder; a product finds the marks covering it. International registrations designating Switzerland are not included. - `design` results are the Swiss designs of the IPI's register (Swissreg), in force and deleted: each registration named for its product (its title), with its holder (org_id is the UID where it was recognised), its Locarno classes and the descriptions its designs were deposited with, which are searched. A product finds the designs registered for it; a company finds its designs. - `patent` results are the patents with effect in Switzerland (Swissreg): Swiss patents and European patents for Switzerland and Liechtenstein, in force and deleted, each with its title (as registered, often in German, European titles in capitals), its holder (org_id is the UID where it was recognised), inventors and IPC classes. A technology word finds patents by title; a company finds the patents it holds. - Register fields: party, faction, council (NR, SR, BR), register (lawyers, parliament, firms, organizations, parties), active_in and council_year for people; uid, legal_form, seat and status for organizations; uid, notice_kind (new_entry, change, deletion) and publication_date for notices. - active_in is a year or a range of years in which a member held a council seat, in any chamber: active_in:1999 or active_in:[1990 TO 1999]. council is the chamber of the latest seat, so for who sat in one chamber in a given year use council_year, the chamber and the year together: council_year:sr-2005 (nr, sr, br). - uid on notices lists the gazette history of one entity: kind:notice AND uid:CHE-264.938.111. - A result is a summary. Call get_entity with its type and id for the whole record: an organization's officers, notices, relations and trademarks, a person's mandates and cases, a notice's text, a trademark's goods and services and parties. Logical field mappings: - jurisdiction is the issuing level of government: ch is the Confederation only (federal courts and federal law), a canton is ch-ge, ch-vd, ch-zh, …, a registered city is ch-zh-zuerich, international bodies are int. Leave jurisdiction out to search the whole of Switzerland, federal and cantonal together. canton takes the canton form (ch-ge), municipality the city form (ch-zh-zuerich). - A filter value no document carries is refused with an error listing the valid values, never answered with zero results; list_values lists every field's values. - government_level filters federal, cantonal, or municipal documents. - Use AND across fields and OR within a field, e.g. government_level:municipal AND (municipality:ch-zh-zuerich OR municipality:ch-zh-winterthur). - kind filters what a text is, its documents and their chunks together. Valid values: legislation, decision, publication, preparatory, circular, standard, glossary, person, organization, notice, trademark, design, patent. - level chooses which records are searched: level:document the whole documents only (a law, a ruling, matched by its title, number and metadata), level:chunk only the chunks inside them (articles, considerations, matched by their text). Leave it out to search both. - id matches canonical refs — the very strings this tool returns as `id`. Hand one straight back: `id:ch:sr-rs-rs:2010-262:fr#art-23` is that one article, and the ref of its parent, `id:ch:sr-rs-rs:2010-262:fr`, is every article of that law. Colons need no quoting; a docket is not a ref, so look one up with document_number: or citation: instead. - section_title searches a chunk's own heading: an article's marginal title, a consideration's heading. Only chunks carry one. - document_title searches the title of the document: a whole document's own, or the title of the document a chunk belongs to. A chunk answers to both, so section_title:"bonne foi" AND document_title:"code civil" is that heading within that law. - section_number is the number a chunk is cited by, as the text prints it: an article's 8a or 663bbis, a consideration's 2.1. Only chunks carry one. - citation is what a document or a passage is cited by: a ruling's volume reference (ATF 140 III 86), a Federal Gazette page (FF 2017 6565), an Official Bulletin page (AB/BO/BU, year, council N or S/E, page). citation:"BO 2017 N 102" finds the speech that page begins in. - document_number is the number of a document, or of the document a chunk belongs to: an SR number (281.1), a docket. - document_title_short and abbreviation search the short name of that document. - court holds canonical colon-form codes (ch:bger-tf-tf, ch-zh:obergericht). Never guess a code: for a court known by name, search court_name:obergericht AND canton:ch-zh, or take the exact code from a result's `court` or from list_values (field court, labelled with each court's name). The official reports (BGE/ATF) are a collection, not a court: filter them with source:ch:bge-atf-dtf. - court_tier is the court's position in the Swiss judicial hierarchy: 1 supreme, 2 appellate, 3 first instance. Bodies outside the ordinary judiciary (regulators, executives, conciliation) carry none. - publication_status says what became of a ruling in its court's own collection. `publication_status:proposed` are the Federal Supreme Court judgments earmarked for the official reports (ATF/BGE), often months before the volume appears; a judgment the court has not earmarked carries no value at all, so proposed is the whole of what this filters. Field availability is source-aware. Incompatible required filters report an error naming the field and the kinds it supports. in_force_since and in_force_to apply to legislation and its chunks (the parent law’s dates). Tips: - Query in the user's language or a source's known original language. A query of three or more words that matches nothing is answered by meaning instead, in every language and within its filters, and the response says so with semantic_fallback. Do not manually fan out every query into every national language. - Search lexically by default. Use mode semantic only as a second step, when a lexical search for a legal question asked in plain words comes back empty or beside the point: the leading rulings are often phrased differently from the question. It covers BGE/ATF only for now, so search every other kind lexically. - Start with a focused relevance query. After an empty result, remove weak conjuncts and try no more than two rare textual facts that should occur in the same chunk, plus only verified metadata filters. - Do not repeat near-equivalent empty searches. After several searches, continue only for a materially different retrieval hypothesis; otherwise report the remaining gap without claiming no source exists. - Results are grouped by document_ref before pagination: one matching rendition or chunk per work, preferring the requested language. count counts works, not translations or articles; count_relation says whether it is exact or estimated. - A decision result with generated: true was written by a model in the language it is listed in: its title, regest and summary describe a ruling the court published only in another language. Its id and url open the court's own rendition; quote that, never the generated text. - has_more means this page is incomplete; continue at next_offset when enumerating. Never infer that a reform or source does not exist from a partial page. - Use a result limit of 10 or less while identifying a source. Request a larger page only for a genuinely exhaustive list. - Do not report an empty result by itself. Call report_issue only for a reproducible Lexipedia defect and only after the user explicitly asks or confirms. - Write ALL the keywords in lowercase to not interfere with Lucene operators like AND, OR, NOT, etc. This is especially important for the swiss law with the abbreviation "OR" -> "or". Examples: - "right to be heard" AND jurisdiction:ch-vd - kind:decision AND decision_date:[2020 TO 2024] - kind:preparatory AND "data protection" - id:ch:sr-rs-rs:281-1:fr AND section_number:8a - document_number:700 AND section_number:25 - citation:"art. 25 LAT" AND language:fr - source:ch:bge-atf-dtf AND decision_date:[2020 TO 2024] - court_name:"cour de justice" AND canton:ch-ge - court_tier:1 AND "good faith" - document_title:privacy* AND status:active - salimbeni - kind:organization AND "omnilex" - kind:person AND council_year:sr-2005 - kind:organization AND seat:zug AND legal_form:3 AND status:active - kind:notice AND notice_kind:new_entry AND canton:ch-ge AND publication_date:[2026-01-01 TO 2026-03-31] - kind:legislation AND document_title:"code of obligations" AND ("plan social" OR "social plan" OR "indemnité de départ" OR "indemnites de depart")
- string
preferences- object
paginationResult page. Keep limit at 10 or less for source identification; increase it only for an exhaustive list.
- object
sortOptional sort. Examples: { by: 'relevance', order: 'desc' }, { by: 'citation_count', order: 'desc' }, { by: 'decision_date', order: 'desc' }, { by: 'in_force_since', order: 'asc' }.
- object
get_document
Nur lesbarGet a legal source's details and outline
Parameter
idErforderlichA search result id: a canonical reference, e.g. `ch:sr-rs-rs:1999-404:fr#art-8` for one article or consideration, or `ch:sr-rs-rs:1999-404:fr` for a whole law or decision. A reference may carry a past version of a law, as `ch:sr-rs-rs:1999-404@2020-01-01:fr`.
- string
preferences- object
get_document_cited_by
Nur lesbarList the documents that cite a legal source
Parameter
idErforderlichA search result id: a canonical reference, e.g. `ch:sr-rs-rs:1999-404:fr#art-8` for one article or consideration, or `ch:sr-rs-rs:1999-404:fr` for a whole law or decision. A reference may carry a past version of a law, as `ch:sr-rs-rs:1999-404@2020-01-01:fr`.
- string
typeOnly citing documents of this type
- decision | law | publication | preparatory | circular
pagination- object
preferences- object
get_document_relations
Nur lesbarList a legal source's structural links
Parameter
idErforderlichA search result id: a canonical reference, e.g. `ch:sr-rs-rs:1999-404:fr#art-8` for one article or consideration, or `ch:sr-rs-rs:1999-404:fr` for a whole law or decision. A reference may carry a past version of a law, as `ch:sr-rs-rs:1999-404@2020-01-01:fr`.
- string
relationOnly links of this kind
- amends | amended_by | enacts | enacted_by | follows | resulted_in | reviews | reviewed_by | debates | debated_in | publishes | published_as | concerns | consulted_in | repeals | repealed_by | documents | documented_in
pagination- object
preferences- object
get_document_versions
Nur lesbarList legislation and tax guidance versions
Parameter
idErforderlichA search result id: a canonical reference, e.g. `ch:sr-rs-rs:1999-404:fr#art-8` for one article or consideration, or `ch:sr-rs-rs:1999-404:fr` for a whole law or decision. A reference may carry a past version of a law, as `ch:sr-rs-rs:1999-404@2020-01-01:fr`.
- string
pagination- object
preferences- object
get_entity
Nur lesbarRead one person, organization, party, gazette notice, trademark, design or patent
Parameter
typeErforderlichWhat the id names: a `person`, an `organization` (a commercial-register entity; a party is one too), a `party`, a gazette `notice`, a Swiss `trademark`, a Swiss `design`, or a `patent` with effect in Switzerland. Use the `type` the search result gave.
- person | organization | party | notice | trademark | design | patent
idErforderlichThe `id` a search result gave (ch:persons:…, ch:organizations:…, ch:notices:…, ch:trademarks:…, ch:designs:…, ch:patents:…). A UID such as CHE-123.456.789 also names an organization, an SOGC number a notice, a registration number a trademark or a design, and a publication number (EP…, CH…) a patent. Never write one from memory.
- string
noticesOrganizations only: which of its gazette notices to return, newest first (20 by default). Omit it for any other type.
- object
preferences- object
get_schema
Nur lesbarGet the corpus schema
Parameter
Keine Parameter
list_pages
Nur lesbarList the website's main pages
Parameter
Keine Parameter
list_values
Nur lesbarList available search values
Parameter
fieldErforderlichListable Lucene field. Available fields: canton, chamber, citator, collection, council, court, court_tier, faction, government_level, jurisdiction, kind, language, legal_area, legal_form, level, municipality, notice_kind, outcome, party, publication_status, register, scope, seat, source, status
- canton | chamber | citator | collection | council | court | court_tier | faction | government_level | jurisdiction | kind | language | legal_area | legal_form | level | municipality | notice_kind | outcome | party | publication_status | register | scope | seat | source | status
page1-based page number. Each page returns up to 50 values.
- integer
preferences- object
read_document
Nur lesbarRead a legal source's text
Parameter
idErforderlichA search result id: a canonical reference, e.g. `ch:sr-rs-rs:1999-404:fr#art-8` for one article or consideration, or `ch:sr-rs-rs:1999-404:fr` for a whole law or decision. A reference may carry a past version of a law, as `ch:sr-rs-rs:1999-404@2020-01-01:fr`.
- string
fromFirst page to read, about 10000 characters per page. Use the page a table_of_contents entry gives to start at that section.
- integer
toLast page to read. Defaults to `from`; at most 3 pages are served per call, and the response says which range it returned.
- integer
versionRead a past consolidated version of a law instead of the text in force today: a `version` from get_document's `versions`. Legislation and cantonal tax guidance have versions. An exact canonical tax-guidance reference can read an explicitly selected archived edition even when no current text appears in search. A table_of_contents page number describes the current text, so in an older version a section may sit a page or so away.
- string
preferences- object
read_page
Nur lesbarRead a page of the website
Parameter
pathErforderlichSite path of the page to read, e.g. `/terms` or `/de/browse`. A full URL on the site's own domain is also accepted.
- string
fromFirst page to read, about 10000 characters per page.
- integer
toLast page to read. Defaults to `from`; at most 3 pages are served per call, and the response says which range it returned.
- integer
report_issue
Schreibt DatenReport an issue
Parameter
issueErforderlichClear description of the issue the agent discovered.
- string
categoryErforderlichTriage category for the issue.
- content | metadata | search | retrieval | mcp_tool | performance | other
severityErforderlichExpected impact of the issue.
- info | warning | error
contextErforderlichOnly non-sensitive context needed to reproduce the issue. Never include personal data, credentials, tokens, or private legal records.
- object
run_query
Nur lesbarQuery the corpus with SQL
Parameter
queryErforderlichSingle read-only SQL statement (PostgreSQL 18). Call get_schema first for readable tables, columns, relationships, and query guidance.
- string
limitMaximum rows to return (hard cap 200).
- integer
search_legislation_changes
Nur lesbarFind legislation taking effect or changing in a date range
Parameter
fromErforderlichInclusive effective/applicability date, YYYY-MM-DD. Resolve relative dates from the current clock.
- string
toErforderlichInclusive final date, YYYY-MM-DD.
- string
jurisdictionExact jurisdiction, e.g. ch or ch-vd; omit to include every jurisdiction.
- string
queryLiteral text in the law title or number; not Lucene and not a search of provision text.
- string
preferences- object
pagination- object