Search / swiss.openhelvetia/gateway
OpenHelvetia Gateway
R0· no sign-inSwiss federal law (Fedlex) and political data (LINDAS) for agents, every answer with sources
v0.1.0 · active · website · descriptor JSON · versions
Search / swiss.openhelvetia/gateway
R0· no sign-inSwiss federal law (Fedlex) and political data (LINDAS) for agents, every answer with sources
v0.1.0 · active · website · descriptor JSON · versions
{
"mcpServers": {
"gateway": {
"type": "http",
"url": "https://mcp.openhelvetia.swiss/mcp"
}
}
}claude mcp add --transport http gateway https://mcp.openhelvetia.swiss/mcp[mcp_servers.gateway]
url = "https://mcp.openhelvetia.swiss/mcp"
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"gateway": {
"type": "remote",
"url": "https://mcp.openhelvetia.swiss/mcp",
"enabled": true
}
}
}{
"mcpServers": {
"gateway": {
"type": "http",
"url": "https://mcp.openhelvetia.swiss/mcp"
}
},
"deeplink": "cursor://anysphere.cursor-deeplink/mcp/install?name=gateway&config=eyJ0eXBlIjoiaHR0cCIsInVybCI6Imh0dHBzOi8vbWNwLm9wZW5oZWx2ZXRpYS5zd2lzcy9tY3AifQ%3D%3D"
}{
"servers": {
"gateway": {
"type": "http",
"url": "https://mcp.openhelvetia.swiss/mcp"
}
}
}{
"mcpServers": {
"gateway": {
"httpUrl": "https://mcp.openhelvetia.swiss/mcp"
}
}
}extensions:
"gateway":
enabled: true
name: "gateway"
type: streamable_http
uri: "https://mcp.openhelvetia.swiss/mcp"
timeout: 300
protocol.modernsupports 2026-07-28 (server/discover)protocol.statelessanswers without a sessionprotocol.transportstreamable HTTPprotocol.list_ttltools/list declares ttlMs 0, so clients re-fetch it on every useauth.prm, auth.as_metadata, auth.cimdno remote uses OAuthauth.secret_in_urlno templated URLtools.descriptionsevery tool has a descriptiontools.description_lengthdescriptions are concisetools.schemasevery tool has an object input schematools.annotations65 of 65 tools declare readOnlyHint or destructiveHinttools.directory_hintsno tool declares all four of readOnlyHint, destructiveHint, idempotentHint and openWorldHint; missing: fedlex.resolve_sr (destructiveHint, idempotentHint, openWorldHint); fedlex.check_in_force (destructiveHint, idempotentHint, openWorldHint); fedlex.cite (destructiveHint, idempotentHint, openWorldHint); …tools.token_costabout 9,660 tokens to load every tooltools.api_dumptools are not a one-to-one API dumpstability.changes3 tool changes in 30 daysstability.rug_pullno tool changed its meaning under the same namedeps.known_vulns, deps.mcp_sdk_version, deps.resolvableno npm or PyPI packagemanifest.getchangeddescriptionOne entry's manifest by slug. While no entries exist the honest answer is a not-found error carrying the E21 admission rule.
One entry's manifest by slug. A slug the directory does not hold is a not-found error carrying the E21 admission rule.
lindas.observationschangedinput schemalindas.describe_cubechangeddescriptionShow a cube's declared dimensions and profile — the record may carry more: use to learn the filters a question needs. norm.
Show a cube's declared dimensions and profile — the record may carry more: use to learn the filters a question needs. hint.
Full history: list_changes · trend: quality JSON.
Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed. How it is computed.
+dns-namespace +website +reachable +uptime-97% ~updated-46d-ago -no-repository
Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed. How it is computed.
| remote | auth | reachable | uptime 30d | p50 | protocol | last ok |
|---|---|---|---|---|---|---|
https://mcp.openhelvetia.swiss/mcp streamable-http | none | yes | 97% | 451 ms | 2024-11-05, 2025-03-26, 2025-06-18, 2025-11-25, 2026-07-28 | 2026-10-20 |
directory.getread-only | 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.badgeread-only | shields.io endpoint JSON for one subject, derived from the fact table — «no facts» in grey when nothing is recorded, never rounded up. |
facts.latestread-only | 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. |
fedlex.check_in_forceread-only | 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. |
fedlex.check_quoteread-only | 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. |
fedlex.citeread-only | 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. |
fedlex.compare_versionsread-only | 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. |
fedlex.detect_foreign_contentread-only | Detect 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_noderead-only | 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. |
fedlex.extract_tablesread-only | 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. |
fedlex.find_related_topicread-only | Find 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_treatiesread-only | Find 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_historyread-only | Trace which amendments and consolidations changed one Artikel (eId) of an act, with dates: use for «seit wann gilt Art. X so?». norm. |
fedlex.get_citationsread-only | 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. |
fedlex.get_consultation_documentsread-only | List the position statements and result reports of one consultation IRI: use after get_consultations to read the genesis record. norm. |
fedlex.get_consultationsread-only | 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. |
fedlex.get_draftsread-only | 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. |
fedlex.get_fga_documentsread-only | 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. |
fedlex.get_law_metadataread-only | 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. |
fedlex.get_memorialread-only | 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. |
fedlex.get_modificationsread-only | 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. |
fedlex.get_oc_actread-only | 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. |
fedlex.get_referencesread-only | List the references (Verweise) an act's text makes, with ELI where linked, optionally within one eId: use to follow cross-references. hint. |
fedlex.get_structureread-only | Outline one consolidation (sections, articles with eId, num and heading): use when you know the act but not the article number. norm. |
fedlex.get_subdivisionsread-only | 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. |
fedlex.get_taxonomyread-only | Classify 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_inforead-only | Read a treaty process profile (title, signature, bilateral, partner countries, approving decree) for an eli/treaty IRI: use after find_treaties. norm. |
fedlex.list_annexesread-only | List 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_expressionsread-only | List the language versions and manifestations (XML, PDF) of one consolidation: use before reading to see whether a Fassung is PDF-only. norm. |
fedlex.list_versionsread-only | List every dated consolidation (Fassung) of an act, future ones included: use to pick the eli_version the reading tools need. norm. |
fedlex.parse_referenceread-only | 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. |
fedlex.read_articleread-only | 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. |
fedlex.read_documentread-only | Read 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_atread-only | Resolve which consolidation (Fassung) of an act governed on an ISO date: use before reading text for a past or future Stichtag. norm. |
fedlex.resolve_srread-only | 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. |
fedlex.resolve_vocabulary_labelread-only | Look up a Fedlex vocabulary term (enforcement-status, language, …) by label or IRI: use to decode a coded value from another answer. hint. |
fedlex.search_lawread-only | 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. |
fedlex.search_textread-only | Find where a word occurs inside ONE consolidation (hits with eId and Artikel): use before read_article when the article is unknown. hint. |
i14y.api_statusread-only | 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_conceptread-only | Show one concept's record — type, value type, version, validity (Konzept, Codeliste): use before reading a code list's entries. norm. |
i14y.get_data_serviceread-only | Show one registered interface's record — endpoints, OpenAPI links, licence, served datasets (API, Endpunkt): use to reach the service. norm. |
i14y.get_datasetread-only | Show one dataset's full record — contact, coverage, every distribution with its licence and download address (Lizenz, Download): use before reuse. norm. |
i14y.get_dataset_distributionsread-only | List a dataset's distributions — format, licence, download and access address (Datei, Lizenz, Format): use for «where do I get the data». norm. |
i14y.list_catalogsread-only | List the catalogues that feed I14Y, each one body's collection (Katalog, opendata.swiss, Bundesamt): use to see who contributes. norm. |
i14y.list_conceptsread-only | List 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_servicesread-only | List the registered machine interfaces of Swiss public bodies with their endpoints (API, Schnittstelle, Datendienst): use before building a scraper. norm. |
i14y.list_datasetsread-only | 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. |
i14y.list_public_servicesread-only | List the registered public services with their channels (Behördenleistung, Dienstleistung, Verwaltung): use for what an authority offers citizens. norm. |
i14y.list_publishersread-only | 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. |
i14y.search_catalogread-only | Search the national data catalogue I14Y by words (Datensatz, Schnittstelle, API, Behördenleistung, Codeliste): use first, to find who publishes what. hint. |
i14y.search_codelist_entriesread-only | List the codes of one code-list concept, paged, with names and validity (Code, Codeliste, Kanton, Geschlecht, Nomenklatur): use to resolve official codes. norm. |
lindas.describeread-only | Show everything the holding says about one IRI (a cube, an observation, a Kanton): use to follow an address you were handed. norm. |
lindas.describe_cuberead-only | Show a cube's declared dimensions and profile — the record may carry more: use to learn the filters a question needs. hint. |
lindas.dimension_valuesread-only | List the values one dimension takes (Kantone, Abstimmungstypen, Geschäftsstände): use to filter by IRI instead of by text. hint. |
lindas.find_cuberead-only | Find the cube behind a question by a word of its name («Volksinitiative», «Petition», «Parteienregister»): use before reading rows. hint. |
lindas.list_cubesread-only | List the 44 political data cubes of the Confederation (Abstimmungen, Wahlen, Bundesrat, Interessenbindungen): use to see what data exists. norm. |
lindas.list_versionsread-only | List the versions of a cube family (Nationalratswahl 2019/2023/2027): use before reading a year; nothing links old to new. norm. |
lindas.observationsread-only | Read a cube's rows with filters (Abstimmung, Referendum, Volksinitiative, Ständemehr, Kanton, Datum): use for the figures themselves. norm. |
lindas.resolve_labelread-only | Resolve an IRI to its label in one language with a fallback (Kanton, Partei, Gremium, Interessenbindung): use to name a value. hint. |
manifest.getread-only | One entry's manifest by slug. A slug the directory does not hold is a not-found error carrying the E21 admission rule. |
meta.capabilitiesread-only | The platform capability register with published per-client coverage — tool names on this server ARE the capability ids. |
meta.schemasread-only | 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. |
meta.toolsread-only | 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). |
publish.inforead-only | The publishing path — the only way into the directory: the three E21/E13 routes plus the honest interim state. |
standard.artifactsread-only | The manifest standard's sealed artifact register: path, canonical IRI, draft/published status and SHA-256 per contract file. |
Schemas: list_tools.
{
"name": "swiss.openhelvetia/gateway",
"icons": [
{
"src": "https://openhelvetia.swiss/favicon.svg",
"mimeType": "image/svg+xml"
}
],
"title": "OpenHelvetia Gateway",
"$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
"remotes": [
{
"url": "https://mcp.openhelvetia.swiss/mcp",
"type": "streamable-http"
}
],
"version": "0.1.0",
"websiteUrl": "https://openhelvetia.swiss",
"description": "Swiss federal law (Fedlex) and political data (LINDAS) for agents, every answer with sources"
}