Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

OpenHelvetia Gateway

REMOTE · MCP.OPENHELVETIA.SWISS · SCANNED SEP 28

Swiss federal law (Fedlex) and political data (LINDAS) for agents, every answer with sources

+4 this week 69 Trust /100
Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score → Why this is hard to score →

Endpoint Security46
Transport & Reachability100
Schema Quality & AI Usability76
  • AI-judged instruction clarity (good).Pass
  • Context-footprint check failed: tool/resource definitions use about 6723 tokens (~103/item across 65 items; 65 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management77
  • Stability observed for 23 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage90
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 70% of tool parameters carry a description.Partial
Tool Safety75
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • 0 of 1 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation; "publish.info" implies "publish" and declares readOnlyHint instead, contradicting what its own name says it does. See how to fix → Fail
  • An AI judge read all 66 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a current MCP spec version (2026-07-28).Pass
Install

How do I install the OpenHelvetia Gateway MCP server?

OpenHelvetia Gateway is a hosted endpoint at https://mcp.openhelvetia.swiss/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

remote · mcp.openhelvetia.swiss

# add to Claude Code
claude mcp add --transport http swiss-openhelvetia-gateway 'https://mcp.openhelvetia.swiss/mcp'
// .cursor/mcp.json
{
  "mcpServers": {
    "swiss-openhelvetia-gateway": {
      "url": "https://mcp.openhelvetia.swiss/mcp"
    }
  }
}
// .vscode/mcp.json
{
  "servers": {
    "swiss-openhelvetia-gateway": {
      "type": "http",
      "url": "https://mcp.openhelvetia.swiss/mcp"
    }
  }
}
# ~/.codex/config.toml
[mcp_servers.swiss-openhelvetia-gateway]
url = "https://mcp.openhelvetia.swiss/mcp"
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "swiss-openhelvetia-gateway": {
      "type": "remote",
      "url": "https://mcp.openhelvetia.swiss/mcp",
      "enabled": true
    }
  }
}
# add to OpenClaw
openclaw mcp add swiss-openhelvetia-gateway --url 'https://mcp.openhelvetia.swiss/mcp' --transport streamable-http
# ~/.hermes/config.yaml
mcp_servers:
  swiss-openhelvetia-gateway:
    url: "https://mcp.openhelvetia.swiss/mcp"
// ~/.netclaw/config/netclaw.json
{
  "McpServers": {
    "swiss-openhelvetia-gateway": {
      "Transport": "http",
      "Url": "https://mcp.openhelvetia.swiss/mcp"
    }
  }
}
# add to Vellum
assistant mcp add swiss-openhelvetia-gateway -t streamable-http -u 'https://mcp.openhelvetia.swiss/mcp'
// mcp.json
{
  "mcpServers": {
    "swiss-openhelvetia-gateway": {
      "type": "http",
      "url": "https://mcp.openhelvetia.swiss/mcp"
    }
  }
}

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 28 Sept 26 +1
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
  • 27 Sept 26 0
    • Tool “lindas.describe_cube” rewrote its description, which is the text the model reads security
    • Tool “manifest.get” rewrote its description, which is the text the model reads security
    • Schema quality: excellent → good functional
    • “lindas.observations” reworded the description of “filters” cosmetic
  • 26 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 67 to 70. That category is still filling its 30-day observation window: 20 days of observed history at the previous scan, 21 at this one. The score rises as the window fills, whether or not the server changes.

  • 25 Sept 26 0
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
  • 24 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 60 to 63. That category is still filling its 30-day observation window: 18 days of observed history at the previous scan, 19 at this one. The score rises as the window fills, whether or not the server changes.

  • 22 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 53 to 57. That category is still filling its 30-day observation window: 16 days of observed history at the previous scan, 17 at this one. The score rises as the window fills, whether or not the server changes.

  • 19 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 43 to 47. That category is still filling its 30-day observation window: 13 days of observed history at the previous scan, 14 at this one. The score rises as the window fills, whether or not the server changes.

  • 17 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 37 to 40. That category is still filling its 30-day observation window: 11 days of observed history at the previous scan, 12 at this one. The score rises as the window fills, whether or not the server changes.

Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 28 Sept 2026 · Probed https://mcp.openhelvetia.swiss/mcp

TLS valid

Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .

Subject Issuer Valid from Valid until Key Signature Serial
CN=openhelvetia.swiss CN=WE1,O=Google Trust Services,C=US 4 Sept 2026 3 Dec 2026 ECDSA 256 ECDSA-SHA256 c9e5c873258d3c0f0ee2ae0dbcd224b8
SANs: openhelvetia.swiss, *.openhelvetia.swiss
CN=WE1,O=Google Trust Services,C=US (CA) CN=GTS Root R4,O=Google Trust Services LLC,C=US 13 Dec 2023 20 Feb 2029 ECDSA 256 ECDSA-SHA384 7ff31977972c224a76155d13b6d685e3
CN=GTS Root R4,O=Google Trust Services LLC,C=US (CA) CN=GlobalSign Root CA,OU=Root CA,O=GlobalSign nv-sa,C=BE 15 Nov 2023 28 Jan 2028 ECDSA 384 SHA256-RSA 7fe530bf331343bedd821610493d8a1b

Background: What to check on a remote MCP endpoint →

DNSSEC insecure

Validation of mcp.openhelvetia.swiss. — Not signed

Zone DS Keys Algorithms Outcome
. trust_anchor 20326, 38696 8, 8 Verified
swiss. present 16056 10 Verified
openhelvetia.swiss. absent Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation
Authentication No authorisation required

The endpoint answered without asking for a token. Anyone who knows the URL can reach it.

Result No authorisation required
HTTP status 200

Background: How OAuth 2.1 works in the 2026 MCP spec →

Transports 2 probes
Transport URL Outcome Status Location
streamable-http https://mcp.openhelvetia.swiss/mcp Verified 200
http (plaintext) http://mcp.openhelvetia.swiss/mcp Inconclusive 406
MCP tools · 65 exposed · ~6,678 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
directory.get ~50

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.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

facts.badge ~63

shields.io endpoint JSON for one subject, derived from the fact table — «no facts» in grey when nothing is recorded, never rounded up.

NameTypeReqDescription
domainstringyes–
subjectstringyesSubject key (e.g. «slug#0»).

No output schema declared.

No examples provided.

facts.latest ~76

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.

NameTypeReqDescription
as_ofstring|null–Optional bitemporal cutoff (RFC 3339).
domainstringyesMeasured domain («checker», «benchmark»).

No output schema declared.

No examples provided.

fedlex.check_in_force ~64

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.

NameTypeReqDescription
as_ofstringyesISO date YYYY-MM-DD.
elistringyes–

No output schema declared.

No examples provided.

fedlex.check_quote ~208

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.

NameTypeReqDescription
eidstringyesThe 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».
eli_versionstringyesDated consolidation: `<abstract-eli>/<YYYYMMDD>` — the version that was read.
langstring|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.
quotestringyesThe wording to check, verbatim; «…» or «[...]» marks an omission (each part must occur, in order).

No output schema declared.

No examples provided.

fedlex.cite ~156

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.

NameTypeReqDescription
eidstringyesThe place to label: an eId such as «art_7/para_1/lbl_b», «art_23_a» or «annex_3/lvl_u1».
eli_versionstringyesDated consolidation: `<abstract-eli>/<YYYYMMDD>`.
langstring|null–Label language (de|fr|it|en|rm) — the manifestation read and the abbreviation used; default de.

No output schema declared.

No examples provided.

fedlex.compare_versions ~181

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.

NameTypeReqDescription
eidstring|null–Optional scope: one element (article or path eId); default every article.
elistringyesFedlex ELI of the act (consolidation abstract).
from_versionstringyesThe older consolidation: a version IRI or a date (YYYY-MM-DD / YYYYMMDD).
langstring|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.
to_versionstringyesThe newer consolidation: a version IRI or a date.

No output schema declared.

No examples provided.

fedlex.detect_foreign_content ~119

Detect what the text tools hide in a Fassung: sections in another language (xml:lang) and <foreign> islands (formulas, graphics): use before quoting. norm.

NameTypeReqDescription
eli_versionstringyesDated consolidation: `<abstract-eli>/<YYYYMMDD>`.
langstring|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.

No output schema declared.

No examples provided.

fedlex.explore_node ~91

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.

NameTypeReqDescription
iristringyesAny Fedlex IRI (https://fedlex.data.admin.ch/…).
limitinteger|null–Edges per direction (default 20, at most 50).

No output schema declared.

No examples provided.

fedlex.extract_tables ~152

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.

NameTypeReqDescription
eidstring|null–Optional scope: an eId (an annex level such as «annex_3/lvl_u1/lvl_2», an article).
eli_versionstringyesDated consolidation: `<abstract-eli>/<YYYYMMDD>`.
langstring|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.

No output schema declared.

No examples provided.

fedlex.find_related_topic ~103

Find acts in the same field of law via the legal taxonomy, by ELI or SR: use to discover neighbouring Erlasse; candidates only. hint.

NameTypeReqDescription
elistring|null–Fedlex ELI of the act — or give `sr`.
limitinteger|null–Max candidates (default 20, at most 50).
srstring|null–SR number as an alternative entry, e.g. «832.10».

No output schema declared.

No examples provided.

fedlex.find_treaties ~122

Find treaty processes (Staatsverträge) by a title word, partner country IRI or bilaterality: use to locate a treaty before get_treaty_info. hint.

NameTypeReqDescription
bilateralboolean|null–true = bilateral only, false = multilateral only.
countrystring|null–Partner country as a Fedlex country vocabulary IRI.
limitinteger|null–Max hits (default 20, at most 50).
querystring|null–A word of the treaty title (case-insensitive).

No output schema declared.

No examples provided.

fedlex.get_article_history ~96

Trace which amendments and consolidations changed one Artikel (eId) of an act, with dates: use for «seit wann gilt Art. X so?». norm.

NameTypeReqDescription
eidstringyesAkoma-Ntoso eId of the element, e.g. «art_14a» or «art_2/para_1».
elistringyesFedlex ELI of the consolidation abstract.

No output schema declared.

No examples provided.

fedlex.get_citations ~97

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.

NameTypeReqDescription
directionstringyes«in» | «out» (the foreseen-impact graph) or «cites» | «cited_by» (the formal citation graph, act level).
elistringyes–

No output schema declared.

No examples provided.

fedlex.get_consultation_documents ~57

List the position statements and result reports of one consultation IRI: use after get_consultations to read the genesis record. norm.

NameTypeReqDescription
consultationstringyesThe consultation IRI (from get_consultations).

No output schema declared.

No examples provided.

fedlex.get_consultations ~133

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.

NameTypeReqDescription
draftstring|null–Or a draft IRI (from get_drafts).
elistring|null–Fedlex ELI of the act — its drafts are resolved first (at most five).
limitinteger|null–Max consultations (default 20, at most 50).
statusstring|null–Optional status filter: the consultation-status IRI or its last segment.

No output schema declared.

No examples provided.

fedlex.get_drafts ~62

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.

NameTypeReqDescription
elistringyesFedlex ELI of the consolidation abstract.

No output schema declared.

No examples provided.

fedlex.get_fga_documents ~64

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.

NameTypeReqDescription
elistringyesFedlex ELI of the consolidation abstract.

No output schema declared.

No examples provided.

fedlex.get_law_metadata ~78

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.

NameTypeReqDescription
as_ofstring|null–Optional ISO date; absent = today, echoed back resolved.
elistringyes–

No output schema declared.

No examples provided.

fedlex.get_memorial ~97

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.

NameTypeReqDescription
elistringyesThe AS publication ELI (https://fedlex.data.admin.ch/eli/oc/…), from get_oc_act.
limitinteger|null–Max acts of the issue (default 20, at most 50).

No output schema declared.

No examples provided.

fedlex.get_modifications ~136

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.

NameTypeReqDescription
eidstring|null–Optional scope: only notes anchored at this eId or below.
eli_versionstringyesDated consolidation: `<abstract-eli>/<YYYYMMDD>`.
langstring|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.

No output schema declared.

No examples provided.

fedlex.get_oc_act ~64

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.

NameTypeReqDescription
elistringyesFedlex ELI of the consolidation abstract.

No output schema declared.

No examples provided.

fedlex.get_references ~175

List the references (Verweise) an act's text makes, with ELI where linked, optionally within one eId: use to follow cross-references. hint.

NameTypeReqDescription
eidstring|null–Optional scope: only references made from this eId or below.
eli_versionstringyesDated consolidation: `<abstract-eli>/<YYYYMMDD>`.
langstring|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.
limitinteger|null–Page size (default 200, at most 1000).
offsetinteger|null–Continuation: the `next_offset` of the previous answer.

No output schema declared.

No examples provided.

fedlex.get_structure ~141

Outline one consolidation (sections, articles with eId, num and heading): use when you know the act but not the article number. norm.

NameTypeReqDescription
depthstring|null–«article» (default: the skeleton down to articles) or «full» (the whole tree down to paragraphs and items).
eli_versionstringyesDated consolidation: `<abstract-eli>/<YYYYMMDD>`.
langstring|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.

No output schema declared.

No examples provided.

fedlex.get_subdivisions ~62

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.

NameTypeReqDescription
elistringyesFedlex ELI of the consolidation abstract.

No output schema declared.

No examples provided.

fedlex.get_taxonomy ~60

Classify an act in the systematic collection (SR branch chain, notation, labels de/fr/it): use for «zu welchem Rechtsgebiet gehört X?». norm.

NameTypeReqDescription
elistringyesFedlex ELI of the consolidation abstract.

No output schema declared.

No examples provided.

fedlex.get_treaty_info ~105

Read a treaty process profile (title, signature, bilateral, partner countries, approving decree) for an eli/treaty IRI: use after find_treaties. norm.

NameTypeReqDescription
elistringyesThe treaty process IRI (https://fedlex.data.admin.ch/eli/treaty/…), from find_treaties.
langstring|null–Preferred title language (de|fr|it|en|rm); default de.

No output schema declared.

No examples provided.

fedlex.list_annexes ~119

List the annexes (Anhänge) of a consolidation with titles and path eIds (annex_u1/…): use before reading an Anhang with read_article. norm.

NameTypeReqDescription
eli_versionstringyesDated consolidation: `<abstract-eli>/<YYYYMMDD>`.
langstring|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.

No output schema declared.

No examples provided.

fedlex.list_expressions ~62

List the language versions and manifestations (XML, PDF) of one consolidation: use before reading to see whether a Fassung is PDF-only. norm.

NameTypeReqDescription
eli_versionstringyesDated consolidation: `<abstract-eli>/<YYYYMMDD>`.

No output schema declared.

No examples provided.

fedlex.list_versions ~54

List every dated consolidation (Fassung) of an act, future ones included: use to pick the eli_version the reading tools need. norm.

NameTypeReqDescription
elistringyesFedlex ELI of the consolidation abstract.

No output schema declared.

No examples provided.

fedlex.parse_reference ~122

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.

NameTypeReqDescription
textstringyesA 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».

No output schema declared.

No examples provided.

fedlex.read_article ~173

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.

NameTypeReqDescription
eidstringyesAkoma-Ntoso eId, e.g. «art_10a», or a path eId such as «art_2/para_1» or «annex_u1/lvl_u1».
eli_versionstringyesDated consolidation: `<abstract-eli>/<YYYYMMDD>`.
langstring|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.

No output schema declared.

No examples provided.

fedlex.read_document ~155

Read a whole small act or Verordnung as capped Markdown (truncated flag, continuation offset): use for short acts; quote via read_article. norm.

NameTypeReqDescription
eli_versionstringyesDated consolidation: `<abstract-eli>/<YYYYMMDD>`.
langstring|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.
max_charsinteger|null–Character budget (default 120 000, at most 400 000).
offsetinteger|null–Continuation: the `next_offset` of the previous answer.

No output schema declared.

No examples provided.

fedlex.resolve_consolidation_at ~64

Resolve which consolidation (Fassung) of an act governed on an ISO date: use before reading text for a past or future Stichtag. norm.

NameTypeReqDescription
as_ofstringyesISO date YYYY-MM-DD.
elistringyes–

No output schema declared.

No examples provided.

fedlex.resolve_sr ~71

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.

NameTypeReqDescription
srstringyesSystematic (SR) number, e.g. «832.10».

No output schema declared.

No examples provided.

fedlex.resolve_vocabulary_label ~133

Look up a Fedlex vocabulary term (enforcement-status, language, …) by label or IRI: use to decode a coded value from another answer. hint.

NameTypeReqDescription
langstring|null–Label language (de|fr|it|en|rm); default de.
querystringyesA label fragment (case-insensitive, any language) or a vocabulary IRI to decode.
vocabularystringyesScheme id: «enforcement-status», «subdivision-type», «legal-taxonomy», «impact-type», «resource-type», «language», …

No output schema declared.

No examples provided.

fedlex.search_law ~65

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.

NameTypeReqDescription
limitinteger|null––
querystringyes–

No output schema declared.

No examples provided.

fedlex.search_text ~149

Find where a word occurs inside ONE consolidation (hits with eId and Artikel): use before read_article when the article is unknown. hint.

NameTypeReqDescription
eli_versionstringyesDated consolidation: `<abstract-eli>/<YYYYMMDD>`.
langstring|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.
limitinteger|null–Max hits (default 20, at most 100); `total` counts beyond it.
querystringyesWord or phrase; case-insensitive substring.

No output schema declared.

No examples provided.

i14y.api_status ~47

Check whether the I14Y catalogue answers, register by register, so «no data» and «source down» stay apart: use before retrying a failed call. norm.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

i14y.get_concept ~75

Show one concept's record — type, value type, version, validity (Konzept, Codeliste): use before reading a code list's entries. norm.

NameTypeReqDescription
concept_idstringyesThe concept's `id` from `i14y.list_concepts`.
langstring|null––

No output schema declared.

No examples provided.

i14y.get_data_service ~74

Show one registered interface's record — endpoints, OpenAPI links, licence, served datasets (API, Endpunkt): use to reach the service. norm.

NameTypeReqDescription
data_service_idstringyesThe service's `id` from `i14y.list_data_services`.
langstring|null––

No output schema declared.

No examples provided.

i14y.get_dataset ~83

Show one dataset's full record — contact, coverage, every distribution with its licence and download address (Lizenz, Download): use before reuse. norm.

NameTypeReqDescription
dataset_idstringyesThe record's `id` as a hit or a list row carries it — a GUID, never the publisher's `identifier`.
langstring|null––

No output schema declared.

No examples provided.

i14y.get_dataset_distributions ~88

List a dataset's distributions — format, licence, download and access address (Datei, Lizenz, Format): use for «where do I get the data». norm.

NameTypeReqDescription
dataset_idstringyesThe record's `id` as a hit or a list row carries it — a GUID, never the publisher's `identifier`.
langstring|null––

No output schema declared.

No examples provided.

i14y.list_catalogs ~84

List the catalogues that feed I14Y, each one body's collection (Katalog, opendata.swiss, Bundesamt): use to see who contributes. norm.

NameTypeReqDescription
langstring|null––
limitinteger|null–Catalogues per page, 1–100, default 50.
pageinteger|null––

No output schema declared.

No examples provided.

i14y.list_concepts ~91

List the harmonised concepts and code lists of the administration (Konzept, Codeliste, Nomenklatur, Merkmal): use to find a code list by publisher. norm.

NameTypeReqDescription
langstring|null––
limitinteger|null––
pageinteger|null––
publisherstring|null––
registration_statusstring|null––

No output schema declared.

No examples provided.

i14y.list_data_services ~92

List the registered machine interfaces of Swiss public bodies with their endpoints (API, Schnittstelle, Datendienst): use before building a scraper. norm.

NameTypeReqDescription
access_rightsstring|null––
langstring|null––
limitinteger|null––
pageinteger|null––
publisherstring|null––
registration_statusstring|null––

No output schema declared.

No examples provided.

i14y.list_datasets ~203

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.

NameTypeReqDescription
access_rightsstring|null–PUBLIC | RESTRICTED | NON_PUBLIC | CONFIDENTIAL. A listing is metadata, never a grant of access.
langstring|null–Label language (de|fr|it|en|rm); default de.
limitinteger|null–Records per page, 1–100, default 25.
pageinteger|null–1-based page, default 1.
publisherstring|null–Publisher code («CH_BAZG»), from `i14y.list_publishers`.
registration_statusstring|null–One of the eight: Incomplete, Candidate, Recorded, Qualified, Standard, PreferredStandard, Superseded, Retired.

No output schema declared.

No examples provided.

i14y.list_public_services ~81

List the registered public services with their channels (Behördenleistung, Dienstleistung, Verwaltung): use for what an authority offers citizens. norm.

NameTypeReqDescription
langstring|null––
limitinteger|null––
pageinteger|null––
publisherstring|null––
registration_statusstring|null––

No output schema declared.

No examples provided.

i14y.list_publishers ~128

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.

NameTypeReqDescription
identifierstring|null–Exact publisher code («CH_BAZG»).
langstring|null––
limitinteger|null–Publishers per page, 1–100, default 50.
pageinteger|null––
uidstring|null–Exact Swiss UID as the register writes it («CHE116244755»).

No output schema declared.

No examples provided.

i14y.search_catalog ~259

Search the national data catalogue I14Y by words (Datensatz, Schnittstelle, API, Behördenleistung, Codeliste): use first, to find who publishes what. hint.

NameTypeReqDescription
langstring|null–The language searched AND served (de|fr|it|en|rm); default de.
limitinteger|null–Hits per page, 1–100, default 25.
pageinteger|null–1-based page, default 1.
publishersarray|null–Publisher CODES — the `identifier` `i14y.list_publishers` serves («CH1» is the Federal Statistical Office) — never a name.
querystringyesFree text, e.g. «Sonderpädagogik», «Zoll», «API»; empty lists the whole index one page at a time. Matched in `lang`.
themesarray|null–Theme CODES as a hit carries them under `themes[].code` («103» is Bildung) — never a word.
typesarray|null–Restrict to resource types: Dataset | DataService | PublicService | Concept | MappingTable. Each of them answers.

No output schema declared.

No examples provided.

Common questions

What is the OpenHelvetia Gateway MCP server?

OpenHelvetia Gateway is an MCP server listed in the public MCP registry as swiss.openhelvetia/gateway. Swiss federal law (Fedlex) and political data (LINDAS) for agents, every answer with sources. This page covers its hosted endpoint (https://mcp.openhelvetia.swiss/mcp).

Is the OpenHelvetia Gateway MCP server safe to use?

OpenHelvetia Gateway scores 69 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the OpenHelvetia Gateway MCP server expose?

OpenHelvetia Gateway exposes 65 tools: directory.get, facts.badge, facts.latest, fedlex.check_in_force, fedlex.check_quote, and 60 more. Their descriptions and schemas cost roughly 6,678 tokens of context every time the server is loaded.

Does the OpenHelvetia Gateway MCP server require authentication?

No. We connected to OpenHelvetia Gateway without credentials and it answered, so anything it exposes is reachable by anyone who knows the address.

Is the OpenHelvetia Gateway MCP server still maintained?

OpenHelvetia Gateway is still listed as active in the MCP registry. We last reached this channel on 28 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.