OpenHelvetia Gateway

swiss.openhelvetiaPublished by openhelvetia.swissOfficial publisherv0.1.0Updated Oct 24, 2026

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

VerifiedStreamable HTTPWeb executableWeb Search & ScrapingKnowledge & MemoryData & Analytics

Overview

AI-generated overview

Remote MCP server giving assistants sourced access to Swiss federal law via Fedlex, plus Swiss directory and I14Y catalogue data.

What you can do
Search, resolve and read Swiss law: find acts by title, abbreviation or SR number, list dated versions, read articles, annexes and whole short acts, and search text within a consolidation. Verify citations: check whether an act was in force on a date, check a quote against the norm text, build canonical Fundstellen and parse existing citations. Trace history and change: compare versions, follow article amendment history, list modification notes, drafts, consultations, Federal Gazette documents and AS/RO publications. Explore structure and relations: outline an act, list subdivisions and annexes, follow cross-references and citations, classify acts in the legal taxonomy and find related acts,
When to use it
Useful when answering questions about Swiss federal law that need verifiable wording, in-force status, historical versions or citation labels, and when checking Swiss directory or I14Y catalogue records. It suits legal research and compliance-style lookups where sources must be shown.
Requirements
A remote streamable HTTP endpoint; no package installation. No authentication, environment variables or headers are declared. Network access to the OpenHelvetia endpoint is required.
Before you install
Answers are derived from Fedlex, LINDAS and I14Y data; the server itself flags some tools as hints or candidates only, so verify before relying on them. No credentials are requested, but queries and cited terms are sent to a third-party endpoint.

Installation

In SourceWeft

  1. Open OpenHelvetia Gateway in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.

Read https://sourceweft.com/mcp/swiss.openhelvetia%2Fgateway/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config.

{
  "mcpServers": {
    "openhelvetia-gateway": {
      "type": "http",
      "url": "https://mcp.openhelvetia.swiss/mcp"
    }
  }
}

Tools

65

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.

Takes no parameters.

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.

Parametersdomainrequiredsubjectrequired

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.

Parametersas_ofdomainrequired

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.

Parameterselirequiredas_ofrequired

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.

Parameterseidrequiredlangquoterequiredeli_versionrequired

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.

Parameterseidrequiredlangeli_versionrequired

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.

Parameterseidelirequiredlangto_versionrequiredfrom_versionrequired

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.

Parameterslangeli_versionrequired

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.

Parametersirirequiredlimit

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.

Parameterseidlangeli_versionrequired

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.

Parameterslimitquerycountrybilateral

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.

Parameterseidrequiredelirequired

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.

Parameterselirequireddirectionrequired

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.

Parametersconsultationrequired

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.

Parameterselidraftlimitstatus

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.

Parameterselirequired

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.

Parameterselirequired

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.

Parameterselirequiredas_of

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.

Parameterselirequiredlimit

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.

Parameterseidlangeli_versionrequired

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.

Parameterselirequired

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.

Parameterseidlanglimitoffseteli_versionrequired

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.

Parameterslangdeptheli_versionrequired

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.

Parameterselirequired

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.

Parameterselirequired

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.

Parameterselirequiredlang

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.

Parameterslangeli_versionrequired

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.

Parameterseli_versionrequired

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.

Parameterselirequired

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.

Parameterstextrequired

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.

Parameterseidrequiredlangeli_versionrequired

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.

Parameterslangoffsetmax_charseli_versionrequired

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.

Parameterselirequiredas_ofrequired

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.

Parameterssrrequired

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.

Parameterslangqueryrequiredvocabularyrequired

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.

Parameterslimitqueryrequired

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.

Parameterslanglimitqueryrequiredeli_versionrequired

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.

Takes no parameters.

i14y.get_concept

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

Parameterslangconcept_idrequired

i14y.get_data_service

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

Parameterslangdata_service_idrequired

i14y.get_dataset

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

Parameterslangdataset_idrequired

i14y.get_dataset_distributions

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

Parameterslangdataset_idrequired

i14y.list_catalogs

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

Parameterslangpagelimit

i14y.list_concepts

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

Parameterslangpagelimitpublisherregistration_status

i14y.list_data_services

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

Parameterslangpagelimitpublisheraccess_rightsregistration_status

i14y.list_datasets

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.

Parameterslangpagelimitpublisheraccess_rightsregistration_status

i14y.list_public_services

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

Parameterslangpagelimitpublisherregistration_status

i14y.list_publishers

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.

Parametersuidlangpagelimitidentifier

i14y.search_catalog

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

Parameterslangpagelimitqueryrequiredtypesthemespublishers

i14y.search_codelist_entries

List the codes of one code-list concept, paged, with names and validity (Code, Codeliste, Kanton, Geschlecht, Nomenklatur): use to resolve official codes. norm.

Parameterslangpagelimitqueryconcept_idrequired

lindas.describe

Show everything the holding says about one IRI (a cube, an observation, a Kanton): use to follow an address you were handed. norm.

Parametersirirequiredlanglimitoffset

lindas.describe_cube

Show a cube's declared dimensions and profile — the record may carry more: use to learn the filters a question needs. hint.

Parameterscuberequiredlanglimitoffset

lindas.dimension_values

List the values one dimension takes (Kantone, Abstimmungstypen, Geschäftsstände): use to filter by IRI instead of by text. hint.

Parameterscuberequiredlanglimitdimensionrequired

lindas.find_cube

Find the cube behind a question by a word of its name («Volksinitiative», «Petition», «Parteienregister»): use before reading rows. hint.

Parameterslanglimitqueryrequired

lindas.list_cubes

List the 44 political data cubes of the Confederation (Abstimmungen, Wahlen, Bundesrat, Interessenbindungen): use to see what data exists. norm.

Parameterslanglimitfamilyoffset

lindas.list_versions

List the versions of a cube family (Nationalratswahl 2019/2023/2027): use before reading a year; nothing links old to new. norm.

Parameterscuberequired

lindas.observations

Read a cube's rows with filters (Abstimmung, Referendum, Volksinitiative, Ständemehr, Kanton, Datum): use for the figures themselves. norm.

Parameterscuberequiredlanglimitoffsetfiltersdimensions

lindas.resolve_label

Resolve an IRI to its label in one language with a fallback (Kanton, Partei, Gremium, Interessenbindung): use to name a value. hint.

Parametersirirequiredlang

manifest.get

One entry's manifest by slug. A slug the directory does not hold is a not-found error carrying the E21 admission rule.

Parametersslugrequired

meta.capabilities

The platform capability register with published per-client coverage — tool names on this server ARE the capability ids.

Takes no parameters.

meta.schemas

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.

Parametersnamesrequired

meta.tools

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).

Takes no parameters.

publish.info

The publishing path — the only way into the directory: the three E21/E13 routes plus the honest interim state.

Takes no parameters.

standard.artifacts

The manifest standard's sealed artifact register: path, canonical IRI, draft/published status and SHA-256 per contract file.

Takes no parameters.

Version history

1
  1. v0.1.0LatestSep 16, 2026

Score

83% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 daysRequired25 pts
  • Auth declaredRequired10 pts
  • Tools listedRequired15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts

    Declare a GitHub repository with a README, or serve resource_documentation in the OAuth protected-resource metadata.

  • LicenseNot applicable

    A hosted service is used under its provider's terms, so no license is expected here. This check is left out of the percentage.