{"name":"swiss.openhelvetia/gateway","slug":"openhelvetia-gateway","title":"OpenHelvetia Gateway","description":"Swiss federal law (Fedlex) and political data (LINDAS) for agents, every answer with sources","url":"https://mcp.market/server/openhelvetia-gateway","rating":null,"grade":"C","score":60,"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-20T19:01:50.172Z","last_ok_at":"2026-09-20T19:01:50.172Z","latency_ms":2310},"claimed":false,"transport":"remote","callable_via_gateway":true,"default_price_micros":0,"repository":null,"website":"https://openhelvetia.swiss","version":"0.1.0","remotes":[{"type":"streamable-http","url":"https://mcp.openhelvetia.swiss/mcp"}],"packages":[],"tools":[{"name":"directory.get","description":"The 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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{}}},{"name":"facts.badge","description":"shields.io endpoint JSON for one subject, derived from the fact table — «no facts» in grey when nothing is recorded, never rounded up.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"domain":{"type":"string"},"subject":{"description":"Subject key (e.g. «slug#0»).","type":"string"}},"required":["domain","subject"],"$schema":"https://json-schema.org/draft/2020-12/schema"}},{"name":"facts.latest","description":"Latest 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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"as_of":{"description":"Optional bitemporal cutoff (RFC 3339).","type":["string","null"]},"domain":{"description":"Measured domain («checker», «benchmark»).","type":"string"}},"required":["domain"],"$schema":"https://json-schema.org/draft/2020-12/schema"}},{"name":"fedlex.check_in_force","description":"Check whether an act was in force on a date; false is a valid answer, never an error: use for «gilt das noch?» questions. norm.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"as_of":{"description":"ISO date YYYY-MM-DD.","type":"string"},"eli":{"type":"string"}},"required":["eli","as_of"],"$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false}},{"name":"fedlex.check_quote","description":"Check a quote (Zitat) against the norm text of one element: use before citing, to prove the wording is in what was read (Belegkette). norm.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"eid":{"description":"The element that was read: an eId such as «art_6» or a path eId\nsuch as «art_6/para_1» or «annex_3/lvl_u1/lvl_2».","type":"string"},"eli_version":{"description":"Dated consolidation: `<abstract-eli>/<YYYYMMDD>` — the version that was read.","type":"string"},"lang":{"description":"Manifestation language (de|fr|it|en|rm); default de. Which\nlanguages a version carries as XML is the graph's answer —\nfedlex.list_expressions shows it before a read.","type":["string","null"]},"quote":{"description":"The wording to check, verbatim; «…» or «[...]» marks an omission\n(each part must occur, in order).","type":"string"}},"required":["eli_version","eid","quote"],"$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false}},{"name":"fedlex.cite","description":"Cite 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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"eid":{"description":"The place to label: an eId such as «art_7/para_1/lbl_b», «art_23_a»\nor «annex_3/lvl_u1».","type":"string"},"eli_version":{"description":"Dated consolidation: `<abstract-eli>/<YYYYMMDD>`.","type":"string"},"lang":{"description":"Label language (de|fr|it|en|rm) — the manifestation read and the\nabbreviation used; default de.","type":["string","null"]}},"required":["eli_version","eid"],"$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false}},{"name":"fedlex.compare_versions","description":"Compare 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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"eid":{"description":"Optional scope: one element (article or path eId); default every article.","type":["string","null"]},"eli":{"description":"Fedlex ELI of the act (consolidation abstract).","type":"string"},"from_version":{"description":"The older consolidation: a version IRI or a date (YYYY-MM-DD / YYYYMMDD).","type":"string"},"lang":{"description":"Manifestation language (de|fr|it|en|rm); default de. Which\nlanguages a version carries as XML is the graph's answer —\nfedlex.list_expressions shows it before a read.","type":["string","null"]},"to_version":{"description":"The newer consolidation: a version IRI or a date.","type":"string"}},"required":["eli","from_version","to_version"],"$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false}},{"name":"fedlex.detect_foreign_content","description":"Detect what the text tools hide in a Fassung: sections in another language (xml:lang) and <foreign> islands (formulas, graphics): use before quoting. norm.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"eli_version":{"description":"Dated consolidation: `<abstract-eli>/<YYYYMMDD>`.","type":"string"},"lang":{"description":"Manifestation language (de|fr|it|en|rm); default de. Which\nlanguages a version carries as XML is the graph's answer —\nfedlex.list_expressions shows it before a read.","type":["string","null"]}},"required":["eli_version"],"$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false}},{"name":"fedlex.explore_node","description":"Explore 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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"iri":{"description":"Any Fedlex IRI (https://fedlex.data.admin.ch/…).","type":"string"},"limit":{"description":"Edges per direction (default 20, at most 50).","format":"uint32","minimum":0,"type":["integer","null"]}},"required":["iri"],"$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false}},{"name":"fedlex.extract_tables","description":"Extract 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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"eid":{"description":"Optional scope: an eId (an annex level such as «annex_3/lvl_u1/lvl_2», an article).","type":["string","null"]},"eli_version":{"description":"Dated consolidation: `<abstract-eli>/<YYYYMMDD>`.","type":"string"},"lang":{"description":"Manifestation language (de|fr|it|en|rm); default de. Which\nlanguages a version carries as XML is the graph's answer —\nfedlex.list_expressions shows it before a read.","type":["string","null"]}},"required":["eli_version"],"$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false}},{"name":"fedlex.find_related_topic","description":"Find acts in the same field of law via the legal taxonomy, by ELI or SR: use to discover neighbouring Erlasse; candidates only. hint.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"eli":{"description":"Fedlex ELI of the act — or give `sr`.","type":["string","null"]},"limit":{"description":"Max candidates (default 20, at most 50).","format":"uint32","minimum":0,"type":["integer","null"]},"sr":{"description":"SR number as an alternative entry, e.g. «832.10».","type":["string","null"]}},"$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false}},{"name":"fedlex.find_treaties","description":"Find treaty processes (Staatsverträge) by a title word, partner country IRI or bilaterality: use to locate a treaty before get_treaty_info. hint.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"bilateral":{"description":"true = bilateral only, false = multilateral only.","type":["boolean","null"]},"country":{"description":"Partner country as a Fedlex country vocabulary IRI.","type":["string","null"]},"limit":{"description":"Max hits (default 20, at most 50).","format":"uint32","minimum":0,"type":["integer","null"]},"query":{"description":"A word of the treaty title (case-insensitive).","type":["string","null"]}},"$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false}},{"name":"fedlex.get_article_history","description":"Trace which amendments and consolidations changed one Artikel (eId) of an act, with dates: use for «seit wann gilt Art. X so?». norm.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"eid":{"description":"Akoma-Ntoso eId of the element, e.g. «art_14a» or «art_2/para_1».","type":"string"},"eli":{"description":"Fedlex ELI of the consolidation abstract.","type":"string"}},"required":["eli","eid"],"$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false}},{"name":"fedlex.get_citations","description":"List 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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"direction":{"description":"«in» | «out» (the foreseen-impact graph) or «cites» | «cited_by»\n(the formal citation graph, act level).","type":"string"},"eli":{"type":"string"}},"required":["eli","direction"],"$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false}},{"name":"fedlex.get_consultation_documents","description":"List the position statements and result reports of one consultation IRI: use after get_consultations to read the genesis record. norm.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"consultation":{"description":"The consultation IRI (from get_consultations).","type":"string"}},"required":["consultation"],"$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false}},{"name":"fedlex.get_consultations","description":"List 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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"draft":{"description":"Or a draft IRI (from get_drafts).","type":["string","null"]},"eli":{"description":"Fedlex ELI of the act — its drafts are resolved first (at most five).","type":["string","null"]},"limit":{"description":"Max consultations (default 20, at most 50).","format":"uint32","minimum":0,"type":["integer","null"]},"status":{"description":"Optional status filter: the consultation-status IRI or its last segment.","type":["string","null"]}},"$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false}},{"name":"fedlex.get_drafts","description":"List 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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"eli":{"description":"Fedlex ELI of the consolidation abstract.","type":"string"}},"required":["eli"],"$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false}},{"name":"fedlex.get_fga_documents","description":"List 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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"eli":{"description":"Fedlex ELI of the consolidation abstract.","type":"string"}},"required":["eli"],"$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false}},{"name":"fedlex.get_law_metadata","description":"Read 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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"as_of":{"description":"Optional ISO date; absent = today, echoed back resolved.","type":["string","null"]},"eli":{"type":"string"}},"required":["eli"],"$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false}},{"name":"fedlex.get_memorial","description":"List 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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"eli":{"description":"The AS publication ELI (https://fedlex.data.admin.ch/eli/oc/…), from get_oc_act.","type":"string"},"limit":{"description":"Max acts of the issue (default 20, at most 50).","format":"uint32","minimum":0,"type":["integer","null"]}},"required":["eli"],"$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false}},{"name":"fedlex.get_modifications","description":"List the amendment notes («Fassung gemäss …», AS refs) per element of a consolidation: use for «wann und wodurch wurde Art. X geändert?». norm.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"eid":{"description":"Optional scope: only notes anchored at this eId or below.","type":["string","null"]},"eli_version":{"description":"Dated consolidation: `<abstract-eli>/<YYYYMMDD>`.","type":"string"},"lang":{"description":"Manifestation language (de|fr|it|en|rm); default de. Which\nlanguages a version carries as XML is the graph's answer —\nfedlex.list_expressions shows it before a read.","type":["string","null"]}},"required":["eli_version"],"$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false}},{"name":"fedlex.get_oc_act","description":"Resolve an act's binding AS/RO publication (oc ELI, date, genre, office, memorial) from its consolidation ELI: use to cite the Amtliche Sammlung. norm.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"eli":{"description":"Fedlex ELI of the consolidation abstract.","type":"string"}},"required":["eli"],"$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false}},{"name":"fedlex.get_references","description":"List the references (Verweise) an act's text makes, with ELI where linked, optionally within one eId: use to follow cross-references. hint.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"eid":{"description":"Optional scope: only references made from this eId or below.","type":["string","null"]},"eli_version":{"description":"Dated consolidation: `<abstract-eli>/<YYYYMMDD>`.","type":"string"},"lang":{"description":"Manifestation language (de|fr|it|en|rm); default de. Which\nlanguages a version carries as XML is the graph's answer —\nfedlex.list_expressions shows it before a read.","type":["string","null"]},"limit":{"description":"Page size (default 200, at most 1000).","format":"uint32","minimum":0,"type":["integer","null"]},"offset":{"description":"Continuation: the `next_offset` of the previous answer.","format":"uint32","minimum":0,"type":["integer","null"]}},"required":["eli_version"],"$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false}},{"name":"fedlex.get_structure","description":"Outline one consolidation (sections, articles with eId, num and heading): use when you know the act but not the article number. norm.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"depth":{"description":"«article» (default: the skeleton down to articles) or «full»\n(the whole tree down to paragraphs and items).","type":["string","null"]},"eli_version":{"description":"Dated consolidation: `<abstract-eli>/<YYYYMMDD>`.","type":"string"},"lang":{"description":"Manifestation language (de|fr|it|en|rm); default de. Which\nlanguages a version carries as XML is the graph's answer —\nfedlex.list_expressions shows it before a read.","type":["string","null"]}},"required":["eli_version"],"$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false}},{"name":"fedlex.get_subdivisions","description":"List the subdivisions JOLux knows for an act (amended elements only, a gap catalogue): use to see which Artikel carry amendments; outline: get_structure. norm.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"eli":{"description":"Fedlex ELI of the consolidation abstract.","type":"string"}},"required":["eli"],"$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false}},{"name":"fedlex.get_taxonomy","description":"Classify an act in the systematic collection (SR branch chain, notation, labels de/fr/it): use for «zu welchem Rechtsgebiet gehört X?». norm.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"eli":{"description":"Fedlex ELI of the consolidation abstract.","type":"string"}},"required":["eli"],"$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false}},{"name":"fedlex.get_treaty_info","description":"Read a treaty process profile (title, signature, bilateral, partner countries, approving decree) for an eli/treaty IRI: use after find_treaties. norm.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"eli":{"description":"The treaty process IRI (https://fedlex.data.admin.ch/eli/treaty/…), from find_treaties.","type":"string"},"lang":{"description":"Preferred title language (de|fr|it|en|rm); default de.","type":["string","null"]}},"required":["eli"],"$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false}},{"name":"fedlex.list_annexes","description":"List the annexes (Anhänge) of a consolidation with titles and path eIds (annex_u1/…): use before reading an Anhang with read_article. norm.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"eli_version":{"description":"Dated consolidation: `<abstract-eli>/<YYYYMMDD>`.","type":"string"},"lang":{"description":"Manifestation language (de|fr|it|en|rm); default de. Which\nlanguages a version carries as XML is the graph's answer —\nfedlex.list_expressions shows it before a read.","type":["string","null"]}},"required":["eli_version"],"$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false}},{"name":"fedlex.list_expressions","description":"List the language versions and manifestations (XML, PDF) of one consolidation: use before reading to see whether a Fassung is PDF-only. norm.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"eli_version":{"description":"Dated consolidation: `<abstract-eli>/<YYYYMMDD>`.","type":"string"}},"required":["eli_version"],"$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false}},{"name":"fedlex.list_versions","description":"List every dated consolidation (Fassung) of an act, future ones included: use to pick the eli_version the reading tools need. norm.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"eli":{"description":"Fedlex ELI of the consolidation abstract.","type":"string"}},"required":["eli"],"$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false}},{"name":"fedlex.parse_reference","description":"Parse 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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"text":{"description":"A citation in plain text, e.g. «Art. 7 Abs. 1 lit. b LSV», «Anhang 3\nZiff. 2 LSV», «Art. 8 EMRK i.V.m. Art. 36 BV», «SR 832.10».","type":"string"}},"required":["text"],"$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false}},{"name":"fedlex.read_article","description":"Read 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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"eid":{"description":"Akoma-Ntoso eId, e.g. «art_10a», or a path eId such as\n«art_2/para_1» or «annex_u1/lvl_u1».","type":"string"},"eli_version":{"description":"Dated consolidation: `<abstract-eli>/<YYYYMMDD>`.","type":"string"},"lang":{"description":"Manifestation language (de|fr|it|en|rm); default de. Which\nlanguages a version carries as XML is the graph's answer —\nfedlex.list_expressions shows it before a read.","type":["string","null"]}},"required":["eli_version","eid"],"$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false}},{"name":"fedlex.read_document","description":"Read a whole small act or Verordnung as capped Markdown (truncated flag, continuation offset): use for short acts; quote via read_article. norm.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"eli_version":{"description":"Dated consolidation: `<abstract-eli>/<YYYYMMDD>`.","type":"string"},"lang":{"description":"Manifestation language (de|fr|it|en|rm); default de. Which\nlanguages a version carries as XML is the graph's answer —\nfedlex.list_expressions shows it before a read.","type":["string","null"]},"max_chars":{"description":"Character budget (default 120 000, at most 400 000).","format":"uint32","minimum":0,"type":["integer","null"]},"offset":{"description":"Continuation: the `next_offset` of the previous answer.","format":"uint32","minimum":0,"type":["integer","null"]}},"required":["eli_version"],"$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false}},{"name":"fedlex.resolve_consolidation_at","description":"Resolve which consolidation (Fassung) of an act governed on an ISO date: use before reading text for a past or future Stichtag. norm.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"as_of":{"description":"ISO date YYYY-MM-DD.","type":"string"},"eli":{"type":"string"}},"required":["eli","as_of"],"$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false}},{"name":"fedlex.resolve_sr","description":"Resolve 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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"sr":{"description":"Systematic (SR) number, e.g. «832.10».","type":"string"}},"required":["sr"],"$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false}},{"name":"fedlex.resolve_vocabulary_label","description":"Look up a Fedlex vocabulary term (enforcement-status, language, …) by label or IRI: use to decode a coded value from another answer. hint.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"lang":{"description":"Label language (de|fr|it|en|rm); default de.","type":["string","null"]},"query":{"description":"A label fragment (case-insensitive, any language) or a\nvocabulary IRI to decode.","type":"string"},"vocabulary":{"description":"Scheme id: «enforcement-status», «subdivision-type»,\n«legal-taxonomy», «impact-type», «resource-type», «language», …","type":"string"}},"required":["vocabulary","query"],"$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false}},{"name":"fedlex.search_law","description":"Search 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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"limit":{"format":"uint32","minimum":0,"type":["integer","null"]},"query":{"type":"string"}},"required":["query"],"$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false}},{"name":"fedlex.search_text","description":"Find where a word occurs inside ONE consolidation (hits with eId and Artikel): use before read_article when the article is unknown. hint.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"eli_version":{"description":"Dated consolidation: `<abstract-eli>/<YYYYMMDD>`.","type":"string"},"lang":{"description":"Manifestation language (de|fr|it|en|rm); default de. Which\nlanguages a version carries as XML is the graph's answer —\nfedlex.list_expressions shows it before a read.","type":["string","null"]},"limit":{"description":"Max hits (default 20, at most 100); `total` counts beyond it.","format":"uint32","minimum":0,"type":["integer","null"]},"query":{"description":"Word or phrase; case-insensitive substring.","type":"string"}},"required":["eli_version","query"],"$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false}},{"name":"i14y.api_status","description":"Check whether the I14Y catalogue answers, register by register, so «no data» and «source down» stay apart: use before retrying a failed call. norm.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{}}},{"name":"i14y.get_concept","description":"Show one concept's record — type, value type, version, validity (Konzept, Codeliste): use before reading a code list's entries. norm.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"concept_id":{"description":"The concept's `id` from `i14y.list_concepts`.","type":"string"},"lang":{"type":["string","null"]}},"required":["concept_id"],"$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false}},{"name":"i14y.get_data_service","description":"Show one registered interface's record — endpoints, OpenAPI links, licence, served datasets (API, Endpunkt): use to reach the service. norm.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"data_service_id":{"description":"The service's `id` from `i14y.list_data_services`.","type":"string"},"lang":{"type":["string","null"]}},"required":["data_service_id"],"$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false}},{"name":"i14y.get_dataset","description":"Show one dataset's full record — contact, coverage, every distribution with its licence and download address (Lizenz, Download): use before reuse. norm.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"dataset_id":{"description":"The record's `id` as a hit or a list row carries it — a GUID,\nnever the publisher's `identifier`.","type":"string"},"lang":{"type":["string","null"]}},"required":["dataset_id"],"$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false}},{"name":"i14y.get_dataset_distributions","description":"List a dataset's distributions — format, licence, download and access address (Datei, Lizenz, Format): use for «where do I get the data». norm.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"dataset_id":{"description":"The record's `id` as a hit or a list row carries it — a GUID,\nnever the publisher's `identifier`.","type":"string"},"lang":{"type":["string","null"]}},"required":["dataset_id"],"$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false}},{"name":"i14y.list_catalogs","description":"List the catalogues that feed I14Y, each one body's collection (Katalog, opendata.swiss, Bundesamt): use to see who contributes. norm.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"lang":{"type":["string","null"]},"limit":{"description":"Catalogues per page, 1–100, default 50.","format":"uint32","minimum":0,"type":["integer","null"]},"page":{"format":"uint32","minimum":0,"type":["integer","null"]}},"$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false}},{"name":"i14y.list_concepts","description":"List the harmonised concepts and code lists of the administration (Konzept, Codeliste, Nomenklatur, Merkmal): use to find a code list by publisher. norm.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"lang":{"type":["string","null"]},"limit":{"format":"uint32","minimum":0,"type":["integer","null"]},"page":{"format":"uint32","minimum":0,"type":["integer","null"]},"publisher":{"type":["string","null"]},"registration_status":{"type":["string","null"]}},"$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false}},{"name":"i14y.list_data_services","description":"List the registered machine interfaces of Swiss public bodies with their endpoints (API, Schnittstelle, Datendienst): use before building a scraper. norm.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"access_rights":{"type":["string","null"]},"lang":{"type":["string","null"]},"limit":{"format":"uint32","minimum":0,"type":["integer","null"]},"page":{"format":"uint32","minimum":0,"type":["integer","null"]},"publisher":{"type":["string","null"]},"registration_status":{"type":["string","null"]}},"$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false}},{"name":"i14y.list_datasets","description":"List 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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"access_rights":{"description":"PUBLIC | RESTRICTED | NON_PUBLIC | CONFIDENTIAL. A listing is\nmetadata, never a grant of access.","type":["string","null"]},"lang":{"description":"Label language (de|fr|it|en|rm); default de.","type":["string","null"]},"limit":{"description":"Records per page, 1–100, default 25.","format":"uint32","minimum":0,"type":["integer","null"]},"page":{"description":"1-based page, default 1.","format":"uint32","minimum":0,"type":["integer","null"]},"publisher":{"description":"Publisher code («CH_BAZG»), from `i14y.list_publishers`.","type":["string","null"]},"registration_status":{"description":"One of the eight: Incomplete, Candidate, Recorded, Qualified,\nStandard, PreferredStandard, Superseded, Retired.","type":["string","null"]}},"$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false}},{"name":"i14y.list_public_services","description":"List the registered public services with their channels (Behördenleistung, Dienstleistung, Verwaltung): use for what an authority offers citizens. norm.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"lang":{"type":["string","null"]},"limit":{"format":"uint32","minimum":0,"type":["integer","null"]},"page":{"format":"uint32","minimum":0,"type":["integer","null"]},"publisher":{"type":["string","null"]},"registration_status":{"type":["string","null"]}},"$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false}},{"name":"i14y.list_publishers","description":"List 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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"identifier":{"description":"Exact publisher code («CH_BAZG»).","type":["string","null"]},"lang":{"type":["string","null"]},"limit":{"description":"Publishers per page, 1–100, default 50.","format":"uint32","minimum":0,"type":["integer","null"]},"page":{"format":"uint32","minimum":0,"type":["integer","null"]},"uid":{"description":"Exact Swiss UID as the register writes it («CHE116244755»).","type":["string","null"]}},"$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false}},{"name":"i14y.search_catalog","description":"Search the national data catalogue I14Y by words (Datensatz, Schnittstelle, API, Behördenleistung, Codeliste): use first, to find who publishes what. hint.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"lang":{"description":"The language searched AND served (de|fr|it|en|rm); default de.","type":["string","null"]},"limit":{"description":"Hits per page, 1–100, default 25.","format":"uint32","minimum":0,"type":["integer","null"]},"page":{"description":"1-based page, default 1.","format":"uint32","minimum":0,"type":["integer","null"]},"publishers":{"description":"Publisher CODES — the `identifier` `i14y.list_publishers`\nserves («CH1» is the Federal Statistical Office) — never a name.","items":{"type":"string"},"type":["array","null"]},"query":{"description":"Free text, e.g. «Sonderpädagogik», «Zoll», «API»; empty lists\nthe whole index one page at a time. Matched in `lang`.","type":"string"},"themes":{"description":"Theme CODES as a hit carries them under `themes[].code`\n(«103» is Bildung) — never a word.","items":{"type":"string"},"type":["array","null"]},"types":{"description":"Restrict to resource types: Dataset | DataService |\nPublicService | Concept | MappingTable. Each of them answers.","items":{"type":"string"},"type":["array","null"]}},"required":["query"],"$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false}},{"name":"i14y.search_codelist_entries","description":"List the codes of one code-list concept, paged, with names and validity (Code, Codeliste, Kanton, Geschlecht, Nomenklatur): use to resolve official codes. norm.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"concept_id":{"description":"The `id` of a concept whose `concept_type` is CodeList.","type":"string"},"lang":{"description":"The language matched and served (de|fr|it|en|rm); default de.","type":["string","null"]},"limit":{"description":"Entries per page, 1–200, default 50.","format":"uint32","minimum":0,"type":["integer","null"]},"page":{"format":"uint32","minimum":0,"type":["integer","null"]},"query":{"description":"A word of an entry's name, `*` for any characters; absent =\nevery entry. Matched in `lang` only.","type":["string","null"]}},"required":["concept_id"],"$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false}},{"name":"lindas.describe","description":"Show everything the holding says about one IRI (a cube, an observation, a Kanton): use to follow an address you were handed. norm.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"iri":{"description":"Any IRI — the store is asked about it; no host is fetched.","type":"string"},"lang":{"type":["string","null"]},"limit":{"format":"uint32","minimum":0,"type":["integer","null"]},"offset":{"format":"uint32","minimum":0,"type":["integer","null"]}},"required":["iri"],"$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false}},{"name":"lindas.describe_cube","description":"Show a cube's declared dimensions and profile — the record may carry more: use to learn the filters a question needs. norm.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"cube":{"description":"A cube IRI of the served scope, e.g.\n`https://politics.ld.admin.ch/political-rights/popular-vote/1`.","type":"string"},"lang":{"type":["string","null"]},"limit":{"format":"uint32","minimum":0,"type":["integer","null"]},"offset":{"format":"uint32","minimum":0,"type":["integer","null"]}},"required":["cube"],"$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false}},{"name":"lindas.dimension_values","description":"List the values one dimension takes (Kantone, Abstimmungstypen, Geschäftsstände): use to filter by IRI instead of by text. hint.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"cube":{"type":"string"},"dimension":{"description":"The dimension IRI as `lindas.describe_cube` served it — never\nbuilt by appending to the cube IRI.","type":"string"},"lang":{"type":["string","null"]},"limit":{"format":"uint32","minimum":0,"type":["integer","null"]}},"required":["cube","dimension"],"$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false}},{"name":"lindas.find_cube","description":"Find the cube behind a question by a word of its name («Volksinitiative», «Petition», «Parteienregister»): use before reading rows. hint.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"lang":{"type":["string","null"]},"limit":{"format":"uint32","minimum":0,"type":["integer","null"]},"query":{"description":"A word of the cube's name, 2–100 characters\n(«Abstimmung», «Interessenbindung»).","type":"string"}},"required":["query"],"$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false}},{"name":"lindas.list_cubes","description":"List the 44 political data cubes of the Confederation (Abstimmungen, Wahlen, Bundesrat, Interessenbindungen): use to see what data exists. norm.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"family":{"description":"One of `fc`, `fch/apg`, `national-council-election`,\n`political-rights`; absent = all 44.","type":["string","null"]},"lang":{"description":"Label language (de|fr|it|en|rm); default de. The answer names\nthe language it served, and «und» where a name carries no tag.","type":["string","null"]},"limit":{"format":"uint32","minimum":0,"type":["integer","null"]},"offset":{"format":"uint32","minimum":0,"type":["integer","null"]}},"$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false}},{"name":"lindas.list_versions","description":"List the versions of a cube family (Nationalratswahl 2019/2023/2027): use before reading a year; nothing links old to new. norm.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"cube":{"description":"Any version of the family, e.g.\n`…/national-council-election/candidates/2019`.","type":"string"}},"required":["cube"],"$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false}},{"name":"lindas.observations","description":"Read a cube's rows with filters (Abstimmung, Referendum, Volksinitiative, Ständemehr, Kanton, Datum): use for the figures themselves. norm.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"cube":{"type":"string"},"dimensions":{"description":"The dimension IRIs to project — the cells a row comes back\nwith. Absent = every cell the row carries, which is up to 51 in\nthe vote cube; naming the three or four a question needs is one\ncall instead of paging the same table at a smaller limit.","items":{"type":"string"},"type":["array","null"]},"filters":{"description":"Filters, ONE STRING per filter in the form `dimension=value` —\n`https://politics.ld.admin.ch/political-rights/popular-vote/date=1971-02-07`\n— never an object. The dimension is the full IRI\n`lindas.describe_cube` served, the value an IRI or a plain\nliteral. A dimension the shape does not declare is admitted\nwhen the cube's observations carry it, and the answer says so.","items":{"type":"string"},"type":["array","null"]},"lang":{"type":["string","null"]},"limit":{"format":"uint32","minimum":0,"type":["integer","null"]},"offset":{"format":"uint32","minimum":0,"type":["integer","null"]}},"required":["cube"],"$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false}},{"name":"lindas.resolve_label","description":"Resolve an IRI to its label in one language with a fallback (Kanton, Partei, Gremium, Interessenbindung): use to name a value. hint.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"iri":{"description":"Any IRI, of any host (canton, country, legal form, gender).","type":"string"},"lang":{"type":["string","null"]}},"required":["iri"],"$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false}},{"name":"manifest.get","description":"One entry's manifest by slug. While no entries exist the honest answer is a not-found error carrying the E21 admission rule.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"slug":{"description":"Entry slug (filename = @id slug, oh-validate-enforced).","type":"string"}},"required":["slug"],"$schema":"https://json-schema.org/draft/2020-12/schema"}},{"name":"meta.capabilities","description":"The platform capability register with published per-client coverage — tool names on this server ARE the capability ids.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{}}},{"name":"meta.schemas","description":"Stage 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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"names":{"description":"The capability ids whose input schemas are wanted, as stage one\nlisted them.","items":{"type":"string"},"type":"array"}},"required":["names"],"$schema":"https://json-schema.org/draft/2020-12/schema"}},{"name":"meta.tools","description":"Stage 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).","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{}}},{"name":"publish.info","description":"The publishing path — the only way into the directory: the three E21/E13 routes plus the honest interim state.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{}}},{"name":"standard.artifacts","description":"The manifest standard's sealed artifact register: path, canonical IRI, draft/published status and SHA-256 per contract file.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{}}}],"scan":{"score":60,"grade":"C","scanned_at":"2026-09-20T11:39:23.397Z","report":{"scannerVersion":"0.1.9","scannedAt":"2026-09-20T11:39:23.326Z","components":{"code":{"score":-1,"max":25,"notes":["remote-only server, no package to scan"]},"reliability":{"score":20,"max":20,"notes":["remote reachable in 1464ms"]},"poisoning":{"score":15,"max":15,"notes":["65 tool descriptions checked"]},"auth":{"score":3,"max":15,"notes":["open endpoint exposes 1 write-action tools with no auth"]},"maintenance":{"score":3,"max":15,"notes":["no repository listed"]},"identity":{"score":4,"max":10,"notes":["verified namespace with website, no repo"]}},"findings":[{"id":"auth.open-write","severity":"high","component":"auth","title":"Write-action tools reachable without authentication"},{"id":"maint.no-repo","severity":"low","component":"maintenance","title":"No source repository listed"}],"inputs":{"probes":[{"url":"https://mcp.openhelvetia.swiss/mcp","reachable":true,"authRequired":false,"latencyMs":1464,"serverInfo":{"name":"oh-mcp-gateway","version":"0.1.0"}}],"packages":[],"repo":{"found":false},"icon":{"url":"https://openhelvetia.swiss/favicon.svg","source":"registry"},"presence":{"stars":null,"forks":null,"downloadsWeek":null,"license":null,"lastPushAt":null,"score":8}}}},"grade_history":[],"reviews":[]}