MCP
Point de terminaison
Version 1.0.0https://lexipedia.io/mcpOutils disponibles
13 outilssearch_document
Lecture seuleSearch for legal sources
Paramètres
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 - 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, canton, chamber, citation, citator, clerks, collection, content, council, court, court_name, court_tier, decision_date, document_number, document_title, document_title_short, faction, id, in_force_since, in_force_to, judges, jurisdiction, language, legal_area, number, outcome, parties, party, regest, register, scope, source, status, summary, title, type Where the text is: - Every kind is indexed twice: once whole, once split into the chunks it is made of, and only the chunks carry searchable full text. Each `<kind>_chunk` type holds that text; the whole-document type beside it holds only metadata — number, title, dates, and a decision's regest. - So a query of several content words finds case law as `decision_chunk` results, not as `decision` ones. Each chunk names its document and links to it. Empty `decision` results for a substantive query mean the words are not in the regest; they do not mean the corpus has no such case law. Search `type:decision` for a docket, court, or date, and leave type unset (or use `decision_chunk`) when searching what a court actually said. - Legislation splits the same way: a subject a law is not named after finds nothing at `type:legislation`. Search `type:legislation_chunk` for what provisions say, `type:legislation` for an act you can name. Logical field mappings: - type filters result kinds. Valid values: legislation, legislation_chunk, decision, decision_chunk, publication, publication_chunk, preparatory, preparatory_chunk, circular, circular_chunk, standard, standard_chunk, glossary, person, organization. - 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 citation: or title: instead. - title searches the record's own heading: a chunk's, or a whole document's. - document_title searches the title of the document a chunk belongs to (a document's own). - number is the record's own number: an article number, a chunk number, a docket. - document_title_short and abbreviation search the short name of that document. - document_number addresses the document a chunk belongs to. - court holds canonical colon-form codes (ch:bger, ch-zh:obergericht) — list them with list_values. - 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. Field availability is source-aware; fields that do not exist for the selected source simply cannot match. Tips: - Do your queries in french, german, italian, and romansh to not miss any results. - Try at most 3 focused queries. If none match, say that Lexipedia did not find a source; do not assume that no source exists. - 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:vd - type:decision AND decision_date:[2020 TO 2024] - type:preparatory AND "data protection" - document_number:700 AND number:25 - citation:"art. 25 LAT" AND language:fr - court:ch:bge AND decision_date:[2020 TO 2024] - court_tier:1 AND "good faith" - document_title:privacy* AND status:active - type:legislation_chunk AND document_title:"code of obligations" AND ("plan social" OR "social plan" OR "indemnité de départ" OR "indemnites de depart")
- string
preferences- object
pagination- object
sortOptional sort. Examples: { by: 'relevance', order: 'desc' }, { by: 'citation_count', order: 'desc' }, { by: 'date', order: 'desc' }, { by: 'date', order: 'asc' }.
- object
get_document
Lecture seuleGet a legal source's details and outline
Paramètres
idRequisA search_document 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
Lecture seuleList the documents that cite a legal source
Paramètres
idRequisA search_document 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
treatmentOnly citing documents whose analysed verdict is this one ('analysed' for any)
- follows | applies | distinguishes | limits | criticises | declines_to_follow | changes_practice | mentions | other | unknown | analysed
pagination- object
preferences- object
get_document_relations
Lecture seuleList a legal source's structural links
Paramètres
idRequisA search_document 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
Lecture seuleList the consolidated versions a law has had
Paramètres
idRequisA search_document 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_schema
Lecture seuleGet the corpus schema
Paramètres
Aucun paramètre
list_pages
Lecture seuleList the website's main pages
Paramètres
Aucun paramètre
list_people
Lecture seuleList Swiss lawyers and parliamentarians
Paramètres
queryA name fragment, or a firm name. Matches the family name, the given name and the current firm.
- string
roleNarrow to one register: `lawyer` for the cantonal bar registers, `parliamentarian` for the Federal Assembly. One human is one row, so a lawyer who sits in parliament appears under both and carries both facets either way. Leave it empty to search everyone.
- lawyer | parliamentarian
cantonTwo-letter canton code: the bar register the lawyer is entered in, or the canton that elected the member — either match counts.
- AG | AI | AR | BE | BL | BS | FR | GE | GL | GR | JU | LU | NE | NW | OW | SG | SH | SO | SZ | TG | TI | UR | VD | VS | ZG | ZH
cityThe town of a lawyer’s business address: "Lausanne", "Zürich", "Küsnacht ZH". Case and accents are folded, so "zurich" finds Zürich. Parliamentarians carry no town.
- string
firm_uidThe commercial-register identifier (UID) of a law firm, exactly as a previous result gave it in `firm_uid`, e.g. CHE-123.456.789. Never write one from memory and leave it empty when you hold none: to find a firm by its name, pass the name as `query` instead.
- string
councilNR for the National Council, SR for the Council of States, BR for a Federal Council mandate; the member’s latest seat.
- NR | SR | BR
partyThe party’s register number, exactly as a previous result gave it in `party_id`. Never write one from memory.
- string
activeTrue lists only members holding a council seat today.
- boolean
active_inA year: only members who held a council seat during it — and each row’s council, canton, party and faction then describe that period, not today. The Federal State exists since 1848.
- integer
letterFirst letter of the family name, accents folded (Ö files under O). Leave it empty to list every letter.
- string
sort`name` (the default) lists alphabetically by family name; `cases` puts the lawyers with the most published decisions naming them as counsel first; `speeches` puts the members with the most recorded debate contributions first. Both counts measure the published record, never the whole practice or career.
- string
pagination- object
preferences- object
list_values
Lecture seuleList available search values
Paramètres
fieldRequisListable Lucene field. Available fields: canton, chamber, citator, collection, council, court, court_tier, faction, jurisdiction, language, legal_area, outcome, party, register, scope, source, status
- canton | chamber | citator | collection | council | court | court_tier | faction | jurisdiction | language | legal_area | outcome | party | register | scope | source | status
page1-based page number. Each page returns up to 50 values.
- integer
preferences- object
read_document
Lecture seuleRead a legal source's text
Paramètres
idRequisA search_document 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`. Only legislation has versions, and only the current text is searchable, so an id always comes from a search of today's law. 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
Lecture seuleRead a page of the website
Paramètres
pathRequisSite 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
Écrit des donnéesReport an issue
Paramètres
issueRequisClear description of the issue the agent discovered.
- string
categoryRequisTriage category for the issue.
- content | metadata | search | retrieval | mcp_tool | performance | other
severityRequisExpected impact of the issue.
- info | warning | error
contextRequisOnly non-sensitive context needed to reproduce the issue. Never include personal data, credentials, tokens, or private legal records.
- object
run_query
Lecture seuleQuery the corpus with SQL
Paramètres
queryRequisSingle 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