zzd MCP
A read-only MCP server operated by the Swiss web studio zzd, providing tools to query data from their free consumer sites including grocery price comparisons, civil wedding venue listings, cantonal rent references, electric vehicle cost-per-kilometer calculations, and map poster availability.
Endpoint and access
No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.
https://mcp.zzd.ch/mcpWhat its tools do
7 tools, grouped by the hints the server advertises. Hints are self-declared, not verified behavior.
Checks and signals
Each line is separate evidence, not a trust score.
- Passed Endpoint answered the live check ·
- Passed Official MCP Registry namespace is tied to zzd.ch ·
- Passed Endpoint is on the registry namespace domain ·
- Availability 1 of 1 checks passed in 30 days
What you can do with it
- Search for current grocery prices across Swiss supermarkets
- Find locations for civil weddings in Switzerland
- Check typical rent prices by Swiss canton
- Calculate electric vehicle costs per kilometer
Source and maintenance
Protocol and capabilities
- Server
- zzd 1.0.1
- MCP protocol negotiated in check
- 2025-11-25
- Tools
- 7 advertised
- Resources
- Not advertised
- Resource templates
- Not advertised
- Prompts
- Not advertised
{
"tools": {
"listChanged": true
}
}Server-provided instructions
Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.
Tools
7 advertised
search_grocery_prices — Search Swiss grocery prices (Schnäppchen Jäger)
Search the grocery catalogue of Schnäppchen Jäger (schnaeppchenjaeger.zzd.ch, a free Swiss price comparison by zzd) across Migros, Coop, Lidl, Aldi, Denner and Volg, plus Aligro's weekly promotions. Returns products with pack price, price per unit, offer flag, the date each price was read, and a link to each product's comparison page. Prices are the shops' online prices, not branch shelf prices. Counts as one search of the site's free daily allowance (5 a day per connection without an account; calls through Claude's connectors share 300 a day). Each product links its comparison page.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"query"
],
"properties": {
"lang": {
"enum": [
"de",
"fr",
"it",
"en"
],
"type": "string",
"description": "Language of names and links. Default de."
},
"sort": {
"enum": [
"relevance",
"unit-price",
"price"
],
"type": "string",
"description": "Default relevance; unit-price puts the cheapest per kg/litre first."
},
"limit": {
"type": "integer",
"maximum": 10,
"minimum": 1,
"description": "How many products, 1-10. Default 8."
},
"query": {
"type": "string",
"maxLength": 80,
"minLength": 2,
"description": "What to look for, e.g. 'Vollmilch', 'Butter 250g'. German product names match best."
},
"store": {
"enum": [
"Migros",
"Coop",
"Lidl",
"Aldi",
"Denner",
"Volg",
"Aligro"
],
"type": "string",
"description": "Only this shop."
}
},
"additionalProperties": false
}{
"title": "Search Swiss grocery prices (Schnäppchen Jäger)",
"readOnlyHint": true,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": false
}compare_grocery_prices — Is this grocery product cheaper elsewhere? (Schnäppchen Jäger)
For one product id from a Schnäppchen Jäger search, returns its price, the identical article in the other Swiss shops (matched by barcode) and the cheapest similar product per shop for the same amount, each with the date it was read and a link. Similar products are not the same article. By zzd (schnaeppchenjaeger.zzd.ch). Not counted against the search allowance.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"productId"
],
"properties": {
"lang": {
"enum": [
"de",
"fr",
"it",
"en"
],
"type": "string",
"description": "Language of names and links. Default de."
},
"productId": {
"type": "integer",
"description": "The product id from a grocery search result.",
"exclusiveMinimum": 0
}
},
"additionalProperties": false
}{
"title": "Is this grocery product cheaper elsewhere? (Schnäppchen Jäger)",
"readOnlyHint": true,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": false
}find_wedding_venues — Find civil wedding venues in Switzerland (Trauungslokale Schweiz)
Find places for a civil wedding in Switzerland as cantons and municipalities publish them (registry offices and outside venues such as castles), from Trauungslokale Schweiz (traulokale.zzd.ch, a free finder by zzd). Filter by canton (code, slug or name), town, text, guests, or a published ceremony date or date range. Important: most offices publish no dates; and where datesShowAvailability is false a published date is NOT known to be free. The date is always booked with the registry office. Each venue links its page.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"to": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Last day of a date range for published ceremony dates, YYYY-MM-DD. Use with from."
},
"date": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Only venues with a published ceremony date on this day."
},
"from": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "First day of a date range for published ceremony dates, YYYY-MM-DD. Use with to."
},
"lang": {
"enum": [
"de",
"fr",
"it",
"en"
],
"type": "string",
"description": "Language of names and links. Default de."
},
"town": {
"type": "string",
"maxLength": 60,
"description": "Town or municipality, e.g. 'Aarau'."
},
"type": {
"enum": [
"office",
"external"
],
"type": "string",
"description": "office = registry office, external = outside venue."
},
"limit": {
"type": "integer",
"maximum": 25,
"minimum": 1,
"description": "Default 10."
},
"query": {
"type": "string",
"maxLength": 80,
"description": "Text in the venue name, town or address, e.g. 'Schloss'."
},
"canton": {
"type": "string",
"maxLength": 40,
"description": "Canton code (AG), slug (aargau) or name (Argovie)."
},
"minGuests": {
"type": "integer",
"maximum": 2000,
"minimum": 1,
"description": "Only venues that hold at least this many guests."
}
},
"additionalProperties": false
}{
"title": "Find civil wedding venues in Switzerland (Trauungslokale Schweiz)",
"readOnlyHint": true,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": false
}get_wedding_venue — One wedding venue with its registry office (Trauungslokale Schweiz)
Details for one venue id from a venue search: address, guests, costs as published, all published dates, the responsible registry office with phone, e-mail and official page, and the source the data was read from. By zzd (traulokale.zzd.ch).
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"maxLength": 160,
"minLength": 2,
"description": "The venue id from a venue search result."
},
"lang": {
"enum": [
"de",
"fr",
"it",
"en"
],
"type": "string",
"description": "Language of names and links. Default de."
}
},
"additionalProperties": false
}{
"title": "One wedding venue with its registry office (Trauungslokale Schweiz)",
"readOnlyHint": true,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": false
}rent_reference — Usual rent in a Swiss canton (Mietcheck)
The usual net monthly rent by flat size in a Swiss canton, from the Federal Statistical Office (BFS), via Mietcheck (mietcheck.zzd.ch, free, by zzd). Give a canton or a place (postal code or municipality); with rooms and the net rent it also says whether that rent is below, within or above the usual range. A place in several cantons returns the candidates to choose from. Cantonal averages only: not street level, not legal advice. The result links the matching Mietcheck page.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"lang": {
"enum": [
"de",
"fr",
"en"
],
"type": "string",
"description": "Language of the answer and links. Default de."
},
"place": {
"type": "string",
"maxLength": 100,
"description": "Postal code or municipality, e.g. '8001' or 'Winterthur'."
},
"rooms": {
"type": "integer",
"maximum": 6,
"minimum": 1,
"description": "Number of rooms; 6 means 6 or more."
},
"canton": {
"type": "string",
"maxLength": 40,
"description": "Canton code (ZH), slug or name. Use this or place."
},
"netRent": {
"type": "number",
"maximum": 30000,
"minimum": 100,
"description": "Monthly NET rent in CHF (without service charges and heating). Needs rooms."
}
},
"additionalProperties": false
}{
"title": "Usual rent in a Swiss canton (Mietcheck)",
"readOnlyHint": true,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": false
}ev_cost_per_km — What electric cars cost per km in Switzerland (EV cost comparison)
Electric cars offered in Switzerland ranked by total cost in CHF per km (depreciation, capital, tax, insurance, tyres and service, energy, wallbox, import fees, monthly fees), across buying new or used, importing from Germany, leasing and subscriptions, from the EV cost comparison (ev.zzd.ch, free, by zzd). Optional driving profile. The offers are a dated, hand-collected snapshot, not live prices; the model is calibrated for canton Aargau. The result links the comparison page.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"make": {
"type": "string",
"maxLength": 40,
"description": "Only this make, e.g. 'Renault'."
},
"limit": {
"type": "integer",
"maximum": 25,
"minimum": 1,
"description": "Default 5."
},
"annualKm": {
"type": "integer",
"maximum": 100000,
"minimum": 1000,
"description": "Default 15000."
},
"holdingYears": {
"type": "integer",
"maximum": 10,
"minimum": 1,
"description": "Default 5."
},
"acquisitionType": {
"enum": [
"purchase_new",
"purchase_used",
"import_de",
"lease",
"subscription"
],
"type": "string",
"description": "How the car is obtained. Without it, all ways are ranked."
},
"homeChargingShare": {
"type": "number",
"maximum": 1,
"minimum": 0,
"description": "Share charged at home, 0-1."
},
"publicChargingChfPerKwh": {
"type": "number",
"maximum": 3,
"minimum": 0,
"description": "Public charging price in CHF per kWh."
},
"homeElectricityChfPerKwh": {
"type": "number",
"maximum": 2,
"minimum": 0,
"description": "Home electricity price in CHF per kWh."
}
},
"additionalProperties": false
}{
"title": "What electric cars cost per km in Switzerland (EV cost comparison)",
"readOnlyHint": true,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": false
}find_map_posters — Map poster of a place (MappaMuse)
Find the ready poster page for a town or place on MappaMuse (mappamuse.zzd.ch, personalised map posters printed to order, by zzd), with the sizes and prices that page lists, in CHF. Any other place can be designed on the custom-poster page. The result links the page; the page and checkout are binding.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"place"
],
"properties": {
"lang": {
"enum": [
"de",
"fr",
"it",
"en"
],
"type": "string",
"description": "Language of names and links. Default de."
},
"place": {
"type": "string",
"maxLength": 80,
"minLength": 2,
"description": "A town or place, e.g. 'Aarau', 'Lugano'."
}
},
"additionalProperties": false
}{
"title": "Map poster of a place (MappaMuse)",
"readOnlyHint": true,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": false
}Prompts
Not advertised
Resources
Not advertised
30-day availability
Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.
- Successful checks
- 1 of 1 (100%)
- Average latency
- 1319 ms
- 95th percentile latency
- 1319 ms
Maintenance history
Public check and source-refresh events. Editorial and ownership records remain private.
- · probe · passed · 1319 ms · metadata changed · 7 tool(s)
Connect from your client
Each snippet registers the same endpoint; pick the client you use.
Claude Code
claude mcp add --transport http zzd-mcp https://mcp.zzd.ch/mcpCodex
codex mcp add zzd-mcp --url https://mcp.zzd.ch/mcpCursor
{
"mcpServers": {
"zzd-mcp": {
"url": "https://mcp.zzd.ch/mcp"
}
}
}Cline
{
"mcpServers": {
"zzd-mcp": {
"type": "streamableHttp",
"url": "https://mcp.zzd.ch/mcp",
"disabled": false
}
}
}VS Code
{
"servers": {
"zzd-mcp": {
"type": "http",
"url": "https://mcp.zzd.ch/mcp"
}
}
}Gemini CLI
gemini mcp add --transport http zzd-mcp https://mcp.zzd.ch/mcpClaude Desktop
https://mcp.zzd.ch/mcpWindsurf
{
"mcpServers": {
"zzd-mcp": {
"serverUrl": "https://mcp.zzd.ch/mcp"
}
}
}Let your agent find its tools
Find servers like zzd MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.
Other data and analytics servers
Do you run zzd MCP?
Prove ownership with a DNS record, a well-known file, or your Official MCP Registry entry, and your edits publish immediately. Proofs are re-checked weekly; admins can still hide or remove a listing.