OpenHelvetia Gateway MCP server
Swiss federal law (Fedlex) and political data (LINDAS) for agents, every answer with sources
Little public usage data yet
Reviews
Write oneNobody has reviewed OpenHelvetia Gateway yet.
If you have run it, two minutes of your experience saves the next person an afternoon.
OpenHelvetia Gateway tools (65, 1 write)
write = sends, deletes, buys or postsdirectory.getFreeThe 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.
facts.badgeFreeshields.io endpoint JSON for one subject, derived from the fact table — «no facts» in grey when nothing is recorded, never rounded up.
facts.latestFreeLatest 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.
fedlex.check_in_forceFreeCheck whether an act was in force on a date; false is a valid answer, never an error: use for «gilt das noch?» questions. norm.
fedlex.check_quoteFreeCheck a quote (Zitat) against the norm text of one element: use before citing, to prove the wording is in what was read (Belegkette). norm.
fedlex.citeFreeCite 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.
fedlex.compare_versionsFreeCompare 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.
fedlex.detect_foreign_contentFreeDetect what the text tools hide in a Fassung: sections in another language (xml:lang) and <foreign> islands (formulas, graphics): use before quoting. norm.
fedlex.explore_nodeFreeExplore 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.
fedlex.extract_tablesFreeExtract 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.
fedlex.find_related_topicFreeFind acts in the same field of law via the legal taxonomy, by ELI or SR: use to discover neighbouring Erlasse; candidates only. hint.
fedlex.find_treatiesFreeFind treaty processes (Staatsverträge) by a title word, partner country IRI or bilaterality: use to locate a treaty before get_treaty_info. hint.
fedlex.get_article_historyFreeTrace which amendments and consolidations changed one Artikel (eId) of an act, with dates: use for «seit wann gilt Art. X so?». norm.
fedlex.get_citationsFreeList 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.
fedlex.get_consultation_documentsFreeList the position statements and result reports of one consultation IRI: use after get_consultations to read the genesis record. norm.
fedlex.get_consultationsFreeList 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.
fedlex.get_draftsFreeList 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.
fedlex.get_fga_documentsFreeList 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.
fedlex.get_law_metadataFreeRead 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.
fedlex.get_memorialFreeList 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.
fedlex.get_modificationsFreeList the amendment notes («Fassung gemäss …», AS refs) per element of a consolidation: use for «wann und wodurch wurde Art. X geändert?». norm.
fedlex.get_oc_actFreeResolve an act's binding AS/RO publication (oc ELI, date, genre, office, memorial) from its consolidation ELI: use to cite the Amtliche Sammlung. norm.
fedlex.get_referencesFreeList the references (Verweise) an act's text makes, with ELI where linked, optionally within one eId: use to follow cross-references. hint.
fedlex.get_structureFreeOutline one consolidation (sections, articles with eId, num and heading): use when you know the act but not the article number. norm.
fedlex.get_subdivisionsFreeList the subdivisions JOLux knows for an act (amended elements only, a gap catalogue): use to see which Artikel carry amendments; outline: get_structure. norm.
fedlex.get_taxonomyFreeClassify an act in the systematic collection (SR branch chain, notation, labels de/fr/it): use for «zu welchem Rechtsgebiet gehört X?». norm.
fedlex.get_treaty_infoFreeRead a treaty process profile (title, signature, bilateral, partner countries, approving decree) for an eli/treaty IRI: use after find_treaties. norm.
fedlex.list_annexesFreeList the annexes (Anhänge) of a consolidation with titles and path eIds (annex_u1/…): use before reading an Anhang with read_article. norm.
fedlex.list_expressionsFreeList the language versions and manifestations (XML, PDF) of one consolidation: use before reading to see whether a Fassung is PDF-only. norm.
fedlex.list_versionsFreeList every dated consolidation (Fassung) of an act, future ones included: use to pick the eli_version the reading tools need. norm.
fedlex.parse_referenceFreeParse 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.
fedlex.read_articleFreeRead 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.
fedlex.read_documentFreeRead a whole small act or Verordnung as capped Markdown (truncated flag, continuation offset): use for short acts; quote via read_article. norm.
fedlex.resolve_consolidation_atFreeResolve which consolidation (Fassung) of an act governed on an ISO date: use before reading text for a past or future Stichtag. norm.
fedlex.resolve_srFreeResolve 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.
fedlex.resolve_vocabulary_labelFreeLook up a Fedlex vocabulary term (enforcement-status, language, …) by label or IRI: use to decode a coded value from another answer. hint.
fedlex.search_lawFreeSearch 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.
fedlex.search_textFreeFind where a word occurs inside ONE consolidation (hits with eId and Artikel): use before read_article when the article is unknown. hint.
i14y.api_statusFreeCheck whether the I14Y catalogue answers, register by register, so «no data» and «source down» stay apart: use before retrying a failed call. norm.
i14y.get_conceptFreeShow one concept's record — type, value type, version, validity (Konzept, Codeliste): use before reading a code list's entries. norm.
i14y.get_data_serviceFreeShow one registered interface's record — endpoints, OpenAPI links, licence, served datasets (API, Endpunkt): use to reach the service. norm.
i14y.get_datasetFreeShow one dataset's full record — contact, coverage, every distribution with its licence and download address (Lizenz, Download): use before reuse. norm.
i14y.get_dataset_distributionsFreeList a dataset's distributions — format, licence, download and access address (Datei, Lizenz, Format): use for «where do I get the data». norm.
i14y.list_catalogsFreeList the catalogues that feed I14Y, each one body's collection (Katalog, opendata.swiss, Bundesamt): use to see who contributes. norm.
i14y.list_conceptsFreeList the harmonised concepts and code lists of the administration (Konzept, Codeliste, Nomenklatur, Merkmal): use to find a code list by publisher. norm.
i14y.list_data_servicesFreeList the registered machine interfaces of Swiss public bodies with their endpoints (API, Schnittstelle, Datendienst): use before building a scraper. norm.
i14y.list_datasetsFreeList 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.
i14y.list_public_servicesFreeList the registered public services with their channels (Behördenleistung, Dienstleistung, Verwaltung): use for what an authority offers citizens. norm.
i14y.list_publishersFreeList 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.
i14y.search_catalogFreeSearch the national data catalogue I14Y by words (Datensatz, Schnittstelle, API, Behördenleistung, Codeliste): use first, to find who publishes what. hint.
i14y.search_codelist_entriesFreeList the codes of one code-list concept, paged, with names and validity (Code, Codeliste, Kanton, Geschlecht, Nomenklatur): use to resolve official codes. norm.
lindas.describeFreeShow everything the holding says about one IRI (a cube, an observation, a Kanton): use to follow an address you were handed. norm.
lindas.describe_cubeFreeShow a cube's declared dimensions and profile — the record may carry more: use to learn the filters a question needs. norm.
lindas.dimension_valuesFreeList the values one dimension takes (Kantone, Abstimmungstypen, Geschäftsstände): use to filter by IRI instead of by text. hint.
lindas.find_cubeFreeFind the cube behind a question by a word of its name («Volksinitiative», «Petition», «Parteienregister»): use before reading rows. hint.
lindas.list_cubesFreeList the 44 political data cubes of the Confederation (Abstimmungen, Wahlen, Bundesrat, Interessenbindungen): use to see what data exists. norm.
lindas.list_versionsFreeList the versions of a cube family (Nationalratswahl 2019/2023/2027): use before reading a year; nothing links old to new. norm.
lindas.observationsFreeRead a cube's rows with filters (Abstimmung, Referendum, Volksinitiative, Ständemehr, Kanton, Datum): use for the figures themselves. norm.
lindas.resolve_labelFreeResolve an IRI to its label in one language with a fallback (Kanton, Partei, Gremium, Interessenbindung): use to name a value. hint.
manifest.getFreeOne entry's manifest by slug. While no entries exist the honest answer is a not-found error carrying the E21 admission rule.
meta.capabilitiesFreeThe platform capability register with published per-client coverage — tool names on this server ARE the capability ids.
meta.schemasFreeStage 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.
meta.toolsFreeStage 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).
publish.infowrite actionFreeThe publishing path — the only way into the directory: the three E21/E13 routes plus the honest interim state.
standard.artifactsFreeThe manifest standard's sealed artifact register: path, canonical IRI, draft/published status and SHA-256 per contract file.
Public scan report
scanner v0.1.9 · 2026-09-20 · same rubric, same numbers if you re-run it
- –Code scanremote-only server, no package to scann/a
- Live reliabilityremote reachable in 1464ms20/20
- Tool poisoning65 tool descriptions checked15/15
- Auth qualityopen endpoint exposes 1 write-action tools with no auth3/15
- Maintenanceno repository listed3/15
- Maintainer identityverified namespace with website, no repo4/10
Findings (2)
- highWrite-action tools reachable without authentication
auth.open-write - lowNo source repository listed
maint.no-repo
Install directly
claude mcp add --transport http gateway https://mcp.openhelvetia.swiss/mcp
OpenHelvetia Gateway: common questions
- Is OpenHelvetia Gateway MCP server safe?
- With care: it is graded C, so read the findings first (60/100). Read the OpenHelvetia Gateway safety report
- How do I install OpenHelvetia Gateway?
- It runs remotely at mcp.openhelvetia.swiss. Add it to Claude Code, Claude Desktop or Cursor with the snippets above, or call it through the mcp.market gateway without installing anything.
- Does OpenHelvetia Gateway need an API key?
- Not as far as the registry entry and our scan can tell: no credentials are declared or required.
- Is OpenHelvetia Gateway maintained?
- The latest release is v0.1.0.
- Is OpenHelvetia Gateway up?
- 100% of our last 5 checks got an answer. We check remote servers about four times a day.