OpenHelvetia Gateway
Measured conclusion: Deep-tested. L2 outcome: tools_ok.
Swiss federal law (Fedlex) and political data (LINDAS) for agents, every answer with sources
| Author | swiss.openhelvetia |
|---|---|
| Access | remote |
| Publisher key required | No |
| Measured state | Deep-tested |
| L1 liveness | alive |
| L1 latency | 408 ms |
| Last measured | 2026-10-24 |
Add to your agent
Copy this into your MCP client config:
{
"mcpServers": {
"OpenHelvetia Gateway": {
"url": "https://mcp.openhelvetia.swiss/mcp",
"transport": "streamable-http"
}
}
}
Measured tools (65)
directory.getread-onlyThe directory envelope (v0.2, authority: manifest). Real entries only — a data source enters on one of three admission routes (E21); an empty list is the honest state, never padded.
Hints: read-only yes · destructive not declared · idempotent not declared · open-world not declared
facts.badgeread-onlyshields.io endpoint JSON for one subject, derived from the fact table — «no facts» in grey when nothing is recorded, never rounded up.
Parameters:
domain(required) — stringsubject(required) — string — Subject key (e.g. «slug#0»).
Hints: read-only yes · destructive not declared · idempotent not declared · open-world not declared
facts.latestread-onlyLatest effective facts per subject+metric from the versioned fact table — the bitemporal as_of cutoff is exposed; an absent store is the honest empty view.
Parameters:
domain(required) — string — Measured domain («checker», «benchmark»).as_of— ['string', 'null'] — Optional bitemporal cutoff (RFC 3339).
Hints: read-only yes · destructive not declared · idempotent not declared · open-world not declared
fedlex.check_in_forceread-onlyCheck whether an act was in force on a date; false is a valid answer, never an error: use for «gilt das noch?» questions. norm.
Parameters:
eli(required) — stringas_of(required) — string — ISO date YYYY-MM-DD.
Hints: read-only yes · destructive not declared · idempotent not declared · open-world not declared
fedlex.check_quoteread-onlyCheck a quote (Zitat) against the norm text of one element: use before citing, to prove the wording is in what was read (Belegkette). norm.
Parameters:
eli_version(required) — string — Dated consolidation: `<abstract-eli>/<YYYYMMDD>` — the version that was read.eid(required) — string — The element that was read: an eId such as «art_6» or a path eId such as «art_6/para_1» or «annex_3/lvl_u1/lvl_2».quote(required) — string — The wording to check, verbatim; «…» or «[...]» marks an omission (each part must occur, in order).lang— ['string', 'null'] — Manifestation language (de|fr|it|en|rm); default de. Which languages a version carries as XML is the graph's answer — fedlex.list_expressions shows it before a read.
Hints: read-only yes · destructive not declared · idempotent not declared · open-world not declared
fedlex.citeread-onlyCite an element as its canonical Fundstelle («Art. 7 Abs. 1 Bst. b LSV») from eli_version and eId: use to label a read place in the Belegkette. norm.
Parameters:
eli_version(required) — string — Dated consolidation: `<abstract-eli>/<YYYYMMDD>`.eid(required) — string — The place to label: an eId such as «art_7/para_1/lbl_b», «art_23_a» or «annex_3/lvl_u1».lang— ['string', 'null'] — Label language (de|fr|it|en|rm) — the manifestation read and the abbreviation used; default de.
Hints: read-only yes · destructive not declared · idempotent not declared · open-world not declared
fedlex.compare_versionsread-onlyCompare an element or every article between two Fassungen of an act — added, removed, changed paragraphs with wording: use for «was hat sich geändert?». norm.
Parameters:
eli(required) — string — Fedlex ELI of the act (consolidation abstract).from_version(required) — string — The older consolidation: a version IRI or a date (YYYY-MM-DD / YYYYMMDD).to_version(required) — string — The newer consolidation: a version IRI or a date.eid— ['string', 'null'] — Optional scope: one element (article or path eId); default every article.lang— ['string', 'null'] — Manifestation language (de|fr|it|en|rm); default de. Which languages a version carries as XML is the graph's answer — fedlex.list_expressions shows it before a read.
Hints: read-only yes · destructive not declared · idempotent not declared · open-world not declared
fedlex.detect_foreign_contentread-onlyDetect what the text tools hide in a Fassung: sections in another language (xml:lang) and <foreign> islands (formulas, graphics): use before quoting. norm.
Parameters:
eli_version(required) — string — Dated consolidation: `<abstract-eli>/<YYYYMMDD>`.lang— ['string', 'null'] — Manifestation language (de|fr|it|en|rm); default de. Which languages a version carries as XML is the graph's answer — fedlex.list_expressions shows it before a read.
Hints: read-only yes · destructive not declared · idempotent not declared · open-world not declared
fedlex.explore_noderead-onlyExplore a JOLux node's edges (predicates and neighbours, both directions, capped): use to debug what the graph holds about an IRI; never as proof. hint.
Parameters:
iri(required) — string — Any Fedlex IRI (https://fedlex.data.admin.ch/…).limit— ['integer', 'null'] — Edges per direction (default 20, at most 50).
Hints: read-only yes · destructive not declared · idempotent not declared · open-world not declared
fedlex.extract_tablesread-onlyExtract the tables of a consolidation or of one element (annex limit values, tariffs) as header and rows: use when a norm is a table, not prose. norm.
Parameters:
eli_version(required) — string — Dated consolidation: `<abstract-eli>/<YYYYMMDD>`.eid— ['string', 'null'] — Optional scope: an eId (an annex level such as «annex_3/lvl_u1/lvl_2», an article).lang— ['string', 'null'] — Manifestation language (de|fr|it|en|rm); default de. Which languages a version carries as XML is the graph's answer — fedlex.list_expressions shows it before a read.
Hints: read-only yes · destructive not declared · idempotent not declared · open-world not declared
fedlex.find_related_topicread-onlyFind acts in the same field of law via the legal taxonomy, by ELI or SR: use to discover neighbouring Erlasse; candidates only. hint.
Parameters:
sr— ['string', 'null'] — SR number as an alternative entry, e.g. «832.10».eli— ['string', 'null'] — Fedlex ELI of the act — or give `sr`.limit— ['integer', 'null'] — Max candidates (default 20, at most 50).
Hints: read-only yes · destructive not declared · idempotent not declared · open-world not declared
fedlex.find_treatiesread-onlyFind treaty processes (Staatsverträge) by a title word, partner country IRI or bilaterality: use to locate a treaty before get_treaty_info. hint.
Parameters:
limit— ['integer', 'null'] — Max hits (default 20, at most 50).query— ['string', 'null'] — A word of the treaty title (case-insensitive).country— ['string', 'null'] — Partner country as a Fedlex country vocabulary IRI.bilateral— ['boolean', 'null'] — true = bilateral only, false = multilateral only.
Hints: read-only yes · destructive not declared · idempotent not declared · open-world not declared
fedlex.get_article_historyread-onlyTrace which amendments and consolidations changed one Artikel (eId) of an act, with dates: use for «seit wann gilt Art. X so?». norm.
Parameters:
eli(required) — string — Fedlex ELI of the consolidation abstract.eid(required) — string — Akoma-Ntoso eId of the element, e.g. «art_14a» or «art_2/para_1».
Hints: read-only yes · destructive not declared · idempotent not declared · open-world not declared
fedlex.get_citationsread-onlyList an act's relations: cites|cited_by (formal citations, act level) or in|out (foreseen impacts, mostly consultation drafts): use to see who cites X. norm.
Parameters:
eli(required) — stringdirection(required) — string — «in» | «out» (the foreseen-impact graph) or «cites» | «cited_by» (the formal citation graph, act level).
Hints: read-only yes · destructive not declared · idempotent not declared · open-world not declared
fedlex.get_consultation_documentsread-onlyList the position statements and result reports of one consultation IRI: use after get_consultations to read the genesis record. norm.
Parameters:
consultation(required) — string — The consultation IRI (from get_consultations).
Hints: read-only yes · destructive not declared · idempotent not declared · open-world not declared
fedlex.get_consultationsread-onlyList the consultations (Vernehmlassungen) of an act's drafts or of one draft, with status and dates: use for the genesis, never for law in force. hint.
Parameters:
eli— ['string', 'null'] — Fedlex ELI of the act — its drafts are resolved first (at most five).draft— ['string', 'null'] — Or a draft IRI (from get_drafts).limit— ['integer', 'null'] — Max consultations (default 20, at most 50).status— ['string', 'null'] — Optional status filter: the consultation-status IRI or its last segment.
Hints: read-only yes · destructive not declared · idempotent not declared · open-world not declared
fedlex.get_draftsread-onlyList the legislative drafts (Entwürfe, eli/proj) an act came from, with the Curia Vista number: use as the entry to consultations and materials. norm.
Parameters:
eli(required) — string — Fedlex ELI of the consolidation abstract.
Hints: read-only yes · destructive not declared · idempotent not declared · open-world not declared
fedlex.get_fga_documentsread-onlyList the Federal Gazette (BBl) documents of an act's genesis — Botschaft, reports — with genre and date: use for materials, never for law in force. norm.
Parameters:
eli(required) — string — Fedlex ELI of the consolidation abstract.
Hints: read-only yes · destructive not declared · idempotent not declared · open-world not declared
fedlex.get_law_metadataread-onlyRead the JOLux profile of an act (titles de/fr/it, status, dates, identifier) for an ELI: use to confirm a search hit before you cite. norm.
Parameters:
eli(required) — stringas_of— ['string', 'null'] — Optional ISO date; absent = today, echoed back resolved.
Hints: read-only yes · destructive not declared · idempotent not declared · open-world not declared
fedlex.get_memorialread-onlyList the AS/BBl issue (memorial) an oc publication appeared in and the acts of that issue: use after get_oc_act to locate the volume. norm.
Parameters:
eli(required) — string — The AS publication ELI (https://fedlex.data.admin.ch/eli/oc/…), from get_oc_act.limit— ['integer', 'null'] — Max acts of the issue (default 20, at most 50).
Hints: read-only yes · destructive not declared · idempotent not declared · open-world not declared
fedlex.get_modificationsread-onlyList the amendment notes («Fassung gemäss …», AS refs) per element of a consolidation: use for «wann und wodurch wurde Art. X geändert?». norm.
Parameters:
eli_version(required) — string — Dated consolidation: `<abstract-eli>/<YYYYMMDD>`.eid— ['string', 'null'] — Optional scope: only notes anchored at this eId or below.lang— ['string', 'null'] — Manifestation language (de|fr|it|en|rm); default de. Which languages a version carries as XML is the graph's answer — fedlex.list_expressions shows it before a read.
Hints: read-only yes · destructive not declared · idempotent not declared · open-world not declared
fedlex.get_oc_actread-onlyResolve an act's binding AS/RO publication (oc ELI, date, genre, office, memorial) from its consolidation ELI: use to cite the Amtliche Sammlung. norm.
Parameters:
eli(required) — string — Fedlex ELI of the consolidation abstract.
Hints: read-only yes · destructive not declared · idempotent not declared · open-world not declared
fedlex.get_referencesread-onlyList the references (Verweise) an act's text makes, with ELI where linked, optionally within one eId: use to follow cross-references. hint.
Parameters:
eli_version(required) — string — Dated consolidation: `<abstract-eli>/<YYYYMMDD>`.eid— ['string', 'null'] — Optional scope: only references made from this eId or below.lang— ['string', 'null'] — Manifestation language (de|fr|it|en|rm); default de. Which languages a version carries as XML is the graph's answer — fedlex.list_expressions shows it before a read.limit— ['integer', 'null'] — Page size (default 200, at most 1000).offset— ['integer', 'null'] — Continuation: the `next_offset` of the previous answer.
Hints: read-only yes · destructive not declared · idempotent not declared · open-world not declared
fedlex.get_structureread-onlyOutline one consolidation (sections, articles with eId, num and heading): use when you know the act but not the article number. norm.
Parameters:
eli_version(required) — string — Dated consolidation: `<abstract-eli>/<YYYYMMDD>`.lang— ['string', 'null'] — Manifestation language (de|fr|it|en|rm); default de. Which languages a version carries as XML is the graph's answer — fedlex.list_expressions shows it before a read.depth— ['string', 'null'] — «article» (default: the skeleton down to articles) or «full» (the whole tree down to paragraphs and items).
Hints: read-only yes · destructive not declared · idempotent not declared · open-world not declared
fedlex.get_subdivisionsread-onlyList the subdivisions JOLux knows for an act (amended elements only, a gap catalogue): use to see which Artikel carry amendments; outline: get_structure. norm.
Parameters:
eli(required) — string — Fedlex ELI of the consolidation abstract.
Hints: read-only yes · destructive not declared · idempotent not declared · open-world not declared
fedlex.get_taxonomyread-onlyClassify an act in the systematic collection (SR branch chain, notation, labels de/fr/it): use for «zu welchem Rechtsgebiet gehört X?». norm.
Parameters:
eli(required) — string — Fedlex ELI of the consolidation abstract.
Hints: read-only yes · destructive not declared · idempotent not declared · open-world not declared
fedlex.get_treaty_inforead-onlyRead a treaty process profile (title, signature, bilateral, partner countries, approving decree) for an eli/treaty IRI: use after find_treaties. norm.
Parameters:
eli(required) — string — The treaty process IRI (https://fedlex.data.admin.ch/eli/treaty/…), from find_treaties.lang— ['string', 'null'] — Preferred title language (de|fr|it|en|rm); default de.
Hints: read-only yes · destructive not declared · idempotent not declared · open-world not declared
fedlex.list_annexesread-onlyList the annexes (Anhänge) of a consolidation with titles and path eIds (annex_u1/…): use before reading an Anhang with read_article. norm.
Parameters:
eli_version(required) — string — Dated consolidation: `<abstract-eli>/<YYYYMMDD>`.lang— ['string', 'null'] — Manifestation language (de|fr|it|en|rm); default de. Which languages a version carries as XML is the graph's answer — fedlex.list_expressions shows it before a read.
Hints: read-only yes · destructive not declared · idempotent not declared · open-world not declared
fedlex.list_expressionsread-onlyList the language versions and manifestations (XML, PDF) of one consolidation: use before reading to see whether a Fassung is PDF-only. norm.
Parameters:
eli_version(required) — string — Dated consolidation: `<abstract-eli>/<YYYYMMDD>`.
Hints: read-only yes · destructive not declared · idempotent not declared · open-world not declared
fedlex.list_versionsread-onlyList every dated consolidation (Fassung) of an act, future ones included: use to pick the eli_version the reading tools need. norm.
Parameters:
eli(required) — string — Fedlex ELI of the consolidation abstract.
Hints: read-only yes · destructive not declared · idempotent not declared · open-world not declared
fedlex.parse_referenceread-onlyParse a citation («Art. 7 Abs. 1 lit. b LSV») into act, article eId and path proposal: use to turn a quoted Fundstelle into what read_article can open. hint.
Parameters:
text(required) — string — A citation in plain text, e.g. «Art. 7 Abs. 1 lit. b LSV», «Anhang 3 Ziff. 2 LSV», «Art. 8 EMRK i.V.m. Art. 36 BV», «SR 832.10».
Hints: read-only yes · destructive not declared · idempotent not declared · open-world not declared
fedlex.read_articleread-onlyRead one element (Artikel, Absatz, Anhang) of a dated consolidation by eId, e.g. art_6 or annex_u1/lvl_u1: use to quote a norm. norm.
Parameters:
eli_version(required) — string — Dated consolidation: `<abstract-eli>/<YYYYMMDD>`.eid(required) — string — Akoma-Ntoso eId, e.g. «art_10a», or a path eId such as «art_2/para_1» or «annex_u1/lvl_u1».lang— ['string', 'null'] — Manifestation language (de|fr|it|en|rm); default de. Which languages a version carries as XML is the graph's answer — fedlex.list_expressions shows it before a read.
Hints: read-only yes · destructive not declared · idempotent not declared · open-world not declared
fedlex.read_documentread-onlyRead a whole small act or Verordnung as capped Markdown (truncated flag, continuation offset): use for short acts; quote via read_article. norm.
Parameters:
eli_version(required) — string — Dated consolidation: `<abstract-eli>/<YYYYMMDD>`.lang— ['string', 'null'] — Manifestation language (de|fr|it|en|rm); default de. Which languages a version carries as XML is the graph's answer — fedlex.list_expressions shows it before a read.offset— ['integer', 'null'] — Continuation: the `next_offset` of the previous answer.max_chars— ['integer', 'null'] — Character budget (default 120 000, at most 400 000).
Hints: read-only yes · destructive not declared · idempotent not declared · open-world not declared
fedlex.resolve_consolidation_atread-onlyResolve which consolidation (Fassung) of an act governed on an ISO date: use before reading text for a past or future Stichtag. norm.
Parameters:
eli(required) — stringas_of(required) — string — ISO date YYYY-MM-DD.
Hints: read-only yes · destructive not declared · idempotent not declared · open-world not declared
fedlex.resolve_srread-onlyResolve an SR number (e.g. 832.10) to the act's ELI, titles and in-force status: use when a question names an SR; predecessors stay visible. norm.
Parameters:
sr(required) — string — Systematic (SR) number, e.g. «832.10».
Hints: read-only yes · destructive not declared · idempotent not declared · open-world not declared
fedlex.resolve_vocabulary_labelread-onlyLook up a Fedlex vocabulary term (enforcement-status, language, …) by label or IRI: use to decode a coded value from another answer. hint.
Parameters:
vocabulary(required) — string — Scheme id: «enforcement-status», «subdivision-type», «legal-taxonomy», «impact-type», «resource-type», «language», …query(required) — string — A label fragment (case-insensitive, any language) or a vocabulary IRI to decode.lang— ['string', 'null'] — Label language (de|fr|it|en|rm); default de.
Hints: read-only yes · destructive not declared · idempotent not declared · open-world not declared
fedlex.search_lawread-onlySearch acts by title keyword or official abbreviation (KVG, StPO, OR): use when you know the name but not the SR or ELI; in-force acts rank first. hint.
Parameters:
query(required) — stringlimit— ['integer', 'null']
Hints: read-only yes · destructive not declared · idempotent not declared · open-world not declared
fedlex.search_textread-onlyFind where a word occurs inside ONE consolidation (hits with eId and Artikel): use before read_article when the article is unknown. hint.
Parameters:
eli_version(required) — string — Dated consolidation: `<abstract-eli>/<YYYYMMDD>`.query(required) — string — Word or phrase; case-insensitive substring.lang— ['string', 'null'] — Manifestation language (de|fr|it|en|rm); default de. Which languages a version carries as XML is the graph's answer — fedlex.list_expressions shows it before a read.limit— ['integer', 'null'] — Max hits (default 20, at most 100); `total` counts beyond it.
Hints: read-only yes · destructive not declared · idempotent not declared · open-world not declared
i14y.api_statusread-onlyCheck whether the I14Y catalogue answers, register by register, so «no data» and «source down» stay apart: use before retrying a failed call. norm.
Hints: read-only yes · destructive not declared · idempotent not declared · open-world not declared
i14y.get_conceptread-onlyShow one concept's record — type, value type, version, validity (Konzept, Codeliste): use before reading a code list's entries. norm.
Parameters:
concept_id(required) — string — The concept's `id` from `i14y.list_concepts`.lang— ['string', 'null']
Hints: read-only yes · destructive not declared · idempotent not declared · open-world not declared
i14y.get_data_serviceread-onlyShow one registered interface's record — endpoints, OpenAPI links, licence, served datasets (API, Endpunkt): use to reach the service. norm.
Parameters:
data_service_id(required) — string — The service's `id` from `i14y.list_data_services`.lang— ['string', 'null']
Hints: read-only yes · destructive not declared · idempotent not declared · open-world not declared
i14y.get_datasetread-onlyShow one dataset's full record — contact, coverage, every distribution with its licence and download address (Lizenz, Download): use before reuse. norm.
Parameters:
dataset_id(required) — string — The record's `id` as a hit or a list row carries it — a GUID, never the publisher's `identifier`.lang— ['string', 'null']
Hints: read-only yes · destructive not declared · idempotent not declared · open-world not declared
i14y.get_dataset_distributionsread-onlyList a dataset's distributions — format, licence, download and access address (Datei, Lizenz, Format): use for «where do I get the data». norm.
Parameters:
dataset_id(required) — string — The record's `id` as a hit or a list row carries it — a GUID, never the publisher's `identifier`.lang— ['string', 'null']
Hints: read-only yes · destructive not declared · idempotent not declared · open-world not declared
i14y.list_catalogsread-onlyList the catalogues that feed I14Y, each one body's collection (Katalog, opendata.swiss, Bundesamt): use to see who contributes. norm.
Parameters:
lang— ['string', 'null']page— ['integer', 'null']limit— ['integer', 'null'] — Catalogues per page, 1–100, default 50.
Hints: read-only yes · destructive not declared · idempotent not declared · open-world not declared
i14y.list_conceptsread-onlyList the harmonised concepts and code lists of the administration (Konzept, Codeliste, Nomenklatur, Merkmal): use to find a code list by publisher. norm.
Parameters:
lang— ['string', 'null']page— ['integer', 'null']limit— ['integer', 'null']publisher— ['string', 'null']registration_status— ['string', 'null']
Hints: read-only yes · destructive not declared · idempotent not declared · open-world not declared
i14y.list_data_servicesread-onlyList the registered machine interfaces of Swiss public bodies with their endpoints (API, Schnittstelle, Datendienst): use before building a scraper. norm.
Parameters:
lang— ['string', 'null']page— ['integer', 'null']limit— ['integer', 'null']publisher— ['string', 'null']access_rights— ['string', 'null']registration_status— ['string', 'null']
Hints: read-only yes · destructive not declared · idempotent not declared · open-world not declared
i14y.list_datasetsread-onlyList the registered datasets, paged, with publisher, themes and access right (Datensätze, Metadaten, Open Data): use for a census or a publisher's list. norm.
Parameters:
lang— ['string', 'null'] — Label language (de|fr|it|en|rm); default de.page— ['integer', 'null'] — 1-based page, default 1.limit— ['integer', 'null'] — Records per page, 1–100, default 25.publisher— ['string', 'null'] — Publisher code («CH_BAZG»), from `i14y.list_publishers`.access_rights— ['string', 'null'] — PUBLIC | RESTRICTED | NON_PUBLIC | CONFIDENTIAL. A listing is metadata, never a grant of access.registration_status— ['string', 'null'] — One of the eight: Incomplete, Candidate, Recorded, Qualified, Standard, PreferredStandard, Superseded, Retired.
Hints: read-only yes · destructive not declared · idempotent not declared · open-world not declared
i14y.list_public_servicesread-onlyList the registered public services with their channels (Behördenleistung, Dienstleistung, Verwaltung): use for what an authority offers citizens. norm.
Parameters:
lang— ['string', 'null']page— ['integer', 'null']limit— ['integer', 'null']publisher— ['string', 'null']registration_status— ['string', 'null']
Hints: read-only yes · destructive not declared · idempotent not declared · open-world not declared
i14y.list_publishersread-onlyList the bodies that publish into I14Y with identifier and Swiss UID (Herausgeber, Bundesamt, Kanton, UID): use to find a publisher's code for a filter. norm.
Parameters:
uid— ['string', 'null'] — Exact Swiss UID as the register writes it («CHE116244755»).lang— ['string', 'null']page— ['integer', 'null']limit— ['integer', 'null'] — Publishers per page, 1–100, default 50.identifier— ['string', 'null'] — Exact publisher code («CH_BAZG»).
Hints: read-only yes · destructive not declared · idempotent not declared · open-world not declared
i14y.search_catalogread-onlySearch the national data catalogue I14Y by words (Datensatz, Schnittstelle, API, Behördenleistung, Codeliste): use first, to find who publishes what. hint.
Parameters:
query(required) — string — Free text, e.g. «Sonderpädagogik», «Zoll», «API»; empty lists the whole index one page at a time. Matched in `lang`.lang— ['string', 'null'] — The language searched AND served (de|fr|it|en|rm); default de.page— ['integer', 'null'] — 1-based page, default 1.limit— ['integer', 'null'] — Hits per page, 1–100, default 25.types— ['array', 'null'] — Restrict to resource types: Dataset | DataService | PublicService | Concept | MappingTable. Each of them answers.themes— ['array', 'null'] — Theme CODES as a hit carries them under `themes[].code` («103» is Bildung) — never a word.publishers— ['array', 'null'] — Publisher CODES — the `identifier` `i14y.list_publishers` serves («CH1» is the Federal Statistical Office) — never a name.
Hints: read-only yes · destructive not declared · idempotent not declared · open-world not declared
i14y.search_codelist_entriesread-onlyList the codes of one code-list concept, paged, with names and validity (Code, Codeliste, Kanton, Geschlecht, Nomenklatur): use to resolve official codes. norm.
Parameters:
concept_id(required) — string — The `id` of a concept whose `concept_type` is CodeList.lang— ['string', 'null'] — The language matched and served (de|fr|it|en|rm); default de.page— ['integer', 'null']limit— ['integer', 'null'] — Entries per page, 1–200, default 50.query— ['string', 'null'] — A word of an entry's name, `*` for any characters; absent = every entry. Matched in `lang` only.
Hints: read-only yes · destructive not declared · idempotent not declared · open-world not declared
lindas.describeread-onlyShow everything the holding says about one IRI (a cube, an observation, a Kanton): use to follow an address you were handed. norm.
Parameters:
iri(required) — string — Any IRI — the store is asked about it; no host is fetched.lang— ['string', 'null']limit— ['integer', 'null']offset— ['integer', 'null']
Hints: read-only yes · destructive not declared · idempotent not declared · open-world not declared
lindas.describe_cuberead-onlyShow a cube's declared dimensions and profile — the record may carry more: use to learn the filters a question needs. hint.
Parameters:
cube(required) — string — A cube IRI of the served scope, e.g. `https://politics.ld.admin.ch/political-rights/popular-vote/1`.lang— ['string', 'null']limit— ['integer', 'null']offset— ['integer', 'null']
Hints: read-only yes · destructive not declared · idempotent not declared · open-world not declared
lindas.dimension_valuesread-onlyList the values one dimension takes (Kantone, Abstimmungstypen, Geschäftsstände): use to filter by IRI instead of by text. hint.
Parameters:
cube(required) — stringdimension(required) — string — The dimension IRI as `lindas.describe_cube` served it — never built by appending to the cube IRI.lang— ['string', 'null']limit— ['integer', 'null']
Hints: read-only yes · destructive not declared · idempotent not declared · open-world not declared
lindas.find_cuberead-onlyFind the cube behind a question by a word of its name («Volksinitiative», «Petition», «Parteienregister»): use before reading rows. hint.
Parameters:
query(required) — string — A word of the cube's name, 2–100 characters («Abstimmung», «Interessenbindung»).lang— ['string', 'null']limit— ['integer', 'null']
Hints: read-only yes · destructive not declared · idempotent not declared · open-world not declared
lindas.list_cubesread-onlyList the 44 political data cubes of the Confederation (Abstimmungen, Wahlen, Bundesrat, Interessenbindungen): use to see what data exists. norm.
Parameters:
lang— ['string', 'null'] — Label language (de|fr|it|en|rm); default de. The answer names the language it served, and «und» where a name carries no tag.limit— ['integer', 'null']family— ['string', 'null'] — One of `fc`, `fch/apg`, `national-council-election`, `political-rights`; absent = all 44.offset— ['integer', 'null']
Hints: read-only yes · destructive not declared · idempotent not declared · open-world not declared
lindas.list_versionsread-onlyList the versions of a cube family (Nationalratswahl 2019/2023/2027): use before reading a year; nothing links old to new. norm.
Parameters:
cube(required) — string — Any version of the family, e.g. `…/national-council-election/candidates/2019`.
Hints: read-only yes · destructive not declared · idempotent not declared · open-world not declared
lindas.observationsread-onlyRead a cube's rows with filters (Abstimmung, Referendum, Volksinitiative, Ständemehr, Kanton, Datum): use for the figures themselves. norm.
Parameters:
cube(required) — stringlang— ['string', 'null']limit— ['integer', 'null']offset— ['integer', 'null']filters— ['array', 'null'] — Filters, one per entry: the object `{dimension, value}` — `{"dimension": "https://politics.ld.admin.ch/political-rights/popular-vote/date", "value": "1971-02-07"}` — or, equally accepted, the string `dimension=value`. The dimension is the full IRI `lindas.describe_cube` served, the value an IRI or a plain literal. A dimension the shape does not declare is admitted when the cube's observations carry it, and the answer says so.dimensions— ['array', 'null'] — The dimension IRIs to project — the cells a row comes back with. Absent = every cell the row carries, which is up to 51 in the vote cube; naming the three or four a question needs is one call instead of paging the same table at a smaller limit.
Hints: read-only yes · destructive not declared · idempotent not declared · open-world not declared
lindas.resolve_labelread-onlyResolve an IRI to its label in one language with a fallback (Kanton, Partei, Gremium, Interessenbindung): use to name a value. hint.
Parameters:
iri(required) — string — Any IRI, of any host (canton, country, legal form, gender).lang— ['string', 'null']
Hints: read-only yes · destructive not declared · idempotent not declared · open-world not declared
manifest.getread-onlyOne entry's manifest by slug. A slug the directory does not hold is a not-found error carrying the E21 admission rule.
Parameters:
slug(required) — string — Entry slug (filename = @id slug, oh-validate-enforced).
Hints: read-only yes · destructive not declared · idempotent not declared · open-world not declared
meta.capabilitiesread-onlyThe platform capability register with published per-client coverage — tool names on this server ARE the capability ids.
Hints: read-only yes · destructive not declared · idempotent not declared · open-world not declared
meta.schemasread-onlyStage two of two-stage discovery: the full input schemas of the named tools, byte-identical to what tools/list carries, because both are read from the same router. An unknown id is refused by name rather than silently dropped.
Parameters:
names(required) — array — The capability ids whose input schemas are wanted, as stage one listed them.
Hints: read-only yes · destructive not declared · idempotent not declared · open-world not declared
meta.toolsread-onlyStage one of two-stage discovery: every mounted tool with its capability id, domain, one-line summary and budget weight — and NO input schemas. Ask this first to learn what exists, then pull the schemas of the few tools you intend to call (meta.schemas). Context economy as a capability, not a client convention (E16 Ziff. 1).
Hints: read-only yes · destructive not declared · idempotent not declared · open-world not declared
publish.inforead-onlyThe publishing path — the only way into the directory: the three E21/E13 routes plus the honest interim state.
Hints: read-only yes · destructive not declared · idempotent not declared · open-world not declared
standard.artifactsread-onlyThe manifest standard's sealed artifact register: path, canonical IRI, draft/published status and SHA-256 per contract file.
Hints: read-only yes · destructive not declared · idempotent not declared · open-world not declared
Measured by MCPYP probing. Untested fields are omitted, never estimated. Listing is always free; MCPYP never proxies calls or stores user tokens.