Swiss Grounding

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

사용해야 할까요

품질 및 안전성

A
설명 품질
90%
스키마 완전성
76%
이름 품질
83%
오염 위험
100%
권한 일치
100%
프로토콜 준수
100%

발견 사항 (3)

  • LOWTool 'swiss_federal_law' description lacks action verbswiss_federal_law에서
  • LOWTool 'swiss_holidays' description lacks action verbswiss_holidays에서
  • LOWTool 'swiss_rates' description lacks action verbswiss_rates에서

도구 정의와 프로토콜 준수에 대한 자동 분석을 기반으로 합니다.

컨텍스트 비용

~3,817토큰 (도구 정의)
~2.5 KB일반적인 응답 크기
상당한 주의 영향 (128k 컨텍스트의 2.98%)

이는 서버의 도구가 모델의 컨텍스트에 로드될 때마다 소비되는 대략적인 토큰 수입니다. 수치가 높을수록 다른 작업에 사용할 수 있는 주의가 줄어듭니다.

설치

원클릭 설치

`claude_desktop_config.json` 파일에 다음을 추가하세요:

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

원격 엔드포인트

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

할 수 있는 일

도구 목록

도구 (13)

🟢 읽기 전용🟡 쓰기🔴 삭제⚪ 알 수 없음
🟢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.

입력 스키마

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

출력 스키마

{
  "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.

입력 스키마

{
  "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
}

출력 스키마

{
  "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.

입력 스키마

{
  "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
}

출력 스키마

{
  "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.

입력 스키마

{
  "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
}

출력 스키마

{
  "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.

입력 스키마

{
  "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
}

출력 스키마

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

입력 스키마

{
  "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
}

출력 스키마

{
  "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.

입력 스키마

{
  "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
}

출력 스키마

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

입력 스키마

{
  "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
}

출력 스키마

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

입력 스키마

{
  "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
}

출력 스키마

{
  "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.

입력 스키마

{
  "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
}

출력 스키마

{
  "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.

입력 스키마

{
  "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
}

출력 스키마

{
  "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.

입력 스키마

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

출력 스키마

{
  "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.

입력 스키마

{
  "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
}

출력 스키마

{
  "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"
  ]
}

커뮤니티

이 서버 평가하기

증거

최근 관측

검증됨버전이 기록되지 않음도구 13개