{"$schema":"https://wellknown.network/schemas/agent-record-v1.json","schemaVersion":"1","id":"ag_h79nmwm4ghqh","handle":"openhelvetia-gateway","url":"https://wellknown.network/agents/openhelvetia-gateway","links":{"self":"https://wellknown.network/agents/openhelvetia-gateway/record.json","html":"https://wellknown.network/agents/openhelvetia-gateway","markdown":"https://wellknown.network/agents/openhelvetia-gateway/record.md","api":"https://wellknown.network/api/v1/agents/openhelvetia-gateway","status":"https://wellknown.network/api/v1/agents/openhelvetia-gateway/status","claim":"https://wellknown.network/agents/openhelvetia-gateway/claim","claimApi":"https://wellknown.network/api/v1/claims","claimDescriptor":"https://wellknown.network/agents/openhelvetia-gateway/claim.json","badge":"https://wellknown.network/agents/openhelvetia-gateway/badge.svg","openapi":"https://wellknown.network/openapi.json","history":"https://wellknown.network/api/v1/agents/openhelvetia-gateway/history","tools":"https://wellknown.network/api/v1/agents/openhelvetia-gateway/tools"},"ard":{"identifier":"urn:air:mcp.openhelvetia.swiss:server:openhelvetia-gateway","type":"application/mcp-server-card+json"},"kind":"mcp_server","declared":{"name":"OpenHelvetia Gateway","summary":"Swiss federal law (Fedlex) and political data (LINDAS) for agents, every answer with sources","description":"Swiss federal law (Fedlex) and political data (LINDAS) for agents, every answer with sources","publisher":{"name":"swiss.openhelvetia","url":null},"homepage":"https://openhelvetia.swiss","repository":null,"version":"0.1.0","license":null,"protocols":["mcp"],"tags":[],"pricing":null,"endpoints":[{"url":"https://mcp.openhelvetia.swiss/mcp","type":"mcp_streamable_http","auth":null,"probeable":true}],"skills":null,"tools":null,"extra":{"updatedAt":"2026-09-05T02:39:55.300723Z","publishedAt":"2026-09-05T02:39:55.300723Z","registryName":"swiss.openhelvetia/gateway"},"attribution":{"kind":"mcp_registry","name":"mcp_registry","summary":"mcp_registry","version":"mcp_registry","description":"mcp_registry","homepageUrl":"mcp_registry","publisherName":"mcp_registry"}},"derived":{"capabilities":[{"slug":"documents.contracts","name":"Contracts & Legal","confidence":1,"provenance":"derived"},{"slug":"geo.maps","name":"Maps & Places","confidence":1,"provenance":"derived"},{"slug":"commerce.ecommerce","name":"E-commerce Operations","confidence":0.992,"provenance":"derived"},{"slug":"productivity.hr","name":"HR & Recruiting","confidence":0.554,"provenance":"derived"},{"slug":"dev.filesystem","name":"Filesystem","confidence":0.54,"provenance":"derived"},{"slug":"dev.docs-lookup","name":"Documentation Lookup","confidence":0.54,"provenance":"derived"},{"slug":"research.academic","name":"Academic Research","confidence":0.54,"provenance":"derived"},{"slug":"ai.agent-discovery","name":"Agent Discovery","confidence":0.54,"provenance":"derived"}],"categories":["ai","commerce","dev","documents","geo","productivity","research"],"language":"en"},"observed":{"status":"live","statusReason":"Responded 5h ago.","lastOkAt":"2026-10-10T13:25:36.019Z","lastProbedAt":"2026-10-10T13:25:36.019Z","statusComputedAt":"2026-10-10T13:26:47.642Z","reliability30d":{"probes":111,"successRate":1,"p50Ms":86,"basis":"service","measures":{"availability":"availability","latency":"response time","tools":"tool surface observed","summary":"Checks reached the service itself."},"checks":{"total":108,"ok":108,"authBoundaryOk":0,"serviceOk":108,"note":"Counted from the observation rows for the window, checks of the server only (HTTP, A2A card, MCP initialize). ok = authBoundaryOk + serviceOk. `probes` is the sum of daily rollups and includes registry checks, so it can differ from `total`."}},"latestObservations":[{"at":"2026-10-10T13:25:36.019Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":70,"error":null,"detail":{"tools":[{"name":"directory.get","description":"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"},{"name":"facts.badge","description":"shields.io endpoint JSON for one subject, derived from the fact table — «no facts» in grey when nothing is recorded, never rounded up."},{"name":"facts.latest","description":"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."},{"name":"fedlex.check_in_force","description":"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."},{"name":"fedlex.check_quote","description":"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."},{"name":"fedlex.cite","description":"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."},{"name":"fedlex.compare_versions","description":"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."},{"name":"fedlex.detect_foreign_content","description":"Detect what the text tools hide in a Fassung: sections in another language (xml:lang) and <foreign> islands (formulas, graphics): use before quoting. norm."},{"name":"fedlex.explore_node","description":"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."},{"name":"fedlex.extract_tables","description":"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."},{"name":"fedlex.find_related_topic","description":"Find acts in the same field of law via the legal taxonomy, by ELI or SR: use to discover neighbouring Erlasse; candidates only. hint."},{"name":"fedlex.find_treaties","description":"Find treaty processes (Staatsverträge) by a title word, partner country IRI or bilaterality: use to locate a treaty before get_treaty_info. hint."},{"name":"fedlex.get_article_history","description":"Trace which amendments and consolidations changed one Artikel (eId) of an act, with dates: use for «seit wann gilt Art. X so?». norm."},{"name":"fedlex.get_citations","description":"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."},{"name":"fedlex.get_consultation_documents","description":"List the position statements and result reports of one consultation IRI: use after get_consultations to read the genesis record. norm."},{"name":"fedlex.get_consultations","description":"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."},{"name":"fedlex.get_drafts","description":"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."},{"name":"fedlex.get_fga_documents","description":"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."},{"name":"fedlex.get_law_metadata","description":"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."},{"name":"fedlex.get_memorial","description":"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."},{"name":"fedlex.get_modifications","description":"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."},{"name":"fedlex.get_oc_act","description":"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."},{"name":"fedlex.get_references","description":"List the references (Verweise) an act's text makes, with ELI where linked, optionally within one eId: use to follow cross-references. hint."},{"name":"fedlex.get_structure","description":"Outline one consolidation (sections, articles with eId, num and heading): use when you know the act but not the article number. norm."},{"name":"fedlex.get_subdivisions","description":"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."},{"name":"fedlex.get_taxonomy","description":"Classify an act in the systematic collection (SR branch chain, notation, labels de/fr/it): use for «zu welchem Rechtsgebiet gehört X?». norm."},{"name":"fedlex.get_treaty_info","description":"Read a treaty process profile (title, signature, bilateral, partner countries, approving decree) for an eli/treaty IRI: use after find_treaties. norm."},{"name":"fedlex.list_annexes","description":"List the annexes (Anhänge) of a consolidation with titles and path eIds (annex_u1/…): use before reading an Anhang with read_article. norm."},{"name":"fedlex.list_expressions","description":"List the language versions and manifestations (XML, PDF) of one consolidation: use before reading to see whether a Fassung is PDF-only. norm."},{"name":"fedlex.list_versions","description":"List every dated consolidation (Fassung) of an act, future ones included: use to pick the eli_version the reading tools need. norm."},{"name":"fedlex.parse_reference","description":"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."},{"name":"fedlex.read_article","description":"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."},{"name":"fedlex.read_document","description":"Read a whole small act or Verordnung as capped Markdown (truncated flag, continuation offset): use for short acts; quote via read_article. norm."},{"name":"fedlex.resolve_consolidation_at","description":"Resolve which consolidation (Fassung) of an act governed on an ISO date: use before reading text for a past or future Stichtag. norm."},{"name":"fedlex.resolve_sr","description":"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."},{"name":"fedlex.resolve_vocabulary_label","description":"Look up a Fedlex vocabulary term (enforcement-status, language, …) by label or IRI: use to decode a coded value from another answer. hint."},{"name":"fedlex.search_law","description":"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."},{"name":"fedlex.search_text","description":"Find where a word occurs inside ONE consolidation (hits with eId and Artikel): use before read_article when the article is unknown. hint."},{"name":"i14y.api_status","description":"Check whether the I14Y catalogue answers, register by register, so «no data» and «source down» stay apart: use before retrying a failed call. norm."},{"name":"i14y.get_concept","description":"Show one concept's record — type, value type, version, validity (Konzept, Codeliste): use before reading a code list's entries. norm."},{"name":"i14y.get_data_service","description":"Show one registered interface's record — endpoints, OpenAPI links, licence, served datasets (API, Endpunkt): use to reach the service. norm."},{"name":"i14y.get_dataset","description":"Show one dataset's full record — contact, coverage, every distribution with its licence and download address (Lizenz, Download): use before reuse. norm."},{"name":"i14y.get_dataset_distributions","description":"List a dataset's distributions — format, licence, download and access address (Datei, Lizenz, Format): use for «where do I get the data». norm."},{"name":"i14y.list_catalogs","description":"List the catalogues that feed I14Y, each one body's collection (Katalog, opendata.swiss, Bundesamt): use to see who contributes. norm."},{"name":"i14y.list_concepts","description":"List the harmonised concepts and code lists of the administration (Konzept, Codeliste, Nomenklatur, Merkmal): use to find a code list by publisher. norm."},{"name":"i14y.list_data_services","description":"List the registered machine interfaces of Swiss public bodies with their endpoints (API, Schnittstelle, Datendienst): use before building a scraper. norm."},{"name":"i14y.list_datasets","description":"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."},{"name":"i14y.list_public_services","description":"List the registered public services with their channels (Behördenleistung, Dienstleistung, Verwaltung): use for what an authority offers citizens. norm."},{"name":"i14y.list_publishers","description":"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."},{"name":"i14y.search_catalog","description":"Search the national data catalogue I14Y by words (Datensatz, Schnittstelle, API, Behördenleistung, Codeliste): use first, to find who publishes what. hint."},{"name":"i14y.search_codelist_entries","description":"List the codes of one code-list concept, paged, with names and validity (Code, Codeliste, Kanton, Geschlecht, Nomenklatur): use to resolve official codes. norm."},{"name":"lindas.describe","description":"Show everything the holding says about one IRI (a cube, an observation, a Kanton): use to follow an address you were handed. norm."},{"name":"lindas.describe_cube","description":"Show a cube's declared dimensions and profile — the record may carry more: use to learn the filters a question needs. hint."},{"name":"lindas.dimension_values","description":"List the values one dimension takes (Kantone, Abstimmungstypen, Geschäftsstände): use to filter by IRI instead of by text. hint."},{"name":"lindas.find_cube","description":"Find the cube behind a question by a word of its name («Volksinitiative», «Petition», «Parteienregister»): use before reading rows. hint."},{"name":"lindas.list_cubes","description":"List the 44 political data cubes of the Confederation (Abstimmungen, Wahlen, Bundesrat, Interessenbindungen): use to see what data exists. norm."},{"name":"lindas.list_versions","description":"List the versions of a cube family (Nationalratswahl 2019/2023/2027): use before reading a year; nothing links old to new. norm."},{"name":"lindas.observations","description":"Read a cube's rows with filters (Abstimmung, Referendum, Volksinitiative, Ständemehr, Kanton, Datum): use for the figures themselves. norm."},{"name":"lindas.resolve_label","description":"Resolve an IRI to its label in one language with a fallback (Kanton, Partei, Gremium, Interessenbindung): use to name a value. hint."},{"name":"manifest.get","description":"One entry's manifest by slug. A slug the directory does not hold is a not-found error carrying the E21 admission rule."},{"name":"meta.capabilities","description":"The platform capability register with published per-client coverage — tool names on this server ARE the capability ids."},{"name":"meta.schemas","description":"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 rout"},{"name":"meta.tools","description":"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 t"},{"name":"publish.info","description":"The publishing path — the only way into the directory: the three E21/E13 routes plus the honest interim state."},{"name":"standard.artifacts","description":"The manifest standard's sealed artifact register: path, canonical IRI, draft/published status and SHA-256 per contract file."}],"toolCount":65,"toolsHash":"13f117e5495c243cecec7e40b50929700f5e5c884a5b7cbeba43cac01c6c0dbd","serverName":"oh-mcp-gateway","capabilities":["tools"],"serverVersion":"0.1.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-10T06:27:52.058Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":56,"error":null,"detail":{"tools":[{"name":"directory.get","description":"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"},{"name":"facts.badge","description":"shields.io endpoint JSON for one subject, derived from the fact table — «no facts» in grey when nothing is recorded, never rounded up."},{"name":"facts.latest","description":"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."},{"name":"fedlex.check_in_force","description":"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."},{"name":"fedlex.check_quote","description":"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."},{"name":"fedlex.cite","description":"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."},{"name":"fedlex.compare_versions","description":"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."},{"name":"fedlex.detect_foreign_content","description":"Detect what the text tools hide in a Fassung: sections in another language (xml:lang) and <foreign> islands (formulas, graphics): use before quoting. norm."},{"name":"fedlex.explore_node","description":"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."},{"name":"fedlex.extract_tables","description":"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."},{"name":"fedlex.find_related_topic","description":"Find acts in the same field of law via the legal taxonomy, by ELI or SR: use to discover neighbouring Erlasse; candidates only. hint."},{"name":"fedlex.find_treaties","description":"Find treaty processes (Staatsverträge) by a title word, partner country IRI or bilaterality: use to locate a treaty before get_treaty_info. hint."},{"name":"fedlex.get_article_history","description":"Trace which amendments and consolidations changed one Artikel (eId) of an act, with dates: use for «seit wann gilt Art. X so?». norm."},{"name":"fedlex.get_citations","description":"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."},{"name":"fedlex.get_consultation_documents","description":"List the position statements and result reports of one consultation IRI: use after get_consultations to read the genesis record. norm."},{"name":"fedlex.get_consultations","description":"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."},{"name":"fedlex.get_drafts","description":"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."},{"name":"fedlex.get_fga_documents","description":"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."},{"name":"fedlex.get_law_metadata","description":"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."},{"name":"fedlex.get_memorial","description":"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."},{"name":"fedlex.get_modifications","description":"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."},{"name":"fedlex.get_oc_act","description":"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."},{"name":"fedlex.get_references","description":"List the references (Verweise) an act's text makes, with ELI where linked, optionally within one eId: use to follow cross-references. hint."},{"name":"fedlex.get_structure","description":"Outline one consolidation (sections, articles with eId, num and heading): use when you know the act but not the article number. norm."},{"name":"fedlex.get_subdivisions","description":"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."},{"name":"fedlex.get_taxonomy","description":"Classify an act in the systematic collection (SR branch chain, notation, labels de/fr/it): use for «zu welchem Rechtsgebiet gehört X?». norm."},{"name":"fedlex.get_treaty_info","description":"Read a treaty process profile (title, signature, bilateral, partner countries, approving decree) for an eli/treaty IRI: use after find_treaties. norm."},{"name":"fedlex.list_annexes","description":"List the annexes (Anhänge) of a consolidation with titles and path eIds (annex_u1/…): use before reading an Anhang with read_article. norm."},{"name":"fedlex.list_expressions","description":"List the language versions and manifestations (XML, PDF) of one consolidation: use before reading to see whether a Fassung is PDF-only. norm."},{"name":"fedlex.list_versions","description":"List every dated consolidation (Fassung) of an act, future ones included: use to pick the eli_version the reading tools need. norm."},{"name":"fedlex.parse_reference","description":"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."},{"name":"fedlex.read_article","description":"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."},{"name":"fedlex.read_document","description":"Read a whole small act or Verordnung as capped Markdown (truncated flag, continuation offset): use for short acts; quote via read_article. norm."},{"name":"fedlex.resolve_consolidation_at","description":"Resolve which consolidation (Fassung) of an act governed on an ISO date: use before reading text for a past or future Stichtag. norm."},{"name":"fedlex.resolve_sr","description":"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."},{"name":"fedlex.resolve_vocabulary_label","description":"Look up a Fedlex vocabulary term (enforcement-status, language, …) by label or IRI: use to decode a coded value from another answer. hint."},{"name":"fedlex.search_law","description":"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."},{"name":"fedlex.search_text","description":"Find where a word occurs inside ONE consolidation (hits with eId and Artikel): use before read_article when the article is unknown. hint."},{"name":"i14y.api_status","description":"Check whether the I14Y catalogue answers, register by register, so «no data» and «source down» stay apart: use before retrying a failed call. norm."},{"name":"i14y.get_concept","description":"Show one concept's record — type, value type, version, validity (Konzept, Codeliste): use before reading a code list's entries. norm."},{"name":"i14y.get_data_service","description":"Show one registered interface's record — endpoints, OpenAPI links, licence, served datasets (API, Endpunkt): use to reach the service. norm."},{"name":"i14y.get_dataset","description":"Show one dataset's full record — contact, coverage, every distribution with its licence and download address (Lizenz, Download): use before reuse. norm."},{"name":"i14y.get_dataset_distributions","description":"List a dataset's distributions — format, licence, download and access address (Datei, Lizenz, Format): use for «where do I get the data». norm."},{"name":"i14y.list_catalogs","description":"List the catalogues that feed I14Y, each one body's collection (Katalog, opendata.swiss, Bundesamt): use to see who contributes. norm."},{"name":"i14y.list_concepts","description":"List the harmonised concepts and code lists of the administration (Konzept, Codeliste, Nomenklatur, Merkmal): use to find a code list by publisher. norm."},{"name":"i14y.list_data_services","description":"List the registered machine interfaces of Swiss public bodies with their endpoints (API, Schnittstelle, Datendienst): use before building a scraper. norm."},{"name":"i14y.list_datasets","description":"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."},{"name":"i14y.list_public_services","description":"List the registered public services with their channels (Behördenleistung, Dienstleistung, Verwaltung): use for what an authority offers citizens. norm."},{"name":"i14y.list_publishers","description":"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."},{"name":"i14y.search_catalog","description":"Search the national data catalogue I14Y by words (Datensatz, Schnittstelle, API, Behördenleistung, Codeliste): use first, to find who publishes what. hint."},{"name":"i14y.search_codelist_entries","description":"List the codes of one code-list concept, paged, with names and validity (Code, Codeliste, Kanton, Geschlecht, Nomenklatur): use to resolve official codes. norm."},{"name":"lindas.describe","description":"Show everything the holding says about one IRI (a cube, an observation, a Kanton): use to follow an address you were handed. norm."},{"name":"lindas.describe_cube","description":"Show a cube's declared dimensions and profile — the record may carry more: use to learn the filters a question needs. hint."},{"name":"lindas.dimension_values","description":"List the values one dimension takes (Kantone, Abstimmungstypen, Geschäftsstände): use to filter by IRI instead of by text. hint."},{"name":"lindas.find_cube","description":"Find the cube behind a question by a word of its name («Volksinitiative», «Petition», «Parteienregister»): use before reading rows. hint."},{"name":"lindas.list_cubes","description":"List the 44 political data cubes of the Confederation (Abstimmungen, Wahlen, Bundesrat, Interessenbindungen): use to see what data exists. norm."},{"name":"lindas.list_versions","description":"List the versions of a cube family (Nationalratswahl 2019/2023/2027): use before reading a year; nothing links old to new. norm."},{"name":"lindas.observations","description":"Read a cube's rows with filters (Abstimmung, Referendum, Volksinitiative, Ständemehr, Kanton, Datum): use for the figures themselves. norm."},{"name":"lindas.resolve_label","description":"Resolve an IRI to its label in one language with a fallback (Kanton, Partei, Gremium, Interessenbindung): use to name a value. hint."},{"name":"manifest.get","description":"One entry's manifest by slug. A slug the directory does not hold is a not-found error carrying the E21 admission rule."},{"name":"meta.capabilities","description":"The platform capability register with published per-client coverage — tool names on this server ARE the capability ids."},{"name":"meta.schemas","description":"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 rout"},{"name":"meta.tools","description":"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 t"},{"name":"publish.info","description":"The publishing path — the only way into the directory: the three E21/E13 routes plus the honest interim state."},{"name":"standard.artifacts","description":"The manifest standard's sealed artifact register: path, canonical IRI, draft/published status and SHA-256 per contract file."}],"toolCount":65,"toolsHash":"13f117e5495c243cecec7e40b50929700f5e5c884a5b7cbeba43cac01c6c0dbd","serverName":"oh-mcp-gateway","capabilities":["tools"],"serverVersion":"0.1.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-09T23:30:30.798Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":96,"error":null,"detail":{"tools":[{"name":"directory.get","description":"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"},{"name":"facts.badge","description":"shields.io endpoint JSON for one subject, derived from the fact table — «no facts» in grey when nothing is recorded, never rounded up."},{"name":"facts.latest","description":"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."},{"name":"fedlex.check_in_force","description":"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."},{"name":"fedlex.check_quote","description":"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."},{"name":"fedlex.cite","description":"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."},{"name":"fedlex.compare_versions","description":"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."},{"name":"fedlex.detect_foreign_content","description":"Detect what the text tools hide in a Fassung: sections in another language (xml:lang) and <foreign> islands (formulas, graphics): use before quoting. norm."},{"name":"fedlex.explore_node","description":"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."},{"name":"fedlex.extract_tables","description":"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."},{"name":"fedlex.find_related_topic","description":"Find acts in the same field of law via the legal taxonomy, by ELI or SR: use to discover neighbouring Erlasse; candidates only. hint."},{"name":"fedlex.find_treaties","description":"Find treaty processes (Staatsverträge) by a title word, partner country IRI or bilaterality: use to locate a treaty before get_treaty_info. hint."},{"name":"fedlex.get_article_history","description":"Trace which amendments and consolidations changed one Artikel (eId) of an act, with dates: use for «seit wann gilt Art. X so?». norm."},{"name":"fedlex.get_citations","description":"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."},{"name":"fedlex.get_consultation_documents","description":"List the position statements and result reports of one consultation IRI: use after get_consultations to read the genesis record. norm."},{"name":"fedlex.get_consultations","description":"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."},{"name":"fedlex.get_drafts","description":"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."},{"name":"fedlex.get_fga_documents","description":"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."},{"name":"fedlex.get_law_metadata","description":"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."},{"name":"fedlex.get_memorial","description":"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."},{"name":"fedlex.get_modifications","description":"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."},{"name":"fedlex.get_oc_act","description":"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."},{"name":"fedlex.get_references","description":"List the references (Verweise) an act's text makes, with ELI where linked, optionally within one eId: use to follow cross-references. hint."},{"name":"fedlex.get_structure","description":"Outline one consolidation (sections, articles with eId, num and heading): use when you know the act but not the article number. norm."},{"name":"fedlex.get_subdivisions","description":"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."},{"name":"fedlex.get_taxonomy","description":"Classify an act in the systematic collection (SR branch chain, notation, labels de/fr/it): use for «zu welchem Rechtsgebiet gehört X?». norm."},{"name":"fedlex.get_treaty_info","description":"Read a treaty process profile (title, signature, bilateral, partner countries, approving decree) for an eli/treaty IRI: use after find_treaties. norm."},{"name":"fedlex.list_annexes","description":"List the annexes (Anhänge) of a consolidation with titles and path eIds (annex_u1/…): use before reading an Anhang with read_article. norm."},{"name":"fedlex.list_expressions","description":"List the language versions and manifestations (XML, PDF) of one consolidation: use before reading to see whether a Fassung is PDF-only. norm."},{"name":"fedlex.list_versions","description":"List every dated consolidation (Fassung) of an act, future ones included: use to pick the eli_version the reading tools need. norm."},{"name":"fedlex.parse_reference","description":"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."},{"name":"fedlex.read_article","description":"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."},{"name":"fedlex.read_document","description":"Read a whole small act or Verordnung as capped Markdown (truncated flag, continuation offset): use for short acts; quote via read_article. norm."},{"name":"fedlex.resolve_consolidation_at","description":"Resolve which consolidation (Fassung) of an act governed on an ISO date: use before reading text for a past or future Stichtag. norm."},{"name":"fedlex.resolve_sr","description":"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."},{"name":"fedlex.resolve_vocabulary_label","description":"Look up a Fedlex vocabulary term (enforcement-status, language, …) by label or IRI: use to decode a coded value from another answer. hint."},{"name":"fedlex.search_law","description":"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."},{"name":"fedlex.search_text","description":"Find where a word occurs inside ONE consolidation (hits with eId and Artikel): use before read_article when the article is unknown. hint."},{"name":"i14y.api_status","description":"Check whether the I14Y catalogue answers, register by register, so «no data» and «source down» stay apart: use before retrying a failed call. norm."},{"name":"i14y.get_concept","description":"Show one concept's record — type, value type, version, validity (Konzept, Codeliste): use before reading a code list's entries. norm."},{"name":"i14y.get_data_service","description":"Show one registered interface's record — endpoints, OpenAPI links, licence, served datasets (API, Endpunkt): use to reach the service. norm."},{"name":"i14y.get_dataset","description":"Show one dataset's full record — contact, coverage, every distribution with its licence and download address (Lizenz, Download): use before reuse. norm."},{"name":"i14y.get_dataset_distributions","description":"List a dataset's distributions — format, licence, download and access address (Datei, Lizenz, Format): use for «where do I get the data». norm."},{"name":"i14y.list_catalogs","description":"List the catalogues that feed I14Y, each one body's collection (Katalog, opendata.swiss, Bundesamt): use to see who contributes. norm."},{"name":"i14y.list_concepts","description":"List the harmonised concepts and code lists of the administration (Konzept, Codeliste, Nomenklatur, Merkmal): use to find a code list by publisher. norm."},{"name":"i14y.list_data_services","description":"List the registered machine interfaces of Swiss public bodies with their endpoints (API, Schnittstelle, Datendienst): use before building a scraper. norm."},{"name":"i14y.list_datasets","description":"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."},{"name":"i14y.list_public_services","description":"List the registered public services with their channels (Behördenleistung, Dienstleistung, Verwaltung): use for what an authority offers citizens. norm."},{"name":"i14y.list_publishers","description":"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."},{"name":"i14y.search_catalog","description":"Search the national data catalogue I14Y by words (Datensatz, Schnittstelle, API, Behördenleistung, Codeliste): use first, to find who publishes what. hint."},{"name":"i14y.search_codelist_entries","description":"List the codes of one code-list concept, paged, with names and validity (Code, Codeliste, Kanton, Geschlecht, Nomenklatur): use to resolve official codes. norm."},{"name":"lindas.describe","description":"Show everything the holding says about one IRI (a cube, an observation, a Kanton): use to follow an address you were handed. norm."},{"name":"lindas.describe_cube","description":"Show a cube's declared dimensions and profile — the record may carry more: use to learn the filters a question needs. hint."},{"name":"lindas.dimension_values","description":"List the values one dimension takes (Kantone, Abstimmungstypen, Geschäftsstände): use to filter by IRI instead of by text. hint."},{"name":"lindas.find_cube","description":"Find the cube behind a question by a word of its name («Volksinitiative», «Petition», «Parteienregister»): use before reading rows. hint."},{"name":"lindas.list_cubes","description":"List the 44 political data cubes of the Confederation (Abstimmungen, Wahlen, Bundesrat, Interessenbindungen): use to see what data exists. norm."},{"name":"lindas.list_versions","description":"List the versions of a cube family (Nationalratswahl 2019/2023/2027): use before reading a year; nothing links old to new. norm."},{"name":"lindas.observations","description":"Read a cube's rows with filters (Abstimmung, Referendum, Volksinitiative, Ständemehr, Kanton, Datum): use for the figures themselves. norm."},{"name":"lindas.resolve_label","description":"Resolve an IRI to its label in one language with a fallback (Kanton, Partei, Gremium, Interessenbindung): use to name a value. hint."},{"name":"manifest.get","description":"One entry's manifest by slug. A slug the directory does not hold is a not-found error carrying the E21 admission rule."},{"name":"meta.capabilities","description":"The platform capability register with published per-client coverage — tool names on this server ARE the capability ids."},{"name":"meta.schemas","description":"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 rout"},{"name":"meta.tools","description":"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 t"},{"name":"publish.info","description":"The publishing path — the only way into the directory: the three E21/E13 routes plus the honest interim state."},{"name":"standard.artifacts","description":"The manifest standard's sealed artifact register: path, canonical IRI, draft/published status and SHA-256 per contract file."}],"toolCount":65,"toolsHash":"13f117e5495c243cecec7e40b50929700f5e5c884a5b7cbeba43cac01c6c0dbd","serverName":"oh-mcp-gateway","capabilities":["tools"],"serverVersion":"0.1.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-09T17:28:09.997Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":100,"error":null,"detail":{"tools":[{"name":"directory.get","description":"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"},{"name":"facts.badge","description":"shields.io endpoint JSON for one subject, derived from the fact table — «no facts» in grey when nothing is recorded, never rounded up."},{"name":"facts.latest","description":"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."},{"name":"fedlex.check_in_force","description":"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."},{"name":"fedlex.check_quote","description":"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."},{"name":"fedlex.cite","description":"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."},{"name":"fedlex.compare_versions","description":"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."},{"name":"fedlex.detect_foreign_content","description":"Detect what the text tools hide in a Fassung: sections in another language (xml:lang) and <foreign> islands (formulas, graphics): use before quoting. norm."},{"name":"fedlex.explore_node","description":"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."},{"name":"fedlex.extract_tables","description":"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."},{"name":"fedlex.find_related_topic","description":"Find acts in the same field of law via the legal taxonomy, by ELI or SR: use to discover neighbouring Erlasse; candidates only. hint."},{"name":"fedlex.find_treaties","description":"Find treaty processes (Staatsverträge) by a title word, partner country IRI or bilaterality: use to locate a treaty before get_treaty_info. hint."},{"name":"fedlex.get_article_history","description":"Trace which amendments and consolidations changed one Artikel (eId) of an act, with dates: use for «seit wann gilt Art. X so?». norm."},{"name":"fedlex.get_citations","description":"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."},{"name":"fedlex.get_consultation_documents","description":"List the position statements and result reports of one consultation IRI: use after get_consultations to read the genesis record. norm."},{"name":"fedlex.get_consultations","description":"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."},{"name":"fedlex.get_drafts","description":"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."},{"name":"fedlex.get_fga_documents","description":"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."},{"name":"fedlex.get_law_metadata","description":"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."},{"name":"fedlex.get_memorial","description":"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."},{"name":"fedlex.get_modifications","description":"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."},{"name":"fedlex.get_oc_act","description":"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."},{"name":"fedlex.get_references","description":"List the references (Verweise) an act's text makes, with ELI where linked, optionally within one eId: use to follow cross-references. hint."},{"name":"fedlex.get_structure","description":"Outline one consolidation (sections, articles with eId, num and heading): use when you know the act but not the article number. norm."},{"name":"fedlex.get_subdivisions","description":"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."},{"name":"fedlex.get_taxonomy","description":"Classify an act in the systematic collection (SR branch chain, notation, labels de/fr/it): use for «zu welchem Rechtsgebiet gehört X?». norm."},{"name":"fedlex.get_treaty_info","description":"Read a treaty process profile (title, signature, bilateral, partner countries, approving decree) for an eli/treaty IRI: use after find_treaties. norm."},{"name":"fedlex.list_annexes","description":"List the annexes (Anhänge) of a consolidation with titles and path eIds (annex_u1/…): use before reading an Anhang with read_article. norm."},{"name":"fedlex.list_expressions","description":"List the language versions and manifestations (XML, PDF) of one consolidation: use before reading to see whether a Fassung is PDF-only. norm."},{"name":"fedlex.list_versions","description":"List every dated consolidation (Fassung) of an act, future ones included: use to pick the eli_version the reading tools need. norm."},{"name":"fedlex.parse_reference","description":"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."},{"name":"fedlex.read_article","description":"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."},{"name":"fedlex.read_document","description":"Read a whole small act or Verordnung as capped Markdown (truncated flag, continuation offset): use for short acts; quote via read_article. norm."},{"name":"fedlex.resolve_consolidation_at","description":"Resolve which consolidation (Fassung) of an act governed on an ISO date: use before reading text for a past or future Stichtag. norm."},{"name":"fedlex.resolve_sr","description":"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."},{"name":"fedlex.resolve_vocabulary_label","description":"Look up a Fedlex vocabulary term (enforcement-status, language, …) by label or IRI: use to decode a coded value from another answer. hint."},{"name":"fedlex.search_law","description":"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."},{"name":"fedlex.search_text","description":"Find where a word occurs inside ONE consolidation (hits with eId and Artikel): use before read_article when the article is unknown. hint."},{"name":"i14y.api_status","description":"Check whether the I14Y catalogue answers, register by register, so «no data» and «source down» stay apart: use before retrying a failed call. norm."},{"name":"i14y.get_concept","description":"Show one concept's record — type, value type, version, validity (Konzept, Codeliste): use before reading a code list's entries. norm."},{"name":"i14y.get_data_service","description":"Show one registered interface's record — endpoints, OpenAPI links, licence, served datasets (API, Endpunkt): use to reach the service. norm."},{"name":"i14y.get_dataset","description":"Show one dataset's full record — contact, coverage, every distribution with its licence and download address (Lizenz, Download): use before reuse. norm."},{"name":"i14y.get_dataset_distributions","description":"List a dataset's distributions — format, licence, download and access address (Datei, Lizenz, Format): use for «where do I get the data». norm."},{"name":"i14y.list_catalogs","description":"List the catalogues that feed I14Y, each one body's collection (Katalog, opendata.swiss, Bundesamt): use to see who contributes. norm."},{"name":"i14y.list_concepts","description":"List the harmonised concepts and code lists of the administration (Konzept, Codeliste, Nomenklatur, Merkmal): use to find a code list by publisher. norm."},{"name":"i14y.list_data_services","description":"List the registered machine interfaces of Swiss public bodies with their endpoints (API, Schnittstelle, Datendienst): use before building a scraper. norm."},{"name":"i14y.list_datasets","description":"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."},{"name":"i14y.list_public_services","description":"List the registered public services with their channels (Behördenleistung, Dienstleistung, Verwaltung): use for what an authority offers citizens. norm."},{"name":"i14y.list_publishers","description":"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."},{"name":"i14y.search_catalog","description":"Search the national data catalogue I14Y by words (Datensatz, Schnittstelle, API, Behördenleistung, Codeliste): use first, to find who publishes what. hint."},{"name":"i14y.search_codelist_entries","description":"List the codes of one code-list concept, paged, with names and validity (Code, Codeliste, Kanton, Geschlecht, Nomenklatur): use to resolve official codes. norm."},{"name":"lindas.describe","description":"Show everything the holding says about one IRI (a cube, an observation, a Kanton): use to follow an address you were handed. norm."},{"name":"lindas.describe_cube","description":"Show a cube's declared dimensions and profile — the record may carry more: use to learn the filters a question needs. hint."},{"name":"lindas.dimension_values","description":"List the values one dimension takes (Kantone, Abstimmungstypen, Geschäftsstände): use to filter by IRI instead of by text. hint."},{"name":"lindas.find_cube","description":"Find the cube behind a question by a word of its name («Volksinitiative», «Petition», «Parteienregister»): use before reading rows. hint."},{"name":"lindas.list_cubes","description":"List the 44 political data cubes of the Confederation (Abstimmungen, Wahlen, Bundesrat, Interessenbindungen): use to see what data exists. norm."},{"name":"lindas.list_versions","description":"List the versions of a cube family (Nationalratswahl 2019/2023/2027): use before reading a year; nothing links old to new. norm."},{"name":"lindas.observations","description":"Read a cube's rows with filters (Abstimmung, Referendum, Volksinitiative, Ständemehr, Kanton, Datum): use for the figures themselves. norm."},{"name":"lindas.resolve_label","description":"Resolve an IRI to its label in one language with a fallback (Kanton, Partei, Gremium, Interessenbindung): use to name a value. hint."},{"name":"manifest.get","description":"One entry's manifest by slug. A slug the directory does not hold is a not-found error carrying the E21 admission rule."},{"name":"meta.capabilities","description":"The platform capability register with published per-client coverage — tool names on this server ARE the capability ids."},{"name":"meta.schemas","description":"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 rout"},{"name":"meta.tools","description":"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 t"},{"name":"publish.info","description":"The publishing path — the only way into the directory: the three E21/E13 routes plus the honest interim state."},{"name":"standard.artifacts","description":"The manifest standard's sealed artifact register: path, canonical IRI, draft/published status and SHA-256 per contract file."}],"toolCount":65,"toolsHash":"13f117e5495c243cecec7e40b50929700f5e5c884a5b7cbeba43cac01c6c0dbd","serverName":"oh-mcp-gateway","capabilities":["tools"],"serverVersion":"0.1.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-09T11:26:34.216Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":66,"error":null,"detail":{"tools":[{"name":"directory.get","description":"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"},{"name":"facts.badge","description":"shields.io endpoint JSON for one subject, derived from the fact table — «no facts» in grey when nothing is recorded, never rounded up."},{"name":"facts.latest","description":"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."},{"name":"fedlex.check_in_force","description":"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."},{"name":"fedlex.check_quote","description":"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."},{"name":"fedlex.cite","description":"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."},{"name":"fedlex.compare_versions","description":"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."},{"name":"fedlex.detect_foreign_content","description":"Detect what the text tools hide in a Fassung: sections in another language (xml:lang) and <foreign> islands (formulas, graphics): use before quoting. norm."},{"name":"fedlex.explore_node","description":"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."},{"name":"fedlex.extract_tables","description":"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."},{"name":"fedlex.find_related_topic","description":"Find acts in the same field of law via the legal taxonomy, by ELI or SR: use to discover neighbouring Erlasse; candidates only. hint."},{"name":"fedlex.find_treaties","description":"Find treaty processes (Staatsverträge) by a title word, partner country IRI or bilaterality: use to locate a treaty before get_treaty_info. hint."},{"name":"fedlex.get_article_history","description":"Trace which amendments and consolidations changed one Artikel (eId) of an act, with dates: use for «seit wann gilt Art. X so?». norm."},{"name":"fedlex.get_citations","description":"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."},{"name":"fedlex.get_consultation_documents","description":"List the position statements and result reports of one consultation IRI: use after get_consultations to read the genesis record. norm."},{"name":"fedlex.get_consultations","description":"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."},{"name":"fedlex.get_drafts","description":"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."},{"name":"fedlex.get_fga_documents","description":"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."},{"name":"fedlex.get_law_metadata","description":"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."},{"name":"fedlex.get_memorial","description":"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."},{"name":"fedlex.get_modifications","description":"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."},{"name":"fedlex.get_oc_act","description":"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."},{"name":"fedlex.get_references","description":"List the references (Verweise) an act's text makes, with ELI where linked, optionally within one eId: use to follow cross-references. hint."},{"name":"fedlex.get_structure","description":"Outline one consolidation (sections, articles with eId, num and heading): use when you know the act but not the article number. norm."},{"name":"fedlex.get_subdivisions","description":"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."},{"name":"fedlex.get_taxonomy","description":"Classify an act in the systematic collection (SR branch chain, notation, labels de/fr/it): use for «zu welchem Rechtsgebiet gehört X?». norm."},{"name":"fedlex.get_treaty_info","description":"Read a treaty process profile (title, signature, bilateral, partner countries, approving decree) for an eli/treaty IRI: use after find_treaties. norm."},{"name":"fedlex.list_annexes","description":"List the annexes (Anhänge) of a consolidation with titles and path eIds (annex_u1/…): use before reading an Anhang with read_article. norm."},{"name":"fedlex.list_expressions","description":"List the language versions and manifestations (XML, PDF) of one consolidation: use before reading to see whether a Fassung is PDF-only. norm."},{"name":"fedlex.list_versions","description":"List every dated consolidation (Fassung) of an act, future ones included: use to pick the eli_version the reading tools need. norm."},{"name":"fedlex.parse_reference","description":"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."},{"name":"fedlex.read_article","description":"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."},{"name":"fedlex.read_document","description":"Read a whole small act or Verordnung as capped Markdown (truncated flag, continuation offset): use for short acts; quote via read_article. norm."},{"name":"fedlex.resolve_consolidation_at","description":"Resolve which consolidation (Fassung) of an act governed on an ISO date: use before reading text for a past or future Stichtag. norm."},{"name":"fedlex.resolve_sr","description":"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."},{"name":"fedlex.resolve_vocabulary_label","description":"Look up a Fedlex vocabulary term (enforcement-status, language, …) by label or IRI: use to decode a coded value from another answer. hint."},{"name":"fedlex.search_law","description":"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."},{"name":"fedlex.search_text","description":"Find where a word occurs inside ONE consolidation (hits with eId and Artikel): use before read_article when the article is unknown. hint."},{"name":"i14y.api_status","description":"Check whether the I14Y catalogue answers, register by register, so «no data» and «source down» stay apart: use before retrying a failed call. norm."},{"name":"i14y.get_concept","description":"Show one concept's record — type, value type, version, validity (Konzept, Codeliste): use before reading a code list's entries. norm."},{"name":"i14y.get_data_service","description":"Show one registered interface's record — endpoints, OpenAPI links, licence, served datasets (API, Endpunkt): use to reach the service. norm."},{"name":"i14y.get_dataset","description":"Show one dataset's full record — contact, coverage, every distribution with its licence and download address (Lizenz, Download): use before reuse. norm."},{"name":"i14y.get_dataset_distributions","description":"List a dataset's distributions — format, licence, download and access address (Datei, Lizenz, Format): use for «where do I get the data». norm."},{"name":"i14y.list_catalogs","description":"List the catalogues that feed I14Y, each one body's collection (Katalog, opendata.swiss, Bundesamt): use to see who contributes. norm."},{"name":"i14y.list_concepts","description":"List the harmonised concepts and code lists of the administration (Konzept, Codeliste, Nomenklatur, Merkmal): use to find a code list by publisher. norm."},{"name":"i14y.list_data_services","description":"List the registered machine interfaces of Swiss public bodies with their endpoints (API, Schnittstelle, Datendienst): use before building a scraper. norm."},{"name":"i14y.list_datasets","description":"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."},{"name":"i14y.list_public_services","description":"List the registered public services with their channels (Behördenleistung, Dienstleistung, Verwaltung): use for what an authority offers citizens. norm."},{"name":"i14y.list_publishers","description":"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."},{"name":"i14y.search_catalog","description":"Search the national data catalogue I14Y by words (Datensatz, Schnittstelle, API, Behördenleistung, Codeliste): use first, to find who publishes what. hint."},{"name":"i14y.search_codelist_entries","description":"List the codes of one code-list concept, paged, with names and validity (Code, Codeliste, Kanton, Geschlecht, Nomenklatur): use to resolve official codes. norm."},{"name":"lindas.describe","description":"Show everything the holding says about one IRI (a cube, an observation, a Kanton): use to follow an address you were handed. norm."},{"name":"lindas.describe_cube","description":"Show a cube's declared dimensions and profile — the record may carry more: use to learn the filters a question needs. hint."},{"name":"lindas.dimension_values","description":"List the values one dimension takes (Kantone, Abstimmungstypen, Geschäftsstände): use to filter by IRI instead of by text. hint."},{"name":"lindas.find_cube","description":"Find the cube behind a question by a word of its name («Volksinitiative», «Petition», «Parteienregister»): use before reading rows. hint."},{"name":"lindas.list_cubes","description":"List the 44 political data cubes of the Confederation (Abstimmungen, Wahlen, Bundesrat, Interessenbindungen): use to see what data exists. norm."},{"name":"lindas.list_versions","description":"List the versions of a cube family (Nationalratswahl 2019/2023/2027): use before reading a year; nothing links old to new. norm."},{"name":"lindas.observations","description":"Read a cube's rows with filters (Abstimmung, Referendum, Volksinitiative, Ständemehr, Kanton, Datum): use for the figures themselves. norm."},{"name":"lindas.resolve_label","description":"Resolve an IRI to its label in one language with a fallback (Kanton, Partei, Gremium, Interessenbindung): use to name a value. hint."},{"name":"manifest.get","description":"One entry's manifest by slug. A slug the directory does not hold is a not-found error carrying the E21 admission rule."},{"name":"meta.capabilities","description":"The platform capability register with published per-client coverage — tool names on this server ARE the capability ids."},{"name":"meta.schemas","description":"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 rout"},{"name":"meta.tools","description":"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 t"},{"name":"publish.info","description":"The publishing path — the only way into the directory: the three E21/E13 routes plus the honest interim state."},{"name":"standard.artifacts","description":"The manifest standard's sealed artifact register: path, canonical IRI, draft/published status and SHA-256 per contract file."}],"toolCount":65,"toolsHash":"13f117e5495c243cecec7e40b50929700f5e5c884a5b7cbeba43cac01c6c0dbd","serverName":"oh-mcp-gateway","capabilities":["tools"],"serverVersion":"0.1.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-09T05:26:50.964Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":61,"error":null,"detail":{"tools":[{"name":"directory.get","description":"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"},{"name":"facts.badge","description":"shields.io endpoint JSON for one subject, derived from the fact table — «no facts» in grey when nothing is recorded, never rounded up."},{"name":"facts.latest","description":"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."},{"name":"fedlex.check_in_force","description":"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."},{"name":"fedlex.check_quote","description":"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."},{"name":"fedlex.cite","description":"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."},{"name":"fedlex.compare_versions","description":"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."},{"name":"fedlex.detect_foreign_content","description":"Detect what the text tools hide in a Fassung: sections in another language (xml:lang) and <foreign> islands (formulas, graphics): use before quoting. norm."},{"name":"fedlex.explore_node","description":"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."},{"name":"fedlex.extract_tables","description":"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."},{"name":"fedlex.find_related_topic","description":"Find acts in the same field of law via the legal taxonomy, by ELI or SR: use to discover neighbouring Erlasse; candidates only. hint."},{"name":"fedlex.find_treaties","description":"Find treaty processes (Staatsverträge) by a title word, partner country IRI or bilaterality: use to locate a treaty before get_treaty_info. hint."},{"name":"fedlex.get_article_history","description":"Trace which amendments and consolidations changed one Artikel (eId) of an act, with dates: use for «seit wann gilt Art. X so?». norm."},{"name":"fedlex.get_citations","description":"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."},{"name":"fedlex.get_consultation_documents","description":"List the position statements and result reports of one consultation IRI: use after get_consultations to read the genesis record. norm."},{"name":"fedlex.get_consultations","description":"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."},{"name":"fedlex.get_drafts","description":"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."},{"name":"fedlex.get_fga_documents","description":"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."},{"name":"fedlex.get_law_metadata","description":"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."},{"name":"fedlex.get_memorial","description":"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."},{"name":"fedlex.get_modifications","description":"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."},{"name":"fedlex.get_oc_act","description":"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."},{"name":"fedlex.get_references","description":"List the references (Verweise) an act's text makes, with ELI where linked, optionally within one eId: use to follow cross-references. hint."},{"name":"fedlex.get_structure","description":"Outline one consolidation (sections, articles with eId, num and heading): use when you know the act but not the article number. norm."},{"name":"fedlex.get_subdivisions","description":"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."},{"name":"fedlex.get_taxonomy","description":"Classify an act in the systematic collection (SR branch chain, notation, labels de/fr/it): use for «zu welchem Rechtsgebiet gehört X?». norm."},{"name":"fedlex.get_treaty_info","description":"Read a treaty process profile (title, signature, bilateral, partner countries, approving decree) for an eli/treaty IRI: use after find_treaties. norm."},{"name":"fedlex.list_annexes","description":"List the annexes (Anhänge) of a consolidation with titles and path eIds (annex_u1/…): use before reading an Anhang with read_article. norm."},{"name":"fedlex.list_expressions","description":"List the language versions and manifestations (XML, PDF) of one consolidation: use before reading to see whether a Fassung is PDF-only. norm."},{"name":"fedlex.list_versions","description":"List every dated consolidation (Fassung) of an act, future ones included: use to pick the eli_version the reading tools need. norm."},{"name":"fedlex.parse_reference","description":"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."},{"name":"fedlex.read_article","description":"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."},{"name":"fedlex.read_document","description":"Read a whole small act or Verordnung as capped Markdown (truncated flag, continuation offset): use for short acts; quote via read_article. norm."},{"name":"fedlex.resolve_consolidation_at","description":"Resolve which consolidation (Fassung) of an act governed on an ISO date: use before reading text for a past or future Stichtag. norm."},{"name":"fedlex.resolve_sr","description":"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."},{"name":"fedlex.resolve_vocabulary_label","description":"Look up a Fedlex vocabulary term (enforcement-status, language, …) by label or IRI: use to decode a coded value from another answer. hint."},{"name":"fedlex.search_law","description":"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."},{"name":"fedlex.search_text","description":"Find where a word occurs inside ONE consolidation (hits with eId and Artikel): use before read_article when the article is unknown. hint."},{"name":"i14y.api_status","description":"Check whether the I14Y catalogue answers, register by register, so «no data» and «source down» stay apart: use before retrying a failed call. norm."},{"name":"i14y.get_concept","description":"Show one concept's record — type, value type, version, validity (Konzept, Codeliste): use before reading a code list's entries. norm."},{"name":"i14y.get_data_service","description":"Show one registered interface's record — endpoints, OpenAPI links, licence, served datasets (API, Endpunkt): use to reach the service. norm."},{"name":"i14y.get_dataset","description":"Show one dataset's full record — contact, coverage, every distribution with its licence and download address (Lizenz, Download): use before reuse. norm."},{"name":"i14y.get_dataset_distributions","description":"List a dataset's distributions — format, licence, download and access address (Datei, Lizenz, Format): use for «where do I get the data». norm."},{"name":"i14y.list_catalogs","description":"List the catalogues that feed I14Y, each one body's collection (Katalog, opendata.swiss, Bundesamt): use to see who contributes. norm."},{"name":"i14y.list_concepts","description":"List the harmonised concepts and code lists of the administration (Konzept, Codeliste, Nomenklatur, Merkmal): use to find a code list by publisher. norm."},{"name":"i14y.list_data_services","description":"List the registered machine interfaces of Swiss public bodies with their endpoints (API, Schnittstelle, Datendienst): use before building a scraper. norm."},{"name":"i14y.list_datasets","description":"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."},{"name":"i14y.list_public_services","description":"List the registered public services with their channels (Behördenleistung, Dienstleistung, Verwaltung): use for what an authority offers citizens. norm."},{"name":"i14y.list_publishers","description":"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."},{"name":"i14y.search_catalog","description":"Search the national data catalogue I14Y by words (Datensatz, Schnittstelle, API, Behördenleistung, Codeliste): use first, to find who publishes what. hint."},{"name":"i14y.search_codelist_entries","description":"List the codes of one code-list concept, paged, with names and validity (Code, Codeliste, Kanton, Geschlecht, Nomenklatur): use to resolve official codes. norm."},{"name":"lindas.describe","description":"Show everything the holding says about one IRI (a cube, an observation, a Kanton): use to follow an address you were handed. norm."},{"name":"lindas.describe_cube","description":"Show a cube's declared dimensions and profile — the record may carry more: use to learn the filters a question needs. hint."},{"name":"lindas.dimension_values","description":"List the values one dimension takes (Kantone, Abstimmungstypen, Geschäftsstände): use to filter by IRI instead of by text. hint."},{"name":"lindas.find_cube","description":"Find the cube behind a question by a word of its name («Volksinitiative», «Petition», «Parteienregister»): use before reading rows. hint."},{"name":"lindas.list_cubes","description":"List the 44 political data cubes of the Confederation (Abstimmungen, Wahlen, Bundesrat, Interessenbindungen): use to see what data exists. norm."},{"name":"lindas.list_versions","description":"List the versions of a cube family (Nationalratswahl 2019/2023/2027): use before reading a year; nothing links old to new. norm."},{"name":"lindas.observations","description":"Read a cube's rows with filters (Abstimmung, Referendum, Volksinitiative, Ständemehr, Kanton, Datum): use for the figures themselves. norm."},{"name":"lindas.resolve_label","description":"Resolve an IRI to its label in one language with a fallback (Kanton, Partei, Gremium, Interessenbindung): use to name a value. hint."},{"name":"manifest.get","description":"One entry's manifest by slug. A slug the directory does not hold is a not-found error carrying the E21 admission rule."},{"name":"meta.capabilities","description":"The platform capability register with published per-client coverage — tool names on this server ARE the capability ids."},{"name":"meta.schemas","description":"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 rout"},{"name":"meta.tools","description":"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 t"},{"name":"publish.info","description":"The publishing path — the only way into the directory: the three E21/E13 routes plus the honest interim state."},{"name":"standard.artifacts","description":"The manifest standard's sealed artifact register: path, canonical IRI, draft/published status and SHA-256 per contract file."}],"toolCount":65,"toolsHash":"13f117e5495c243cecec7e40b50929700f5e5c884a5b7cbeba43cac01c6c0dbd","serverName":"oh-mcp-gateway","capabilities":["tools"],"serverVersion":"0.1.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-08T23:22:38.791Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":111,"error":null,"detail":{"tools":[{"name":"directory.get","description":"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"},{"name":"facts.badge","description":"shields.io endpoint JSON for one subject, derived from the fact table — «no facts» in grey when nothing is recorded, never rounded up."},{"name":"facts.latest","description":"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."},{"name":"fedlex.check_in_force","description":"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."},{"name":"fedlex.check_quote","description":"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."},{"name":"fedlex.cite","description":"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."},{"name":"fedlex.compare_versions","description":"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."},{"name":"fedlex.detect_foreign_content","description":"Detect what the text tools hide in a Fassung: sections in another language (xml:lang) and <foreign> islands (formulas, graphics): use before quoting. norm."},{"name":"fedlex.explore_node","description":"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."},{"name":"fedlex.extract_tables","description":"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."},{"name":"fedlex.find_related_topic","description":"Find acts in the same field of law via the legal taxonomy, by ELI or SR: use to discover neighbouring Erlasse; candidates only. hint."},{"name":"fedlex.find_treaties","description":"Find treaty processes (Staatsverträge) by a title word, partner country IRI or bilaterality: use to locate a treaty before get_treaty_info. hint."},{"name":"fedlex.get_article_history","description":"Trace which amendments and consolidations changed one Artikel (eId) of an act, with dates: use for «seit wann gilt Art. X so?». norm."},{"name":"fedlex.get_citations","description":"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."},{"name":"fedlex.get_consultation_documents","description":"List the position statements and result reports of one consultation IRI: use after get_consultations to read the genesis record. norm."},{"name":"fedlex.get_consultations","description":"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."},{"name":"fedlex.get_drafts","description":"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."},{"name":"fedlex.get_fga_documents","description":"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."},{"name":"fedlex.get_law_metadata","description":"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."},{"name":"fedlex.get_memorial","description":"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."},{"name":"fedlex.get_modifications","description":"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."},{"name":"fedlex.get_oc_act","description":"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."},{"name":"fedlex.get_references","description":"List the references (Verweise) an act's text makes, with ELI where linked, optionally within one eId: use to follow cross-references. hint."},{"name":"fedlex.get_structure","description":"Outline one consolidation (sections, articles with eId, num and heading): use when you know the act but not the article number. norm."},{"name":"fedlex.get_subdivisions","description":"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."},{"name":"fedlex.get_taxonomy","description":"Classify an act in the systematic collection (SR branch chain, notation, labels de/fr/it): use for «zu welchem Rechtsgebiet gehört X?». norm."},{"name":"fedlex.get_treaty_info","description":"Read a treaty process profile (title, signature, bilateral, partner countries, approving decree) for an eli/treaty IRI: use after find_treaties. norm."},{"name":"fedlex.list_annexes","description":"List the annexes (Anhänge) of a consolidation with titles and path eIds (annex_u1/…): use before reading an Anhang with read_article. norm."},{"name":"fedlex.list_expressions","description":"List the language versions and manifestations (XML, PDF) of one consolidation: use before reading to see whether a Fassung is PDF-only. norm."},{"name":"fedlex.list_versions","description":"List every dated consolidation (Fassung) of an act, future ones included: use to pick the eli_version the reading tools need. norm."},{"name":"fedlex.parse_reference","description":"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."},{"name":"fedlex.read_article","description":"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."},{"name":"fedlex.read_document","description":"Read a whole small act or Verordnung as capped Markdown (truncated flag, continuation offset): use for short acts; quote via read_article. norm."},{"name":"fedlex.resolve_consolidation_at","description":"Resolve which consolidation (Fassung) of an act governed on an ISO date: use before reading text for a past or future Stichtag. norm."},{"name":"fedlex.resolve_sr","description":"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."},{"name":"fedlex.resolve_vocabulary_label","description":"Look up a Fedlex vocabulary term (enforcement-status, language, …) by label or IRI: use to decode a coded value from another answer. hint."},{"name":"fedlex.search_law","description":"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."},{"name":"fedlex.search_text","description":"Find where a word occurs inside ONE consolidation (hits with eId and Artikel): use before read_article when the article is unknown. hint."},{"name":"i14y.api_status","description":"Check whether the I14Y catalogue answers, register by register, so «no data» and «source down» stay apart: use before retrying a failed call. norm."},{"name":"i14y.get_concept","description":"Show one concept's record — type, value type, version, validity (Konzept, Codeliste): use before reading a code list's entries. norm."},{"name":"i14y.get_data_service","description":"Show one registered interface's record — endpoints, OpenAPI links, licence, served datasets (API, Endpunkt): use to reach the service. norm."},{"name":"i14y.get_dataset","description":"Show one dataset's full record — contact, coverage, every distribution with its licence and download address (Lizenz, Download): use before reuse. norm."},{"name":"i14y.get_dataset_distributions","description":"List a dataset's distributions — format, licence, download and access address (Datei, Lizenz, Format): use for «where do I get the data». norm."},{"name":"i14y.list_catalogs","description":"List the catalogues that feed I14Y, each one body's collection (Katalog, opendata.swiss, Bundesamt): use to see who contributes. norm."},{"name":"i14y.list_concepts","description":"List the harmonised concepts and code lists of the administration (Konzept, Codeliste, Nomenklatur, Merkmal): use to find a code list by publisher. norm."},{"name":"i14y.list_data_services","description":"List the registered machine interfaces of Swiss public bodies with their endpoints (API, Schnittstelle, Datendienst): use before building a scraper. norm."},{"name":"i14y.list_datasets","description":"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."},{"name":"i14y.list_public_services","description":"List the registered public services with their channels (Behördenleistung, Dienstleistung, Verwaltung): use for what an authority offers citizens. norm."},{"name":"i14y.list_publishers","description":"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."},{"name":"i14y.search_catalog","description":"Search the national data catalogue I14Y by words (Datensatz, Schnittstelle, API, Behördenleistung, Codeliste): use first, to find who publishes what. hint."},{"name":"i14y.search_codelist_entries","description":"List the codes of one code-list concept, paged, with names and validity (Code, Codeliste, Kanton, Geschlecht, Nomenklatur): use to resolve official codes. norm."},{"name":"lindas.describe","description":"Show everything the holding says about one IRI (a cube, an observation, a Kanton): use to follow an address you were handed. norm."},{"name":"lindas.describe_cube","description":"Show a cube's declared dimensions and profile — the record may carry more: use to learn the filters a question needs. hint."},{"name":"lindas.dimension_values","description":"List the values one dimension takes (Kantone, Abstimmungstypen, Geschäftsstände): use to filter by IRI instead of by text. hint."},{"name":"lindas.find_cube","description":"Find the cube behind a question by a word of its name («Volksinitiative», «Petition», «Parteienregister»): use before reading rows. hint."},{"name":"lindas.list_cubes","description":"List the 44 political data cubes of the Confederation (Abstimmungen, Wahlen, Bundesrat, Interessenbindungen): use to see what data exists. norm."},{"name":"lindas.list_versions","description":"List the versions of a cube family (Nationalratswahl 2019/2023/2027): use before reading a year; nothing links old to new. norm."},{"name":"lindas.observations","description":"Read a cube's rows with filters (Abstimmung, Referendum, Volksinitiative, Ständemehr, Kanton, Datum): use for the figures themselves. norm."},{"name":"lindas.resolve_label","description":"Resolve an IRI to its label in one language with a fallback (Kanton, Partei, Gremium, Interessenbindung): use to name a value. hint."},{"name":"manifest.get","description":"One entry's manifest by slug. A slug the directory does not hold is a not-found error carrying the E21 admission rule."},{"name":"meta.capabilities","description":"The platform capability register with published per-client coverage — tool names on this server ARE the capability ids."},{"name":"meta.schemas","description":"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 rout"},{"name":"meta.tools","description":"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 t"},{"name":"publish.info","description":"The publishing path — the only way into the directory: the three E21/E13 routes plus the honest interim state."},{"name":"standard.artifacts","description":"The manifest standard's sealed artifact register: path, canonical IRI, draft/published status and SHA-256 per contract file."}],"toolCount":65,"toolsHash":"13f117e5495c243cecec7e40b50929700f5e5c884a5b7cbeba43cac01c6c0dbd","serverName":"oh-mcp-gateway","capabilities":["tools"],"serverVersion":"0.1.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-08T17:27:26.877Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":79,"error":null,"detail":{"tools":[{"name":"directory.get","description":"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"},{"name":"facts.badge","description":"shields.io endpoint JSON for one subject, derived from the fact table — «no facts» in grey when nothing is recorded, never rounded up."},{"name":"facts.latest","description":"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."},{"name":"fedlex.check_in_force","description":"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."},{"name":"fedlex.check_quote","description":"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."},{"name":"fedlex.cite","description":"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."},{"name":"fedlex.compare_versions","description":"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."},{"name":"fedlex.detect_foreign_content","description":"Detect what the text tools hide in a Fassung: sections in another language (xml:lang) and <foreign> islands (formulas, graphics): use before quoting. norm."},{"name":"fedlex.explore_node","description":"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."},{"name":"fedlex.extract_tables","description":"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."},{"name":"fedlex.find_related_topic","description":"Find acts in the same field of law via the legal taxonomy, by ELI or SR: use to discover neighbouring Erlasse; candidates only. hint."},{"name":"fedlex.find_treaties","description":"Find treaty processes (Staatsverträge) by a title word, partner country IRI or bilaterality: use to locate a treaty before get_treaty_info. hint."},{"name":"fedlex.get_article_history","description":"Trace which amendments and consolidations changed one Artikel (eId) of an act, with dates: use for «seit wann gilt Art. X so?». norm."},{"name":"fedlex.get_citations","description":"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."},{"name":"fedlex.get_consultation_documents","description":"List the position statements and result reports of one consultation IRI: use after get_consultations to read the genesis record. norm."},{"name":"fedlex.get_consultations","description":"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."},{"name":"fedlex.get_drafts","description":"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."},{"name":"fedlex.get_fga_documents","description":"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."},{"name":"fedlex.get_law_metadata","description":"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."},{"name":"fedlex.get_memorial","description":"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."},{"name":"fedlex.get_modifications","description":"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."},{"name":"fedlex.get_oc_act","description":"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."},{"name":"fedlex.get_references","description":"List the references (Verweise) an act's text makes, with ELI where linked, optionally within one eId: use to follow cross-references. hint."},{"name":"fedlex.get_structure","description":"Outline one consolidation (sections, articles with eId, num and heading): use when you know the act but not the article number. norm."},{"name":"fedlex.get_subdivisions","description":"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."},{"name":"fedlex.get_taxonomy","description":"Classify an act in the systematic collection (SR branch chain, notation, labels de/fr/it): use for «zu welchem Rechtsgebiet gehört X?». norm."},{"name":"fedlex.get_treaty_info","description":"Read a treaty process profile (title, signature, bilateral, partner countries, approving decree) for an eli/treaty IRI: use after find_treaties. norm."},{"name":"fedlex.list_annexes","description":"List the annexes (Anhänge) of a consolidation with titles and path eIds (annex_u1/…): use before reading an Anhang with read_article. norm."},{"name":"fedlex.list_expressions","description":"List the language versions and manifestations (XML, PDF) of one consolidation: use before reading to see whether a Fassung is PDF-only. norm."},{"name":"fedlex.list_versions","description":"List every dated consolidation (Fassung) of an act, future ones included: use to pick the eli_version the reading tools need. norm."},{"name":"fedlex.parse_reference","description":"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."},{"name":"fedlex.read_article","description":"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."},{"name":"fedlex.read_document","description":"Read a whole small act or Verordnung as capped Markdown (truncated flag, continuation offset): use for short acts; quote via read_article. norm."},{"name":"fedlex.resolve_consolidation_at","description":"Resolve which consolidation (Fassung) of an act governed on an ISO date: use before reading text for a past or future Stichtag. norm."},{"name":"fedlex.resolve_sr","description":"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."},{"name":"fedlex.resolve_vocabulary_label","description":"Look up a Fedlex vocabulary term (enforcement-status, language, …) by label or IRI: use to decode a coded value from another answer. hint."},{"name":"fedlex.search_law","description":"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."},{"name":"fedlex.search_text","description":"Find where a word occurs inside ONE consolidation (hits with eId and Artikel): use before read_article when the article is unknown. hint."},{"name":"i14y.api_status","description":"Check whether the I14Y catalogue answers, register by register, so «no data» and «source down» stay apart: use before retrying a failed call. norm."},{"name":"i14y.get_concept","description":"Show one concept's record — type, value type, version, validity (Konzept, Codeliste): use before reading a code list's entries. norm."},{"name":"i14y.get_data_service","description":"Show one registered interface's record — endpoints, OpenAPI links, licence, served datasets (API, Endpunkt): use to reach the service. norm."},{"name":"i14y.get_dataset","description":"Show one dataset's full record — contact, coverage, every distribution with its licence and download address (Lizenz, Download): use before reuse. norm."},{"name":"i14y.get_dataset_distributions","description":"List a dataset's distributions — format, licence, download and access address (Datei, Lizenz, Format): use for «where do I get the data». norm."},{"name":"i14y.list_catalogs","description":"List the catalogues that feed I14Y, each one body's collection (Katalog, opendata.swiss, Bundesamt): use to see who contributes. norm."},{"name":"i14y.list_concepts","description":"List the harmonised concepts and code lists of the administration (Konzept, Codeliste, Nomenklatur, Merkmal): use to find a code list by publisher. norm."},{"name":"i14y.list_data_services","description":"List the registered machine interfaces of Swiss public bodies with their endpoints (API, Schnittstelle, Datendienst): use before building a scraper. norm."},{"name":"i14y.list_datasets","description":"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."},{"name":"i14y.list_public_services","description":"List the registered public services with their channels (Behördenleistung, Dienstleistung, Verwaltung): use for what an authority offers citizens. norm."},{"name":"i14y.list_publishers","description":"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."},{"name":"i14y.search_catalog","description":"Search the national data catalogue I14Y by words (Datensatz, Schnittstelle, API, Behördenleistung, Codeliste): use first, to find who publishes what. hint."},{"name":"i14y.search_codelist_entries","description":"List the codes of one code-list concept, paged, with names and validity (Code, Codeliste, Kanton, Geschlecht, Nomenklatur): use to resolve official codes. norm."},{"name":"lindas.describe","description":"Show everything the holding says about one IRI (a cube, an observation, a Kanton): use to follow an address you were handed. norm."},{"name":"lindas.describe_cube","description":"Show a cube's declared dimensions and profile — the record may carry more: use to learn the filters a question needs. hint."},{"name":"lindas.dimension_values","description":"List the values one dimension takes (Kantone, Abstimmungstypen, Geschäftsstände): use to filter by IRI instead of by text. hint."},{"name":"lindas.find_cube","description":"Find the cube behind a question by a word of its name («Volksinitiative», «Petition», «Parteienregister»): use before reading rows. hint."},{"name":"lindas.list_cubes","description":"List the 44 political data cubes of the Confederation (Abstimmungen, Wahlen, Bundesrat, Interessenbindungen): use to see what data exists. norm."},{"name":"lindas.list_versions","description":"List the versions of a cube family (Nationalratswahl 2019/2023/2027): use before reading a year; nothing links old to new. norm."},{"name":"lindas.observations","description":"Read a cube's rows with filters (Abstimmung, Referendum, Volksinitiative, Ständemehr, Kanton, Datum): use for the figures themselves. norm."},{"name":"lindas.resolve_label","description":"Resolve an IRI to its label in one language with a fallback (Kanton, Partei, Gremium, Interessenbindung): use to name a value. hint."},{"name":"manifest.get","description":"One entry's manifest by slug. A slug the directory does not hold is a not-found error carrying the E21 admission rule."},{"name":"meta.capabilities","description":"The platform capability register with published per-client coverage — tool names on this server ARE the capability ids."},{"name":"meta.schemas","description":"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 rout"},{"name":"meta.tools","description":"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 t"},{"name":"publish.info","description":"The publishing path — the only way into the directory: the three E21/E13 routes plus the honest interim state."},{"name":"standard.artifacts","description":"The manifest standard's sealed artifact register: path, canonical IRI, draft/published status and SHA-256 per contract file."}],"toolCount":65,"toolsHash":"13f117e5495c243cecec7e40b50929700f5e5c884a5b7cbeba43cac01c6c0dbd","serverName":"oh-mcp-gateway","capabilities":["tools"],"serverVersion":"0.1.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-08T11:22:14.879Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":118,"error":null,"detail":{"tools":[{"name":"directory.get","description":"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"},{"name":"facts.badge","description":"shields.io endpoint JSON for one subject, derived from the fact table — «no facts» in grey when nothing is recorded, never rounded up."},{"name":"facts.latest","description":"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."},{"name":"fedlex.check_in_force","description":"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."},{"name":"fedlex.check_quote","description":"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."},{"name":"fedlex.cite","description":"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."},{"name":"fedlex.compare_versions","description":"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."},{"name":"fedlex.detect_foreign_content","description":"Detect what the text tools hide in a Fassung: sections in another language (xml:lang) and <foreign> islands (formulas, graphics): use before quoting. norm."},{"name":"fedlex.explore_node","description":"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."},{"name":"fedlex.extract_tables","description":"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."},{"name":"fedlex.find_related_topic","description":"Find acts in the same field of law via the legal taxonomy, by ELI or SR: use to discover neighbouring Erlasse; candidates only. hint."},{"name":"fedlex.find_treaties","description":"Find treaty processes (Staatsverträge) by a title word, partner country IRI or bilaterality: use to locate a treaty before get_treaty_info. hint."},{"name":"fedlex.get_article_history","description":"Trace which amendments and consolidations changed one Artikel (eId) of an act, with dates: use for «seit wann gilt Art. X so?». norm."},{"name":"fedlex.get_citations","description":"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."},{"name":"fedlex.get_consultation_documents","description":"List the position statements and result reports of one consultation IRI: use after get_consultations to read the genesis record. norm."},{"name":"fedlex.get_consultations","description":"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."},{"name":"fedlex.get_drafts","description":"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."},{"name":"fedlex.get_fga_documents","description":"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."},{"name":"fedlex.get_law_metadata","description":"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."},{"name":"fedlex.get_memorial","description":"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."},{"name":"fedlex.get_modifications","description":"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."},{"name":"fedlex.get_oc_act","description":"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."},{"name":"fedlex.get_references","description":"List the references (Verweise) an act's text makes, with ELI where linked, optionally within one eId: use to follow cross-references. hint."},{"name":"fedlex.get_structure","description":"Outline one consolidation (sections, articles with eId, num and heading): use when you know the act but not the article number. norm."},{"name":"fedlex.get_subdivisions","description":"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."},{"name":"fedlex.get_taxonomy","description":"Classify an act in the systematic collection (SR branch chain, notation, labels de/fr/it): use for «zu welchem Rechtsgebiet gehört X?». norm."},{"name":"fedlex.get_treaty_info","description":"Read a treaty process profile (title, signature, bilateral, partner countries, approving decree) for an eli/treaty IRI: use after find_treaties. norm."},{"name":"fedlex.list_annexes","description":"List the annexes (Anhänge) of a consolidation with titles and path eIds (annex_u1/…): use before reading an Anhang with read_article. norm."},{"name":"fedlex.list_expressions","description":"List the language versions and manifestations (XML, PDF) of one consolidation: use before reading to see whether a Fassung is PDF-only. norm."},{"name":"fedlex.list_versions","description":"List every dated consolidation (Fassung) of an act, future ones included: use to pick the eli_version the reading tools need. norm."},{"name":"fedlex.parse_reference","description":"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."},{"name":"fedlex.read_article","description":"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."},{"name":"fedlex.read_document","description":"Read a whole small act or Verordnung as capped Markdown (truncated flag, continuation offset): use for short acts; quote via read_article. norm."},{"name":"fedlex.resolve_consolidation_at","description":"Resolve which consolidation (Fassung) of an act governed on an ISO date: use before reading text for a past or future Stichtag. norm."},{"name":"fedlex.resolve_sr","description":"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."},{"name":"fedlex.resolve_vocabulary_label","description":"Look up a Fedlex vocabulary term (enforcement-status, language, …) by label or IRI: use to decode a coded value from another answer. hint."},{"name":"fedlex.search_law","description":"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."},{"name":"fedlex.search_text","description":"Find where a word occurs inside ONE consolidation (hits with eId and Artikel): use before read_article when the article is unknown. hint."},{"name":"i14y.api_status","description":"Check whether the I14Y catalogue answers, register by register, so «no data» and «source down» stay apart: use before retrying a failed call. norm."},{"name":"i14y.get_concept","description":"Show one concept's record — type, value type, version, validity (Konzept, Codeliste): use before reading a code list's entries. norm."},{"name":"i14y.get_data_service","description":"Show one registered interface's record — endpoints, OpenAPI links, licence, served datasets (API, Endpunkt): use to reach the service. norm."},{"name":"i14y.get_dataset","description":"Show one dataset's full record — contact, coverage, every distribution with its licence and download address (Lizenz, Download): use before reuse. norm."},{"name":"i14y.get_dataset_distributions","description":"List a dataset's distributions — format, licence, download and access address (Datei, Lizenz, Format): use for «where do I get the data». norm."},{"name":"i14y.list_catalogs","description":"List the catalogues that feed I14Y, each one body's collection (Katalog, opendata.swiss, Bundesamt): use to see who contributes. norm."},{"name":"i14y.list_concepts","description":"List the harmonised concepts and code lists of the administration (Konzept, Codeliste, Nomenklatur, Merkmal): use to find a code list by publisher. norm."},{"name":"i14y.list_data_services","description":"List the registered machine interfaces of Swiss public bodies with their endpoints (API, Schnittstelle, Datendienst): use before building a scraper. norm."},{"name":"i14y.list_datasets","description":"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."},{"name":"i14y.list_public_services","description":"List the registered public services with their channels (Behördenleistung, Dienstleistung, Verwaltung): use for what an authority offers citizens. norm."},{"name":"i14y.list_publishers","description":"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."},{"name":"i14y.search_catalog","description":"Search the national data catalogue I14Y by words (Datensatz, Schnittstelle, API, Behördenleistung, Codeliste): use first, to find who publishes what. hint."},{"name":"i14y.search_codelist_entries","description":"List the codes of one code-list concept, paged, with names and validity (Code, Codeliste, Kanton, Geschlecht, Nomenklatur): use to resolve official codes. norm."},{"name":"lindas.describe","description":"Show everything the holding says about one IRI (a cube, an observation, a Kanton): use to follow an address you were handed. norm."},{"name":"lindas.describe_cube","description":"Show a cube's declared dimensions and profile — the record may carry more: use to learn the filters a question needs. hint."},{"name":"lindas.dimension_values","description":"List the values one dimension takes (Kantone, Abstimmungstypen, Geschäftsstände): use to filter by IRI instead of by text. hint."},{"name":"lindas.find_cube","description":"Find the cube behind a question by a word of its name («Volksinitiative», «Petition», «Parteienregister»): use before reading rows. hint."},{"name":"lindas.list_cubes","description":"List the 44 political data cubes of the Confederation (Abstimmungen, Wahlen, Bundesrat, Interessenbindungen): use to see what data exists. norm."},{"name":"lindas.list_versions","description":"List the versions of a cube family (Nationalratswahl 2019/2023/2027): use before reading a year; nothing links old to new. norm."},{"name":"lindas.observations","description":"Read a cube's rows with filters (Abstimmung, Referendum, Volksinitiative, Ständemehr, Kanton, Datum): use for the figures themselves. norm."},{"name":"lindas.resolve_label","description":"Resolve an IRI to its label in one language with a fallback (Kanton, Partei, Gremium, Interessenbindung): use to name a value. hint."},{"name":"manifest.get","description":"One entry's manifest by slug. A slug the directory does not hold is a not-found error carrying the E21 admission rule."},{"name":"meta.capabilities","description":"The platform capability register with published per-client coverage — tool names on this server ARE the capability ids."},{"name":"meta.schemas","description":"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 rout"},{"name":"meta.tools","description":"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 t"},{"name":"publish.info","description":"The publishing path — the only way into the directory: the three E21/E13 routes plus the honest interim state."},{"name":"standard.artifacts","description":"The manifest standard's sealed artifact register: path, canonical IRI, draft/published status and SHA-256 per contract file."}],"toolCount":65,"toolsHash":"13f117e5495c243cecec7e40b50929700f5e5c884a5b7cbeba43cac01c6c0dbd","serverName":"oh-mcp-gateway","capabilities":["tools"],"serverVersion":"0.1.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-08T04:25:33.166Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":87,"error":null,"detail":{"tools":[{"name":"directory.get","description":"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"},{"name":"facts.badge","description":"shields.io endpoint JSON for one subject, derived from the fact table — «no facts» in grey when nothing is recorded, never rounded up."},{"name":"facts.latest","description":"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."},{"name":"fedlex.check_in_force","description":"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."},{"name":"fedlex.check_quote","description":"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."},{"name":"fedlex.cite","description":"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."},{"name":"fedlex.compare_versions","description":"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."},{"name":"fedlex.detect_foreign_content","description":"Detect what the text tools hide in a Fassung: sections in another language (xml:lang) and <foreign> islands (formulas, graphics): use before quoting. norm."},{"name":"fedlex.explore_node","description":"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."},{"name":"fedlex.extract_tables","description":"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."},{"name":"fedlex.find_related_topic","description":"Find acts in the same field of law via the legal taxonomy, by ELI or SR: use to discover neighbouring Erlasse; candidates only. hint."},{"name":"fedlex.find_treaties","description":"Find treaty processes (Staatsverträge) by a title word, partner country IRI or bilaterality: use to locate a treaty before get_treaty_info. hint."},{"name":"fedlex.get_article_history","description":"Trace which amendments and consolidations changed one Artikel (eId) of an act, with dates: use for «seit wann gilt Art. X so?». norm."},{"name":"fedlex.get_citations","description":"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."},{"name":"fedlex.get_consultation_documents","description":"List the position statements and result reports of one consultation IRI: use after get_consultations to read the genesis record. norm."},{"name":"fedlex.get_consultations","description":"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."},{"name":"fedlex.get_drafts","description":"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."},{"name":"fedlex.get_fga_documents","description":"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."},{"name":"fedlex.get_law_metadata","description":"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."},{"name":"fedlex.get_memorial","description":"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."},{"name":"fedlex.get_modifications","description":"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."},{"name":"fedlex.get_oc_act","description":"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."},{"name":"fedlex.get_references","description":"List the references (Verweise) an act's text makes, with ELI where linked, optionally within one eId: use to follow cross-references. hint."},{"name":"fedlex.get_structure","description":"Outline one consolidation (sections, articles with eId, num and heading): use when you know the act but not the article number. norm."},{"name":"fedlex.get_subdivisions","description":"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."},{"name":"fedlex.get_taxonomy","description":"Classify an act in the systematic collection (SR branch chain, notation, labels de/fr/it): use for «zu welchem Rechtsgebiet gehört X?». norm."},{"name":"fedlex.get_treaty_info","description":"Read a treaty process profile (title, signature, bilateral, partner countries, approving decree) for an eli/treaty IRI: use after find_treaties. norm."},{"name":"fedlex.list_annexes","description":"List the annexes (Anhänge) of a consolidation with titles and path eIds (annex_u1/…): use before reading an Anhang with read_article. norm."},{"name":"fedlex.list_expressions","description":"List the language versions and manifestations (XML, PDF) of one consolidation: use before reading to see whether a Fassung is PDF-only. norm."},{"name":"fedlex.list_versions","description":"List every dated consolidation (Fassung) of an act, future ones included: use to pick the eli_version the reading tools need. norm."},{"name":"fedlex.parse_reference","description":"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."},{"name":"fedlex.read_article","description":"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."},{"name":"fedlex.read_document","description":"Read a whole small act or Verordnung as capped Markdown (truncated flag, continuation offset): use for short acts; quote via read_article. norm."},{"name":"fedlex.resolve_consolidation_at","description":"Resolve which consolidation (Fassung) of an act governed on an ISO date: use before reading text for a past or future Stichtag. norm."},{"name":"fedlex.resolve_sr","description":"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."},{"name":"fedlex.resolve_vocabulary_label","description":"Look up a Fedlex vocabulary term (enforcement-status, language, …) by label or IRI: use to decode a coded value from another answer. hint."},{"name":"fedlex.search_law","description":"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."},{"name":"fedlex.search_text","description":"Find where a word occurs inside ONE consolidation (hits with eId and Artikel): use before read_article when the article is unknown. hint."},{"name":"i14y.api_status","description":"Check whether the I14Y catalogue answers, register by register, so «no data» and «source down» stay apart: use before retrying a failed call. norm."},{"name":"i14y.get_concept","description":"Show one concept's record — type, value type, version, validity (Konzept, Codeliste): use before reading a code list's entries. norm."},{"name":"i14y.get_data_service","description":"Show one registered interface's record — endpoints, OpenAPI links, licence, served datasets (API, Endpunkt): use to reach the service. norm."},{"name":"i14y.get_dataset","description":"Show one dataset's full record — contact, coverage, every distribution with its licence and download address (Lizenz, Download): use before reuse. norm."},{"name":"i14y.get_dataset_distributions","description":"List a dataset's distributions — format, licence, download and access address (Datei, Lizenz, Format): use for «where do I get the data». norm."},{"name":"i14y.list_catalogs","description":"List the catalogues that feed I14Y, each one body's collection (Katalog, opendata.swiss, Bundesamt): use to see who contributes. norm."},{"name":"i14y.list_concepts","description":"List the harmonised concepts and code lists of the administration (Konzept, Codeliste, Nomenklatur, Merkmal): use to find a code list by publisher. norm."},{"name":"i14y.list_data_services","description":"List the registered machine interfaces of Swiss public bodies with their endpoints (API, Schnittstelle, Datendienst): use before building a scraper. norm."},{"name":"i14y.list_datasets","description":"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."},{"name":"i14y.list_public_services","description":"List the registered public services with their channels (Behördenleistung, Dienstleistung, Verwaltung): use for what an authority offers citizens. norm."},{"name":"i14y.list_publishers","description":"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."},{"name":"i14y.search_catalog","description":"Search the national data catalogue I14Y by words (Datensatz, Schnittstelle, API, Behördenleistung, Codeliste): use first, to find who publishes what. hint."},{"name":"i14y.search_codelist_entries","description":"List the codes of one code-list concept, paged, with names and validity (Code, Codeliste, Kanton, Geschlecht, Nomenklatur): use to resolve official codes. norm."},{"name":"lindas.describe","description":"Show everything the holding says about one IRI (a cube, an observation, a Kanton): use to follow an address you were handed. norm."},{"name":"lindas.describe_cube","description":"Show a cube's declared dimensions and profile — the record may carry more: use to learn the filters a question needs. hint."},{"name":"lindas.dimension_values","description":"List the values one dimension takes (Kantone, Abstimmungstypen, Geschäftsstände): use to filter by IRI instead of by text. hint."},{"name":"lindas.find_cube","description":"Find the cube behind a question by a word of its name («Volksinitiative», «Petition», «Parteienregister»): use before reading rows. hint."},{"name":"lindas.list_cubes","description":"List the 44 political data cubes of the Confederation (Abstimmungen, Wahlen, Bundesrat, Interessenbindungen): use to see what data exists. norm."},{"name":"lindas.list_versions","description":"List the versions of a cube family (Nationalratswahl 2019/2023/2027): use before reading a year; nothing links old to new. norm."},{"name":"lindas.observations","description":"Read a cube's rows with filters (Abstimmung, Referendum, Volksinitiative, Ständemehr, Kanton, Datum): use for the figures themselves. norm."},{"name":"lindas.resolve_label","description":"Resolve an IRI to its label in one language with a fallback (Kanton, Partei, Gremium, Interessenbindung): use to name a value. hint."},{"name":"manifest.get","description":"One entry's manifest by slug. A slug the directory does not hold is a not-found error carrying the E21 admission rule."},{"name":"meta.capabilities","description":"The platform capability register with published per-client coverage — tool names on this server ARE the capability ids."},{"name":"meta.schemas","description":"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 rout"},{"name":"meta.tools","description":"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 t"},{"name":"publish.info","description":"The publishing path — the only way into the directory: the three E21/E13 routes plus the honest interim state."},{"name":"standard.artifacts","description":"The manifest standard's sealed artifact register: path, canonical IRI, draft/published status and SHA-256 per contract file."}],"toolCount":65,"toolsHash":"13f117e5495c243cecec7e40b50929700f5e5c884a5b7cbeba43cac01c6c0dbd","serverName":"oh-mcp-gateway","capabilities":["tools"],"serverVersion":"0.1.0","protocolVersion":"2025-06-18"}}],"tools":[{"name":"directory.get","description":"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"},{"name":"facts.badge","description":"shields.io endpoint JSON for one subject, derived from the fact table — «no facts» in grey when nothing is recorded, never rounded up."},{"name":"facts.latest","description":"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."},{"name":"fedlex.check_in_force","description":"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."},{"name":"fedlex.check_quote","description":"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."},{"name":"fedlex.cite","description":"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."},{"name":"fedlex.compare_versions","description":"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."},{"name":"fedlex.detect_foreign_content","description":"Detect what the text tools hide in a Fassung: sections in another language (xml:lang) and <foreign> islands (formulas, graphics): use before quoting. norm."},{"name":"fedlex.explore_node","description":"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."},{"name":"fedlex.extract_tables","description":"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."},{"name":"fedlex.find_related_topic","description":"Find acts in the same field of law via the legal taxonomy, by ELI or SR: use to discover neighbouring Erlasse; candidates only. hint."},{"name":"fedlex.find_treaties","description":"Find treaty processes (Staatsverträge) by a title word, partner country IRI or bilaterality: use to locate a treaty before get_treaty_info. hint."},{"name":"fedlex.get_article_history","description":"Trace which amendments and consolidations changed one Artikel (eId) of an act, with dates: use for «seit wann gilt Art. X so?». norm."},{"name":"fedlex.get_citations","description":"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."},{"name":"fedlex.get_consultation_documents","description":"List the position statements and result reports of one consultation IRI: use after get_consultations to read the genesis record. norm."},{"name":"fedlex.get_consultations","description":"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."},{"name":"fedlex.get_drafts","description":"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."},{"name":"fedlex.get_fga_documents","description":"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."},{"name":"fedlex.get_law_metadata","description":"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."},{"name":"fedlex.get_memorial","description":"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."},{"name":"fedlex.get_modifications","description":"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."},{"name":"fedlex.get_oc_act","description":"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."},{"name":"fedlex.get_references","description":"List the references (Verweise) an act's text makes, with ELI where linked, optionally within one eId: use to follow cross-references. hint."},{"name":"fedlex.get_structure","description":"Outline one consolidation (sections, articles with eId, num and heading): use when you know the act but not the article number. norm."},{"name":"fedlex.get_subdivisions","description":"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."},{"name":"fedlex.get_taxonomy","description":"Classify an act in the systematic collection (SR branch chain, notation, labels de/fr/it): use for «zu welchem Rechtsgebiet gehört X?». norm."},{"name":"fedlex.get_treaty_info","description":"Read a treaty process profile (title, signature, bilateral, partner countries, approving decree) for an eli/treaty IRI: use after find_treaties. norm."},{"name":"fedlex.list_annexes","description":"List the annexes (Anhänge) of a consolidation with titles and path eIds (annex_u1/…): use before reading an Anhang with read_article. norm."},{"name":"fedlex.list_expressions","description":"List the language versions and manifestations (XML, PDF) of one consolidation: use before reading to see whether a Fassung is PDF-only. norm."},{"name":"fedlex.list_versions","description":"List every dated consolidation (Fassung) of an act, future ones included: use to pick the eli_version the reading tools need. norm."},{"name":"fedlex.parse_reference","description":"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."},{"name":"fedlex.read_article","description":"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."},{"name":"fedlex.read_document","description":"Read a whole small act or Verordnung as capped Markdown (truncated flag, continuation offset): use for short acts; quote via read_article. norm."},{"name":"fedlex.resolve_consolidation_at","description":"Resolve which consolidation (Fassung) of an act governed on an ISO date: use before reading text for a past or future Stichtag. norm."},{"name":"fedlex.resolve_sr","description":"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."},{"name":"fedlex.resolve_vocabulary_label","description":"Look up a Fedlex vocabulary term (enforcement-status, language, …) by label or IRI: use to decode a coded value from another answer. hint."},{"name":"fedlex.search_law","description":"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."},{"name":"fedlex.search_text","description":"Find where a word occurs inside ONE consolidation (hits with eId and Artikel): use before read_article when the article is unknown. hint."},{"name":"i14y.api_status","description":"Check whether the I14Y catalogue answers, register by register, so «no data» and «source down» stay apart: use before retrying a failed call. norm."},{"name":"i14y.get_concept","description":"Show one concept's record — type, value type, version, validity (Konzept, Codeliste): use before reading a code list's entries. norm."},{"name":"i14y.get_data_service","description":"Show one registered interface's record — endpoints, OpenAPI links, licence, served datasets (API, Endpunkt): use to reach the service. norm."},{"name":"i14y.get_dataset","description":"Show one dataset's full record — contact, coverage, every distribution with its licence and download address (Lizenz, Download): use before reuse. norm."},{"name":"i14y.get_dataset_distributions","description":"List a dataset's distributions — format, licence, download and access address (Datei, Lizenz, Format): use for «where do I get the data». norm."},{"name":"i14y.list_catalogs","description":"List the catalogues that feed I14Y, each one body's collection (Katalog, opendata.swiss, Bundesamt): use to see who contributes. norm."},{"name":"i14y.list_concepts","description":"List the harmonised concepts and code lists of the administration (Konzept, Codeliste, Nomenklatur, Merkmal): use to find a code list by publisher. norm."},{"name":"i14y.list_data_services","description":"List the registered machine interfaces of Swiss public bodies with their endpoints (API, Schnittstelle, Datendienst): use before building a scraper. norm."},{"name":"i14y.list_datasets","description":"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."},{"name":"i14y.list_public_services","description":"List the registered public services with their channels (Behördenleistung, Dienstleistung, Verwaltung): use for what an authority offers citizens. norm."},{"name":"i14y.list_publishers","description":"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."},{"name":"i14y.search_catalog","description":"Search the national data catalogue I14Y by words (Datensatz, Schnittstelle, API, Behördenleistung, Codeliste): use first, to find who publishes what. hint."},{"name":"i14y.search_codelist_entries","description":"List the codes of one code-list concept, paged, with names and validity (Code, Codeliste, Kanton, Geschlecht, Nomenklatur): use to resolve official codes. norm."},{"name":"lindas.describe","description":"Show everything the holding says about one IRI (a cube, an observation, a Kanton): use to follow an address you were handed. norm."},{"name":"lindas.describe_cube","description":"Show a cube's declared dimensions and profile — the record may carry more: use to learn the filters a question needs. hint."},{"name":"lindas.dimension_values","description":"List the values one dimension takes (Kantone, Abstimmungstypen, Geschäftsstände): use to filter by IRI instead of by text. hint."},{"name":"lindas.find_cube","description":"Find the cube behind a question by a word of its name («Volksinitiative», «Petition», «Parteienregister»): use before reading rows. hint."},{"name":"lindas.list_cubes","description":"List the 44 political data cubes of the Confederation (Abstimmungen, Wahlen, Bundesrat, Interessenbindungen): use to see what data exists. norm."},{"name":"lindas.list_versions","description":"List the versions of a cube family (Nationalratswahl 2019/2023/2027): use before reading a year; nothing links old to new. norm."},{"name":"lindas.observations","description":"Read a cube's rows with filters (Abstimmung, Referendum, Volksinitiative, Ständemehr, Kanton, Datum): use for the figures themselves. norm."},{"name":"lindas.resolve_label","description":"Resolve an IRI to its label in one language with a fallback (Kanton, Partei, Gremium, Interessenbindung): use to name a value. hint."},{"name":"manifest.get","description":"One entry's manifest by slug. A slug the directory does not hold is a not-found error carrying the E21 admission rule."},{"name":"meta.capabilities","description":"The platform capability register with published per-client coverage — tool names on this server ARE the capability ids."},{"name":"meta.schemas","description":"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 rout"},{"name":"meta.tools","description":"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 t"},{"name":"publish.info","description":"The publishing path — the only way into the directory: the three E21/E13 routes plus the honest interim state."},{"name":"standard.artifacts","description":"The manifest standard's sealed artifact register: path, canonical IRI, draft/published status and SHA-256 per contract file."}],"package":null,"toolSurface":{"id":"ts_xnfafzux4urt","endpointId":"ep_xhv3mswqs5za","hash":"13f117e5495c243cecec7e40b50929700f5e5c884a5b7cbeba43cac01c6c0dbd","toolCount":65,"serverName":"oh-mcp-gateway","serverVersion":"0.1.0","protocolVersion":"2025-06-18","firstSeenAt":"2026-09-26T21:20:52.112Z","lastSeenAt":"2026-10-10T13:25:36.021Z","observations":52,"toolNames":["directory.get","facts.badge","facts.latest","fedlex.check_in_force","fedlex.check_quote","fedlex.cite","fedlex.compare_versions","fedlex.detect_foreign_content","fedlex.explore_node","fedlex.extract_tables","fedlex.find_related_topic","fedlex.find_treaties","fedlex.get_article_history","fedlex.get_citations","fedlex.get_consultation_documents","fedlex.get_consultations","fedlex.get_drafts","fedlex.get_fga_documents","fedlex.get_law_metadata","fedlex.get_memorial","fedlex.get_modifications","fedlex.get_oc_act","fedlex.get_references","fedlex.get_structure","fedlex.get_subdivisions","fedlex.get_taxonomy","fedlex.get_treaty_info","fedlex.list_annexes","fedlex.list_expressions","fedlex.list_versions","fedlex.parse_reference","fedlex.read_article","fedlex.read_document","fedlex.resolve_consolidation_at","fedlex.resolve_sr","fedlex.resolve_vocabulary_label","fedlex.search_law","fedlex.search_text","i14y.api_status","i14y.get_concept","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"],"distinctSurfaces":2},"endpointFacts":[{"id":"ep_xhv3mswqs5za","url":"https://mcp.openhelvetia.swiss/mcp","type":"mcp_streamable_http","factsCheckedAt":"2026-10-08T11:22:14.881Z","auth":{"observedAt":"2026-10-08T11:22:15.087Z","authRequired":false,"scheme":null,"resourceMetadata":null,"authorizationServer":null,"conformance":{"dpop":false,"rfc8414":false,"rfc9728":false,"pkceS256":false,"clientIdMetadataDocument":false,"dynamicClientRegistration":false}},"tls":{"observedAt":"2026-10-08T11:22:15.125Z","protocol":"TLSv1.3","chainValid":true,"chainError":null,"hostMatches":true,"subject":"openhelvetia.swiss","issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validFrom":"2026-09-04T05:38:46.000Z","validTo":"2026-12-03T06:37:07.000Z","daysToExpiry":53,"sanCount":2,"fingerprint256":"25:07:FC:19:DA:4A:10:A8:8C:0C:FA:54:2F:7C:D6:A1:7B:05:B0:3A:14:43:35:CC:12:F1:AC:67:06:71:52:E3"}}]},"verification":{"claimed":false,"claimedAt":null,"proofs":[]},"provenance":{"sources":[{"source":"mcp_registry","key":"swiss.openhelvetia/gateway","url":"https://registry.modelcontextprotocol.io/v0/servers/swiss.openhelvetia%2Fgateway","firstSeenAt":"2026-09-07T09:23:06.245Z","fetchedAt":"2026-10-08T20:19:11.779Z","normalizedAt":"2026-10-08T20:19:11.779Z"}]},"firstSeenAt":"2026-09-07T09:23:06.245Z","updatedAt":"2026-10-10T13:27:47.862Z"}