Swiss Grounding
What this MCP does
Answers Switzerland-related questions using cited official federal, cantonal and municipal sources, including law, companies, weather, transport and public services.
Tools
Input schema
{'type': 'object', 'required': ['name_or_uid'], 'properties': {'name_or_uid': {'type': 'string', 'description': 'Company name or UID (CHE-123.456.789).'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['status', 'summary'], 'properties': {'data': {'type': 'object'}, 'status': {'enum': ['ok', 'needs_context', 'not_covered', 'not_found', 'source_error']}, 'summary': {'type': 'string'}, 'guidance': {'type': 'string'}, 'citations': {'type': 'array', 'items': {'type': 'object'}}, 'missing_context': {'type': 'array', 'items': {'type': 'object'}}}}
Input schema
{'type': 'object', 'properties': {'place': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': "Place as the user said it: municipality, postcode, address or canton, any language (e.g. 'Genf', '8003')."}, 'language': {'enum': ['de', 'fr', 'it', 'rm', 'en'], 'type': 'string', 'default': 'de', 'description': "Language of the user's question."}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['status', 'summary'], 'properties': {'data': {'type': 'object'}, 'status': {'enum': ['ok', 'needs_context', 'not_covered', 'not_found', 'source_error']}, 'summary': {'type': 'string'}, 'guidance': {'type': 'string'}, 'citations': {'type': 'array', 'items': {'type': 'object'}}, 'missing_context': {'type': 'array', 'items': {'type': 'object'}}}}
Input schema
{'type': 'object', 'properties': {'place': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'Canton to add its result, optional.'}, 'language': {'enum': ['de', 'fr', 'it', 'rm', 'en'], 'type': 'string', 'default': 'de', 'description': "Language of the user's question."}, 'vote_date': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'ISO date of a vote; omit for the next vote (or the latest if none is scheduled).'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['status', 'summary'], 'properties': {'data': {'type': 'object'}, 'status': {'enum': ['ok', 'needs_context', 'not_covered', 'not_found', 'source_error']}, 'summary': {'type': 'string'}, 'guidance': {'type': 'string'}, 'citations': {'type': 'array', 'items': {'type': 'object'}}, 'missing_context': {'type': 'array', 'items': {'type': 'object'}}}}
Input schema
{'type': 'object', 'properties': {'age': {'anyOf': [{'type': 'integer', 'maximum': 120, 'minimum': 0}, {'type': 'null'}], 'default': None, 'description': 'Age of the insured person.'}, 'year': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'default': None, 'description': 'Premium year; default current year.'}, 'place': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': "Place as the user said it: municipality, postcode, address or canton, any language (e.g. 'Genf', '8003')."}, 'franchise': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'default': None, 'description': 'Deductible in CHF (adults 300-2500, children 0-600). Omit to get the cheapest offer for every deductible.'}, 'accident_cover': {'type': 'boolean', 'default': False, 'description': 'Include accident cover (default no: employees are insured by their employer).'}, 'insurance_model': {'anyOf': [{'enum': ['free_choice_of_doctor', 'family_doctor', 'hmo', 'telmed_or_other'], 'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'Only if the user explicitly asks for one insurance model. Leave empty to compare all models (the cheapest is usually an alternative model).'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['status', 'summary'], 'properties': {'data': {'type': 'object'}, 'status': {'enum': ['ok', 'needs_context', 'not_covered', 'not_found', 'source_error']}, 'summary': {'type': 'string'}, 'guidance': {'type': 'string'}, 'citations': {'type': 'array', 'items': {'type': 'object'}}, 'missing_context': {'type': 'array', 'items': {'type': 'object'}}}}
Input schema
{'type': 'object', 'properties': {'when': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'ISO date-time (Europe/Zurich), e.g. 2026-10-01T08:30; default now.'}, 'limit': {'type': 'integer', 'default': 3, 'maximum': 6, 'minimum': 1}, 'origin': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': "Departure station or place, e.g. 'Zürich HB'."}, 'arrival': {'type': 'boolean', 'default': False, 'description': 'Interpret `when` as arrival time.'}, 'destination': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'Destination; omit for a departure board.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['status', 'summary'], 'properties': {'data': {'type': 'object'}, 'status': {'enum': ['ok', 'needs_context', 'not_covered', 'not_found', 'source_error']}, 'summary': {'type': 'string'}, 'guidance': {'type': 'string'}, 'citations': {'type': 'array', 'items': {'type': 'object'}}, 'missing_context': {'type': 'array', 'items': {'type': 'object'}}}}
Input schema
{'type': 'object', 'required': ['url'], 'properties': {'url': {'type': 'string', 'description': 'URL on an official Swiss domain (admin.ch, ch.ch, a cantonal or municipal site), typically from search_official_info.'}, 'focus': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': "Words to focus on, e.g. 'délai 12 mois'."}, 'max_chars': {'type': 'integer', 'default': 3000, 'maximum': 8000, 'minimum': 500}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['status', 'summary'], 'properties': {'data': {'type': 'object'}, 'status': {'enum': ['ok', 'needs_context', 'not_covered', 'not_found', 'source_error']}, 'summary': {'type': 'string'}, 'guidance': {'type': 'string'}, 'citations': {'type': 'array', 'items': {'type': 'object'}}, 'missing_context': {'type': 'array', 'items': {'type': 'object'}}}}
Input schema
{'type': 'object', 'required': ['query'], 'properties': {'limit': {'type': 'integer', 'default': 5, 'maximum': 8, 'minimum': 1}, 'place': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': "Place as the user said it: municipality, postcode, address or canton, any language (e.g. 'Genf', '8003')."}, 'query': {'type': 'string', 'description': "Key words of the question, best in the language of the source (e.g. 'permis de conduire étranger échanger')."}, 'language': {'anyOf': [{'enum': ['de', 'fr', 'it', 'rm', 'en'], 'type': 'string', 'description': "Language of the user's question."}, {'type': 'null'}], 'default': None}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['status', 'summary'], 'properties': {'data': {'type': 'object'}, 'status': {'enum': ['ok', 'needs_context', 'not_covered', 'not_found', 'source_error']}, 'summary': {'type': 'string'}, 'guidance': {'type': 'string'}, 'citations': {'type': 'array', 'items': {'type': 'object'}}, 'missing_context': {'type': 'array', 'items': {'type': 'object'}}}}
Input schema
{'type': 'object', 'properties': {}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['status', 'summary'], 'properties': {'data': {'type': 'object'}, 'status': {'enum': ['ok', 'needs_context', 'not_covered', 'not_found', 'source_error']}, 'summary': {'type': 'string'}, 'guidance': {'type': 'string'}, 'citations': {'type': 'array', 'items': {'type': 'object'}}, 'missing_context': {'type': 'array', 'items': {'type': 'object'}}}}
Input schema
{'type': 'object', 'properties': {'query': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': "Title words to find an act, or (with sr_number) a topic to find the relevant articles, e.g. 'Kündigungsfrist'."}, 'article': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': "Article number, e.g. '335c', '42'."}, 'language': {'enum': ['de', 'fr', 'it', 'rm', 'en'], 'type': 'string', 'default': 'de', 'description': "Language of the user's question."}, 'sr_number': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': "SR number or abbreviation: '220' or 'OR'/'CO', 'ZGB'/'CC', 'SVG', 'VZV', 'AIG', 'KVG', 'AHVG', 'MWSTG'â\x80¦"}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['status', 'summary'], 'properties': {'data': {'type': 'object'}, 'status': {'enum': ['ok', 'needs_context', 'not_covered', 'not_found', 'source_error']}, 'summary': {'type': 'string'}, 'guidance': {'type': 'string'}, 'citations': {'type': 'array', 'items': {'type': 'object'}}, 'missing_context': {'type': 'array', 'items': {'type': 'object'}}}}
Input schema
{'type': 'object', 'properties': {'kind': {'enum': ['school', 'public'], 'type': 'string', 'default': 'school', 'description': 'School holidays or public holidays.'}, 'year': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'default': None, 'description': 'Calendar year; default current year.'}, 'place': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': "Place as the user said it: municipality, postcode, address or canton, any language (e.g. 'Genf', '8003')."}, 'language': {'enum': ['de', 'fr', 'it', 'rm', 'en'], 'type': 'string', 'default': 'de', 'description': "Language of the user's question."}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['status', 'summary'], 'properties': {'data': {'type': 'object'}, 'status': {'enum': ['ok', 'needs_context', 'not_covered', 'not_found', 'source_error']}, 'summary': {'type': 'string'}, 'guidance': {'type': 'string'}, 'citations': {'type': 'array', 'items': {'type': 'object'}}, 'missing_context': {'type': 'array', 'items': {'type': 'object'}}}}
Input schema
{'type': 'object', 'properties': {'place': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': "Place as the user said it: municipality, postcode, address or canton, any language (e.g. 'Genf', '8003')."}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['status', 'summary'], 'properties': {'data': {'type': 'object'}, 'status': {'enum': ['ok', 'needs_context', 'not_covered', 'not_found', 'source_error']}, 'summary': {'type': 'string'}, 'guidance': {'type': 'string'}, 'citations': {'type': 'array', 'items': {'type': 'object'}}, 'missing_context': {'type': 'array', 'items': {'type': 'object'}}}}
Input schema
{'type': 'object', 'required': ['kind'], 'properties': {'kind': {'enum': ['reference_interest_rate', 'exchange_rate'], 'type': 'string', 'description': 'Mortgage reference rate for rents (BWO), or SNB exchange rate.'}, 'currency': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'For exchange_rate: EUR, USD, GBPâ\x80¦'}, 'language': {'enum': ['de', 'fr', 'it', 'rm', 'en'], 'type': 'string', 'default': 'de', 'description': "Language of the user's question."}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['status', 'summary'], 'properties': {'data': {'type': 'object'}, 'status': {'enum': ['ok', 'needs_context', 'not_covered', 'not_found', 'source_error']}, 'summary': {'type': 'string'}, 'guidance': {'type': 'string'}, 'citations': {'type': 'array', 'items': {'type': 'object'}}, 'missing_context': {'type': 'array', 'items': {'type': 'object'}}}}
Input schema
{'type': 'object', 'properties': {'place': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': "Place as the user said it: municipality, postcode, address or canton, any language (e.g. 'Genf', '8003')."}, 'street': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'Street (and number) if the user gave one.'}, 'from_date': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'ISO date to start from; default today.'}, 'waste_type': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'e.g. Karton/carton/cartone, Papier, Kehricht, Grüngut, Metall. Omit for all types.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['status', 'summary'], 'properties': {'data': {'type': 'object'}, 'status': {'enum': ['ok', 'needs_context', 'not_covered', 'not_found', 'source_error']}, 'summary': {'type': 'string'}, 'guidance': {'type': 'string'}, 'citations': {'type': 'array', 'items': {'type': 'object'}}, 'missing_context': {'type': 'array', 'items': {'type': 'object'}}}}
Recent tool changes
Similar MCP servers
concordance
Provides deterministic claim verification and audit receipts, along with Bible references, commentary, geography, indexed knowled…
canton-ccpedia
Searches and explains Canton Network and Daml documentation, governance proposals, forums, code examples, APIs, releases, and eco…
BNM Data Shop
Sells access to cached official reports, enforcement orders, regulatory documents, inspection records, and other public-source te…
api-evangelist
Provides API governance analysis, OpenAPI overlays and version diffs, security-sensitive field classification, code samples, matu…
OpenHelvetia Gateway
Provides sourced access to Swiss federal legislation and political data, including law metadata, versions, amendments, citations,…
website-search
Provides security article search and structured guidance, templates, frameworks, and review criteria for incident response, threa…
The Ainglish Project
Maintains a measured, auditable register of language constructs, proposals, evidence, adoption, contributors, protocols, and rati…
Torah Library
Provides searchable Jewish texts, commentaries, source sheets, dictionaries, manuscripts, calendars, learning schedules, parasha …