Swiss Grounding MCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| HOST | No | Same as --transport/--host/--port. | 0.0.0.0 |
| PORT | No | Same as --transport/--host/--port. | 8000 |
| SGM_OFFLINE | No | Serve from cache only, never hit the network. | false |
| SGM_CACHE_DIR | No | HTTP response cache. | ~/.cache/swiss-grounding-mcp |
| SGM_LOG_LEVEL | No | Logs go to stderr: one line per tool call (tool, status, bytes, ms) and per upstream fetch. | INFO |
| SGM_TRANSPORT | No | Same as --transport/--host/--port. | stdio |
| SGM_USER_AGENT | No | Sent with every request. | browser-compatible string identifying SwissGroundingMCP/<version> (+repo URL) |
| SGM_HTTP_TIMEOUT | No | Seconds per upstream request. | 15 |
| SGM_MIN_INTERVAL | No | Minimum seconds between requests to the same host. | 0.5 |
| SGM_RESPECT_TERMS | No | Only use sources whose terms allow automated access (e.g. zefix.ch's web backend is not used; the official UID web service is). | true |
| SGM_RESPECT_ROBOTS | No | Respect robots.txt of every website fetched (RFC 9309, via Protego). Set `false` to disable. | true |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| logging | {} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| swiss_coverageA | 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. |
| swiss_place_infoA | 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. |
| search_official_infoA | 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 |
| read_official_pageA | Fetch the current text of an official Swiss page (live, respecting robots.txt) and return the
passages around |
| swiss_federal_lawA | 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. |
| health_insurance_premiumsA | 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). |
| swiss_holidaysB | School holidays by canton or municipality, or public holidays, for a year. |
| waste_collectionA | 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). |
| public_transportA | Swiss public transport connections or next departures (official timetable data). |
| federal_votesA | Subjects of the next federal popular vote, or official results of a past vote. |
| swiss_ratesA | Current mortgage reference interest rate for rents (BWO) or SNB CHF exchange rates. |
| company_registerA | Check whether a company is registered: UID, legal seat, commercial register and VAT status, from the federal UID register. |
| current_weatherA | Latest measured weather (temperature, humidity, precipitation, wind) at the MeteoSwiss station nearest to a Swiss municipality. Measurements only, no forecasts. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 13 tools
Each tool addresses a clearly distinct domain (e.g., transport, legal texts, health premiums, weather, company registry). The only related pair is search_official_info and read_official_page, but one is for finding pages and the other for reading specific content, so no ambiguity.
All tools use lowercase with underscores, but they mix prefixes ('swiss_' vs none) and verb/alNoun patterns (e.g., 'public_transport' vs 'search_official_info'). Still, the naming is readable and follows a consistent snake_case convention, so minor deviations do not cause confusion.
With 13 tools, the server covers a broad range of Swiss official information without being excessive. Each tool serves a distinct purpose and fits the stated goal of Swiss grounding, making the count appropriate.
The server covers major Swiss information domains: transport, official search, laws, health insurance, holidays, waste, votes, rates, companies, and weather. It also includes a coverage tool to handle out-of-scope queries, mitigating potential gaps. The lifecycle is appropriate for a read-only grounding server.