OpenHelvetia Gateway is a remote MCP server that gives an AI agent 65 tools, among them directory.get, facts.badge, facts.latest. It answers at https://mcp.openhelvetia.swiss/mcp over streamable HTTP, and it listed its tools to an anonymous client, so no sign-in was needed for that. Our probes reached it 6 of 6 times since 12 September 2026; the last check, on 24 October 2026, succeeded.
Swiss federal law (Fedlex) and political data (LINDAS) for agents, every answer with sources
Description as the publisher wrote it.
| Tool | What it does |
|---|---|
directory.get | 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. |
facts.badge | shields.io endpoint JSON for one subject, derived from the fact table — «no facts» in grey when nothing is recorded, never rounded up. Inputs: domain, subject |
facts.latest | 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. Inputs: as_of, domain |
fedlex.check_in_force | 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. Inputs: as_of, eli |
fedlex.check_quote | 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. Inputs: eid, eli_version, lang, quote |
fedlex.cite | 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. Inputs: eid, eli_version, lang |
fedlex.compare_versions | 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. Inputs: eid, eli, from_version, lang, to_version |
fedlex.detect_foreign_content | Detect what the text tools hide in a Fassung: sections in another language (xml:lang) and <foreign> islands (formulas, graphics): use before quoting. norm. Inputs: eli_version, lang |
fedlex.explore_node | 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. Inputs: iri, limit |
fedlex.extract_tables | 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. Inputs: eid, eli_version, lang |
fedlex.find_related_topic | Find acts in the same field of law via the legal taxonomy, by ELI or SR: use to discover neighbouring Erlasse; candidates only. hint. Inputs: eli, limit, sr |
fedlex.find_treaties | Find treaty processes (Staatsverträge) by a title word, partner country IRI or bilaterality: use to locate a treaty before get_treaty_info. hint. Inputs: bilateral, country, limit, query |
fedlex.get_article_history | Trace which amendments and consolidations changed one Artikel (eId) of an act, with dates: use for «seit wann gilt Art. X so?». norm. Inputs: eid, eli |
fedlex.get_citations | 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. Inputs: direction, eli |
fedlex.get_consultation_documents | List the position statements and result reports of one consultation IRI: use after get_consultations to read the genesis record. norm. Inputs: consultation |
fedlex.get_consultations | 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. Inputs: draft, eli, limit, status |
fedlex.get_drafts | 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. Inputs: eli |
fedlex.get_fga_documents | 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. Inputs: eli |
fedlex.get_law_metadata | 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. Inputs: as_of, eli |
fedlex.get_memorial | 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. Inputs: eli, limit |
fedlex.get_modifications | 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. Inputs: eid, eli_version, lang |
fedlex.get_oc_act | 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. Inputs: eli |
fedlex.get_references | List the references (Verweise) an act's text makes, with ELI where linked, optionally within one eId: use to follow cross-references. hint. Inputs: eid, eli_version, lang, limit, offset |
fedlex.get_structure | Outline one consolidation (sections, articles with eId, num and heading): use when you know the act but not the article number. norm. Inputs: depth, eli_version, lang |
fedlex.get_subdivisions | 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. Inputs: eli |
fedlex.get_taxonomy | Classify an act in the systematic collection (SR branch chain, notation, labels de/fr/it): use for «zu welchem Rechtsgebiet gehört X?». norm. Inputs: eli |
fedlex.get_treaty_info | Read a treaty process profile (title, signature, bilateral, partner countries, approving decree) for an eli/treaty IRI: use after find_treaties. norm. Inputs: eli, lang |
fedlex.list_annexes | List the annexes (Anhänge) of a consolidation with titles and path eIds (annex_u1/…): use before reading an Anhang with read_article. norm. Inputs: eli_version, lang |
fedlex.list_expressions | List the language versions and manifestations (XML, PDF) of one consolidation: use before reading to see whether a Fassung is PDF-only. norm. Inputs: eli_version |
fedlex.list_versions | List every dated consolidation (Fassung) of an act, future ones included: use to pick the eli_version the reading tools need. norm. Inputs: eli |
fedlex.parse_reference | 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. Inputs: text |
fedlex.read_article | 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. Inputs: eid, eli_version, lang |
fedlex.read_document | Read a whole small act or Verordnung as capped Markdown (truncated flag, continuation offset): use for short acts; quote via read_article. norm. Inputs: eli_version, lang, max_chars, offset |
fedlex.resolve_consolidation_at | Resolve which consolidation (Fassung) of an act governed on an ISO date: use before reading text for a past or future Stichtag. norm. Inputs: as_of, eli |
fedlex.resolve_sr | 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. Inputs: sr |
fedlex.resolve_vocabulary_label | Look up a Fedlex vocabulary term (enforcement-status, language, …) by label or IRI: use to decode a coded value from another answer. hint. Inputs: lang, query, vocabulary |
fedlex.search_law | 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. Inputs: limit, query |
fedlex.search_text | Find where a word occurs inside ONE consolidation (hits with eId and Artikel): use before read_article when the article is unknown. hint. Inputs: eli_version, lang, limit, query |
i14y.api_status | Check 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_concept | Show one concept's record — type, value type, version, validity (Konzept, Codeliste): use before reading a code list's entries. norm. Inputs: concept_id, lang |
i14y.get_data_service, i14y.get_dataset, i14y.get_dataset_distributions, i14y.list_catalogs, i14y.list_concepts, i14y.list_data_services, i14y.list_datasets, i14y.list_public_services, i14y.list_publishers, i14y.search_catalog, i14y.search_codelist_entries, lindas.describe, lindas.describe_cube, lindas.dimension_values, lindas.find_cube, lindas.list_cubes, lindas.list_versions, lindas.observations, lindas.resolve_label, manifest.get, meta.capabilities, meta.schemas, meta.tools, publish.info, standard.artifacts
Every block below points at https://mcp.openhelvetia.swiss/mcp. Pick your client and copy.
claude mcp add --transport http openhelvetia-gateway https://mcp.openhelvetia.swiss/mcp
{
"mcpServers": {
"openhelvetia-gateway": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://mcp.openhelvetia.swiss/mcp"]
}
}
}{
"mcpServers": {
"openhelvetia-gateway": {
"url": "https://mcp.openhelvetia.swiss/mcp"
}
}
}{
"servers": {
"openhelvetia-gateway": {
"type": "http",
"url": "https://mcp.openhelvetia.swiss/mcp"
}
}
}{
"context_servers": {
"openhelvetia-gateway": {
"url": "https://mcp.openhelvetia.swiss/mcp"
}
}
}{
"mcpServers": {
"openhelvetia-gateway": {
"serverUrl": "https://mcp.openhelvetia.swiss/mcp"
}
}
}{
"mcpServers": {
"openhelvetia-gateway": {
"url": "https://mcp.openhelvetia.swiss/mcp"
}
}
}name: OpenHelvetia Gateway
version: 0.0.1
schema: v1
mcpServers:
- name: OpenHelvetia Gateway
type: streamable-http
url: https://mcp.openhelvetia.swiss/mcp{
"mcpServers": {
"openhelvetia-gateway": {
"httpUrl": "https://mcp.openhelvetia.swiss/mcp"
}
}
}{
"mcpServers": {
"openhelvetia-gateway": {
"type": "http",
"url": "https://mcp.openhelvetia.swiss/mcp"
}
}
}{
"mcpServers": {
"openhelvetia-gateway": {
"url": "https://mcp.openhelvetia.swiss/mcp"
}
}
}goose://extension?url=https%3A%2F%2Fmcp.openhelvetia.swiss%2Fmcp&type=streamable_http&id=openhelvetia-gateway&name=OpenHelvetia%20Gateway
It answered our last check on 24 October 2026 in 180 ms. Over 6 checks since 12 September 2026 it answered 6. Status here comes from Neuronto's own probes, not from the publisher.
Yes. It is published by openhelvetia.swiss and served from mcp.openhelvetia.swiss, the vendor's own domain: https://mcp.openhelvetia.swiss/mcp.
65, as returned by the server's own tools/list on 23 September 2026: directory.get, facts.badge, facts.latest, fedlex.check_in_force, fedlex.check_quote, fedlex.cite, fedlex.compare_versions, fedlex.detect_foreign_content, and 57 more.
It answered our last check on 24 October 2026 in 180 ms. Over 6 checks since 12 September 2026 it answered 6.
Put the server under mcpServers in ~/.cursor/mcp.json with the URL https://mcp.openhelvetia.swiss/mcp. The exact JSON is above, with the same setup for Claude Code, Claude Desktop, VS Code, Windsurf, Zed, Gemini CLI and the rest.
It listed its tools to an anonymous client, so reading the tool list needs no key. Individual tools can still ask for credentials in their own inputs.
Publisher: swiss.openhelvetia. Endpoint host: mcp.openhelvetia.swiss. ARD identifier: urn:air:swiss.openhelvetia:mcp:gateway.
First indexed 10 September 2026. The tools are exactly what the server returned; nothing on this page
is inferred from its name. Ranking in Neuronto search is never for sale.