MCP HeartbeatTHE MCP OBSERVATORY
Public workspace

Explore

Evidence for your next connection.

Independent measurements of remote MCP servers. Every observation has a timestamp.

Read-only probes

MCP server · Data access / search

OpenHelvetia Gateway

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

Checks passed
12 / 22

2 failed · 8 not measured

Median response
385 ms

Median of successful probes over 7 days

30-day uptime
Not measured

Share of countable probes over 30 days, including daily rollups. Auth challenges are excluded.

Discovered tools
65

Tool definitions returned by this server

Independent monitoring

Health & checks

Status history

Outdated check

Last connection measurement is over 24 hours old. Current availability is unknown.

Last checked
Check summary by test group
Test areaPassedFailedUnmeasured
ConnectionCan a client connect and discover tools?
500
Reliability & speedDoes it respond consistently and quickly?
004
Access & authenticationWhat is required to use this server?
102
Tool qualityAre the tool definitions usable by an agent?
310
Publisher identityCan the publisher be traced to its source?
312

Unmeasured means there is not enough evidence to decide. How these checks work

Inspect individual checks 22 recorded

Core

  • Pass
    Reachable

    Latest probe returned HTTP 200 in 385 ms.

  • Pass
    Valid handshake

    protocolVersion 2025-11-25, serverInfo.name oh-mcp-gateway.

  • Pass
    Lists tools

    tools/list returned 65 tools.

  • Pass
    Current protocol

    Negotiated 2025-11-25. The bar is 2025-06-18 or newer.

  • Pass
    HTTPS

    The endpoint URL is https.

Performance

  • Not measured
    Fast (p50)

    Median latency 385 ms over 1 samples in 7 days. The bar is 1000 ms. Need at least 5 samples.

  • Not measured
    Consistent (p95)

    95th percentile 385 ms over 1 samples in 7 days. The bar is 3000 ms. Need at least 20 samples.

  • Not measured
    Reliable (uptime)

    1 of 1 attempts returned a tool list in 30 days (100%). The bar is 99%. Need at least 30 samples.

  • Not measured
    Stable tool list

    Fewer than two successful probes in 30 days, so tool-list stability is not measured.

Access

  • Pass
    Open access

    tools/list succeeded with no credential, and the record declares none.

  • Not measured
    Standard auth

    Auth is not required, so the OAuth metadata check does not apply.

  • Not measured
    Free tier cited

    No publisher quote has been checked.

Tools

  • Pass
    Tools described

    Every tool description is at least 20 characters.

  • Pass
    Valid input schemas

    Every inputSchema is a JSON Schema object.

  • Fail
    Parameters documented

    117 of 167 parameters have a description (70%). The bar is 80%.

  • Pass
    Safety hints

    Every tool sets readOnlyHint or destructiveHint.

Publisher

  • Pass
    Verified namespace

    Listed in the Official MCP Registry.

  • Pass
    Website matches publisher

    The website host matches the reverse-domain namespace.

  • Fail
    Source repo linked

    No repository URL is on file.

  • Not measured
    Repo owner matches

    This namespace is not an io.github login, so the owner comparison does not apply.

  • Pass
    Recently updated

    Updated 2026-09-05T02:39:55.300723Z, within 180 days.

  • Not measured
    Open-source licence

    No GitHub repository to ask about a licence.

Start using OpenHelvetia Gateway

Connect to this server

Choose your client, copy the configuration, then enable the server in your client’s MCP settings.

Run this command in your terminal, then restart Claude Code.

Claude Code

claude mcp add --transport http openhelvetia-gateway https://mcp.openhelvetia.swiss/mcp

Capabilities

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.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Discovered
i14y.get_concept

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

Discovered
i14y.get_data_service

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

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

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

Discovered
i14y.list_catalogs

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

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

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

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

Discovered
i14y.list_public_services

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

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

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

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

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

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

Discovered
lindas.dimension_values

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

Discovered
lindas.find_cube

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

Discovered
lindas.list_cubes

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

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

Discovered
lindas.observations

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

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

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

Discovered
meta.capabilities

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

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

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

Discovered
publish.info

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

Discovered
standard.artifacts

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

Discovered

Recent measurements

Probe history

View status
Latest stored probes. Raw probe rows are kept for 14 days.
CheckedResultResponseTools
Connected385 ms65