Swiss Grounding

Cited answers about Switzerland from official federal, cantonal and municipal sources.

Sollte ich dies verwenden

Qualität und Sicherheit

A
Qualität der Beschreibung
90%
Vollständigkeit des Schemas
76%
Qualität der Benennung
83%
Risiko der Vergiftung
100%
Übereinstimmung der Berechtigungen
100%
Einhaltung des Protokolls
100%

Befunde (3)

  • LOWTool 'swiss_federal_law' description lacks action verbin swiss_federal_law
  • LOWTool 'swiss_holidays' description lacks action verbin swiss_holidays
  • LOWTool 'swiss_rates' description lacks action verbin swiss_rates

Basierend auf einer automatisierten Analyse der Tool-Definitionen und der Einhaltung des Protokolls.

Kontextkosten

~3,817Tokens (Tool-Definitionen)
~2.5 KBTypische Antwortgröße
Erhebliche Auswirkung auf die Aufmerksamkeit (2.98% von 128k Kontext)

Dies ist die ungefähre Anzahl der Tokens, die jedes Mal verbraucht werden, wenn die Tools des Servers in den Kontext eines Modells geladen werden. Höhere Werte verringern die Aufmerksamkeit, die für andere Aufgaben verfügbar ist.

Installieren

Installation mit einem Klick

Fügen Sie dies Ihrer Datei `claude_desktop_config.json` hinzu:

{
  "mcpServers": {
    "swiss-grounding-mcp": {
      "url": "https://swiss-grounding-mcp-542630986415.europe-west6.run.app/mcp"
    }
  }
}

Remote-Endpunkte

https://swiss-grounding-mcp-542630986415.europe-west6.run.app/mcpstreamable-http

Was es kann

Tool-Inventar

Tools (13)

🟢 Nur lesen🟡 Schreiben🔴 Löschen⚪ Unbekannt
🟢swiss_coverage

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.

Eingabe-Schema

{
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Ausgabe-Schema

{
  "type": "object",
  "properties": {
    "status": {
      "enum": [
        "ok",
        "needs_context",
        "not_covered",
        "not_found",
        "source_error"
      ]
    },
    "summary": {
      "type": "string"
    },
    "data": {
      "type": "object"
    },
    "citations": {
      "type": "array",
      "items": {
        "type": "object"
      }
    },
    "missing_context": {
      "type": "array",
      "items": {
        "type": "object"
      }
    },
    "guidance": {
      "type": "string"
    }
  },
  "required": [
    "status",
    "summary"
  ]
}
🟢swiss_place_info(place)

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.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "place": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Place as the user said it: municipality, postcode, address or canton, any language (e.g. 'Genf', '8003')."
    }
  },
  "additionalProperties": false
}

Ausgabe-Schema

{
  "type": "object",
  "properties": {
    "status": {
      "enum": [
        "ok",
        "needs_context",
        "not_covered",
        "not_found",
        "source_error"
      ]
    },
    "summary": {
      "type": "string"
    },
    "data": {
      "type": "object"
    },
    "citations": {
      "type": "array",
      "items": {
        "type": "object"
      }
    },
    "missing_context": {
      "type": "array",
      "items": {
        "type": "object"
      }
    },
    "guidance": {
      "type": "string"
    }
  },
  "required": [
    "status",
    "summary"
  ]
}
🟢search_official_info(query, place, language, limit)

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.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "query": {
      "description": "Key words of the question, best in the language of the source (e.g. 'permis de conduire étranger échanger').",
      "type": "string"
    },
    "place": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Place as the user said it: municipality, postcode, address or canton, any language (e.g. 'Genf', '8003')."
    },
    "language": {
      "anyOf": [
        {
          "description": "Language of the user's question.",
          "enum": [
            "de",
            "fr",
            "it",
            "rm",
            "en"
          ],
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null
    },
    "limit": {
      "default": 5,
      "maximum": 8,
      "minimum": 1,
      "type": "integer"
    }
  },
  "required": [
    "query"
  ],
  "additionalProperties": false
}

Ausgabe-Schema

{
  "type": "object",
  "properties": {
    "status": {
      "enum": [
        "ok",
        "needs_context",
        "not_covered",
        "not_found",
        "source_error"
      ]
    },
    "summary": {
      "type": "string"
    },
    "data": {
      "type": "object"
    },
    "citations": {
      "type": "array",
      "items": {
        "type": "object"
      }
    },
    "missing_context": {
      "type": "array",
      "items": {
        "type": "object"
      }
    },
    "guidance": {
      "type": "string"
    }
  },
  "required": [
    "status",
    "summary"
  ]
}
🟢read_official_page(url, focus, max_chars)

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.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "url": {
      "description": "URL on an official Swiss domain (admin.ch, ch.ch, a cantonal or municipal site), typically from search_official_info.",
      "type": "string"
    },
    "focus": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Words to focus on, e.g. 'délai 12 mois'."
    },
    "max_chars": {
      "default": 3000,
      "maximum": 8000,
      "minimum": 500,
      "type": "integer"
    }
  },
  "required": [
    "url"
  ],
  "additionalProperties": false
}

Ausgabe-Schema

{
  "type": "object",
  "properties": {
    "status": {
      "enum": [
        "ok",
        "needs_context",
        "not_covered",
        "not_found",
        "source_error"
      ]
    },
    "summary": {
      "type": "string"
    },
    "data": {
      "type": "object"
    },
    "citations": {
      "type": "array",
      "items": {
        "type": "object"
      }
    },
    "missing_context": {
      "type": "array",
      "items": {
        "type": "object"
      }
    },
    "guidance": {
      "type": "string"
    }
  },
  "required": [
    "status",
    "summary"
  ]
}
🟢swiss_federal_law(sr_number, article, query, language)

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.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "sr_number": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "SR number or abbreviation: '220' or 'OR'/'CO', 'ZGB'/'CC', 'SVG', 'VZV', 'AIG', 'KVG', 'AHVG', 'MWSTG'…"
    },
    "article": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Article number, e.g. '335c', '42'."
    },
    "query": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Title words to find an act, or (with sr_number) a topic to find the relevant articles, e.g. 'Kündigungsfrist'."
    },
    "language": {
      "default": "de",
      "description": "Language of the user's question.",
      "enum": [
        "de",
        "fr",
        "it",
        "rm",
        "en"
      ],
      "type": "string"
    }
  },
  "additionalProperties": false
}

Ausgabe-Schema

{
  "type": "object",
  "properties": {
    "status": {
      "enum": [
        "ok",
        "needs_context",
        "not_covered",
        "not_found",
        "source_error"
      ]
    },
    "summary": {
      "type": "string"
    },
    "data": {
      "type": "object"
    },
    "citations": {
      "type": "array",
      "items": {
        "type": "object"
      }
    },
    "missing_context": {
      "type": "array",
      "items": {
        "type": "object"
      }
    },
    "guidance": {
      "type": "string"
    }
  },
  "required": [
    "status",
    "summary"
  ]
}
🟢health_insurance_premiums(place, age, franchise, accident_cover, insurance_model, ...)

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

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "place": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Place as the user said it: municipality, postcode, address or canton, any language (e.g. 'Genf', '8003')."
    },
    "age": {
      "anyOf": [
        {
          "maximum": 120,
          "minimum": 0,
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Age of the insured person."
    },
    "franchise": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Deductible in CHF (adults 300-2500, children 0-600). Omit to get the cheapest offer for every deductible."
    },
    "accident_cover": {
      "default": false,
      "description": "Include accident cover (default no: employees are insured by their employer).",
      "type": "boolean"
    },
    "insurance_model": {
      "anyOf": [
        {
          "enum": [
            "free_choice_of_doctor",
            "family_doctor",
            "hmo",
            "telmed_or_other"
          ],
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Only if the user explicitly asks for one insurance model. Leave empty to compare all models (the cheapest is usually an alternative model)."
    },
    "year": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Premium year; default current year."
    }
  },
  "additionalProperties": false
}

Ausgabe-Schema

{
  "type": "object",
  "properties": {
    "status": {
      "enum": [
        "ok",
        "needs_context",
        "not_covered",
        "not_found",
        "source_error"
      ]
    },
    "summary": {
      "type": "string"
    },
    "data": {
      "type": "object"
    },
    "citations": {
      "type": "array",
      "items": {
        "type": "object"
      }
    },
    "missing_context": {
      "type": "array",
      "items": {
        "type": "object"
      }
    },
    "guidance": {
      "type": "string"
    }
  },
  "required": [
    "status",
    "summary"
  ]
}
🟢swiss_holidays(place, year, kind, language)

School holidays by canton or municipality, or public holidays, for a year.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "place": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Place as the user said it: municipality, postcode, address or canton, any language (e.g. 'Genf', '8003')."
    },
    "year": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Calendar year; default current year."
    },
    "kind": {
      "default": "school",
      "description": "School holidays or public holidays.",
      "enum": [
        "school",
        "public"
      ],
      "type": "string"
    },
    "language": {
      "default": "de",
      "description": "Language of the user's question.",
      "enum": [
        "de",
        "fr",
        "it",
        "rm",
        "en"
      ],
      "type": "string"
    }
  },
  "additionalProperties": false
}

Ausgabe-Schema

{
  "type": "object",
  "properties": {
    "status": {
      "enum": [
        "ok",
        "needs_context",
        "not_covered",
        "not_found",
        "source_error"
      ]
    },
    "summary": {
      "type": "string"
    },
    "data": {
      "type": "object"
    },
    "citations": {
      "type": "array",
      "items": {
        "type": "object"
      }
    },
    "missing_context": {
      "type": "array",
      "items": {
        "type": "object"
      }
    },
    "guidance": {
      "type": "string"
    }
  },
  "required": [
    "status",
    "summary"
  ]
}
🟢waste_collection(place, waste_type, street, from_date)

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

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "place": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Place as the user said it: municipality, postcode, address or canton, any language (e.g. 'Genf', '8003')."
    },
    "waste_type": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "e.g. Karton/carton/cartone, Papier, Kehricht, Grüngut, Metall. Omit for all types."
    },
    "street": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Street (and number) if the user gave one."
    },
    "from_date": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "ISO date to start from; default today."
    }
  },
  "additionalProperties": false
}

Ausgabe-Schema

{
  "type": "object",
  "properties": {
    "status": {
      "enum": [
        "ok",
        "needs_context",
        "not_covered",
        "not_found",
        "source_error"
      ]
    },
    "summary": {
      "type": "string"
    },
    "data": {
      "type": "object"
    },
    "citations": {
      "type": "array",
      "items": {
        "type": "object"
      }
    },
    "missing_context": {
      "type": "array",
      "items": {
        "type": "object"
      }
    },
    "guidance": {
      "type": "string"
    }
  },
  "required": [
    "status",
    "summary"
  ]
}
🟢public_transport(origin, destination, when, arrival, limit)

Swiss public transport connections or next departures (official timetable data).

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "origin": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Departure station or place, e.g. 'Zürich HB'."
    },
    "destination": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Destination; omit for a departure board."
    },
    "when": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "ISO date-time (Europe/Zurich), e.g. 2026-10-01T08:30; default now."
    },
    "arrival": {
      "default": false,
      "description": "Interpret `when` as arrival time.",
      "type": "boolean"
    },
    "limit": {
      "default": 3,
      "maximum": 6,
      "minimum": 1,
      "type": "integer"
    }
  },
  "additionalProperties": false
}

Ausgabe-Schema

{
  "type": "object",
  "properties": {
    "status": {
      "enum": [
        "ok",
        "needs_context",
        "not_covered",
        "not_found",
        "source_error"
      ]
    },
    "summary": {
      "type": "string"
    },
    "data": {
      "type": "object"
    },
    "citations": {
      "type": "array",
      "items": {
        "type": "object"
      }
    },
    "missing_context": {
      "type": "array",
      "items": {
        "type": "object"
      }
    },
    "guidance": {
      "type": "string"
    }
  },
  "required": [
    "status",
    "summary"
  ]
}
🟢federal_votes(vote_date, place, language)

Subjects of the next federal popular vote, or official results of a past vote.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "vote_date": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "ISO date of a vote; omit for the next vote (or the latest if none is scheduled)."
    },
    "place": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Canton to add its result, optional."
    },
    "language": {
      "default": "de",
      "description": "Language of the user's question.",
      "enum": [
        "de",
        "fr",
        "it",
        "rm",
        "en"
      ],
      "type": "string"
    }
  },
  "additionalProperties": false
}

Ausgabe-Schema

{
  "type": "object",
  "properties": {
    "status": {
      "enum": [
        "ok",
        "needs_context",
        "not_covered",
        "not_found",
        "source_error"
      ]
    },
    "summary": {
      "type": "string"
    },
    "data": {
      "type": "object"
    },
    "citations": {
      "type": "array",
      "items": {
        "type": "object"
      }
    },
    "missing_context": {
      "type": "array",
      "items": {
        "type": "object"
      }
    },
    "guidance": {
      "type": "string"
    }
  },
  "required": [
    "status",
    "summary"
  ]
}
🟢swiss_rates(kind, currency, language)

Current mortgage reference interest rate for rents (BWO) or SNB CHF exchange rates.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "kind": {
      "description": "Mortgage reference rate for rents (BWO), or SNB exchange rate.",
      "enum": [
        "reference_interest_rate",
        "exchange_rate"
      ],
      "type": "string"
    },
    "currency": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "For exchange_rate: EUR, USD, GBP…"
    },
    "language": {
      "default": "de",
      "description": "Language of the user's question.",
      "enum": [
        "de",
        "fr",
        "it",
        "rm",
        "en"
      ],
      "type": "string"
    }
  },
  "required": [
    "kind"
  ],
  "additionalProperties": false
}

Ausgabe-Schema

{
  "type": "object",
  "properties": {
    "status": {
      "enum": [
        "ok",
        "needs_context",
        "not_covered",
        "not_found",
        "source_error"
      ]
    },
    "summary": {
      "type": "string"
    },
    "data": {
      "type": "object"
    },
    "citations": {
      "type": "array",
      "items": {
        "type": "object"
      }
    },
    "missing_context": {
      "type": "array",
      "items": {
        "type": "object"
      }
    },
    "guidance": {
      "type": "string"
    }
  },
  "required": [
    "status",
    "summary"
  ]
}
🟢company_register(name_or_uid)

Check whether a company is registered: UID, legal seat, commercial register and VAT status, from the federal UID register.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "name_or_uid": {
      "description": "Company name or UID (CHE-123.456.789).",
      "type": "string"
    }
  },
  "required": [
    "name_or_uid"
  ],
  "additionalProperties": false
}

Ausgabe-Schema

{
  "type": "object",
  "properties": {
    "status": {
      "enum": [
        "ok",
        "needs_context",
        "not_covered",
        "not_found",
        "source_error"
      ]
    },
    "summary": {
      "type": "string"
    },
    "data": {
      "type": "object"
    },
    "citations": {
      "type": "array",
      "items": {
        "type": "object"
      }
    },
    "missing_context": {
      "type": "array",
      "items": {
        "type": "object"
      }
    },
    "guidance": {
      "type": "string"
    }
  },
  "required": [
    "status",
    "summary"
  ]
}
🟢current_weather(place, language)

Latest measured weather (temperature, humidity, precipitation, wind) at the MeteoSwiss station nearest to a Swiss municipality. Measurements only, no forecasts.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "place": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Place as the user said it: municipality, postcode, address or canton, any language (e.g. 'Genf', '8003')."
    },
    "language": {
      "default": "de",
      "description": "Language of the user's question.",
      "enum": [
        "de",
        "fr",
        "it",
        "rm",
        "en"
      ],
      "type": "string"
    }
  },
  "additionalProperties": false
}

Ausgabe-Schema

{
  "type": "object",
  "properties": {
    "status": {
      "enum": [
        "ok",
        "needs_context",
        "not_covered",
        "not_found",
        "source_error"
      ]
    },
    "summary": {
      "type": "string"
    },
    "data": {
      "type": "object"
    },
    "citations": {
      "type": "array",
      "items": {
        "type": "object"
      }
    },
    "missing_context": {
      "type": "array",
      "items": {
        "type": "object"
      }
    },
    "guidance": {
      "type": "string"
    }
  },
  "required": [
    "status",
    "summary"
  ]
}

Community

Diesen Server bewerten

Nachweis

Aktuelle Beobachtungen

verifiziertVersion nicht aufgezeichnet13 Tools