MCP-Server

Swiss Grounding

io.github.soheil1lotfi/swiss-grounding-mcp
Wissen & Dokumentation Suche & Recherche Öffentlich und erreichbar MCP 2025-11-25

Was dieses MCP kann

Answers Switzerland-related questions using cited official federal, cantonal and municipal sources, including law, companies, weather, transport and public services.

company_register
Company register (UID)
Check whether a company is registered: UID, legal seat, commercial register and VAT status, from the federal UID register.
Nur Lesen Externer Zugriff Idempotent
Eingabeschema
{'type': 'object', 'required': ['name_or_uid'], 'properties': {'name_or_uid': {'type': 'string', 'description': 'Company name or UID (CHE-123.456.789).'}}, 'additionalProperties': False}
Ausgabeschema
{'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'}}}}
current_weather
Current weather (MeteoSwiss)
Latest measured weather (temperature, humidity, precipitation, wind) at the MeteoSwiss station nearest to a Swiss municipality. Measurements only, no forecasts.
Nur Lesen Externer Zugriff Idempotent
Eingabeschema
{'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}
Ausgabeschema
{'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'}}}}
federal_votes
Federal votes
Subjects of the next federal popular vote, or official results of a past vote.
Nur Lesen Externer Zugriff Idempotent
Eingabeschema
{'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}
Ausgabeschema
{'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'}}}}
health_insurance_premiums
Health insurance premiums (KVG/LAMal)
Cheapest mandatory basic health insurance premiums (Grundversicherung, assurance de base, assicurazione di base — every plan here is basic insurance) for a municipality, age and deductible, from the official FOPH premium data (same data as priminfo.admin.ch).
Nur Lesen Externer Zugriff Idempotent
Eingabeschema
{'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}
Ausgabeschema
{'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'}}}}
public_transport
Public transport timetable
Swiss public transport connections or next departures (official timetable data).
Nur Lesen Externer Zugriff Idempotent
Eingabeschema
{'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}
Ausgabeschema
{'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'}}}}
read_official_page
Read an official page
Fetch the current text of an official Swiss page (live, respecting robots.txt) and return the passages around `focus`. Only official Swiss domains are allowed.
Nur Lesen Externer Zugriff Idempotent
Eingabeschema
{'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}
Ausgabeschema
{'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'}}}}
search_official_info
Search official Swiss information
Full-text search over official Swiss web pages: ch.ch (all languages), federal offices, the 26 cantons and large cities. Use for procedures, rules, deadlines, fees and "how do I…" questions (permits, moving, taxes, social insurance, driving licences, customs, schools, housing, voting). Give `place` to restrict results to federal + that canton/municipality. Returns verbatim excerpts with URLs.
Nur Lesen Externer Zugriff Idempotent
Eingabeschema
{'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}
Ausgabeschema
{'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'}}}}
swiss_coverage
What this server covers
List the topics, geography, sources and freshness this server covers, and what it does not. Call this only when unsure whether a question is in scope.
Nur Lesen Externer Zugriff Idempotent
Eingabeschema
{'type': 'object', 'properties': {}, 'additionalProperties': False}
Ausgabeschema
{'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'}}}}
swiss_federal_law
Swiss federal law (Fedlex)
Quote federal law from the official consolidated text on Fedlex (version currently in force), with article links. Federal law only; cantonal law is not included.
Nur Lesen Externer Zugriff Idempotent
Eingabeschema
{'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}
Ausgabeschema
{'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'}}}}
swiss_holidays
School and public holidays
School holidays by canton or municipality, or public holidays, for a year.
Nur Lesen Externer Zugriff Idempotent
Eingabeschema
{'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}
Ausgabeschema
{'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'}}}}
swiss_place_info
Swiss place facts
Resolve a Swiss place to its official municipality: BFS number, canton, district, postcodes, permanent resident population (latest BFS figure) and official website. Use for "how many people live in X", "which canton is X in", or to find a municipality's website.
Nur Lesen Externer Zugriff Idempotent
Eingabeschema
{'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}
Ausgabeschema
{'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'}}}}
swiss_rates
Reference interest rate and exchange rates
Current mortgage reference interest rate for rents (BWO) or SNB CHF exchange rates.
Nur Lesen Externer Zugriff Idempotent
Eingabeschema
{'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}
Ausgabeschema
{'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'}}}}
waste_collection
Waste collection dates
Next waste collection dates (cardboard, paper, household waste, green waste…) from municipal open data. Needs the municipality; some cities also need postcode or street (the tool will say).
Nur Lesen Externer Zugriff Idempotent
Eingabeschema
{'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}
Ausgabeschema
{'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'}}}}
Hinzugefügt
current_weather
26. September 2026 02:40
Hinzugefügt
company_register
26. September 2026 02:40
Hinzugefügt
swiss_rates
26. September 2026 02:40
Hinzugefügt
federal_votes
26. September 2026 02:40
Hinzugefügt
public_transport
26. September 2026 02:40
Hinzugefügt
waste_collection
26. September 2026 02:40
Hinzugefügt
swiss_holidays
26. September 2026 02:40
Hinzugefügt
health_insurance_premiums
26. September 2026 02:40
Hinzugefügt
swiss_federal_law
26. September 2026 02:40
Hinzugefügt
read_official_page
26. September 2026 02:40
Hinzugefügt
search_official_info
26. September 2026 02:40
Hinzugefügt
swiss_place_info
26. September 2026 02:40
Hinzugefügt
swiss_coverage
26. September 2026 02:40