# ikeytz Einsatzgebiet-Karten (remote · maps.ikeytz.com)

Read/Link MCP for maps.ikeytz.com. Public read-only. No forms. ai-train=no.

- Trust score: 78/100 (medium)
- Change this week: +3
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-09-20

## Components

- remote · `maps.ikeytz.com`: 78/100 (this document), [markdown](https://verifymcp.io/servers/com-ikeytz-maps/maps.md), [page](https://verifymcp.io/servers/com-ikeytz-maps/maps)
- npm · `@ikeytz/maps-mcp`: 31/100, [markdown](https://verifymcp.io/servers/com-ikeytz-maps/ikeytz-maps-mcp.md), [page](https://verifymcp.io/servers/com-ikeytz-maps/ikeytz-maps-mcp)

## Channel facts

- Endpoint: `https://maps.ikeytz.com/mcp`
- Transports: `streamable-http`
- Auth: `none`
- Version: `1.0.4`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-09-20.

- **Endpoint Security**: 66/100
  - The endpoint's TLS certificate is valid, in date, and uses a strong key.
  - Authorisation not fully verified: no authorisation is required to call this server, and 67 tool(s) never declared a destructiveHint. The MCP spec treats an absent hint as destructive by default, so we cannot call this surface safe.
  - HTTPS is enforced; there's no plaintext access path.
  - The HSTS (Strict-Transport-Security) header is present.
  - DNSSEC is configured correctly; the domain's records validate against the full chain to the root.
- **Transport & Reachability**: 100/100
  - Verified streamable-http transport via a live MCP handshake.
- **Schema Quality & AI Usability**: 74/100
  - AI-judged instruction clarity (excellent).
  - Context-footprint check failed: tool/resource definitions use about 10472 tokens (~156/item across 67 items; 67 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 73/100
  - Stability observed for 22 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 100% of tool parameters carry a description.
  - Structured output schemas are declared (100% of tools); any adoption earns full credit.
- **Tool Safety**: 100/100
  - No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.
  - We read all 67 captured tool definition(s), and no name or description among them implies an irreversible operation.
  - An AI judge read all 68 captured unit(s) of tool text and found none that tries to manipulate the model reading it.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

## Install

### How do I install the ikeytz Einsatzgebiet-Karten MCP server?

ikeytz Einsatzgebiet-Karten is a hosted endpoint at https://maps.ikeytz.com/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

### Claude

```bash
claude mcp add --transport http com-ikeytz-maps 'https://maps.ikeytz.com/mcp'
```

### Cursor

```json
{
  "mcpServers": {
    "com-ikeytz-maps": {
      "url": "https://maps.ikeytz.com/mcp"
    }
  }
}
```

### VS Code

```json
{
  "servers": {
    "com-ikeytz-maps": {
      "type": "http",
      "url": "https://maps.ikeytz.com/mcp"
    }
  }
}
```

### Codex

```toml
[mcp_servers.com-ikeytz-maps]
url = "https://maps.ikeytz.com/mcp"
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "com-ikeytz-maps": {
      "type": "remote",
      "url": "https://maps.ikeytz.com/mcp",
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add com-ikeytz-maps --url 'https://maps.ikeytz.com/mcp' --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  com-ikeytz-maps:
    url: "https://maps.ikeytz.com/mcp"
```

### Netclaw

```json
{
  "McpServers": {
    "com-ikeytz-maps": {
      "Transport": "http",
      "Url": "https://maps.ikeytz.com/mcp"
    }
  }
}
```

### Vellum

```bash
assistant mcp add com-ikeytz-maps -t streamable-http -u 'https://maps.ikeytz.com/mcp'
```

### Other

```json
{
  "mcpServers": {
    "com-ikeytz-maps": {
      "type": "http",
      "url": "https://maps.ikeytz.com/mcp"
    }
  }
}
```

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-09-19 (score 78, +1)

No change was recorded against any check on this day. Stability & Change Management went from 67 to 70. That category is still filling its 30-day observation window: 20 days of observed history at the previous scan, 21 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-09-17 (score 77, +1)

No change was recorded against any check on this day. Stability & Change Management went from 60 to 63. That category is still filling its 30-day observation window: 18 days of observed history at the previous scan, 19 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-09-15 (score 76, +1)

No change was recorded against any check on this day. Stability & Change Management went from 53 to 57. That category is still filling its 30-day observation window: 16 days of observed history at the previous scan, 17 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-09-13 (score 75, +1)

No change was recorded against any check on this day. Stability & Change Management went from 47 to 50. That category is still filling its 30-day observation window: 14 days of observed history at the previous scan, 15 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-09-11 (score 74, +1)

No change was recorded against any check on this day. Stability & Change Management went from 40 to 43. That category is still filling its 30-day observation window: 12 days of observed history at the previous scan, 13 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-09-09 (score 73, +1)

No change was recorded against any check on this day. Stability & Change Management went from 33 to 37. That category is still filling its 30-day observation window: 10 days of observed history at the previous scan, 11 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-09-06 (score 72, +1)

No change was recorded against any check on this day. Stability & Change Management went from 23 to 27. That category is still filling its 30-day observation window: 7 days of observed history at the previous scan, 8 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-09-04 (score 71, +1)

No change was recorded against any check on this day. Stability & Change Management went from 17 to 20. That category is still filling its 30-day observation window: 5 days of observed history at the previous scan, 6 at this one. The score rises as the window fills, whether or not the server changes.

## MCP tools (67)

### `list_service_areas` (~362 tokens)

WHAT: List all 52 ikeytz Einsatzgebiete on maps.ikeytz.com as point cards (slug, name, plz, lat/lng, embed_map, geo_api) — not polygons. RETURNS items[], count, total, offset, limit. Optional fields= comma filter; limit/offset page the list. USE to enumerate the service area or build a picker. DOES NOT return OSM boundaries (use get_grenze per slug) or prices. NEXT: get_service_area, get_embed_map, get_grenze, find_by_plz.

Input parameters:

- `fields` (string): Optional field filter: comma-separated names or array. Keeps envelope keys (ok, tool, summary, canonicalUrl, attribution, locale, related, count, total, offset, limit, compact) plus listed fields. Ex…
- `limit` (integer): Maximum items or lines to return after offset. Omit = all remaining in the window (subject to tool-specific clamps). For geo near-search default is often 5 without radius_km, up to 52 with radius.
- `locale` (string): maps is German-only (de). Omit or pass de. Other values are ignored; URLs stay https://maps.ikeytz.com/… with no locale prefix. Not a www multi-locale switch — use @ikeytz/mcp list_locales on www for…
- `offset` (integer): 0-based index into a list or discovery file lines (split on \n). 0 = first. Omit = 0. Combine with limit to page. Use nextOffset / offset+limit from a previous result when present.

Output parameters:

- `attribution` (string): Required citation: 'Quelle: Schlüsseldienst Ludwigsburg ikeytz (ikeytz.com) · ai-train=no · https://maps.ikeytz.com/.well-known/ai.txt'
- `canonicalUrl` (string): Best URL to show the user: https://maps.ikeytz.com… page, public embed JSON, tel:+49…, mailto:…, https://wa.me/…, or a www pointer. Prefer this over constructing URLs.
- `count` (number): Items in this page
- `error` (string): Present when ok=false. Codes include: unknown_place, unknown_discovery, unknown_doc, q_required, plz_required, coords_required, outside_service_area, url_required, not_maps_host, bad_url, path_or_url…
- `hint` (string): Present when ok=false. Absolute URL or short recovery hint the agent should open or pass to another tool.
- `items` (array): Service-area point cards
- `limit` (number): Applied limit
- `locale` (string): Locale actually used for URLs. maps is German-only: always de (MAPS-E8 — no /en on maps). Requested non-de is ignored; payload locale=de.
- `offset` (number): Applied offset
- `ok` (boolean): true = use summary, canonicalUrl, and extra keys. false = do not invent data; read error + hint and retry with valid args or open hint.
- `related` (array): Always includes https://maps.ikeytz.com/llms.txt.
- `summary` (string): Primary text for the model. For discovery tools this is the file window. For list tools a compact one-liner. Quote with attribution.
- `tool` (string): Echo of the tool name that produced this object (e.g. get_service_area).
- `total` (number): Total Gebiete (52)

### `get_service_area` (~419 tokens)

WHAT: One Einsatzgebiet by slug → plz (first match) → name substring. RETURNS point card + optional Lage texts (h1, kicker, blurb, lage, geschichte) unless compact=true. fields= filters keys. USE when the user names a town/district in Landkreis Ludwigsburg. DOES NOT geocode free addresses outside the 52; unknown → ok=false unknown_place. NEXT: get_lage, get_geschichte, get_grenze, get_embed_map, distance_to_office.

Input parameters:

- `compact` (boolean): If true, omit h1/kicker/blurb/lage/geschichte — coords + URLs only.
- `fields` (string): Optional field filter: comma-separated names or array. Keeps envelope keys (ok, tool, summary, canonicalUrl, attribution, locale, related, count, total, offset, limit, compact) plus listed fields. Ex…
- `locale` (string): maps is German-only (de). Omit or pass de. Other values are ignored; URLs stay https://maps.ikeytz.com/… with no locale prefix. Not a www multi-locale switch — use @ikeytz/mcp list_locales on www for…
- `name` (string): German place name substring (case-insensitive, umlauts ok), e.g. Grünbühl, Pattonville. Used when slug/plz omitted.
- `plz` (string): German postcode (PLZ). Several Gebiete can share one PLZ (e.g. 71638). For single lookup first match wins; use find_by_plz for all matches.
- `slug` (string): URL slug of one of the 52 Einsatzgebiete, e.g. pattonville, bietigheim-bissingen, walheim, gruenbuehl. Matches https://maps.ikeytz.com/{slug}. Lookup order when combined with plz/name: slug first.

Output parameters:

- `attribution` (string): Required citation: 'Quelle: Schlüsseldienst Ludwigsburg ikeytz (ikeytz.com) · ai-train=no · https://maps.ikeytz.com/.well-known/ai.txt'
- `blurb` (string): Short blurb when not compact
- `canonicalUrl` (string): Best URL to show the user: https://maps.ikeytz.com… page, public embed JSON, tel:+49…, mailto:…, https://wa.me/…, or a www pointer. Prefer this over constructing URLs.
- `compact` (boolean): Whether compact mode was applied
- `embed_map` (string)
- `error` (string): Present when ok=false. Codes include: unknown_place, unknown_discovery, unknown_doc, q_required, plz_required, coords_required, outside_service_area, url_required, not_maps_host, bad_url, path_or_url…
- `geo_api` (string)
- `geschichte` (string): Geschichte text when not compact
- `google_maps` (string): 'lat, lng'
- `h1` (string): Visitenkarte H1 when not compact
- `hint` (string): Present when ok=false. Absolute URL or short recovery hint the agent should open or pass to another tool.
- `icbm` (string): ICBM string
- `kicker` (string): Kicker when not compact
- `kind` (string): stadtteil | ort
- `lage` (string): Lage text when not compact
- `lat` (number): Place latitude
- `lng` (number): Place longitude
- `locale` (string): Locale actually used for URLs. maps is German-only: always de (MAPS-E8 — no /en on maps). Requested non-de is ignored; payload locale=de.
- `name` (string): German name
- `office_lat` (number): Gewerbesitz lat
- `office_lng` (number): Gewerbesitz lng
- `ok` (boolean): true = use summary, canonicalUrl, and extra keys. false = do not invent data; read error + hint and retry with valid args or open hint.
- `parent` (string): Parent label
- `plz` (string): Postcode
- `related` (array): Always includes https://maps.ikeytz.com/llms.txt.
- `slug` (string): Resolved slug
- `summary` (string): Primary text for the model. For discovery tools this is the file window. For list tools a compact one-liner. Quote with attribution.
- `tool` (string): Echo of the tool name that produced this object (e.g. get_service_area).
- `walkIn` (boolean): Always false

### `get_ort_datetime` (~284 tokens)

WHAT: Europe/Berlin wall clock to the second (stand YYYY-MM-DD HH:MM:SS CEST|CET) for pricing whenKey context. Optional slug|plz|name like get_service_area; omit = all 52 places with the same clock. RETURNS timezone, stand, iso, unix, date, time, tz, and whenKey day|night for www invoicing. USE before quoting via www get_invoice_line_items. DOES NOT return euro amounts (no price matrix on maps). NEXT: www @ikeytz/mcp get_invoice_line_items({situationKey, whenKey}) or get_prices.

Input parameters:

- `name` (string): German place name substring (case-insensitive, umlauts ok), e.g. Grünbühl, Pattonville. Used when slug/plz omitted.
- `plz` (string): German postcode (PLZ). Several Gebiete can share one PLZ (e.g. 71638). For single lookup first match wins; use find_by_plz for all matches.
- `slug` (string): URL slug of one of the 52 Einsatzgebiete, e.g. pattonville, bietigheim-bissingen, walheim, gruenbuehl. Matches https://maps.ikeytz.com/{slug}. Lookup order when combined with plz/name: slug first.

Output parameters:

- `attribution` (string): Required citation: 'Quelle: Schlüsseldienst Ludwigsburg ikeytz (ikeytz.com) · ai-train=no · https://maps.ikeytz.com/.well-known/ai.txt'
- `canonicalUrl` (string): Best URL to show the user: https://maps.ikeytz.com… page, public embed JSON, tel:+49…, mailto:…, https://wa.me/…, or a www pointer. Prefer this over constructing URLs.
- `count` (number): 52 when listing all places
- `date` (string): YYYY-MM-DD in Berlin
- `error` (string): Present when ok=false. Codes include: unknown_place, unknown_discovery, unknown_doc, q_required, plz_required, coords_required, outside_service_area, url_required, not_maps_host, bad_url, path_or_url…
- `hint` (string): Present when ok=false. Absolute URL or short recovery hint the agent should open or pass to another tool.
- `iso` (string): ISO-8601 with Berlin offset
- `items` (array): All 52 slug/name/plz + clock when called without lookup
- `locale` (string): Locale actually used for URLs. maps is German-only: always de (MAPS-E8 — no /en on maps). Requested non-de is ignored; payload locale=de.
- `name` (string): Place name when resolved
- `ok` (boolean): true = use summary, canonicalUrl, and extra keys. false = do not invent data; read error + hint and retry with valid args or open hint.
- `plz` (string): PLZ when resolved
- `related` (array): Always includes https://maps.ikeytz.com/llms.txt.
- `slug` (string): Present when a place was resolved
- `stand` (string): Human clock 'YYYY-MM-DD HH:MM:SS CEST|CET' Europe/Berlin to the second
- `summary` (string): Primary text for the model. For discovery tools this is the file window. For list tools a compact one-liner. Quote with attribution.
- `time` (string): HH:MM:SS in Berlin (24h)
- `timezone` (string): Always Europe/Berlin
- `tool` (string): Echo of the tool name that produced this object (e.g. get_service_area).
- `tz` (string): Abbreviation
- `unix` (number): Unix timestamp seconds
- `whenKey` (string): Price bucket for www get_invoice_line_items. day = Mo–Fr 08:00–17:59 Berlin except BW holidays; else night. Pass to www MCP — maps has no euro matrix.

### `get_geo_office` (~168 tokens)

WHO/WHAT: Gewerbesitz (registered office) coordinates and street in Ludwigsburg. walkIn=false always — mobile locksmith, not a shop counter. RETURNS street, postal, city, lat, lng, google_maps/icbm, walkIn. USE for NAP/schema or distance_to_office. DOES NOT accept walk-in customers or bookings. NEXT: get_contact, distance_to_office, get_business_identity.

Input parameters:

- `locale` (string): maps is German-only (de). Omit or pass de. Other values are ignored; URLs stay https://maps.ikeytz.com/… with no locale prefix. Not a www multi-locale switch — use @ikeytz/mcp list_locales on www for…

Output parameters:

- `attribution` (string): Required citation: 'Quelle: Schlüsseldienst Ludwigsburg ikeytz (ikeytz.com) · ai-train=no · https://maps.ikeytz.com/.well-known/ai.txt'
- `canonicalUrl` (string): Best URL to show the user: https://maps.ikeytz.com… page, public embed JSON, tel:+49…, mailto:…, https://wa.me/…, or a www pointer. Prefer this over constructing URLs.
- `city` (string): City
- `error` (string): Present when ok=false. Codes include: unknown_place, unknown_discovery, unknown_doc, q_required, plz_required, coords_required, outside_service_area, url_required, not_maps_host, bad_url, path_or_url…
- `google_maps` (string): 'lat, lng'
- `hint` (string): Present when ok=false. Absolute URL or short recovery hint the agent should open or pass to another tool.
- `icbm` (string): ICBM string
- `lat` (number): Office latitude
- `lng` (number): Office longitude
- `locale` (string): Locale actually used for URLs. maps is German-only: always de (MAPS-E8 — no /en on maps). Requested non-de is ignored; payload locale=de.
- `ok` (boolean): true = use summary, canonicalUrl, and extra keys. false = do not invent data; read error + hint and retry with valid args or open hint.
- `postal` (string): Postal code
- `related` (array): Always includes https://maps.ikeytz.com/llms.txt.
- `street` (string): Office street
- `summary` (string): Primary text for the model. For discovery tools this is the file window. For list tools a compact one-liner. Quote with attribution.
- `tool` (string): Echo of the tool name that produced this object (e.g. get_service_area).
- `walkIn` (boolean): Always false — no shop counter

### `get_contact` (~155 tokens)

WHAT: Public NAP — mobile, landline, fax, email, mapsEmail (info@maps.ikeytz.com), WhatsApp, address, office coords. walkIn=false. USE for call/WhatsApp/mail CTAs. DOES NOT open tickets or send messages. NEXT: compose_tel_mobile, compose_whatsapp, compose_mailto, list_whatsapp_options.

Input parameters:

- `locale` (string): maps is German-only (de). Omit or pass de. Other values are ignored; URLs stay https://maps.ikeytz.com/… with no locale prefix. Not a www multi-locale switch — use @ikeytz/mcp list_locales on www for…

Output parameters:

- `address` (object): Structured address block
- `addressLine` (string): Single-line address
- `attribution` (string): Required citation: 'Quelle: Schlüsseldienst Ludwigsburg ikeytz (ikeytz.com) · ai-train=no · https://maps.ikeytz.com/.well-known/ai.txt'
- `canonicalUrl` (string): Best URL to show the user: https://maps.ikeytz.com… page, public embed JSON, tel:+49…, mailto:…, https://wa.me/…, or a www pointer. Prefer this over constructing URLs.
- `email` (string): info@ikeytz.com
- `error` (string): Present when ok=false. Codes include: unknown_place, unknown_discovery, unknown_doc, q_required, plz_required, coords_required, outside_service_area, url_required, not_maps_host, bad_url, path_or_url…
- `fax` (string): Fax display
- `google_maps` (string)
- `hint` (string): Present when ok=false. Absolute URL or short recovery hint the agent should open or pass to another tool.
- `icbm` (string)
- `landline` (string): Landline display
- `lat` (number): Office lat
- `lng` (number): Office lng
- `locale` (string): Locale actually used for URLs. maps is German-only: always de (MAPS-E8 — no /en on maps). Requested non-de is ignored; payload locale=de.
- `mapsEmail` (string): info@maps.ikeytz.com
- `mobile` (string): Mobile display
- `ok` (boolean): true = use summary, canonicalUrl, and extra keys. false = do not invent data; read error + hint and retry with valid args or open hint.
- `related` (array): Always includes https://maps.ikeytz.com/llms.txt.
- `summary` (string): Primary text for the model. For discovery tools this is the file window. For list tools a compact one-liner. Quote with attribution.
- `tool` (string): Echo of the tool name that produced this object (e.g. get_service_area).
- `walkIn` (boolean): Always false
- `whatsapp` (string): wa.me URL

### `get_discovery` (~385 tokens)

WHAT: 1:1 mirror of a maps discovery file (UTF-8 text/JSON). which is required — common ids: ard, ai-catalog, ai-txt, ai-plugin, answer-engine, agent-skills, llms, llms-full, llms-index, llms-keywords, llms-serp, llms-impressum-kontakt, llms-orte-geo, llms-urheberrecht, llms-copyright, llms-mcp-server, llms-mcp-web, robots, sitemap-txt, sitemap-xml. Optional offset/limit line window. USE for agent-ready catalogs and robots/sitemap. DOES NOT invent missing files (missing=true). NEXT: find_by_keyword / find_by_serp for structured search; get_llms_txt / get_ai_txt aliases.

Input parameters:

- `limit` (integer): Maximum items or lines to return after offset. Omit = all remaining in the window (subject to tool-specific clamps). For geo near-search default is often 5 without radius_km, up to 52 with radius.
- `offset` (integer): 0-based index into a list or discovery file lines (split on \n). 0 = first. Omit = 0. Combine with limit to page. Use nextOffset / offset+limit from a previous result when present.
- `which` (string, required): Required discovery id. Examples: ard, ai-catalog, ai-txt, ai-plugin, answer-engine, agent-skills, llms, llms-full, llms-index, llms-keywords, llms-serp, llms-impressum-kontakt, llms-orte-geo, llms-ur…

Output parameters:

- `attribution` (string): Required citation: 'Quelle: Schlüsseldienst Ludwigsburg ikeytz (ikeytz.com) · ai-train=no · https://maps.ikeytz.com/.well-known/ai.txt'
- `body` (string): UTF-8 text window after offset/limit
- `canonicalUrl` (string): Best URL to show the user: https://maps.ikeytz.com… page, public embed JSON, tel:+49…, mailto:…, https://wa.me/…, or a www pointer. Prefer this over constructing URLs.
- `error` (string): Present when ok=false. Codes include: unknown_place, unknown_discovery, unknown_doc, q_required, plz_required, coords_required, outside_service_area, url_required, not_maps_host, bad_url, path_or_url…
- `hint` (string): Present when ok=false. Absolute URL or short recovery hint the agent should open or pass to another tool.
- `limit` (number|null): Applied line limit, or null if omitted
- `locale` (string): Locale actually used for URLs. maps is German-only: always de (MAPS-E8 — no /en on maps). Requested non-de is ignored; payload locale=de.
- `missing` (boolean): true if the discovery file was not found on disk
- `offset` (number): Applied 0-based line offset
- `ok` (boolean): true = use summary, canonicalUrl, and extra keys. false = do not invent data; read error + hint and retry with valid args or open hint.
- `path` (string): Public relative path of the file on maps
- `related` (array): Always includes https://maps.ikeytz.com/llms.txt.
- `summary` (string): Primary text for the model. For discovery tools this is the file window. For list tools a compact one-liner. Quote with attribution.
- `text` (string): Alias/window of body when present
- `tool` (string): Echo of the tool name that produced this object (e.g. get_service_area).
- `total_lines` (number): Line count of the full file
- `which` (string): Resolved discovery id (ard, ai-catalog, llms, robots, sitemap-txt, llms-mcp-server, …).

### `get_llms_mcp_server` (~172 tokens)

WHAT: Alias of get_discovery(which=llms-mcp-server) — machine/catalog text for the maps MCP server. Optional offset/limit. USE when an agent needs the server-side llms MCP catalog. NEXT: get_llms_mcp_web, get_links.

Input parameters:

- `limit` (integer): Maximum items or lines to return after offset. Omit = all remaining in the window (subject to tool-specific clamps). For geo near-search default is often 5 without radius_km, up to 52 with radius.
- `offset` (integer): 0-based index into a list or discovery file lines (split on \n). 0 = first. Omit = 0. Combine with limit to page. Use nextOffset / offset+limit from a previous result when present.

Output parameters:

- `attribution` (string): Required citation: 'Quelle: Schlüsseldienst Ludwigsburg ikeytz (ikeytz.com) · ai-train=no · https://maps.ikeytz.com/.well-known/ai.txt'
- `body` (string): UTF-8 text window after offset/limit
- `canonicalUrl` (string): Best URL to show the user: https://maps.ikeytz.com… page, public embed JSON, tel:+49…, mailto:…, https://wa.me/…, or a www pointer. Prefer this over constructing URLs.
- `error` (string): Present when ok=false. Codes include: unknown_place, unknown_discovery, unknown_doc, q_required, plz_required, coords_required, outside_service_area, url_required, not_maps_host, bad_url, path_or_url…
- `hint` (string): Present when ok=false. Absolute URL or short recovery hint the agent should open or pass to another tool.
- `limit` (number|null): Applied line limit, or null if omitted
- `locale` (string): Locale actually used for URLs. maps is German-only: always de (MAPS-E8 — no /en on maps). Requested non-de is ignored; payload locale=de.
- `missing` (boolean): true if the discovery file was not found on disk
- `offset` (number): Applied 0-based line offset
- `ok` (boolean): true = use summary, canonicalUrl, and extra keys. false = do not invent data; read error + hint and retry with valid args or open hint.
- `path` (string): Public relative path of the file on maps
- `related` (array): Always includes https://maps.ikeytz.com/llms.txt.
- `summary` (string): Primary text for the model. For discovery tools this is the file window. For list tools a compact one-liner. Quote with attribution.
- `text` (string): Alias/window of body when present
- `tool` (string): Echo of the tool name that produced this object (e.g. get_service_area).
- `total_lines` (number): Line count of the full file
- `which` (string): Resolved discovery id (ard, ai-catalog, llms, robots, sitemap-txt, llms-mcp-server, …).

### `get_llms_mcp_web` (~175 tokens)

WHAT: Alias of get_discovery(which=llms-mcp-web) — web/UI-oriented MCP catalog on maps. Optional offset/limit. USE for browser/agent web discovery copy. NEXT: get_llms_mcp_server, get_mcp hub HTML /mcp-hub.

Input parameters:

- `limit` (integer): Maximum items or lines to return after offset. Omit = all remaining in the window (subject to tool-specific clamps). For geo near-search default is often 5 without radius_km, up to 52 with radius.
- `offset` (integer): 0-based index into a list or discovery file lines (split on \n). 0 = first. Omit = 0. Combine with limit to page. Use nextOffset / offset+limit from a previous result when present.

Output parameters:

- `attribution` (string): Required citation: 'Quelle: Schlüsseldienst Ludwigsburg ikeytz (ikeytz.com) · ai-train=no · https://maps.ikeytz.com/.well-known/ai.txt'
- `body` (string): UTF-8 text window after offset/limit
- `canonicalUrl` (string): Best URL to show the user: https://maps.ikeytz.com… page, public embed JSON, tel:+49…, mailto:…, https://wa.me/…, or a www pointer. Prefer this over constructing URLs.
- `error` (string): Present when ok=false. Codes include: unknown_place, unknown_discovery, unknown_doc, q_required, plz_required, coords_required, outside_service_area, url_required, not_maps_host, bad_url, path_or_url…
- `hint` (string): Present when ok=false. Absolute URL or short recovery hint the agent should open or pass to another tool.
- `limit` (number|null): Applied line limit, or null if omitted
- `locale` (string): Locale actually used for URLs. maps is German-only: always de (MAPS-E8 — no /en on maps). Requested non-de is ignored; payload locale=de.
- `missing` (boolean): true if the discovery file was not found on disk
- `offset` (number): Applied 0-based line offset
- `ok` (boolean): true = use summary, canonicalUrl, and extra keys. false = do not invent data; read error + hint and retry with valid args or open hint.
- `path` (string): Public relative path of the file on maps
- `related` (array): Always includes https://maps.ikeytz.com/llms.txt.
- `summary` (string): Primary text for the model. For discovery tools this is the file window. For list tools a compact one-liner. Quote with attribution.
- `text` (string): Alias/window of body when present
- `tool` (string): Echo of the tool name that produced this object (e.g. get_service_area).
- `total_lines` (number): Line count of the full file
- `which` (string): Resolved discovery id (ard, ai-catalog, llms, robots, sitemap-txt, llms-mcp-server, …).

### `find_by_keyword` (~212 tokens)

WHAT: Search maps llms-keywords.txt (keyword → maps URL). q required. RETURNS matching keyword/url rows (clamped limit). USE for SEO/keyword → Gebiet page. DOES NOT search www keywords. NEXT: get_service_area / get_embed_map with the slug from the URL.

Input parameters:

- `limit` (integer): Maximum items or lines to return after offset. Omit = all remaining in the window (subject to tool-specific clamps). For geo near-search default is often 5 without radius_km, up to 52 with radius.
- `locale` (string): maps is German-only (de). Omit or pass de. Other values are ignored; URLs stay https://maps.ikeytz.com/… with no locale prefix. Not a www multi-locale switch — use @ikeytz/mcp list_locales on www for…
- `q` (string, required): Required search string matched against keyword and URL (substring, case-insensitive).

Output parameters:

- `attribution` (string): Required citation: 'Quelle: Schlüsseldienst Ludwigsburg ikeytz (ikeytz.com) · ai-train=no · https://maps.ikeytz.com/.well-known/ai.txt'
- `canonicalUrl` (string): Best URL to show the user: https://maps.ikeytz.com… page, public embed JSON, tel:+49…, mailto:…, https://wa.me/…, or a www pointer. Prefer this over constructing URLs.
- `count` (number): Returned hits
- `error` (string): Present when ok=false. Codes include: unknown_place, unknown_discovery, unknown_doc, q_required, plz_required, coords_required, outside_service_area, url_required, not_maps_host, bad_url, path_or_url…
- `hint` (string): Present when ok=false. Absolute URL or short recovery hint the agent should open or pass to another tool.
- `items` (array): keyword + url rows
- `lines` (array): Raw TSV lines
- `locale` (string): Locale actually used for URLs. maps is German-only: always de (MAPS-E8 — no /en on maps). Requested non-de is ignored; payload locale=de.
- `ok` (boolean): true = use summary, canonicalUrl, and extra keys. false = do not invent data; read error + hint and retry with valid args or open hint.
- `q` (string): Query echoed
- `related` (array): Always includes https://maps.ikeytz.com/llms.txt.
- `summary` (string): Primary text for the model. For discovery tools this is the file window. For list tools a compact one-liner. Quote with attribution.
- `tool` (string): Echo of the tool name that produced this object (e.g. get_service_area).
- `total` (number): Total matches before limit

### `find_by_serp` (~178 tokens)

WHAT: Search maps llms-serp.txt blocks by q, path, url, or slug. RETURNS path/url/snippet items. USE for title/H1/description SERP cards on maps. DOES NOT scrape live HTML. NEXT: get_serp_snippet for one full block.

Input parameters:

- `limit` (integer): Maximum items or lines to return after offset. Omit = all remaining in the window (subject to tool-specific clamps). For geo near-search default is often 5 without radius_km, up to 52 with radius.
- `path` (string): maps path fragment, e.g. /pattonville
- `q` (string): Free-text search in SERP blocks
- `slug` (string): Gebiet slug
- `url` (string): Full https://maps.ikeytz.com/… URL

Output parameters:

- `attribution` (string): Required citation: 'Quelle: Schlüsseldienst Ludwigsburg ikeytz (ikeytz.com) · ai-train=no · https://maps.ikeytz.com/.well-known/ai.txt'
- `canonicalUrl` (string): Best URL to show the user: https://maps.ikeytz.com… page, public embed JSON, tel:+49…, mailto:…, https://wa.me/…, or a www pointer. Prefer this over constructing URLs.
- `count` (number)
- `error` (string): Present when ok=false. Codes include: unknown_place, unknown_discovery, unknown_doc, q_required, plz_required, coords_required, outside_service_area, url_required, not_maps_host, bad_url, path_or_url…
- `hint` (string): Present when ok=false. Absolute URL or short recovery hint the agent should open or pass to another tool.
- `items` (array): SERP hits
- `locale` (string): Locale actually used for URLs. maps is German-only: always de (MAPS-E8 — no /en on maps). Requested non-de is ignored; payload locale=de.
- `ok` (boolean): true = use summary, canonicalUrl, and extra keys. false = do not invent data; read error + hint and retry with valid args or open hint.
- `q` (string): Resolved query
- `related` (array): Always includes https://maps.ikeytz.com/llms.txt.
- `summary` (string): Primary text for the model. For discovery tools this is the file window. For list tools a compact one-liner. Quote with attribution.
- `tool` (string): Echo of the tool name that produced this object (e.g. get_service_area).
- `total` (number)

### `get_serp_snippet` (~120 tokens)

WHAT: One SERP block from maps llms-serp.txt via path, url, slug, or q. RETURNS path, url, matchContext (full block). USE for a single page's SERP copy. DOES NOT invent meta tags. NEXT: get_ai_page or get_page_summary for body.

Input parameters:

- `path` (string): maps path, e.g. /pattonville
- `q` (string): Fallback search string
- `slug` (string): Gebiet slug
- `url` (string): Full maps URL

Output parameters:

- `attribution` (string): Required citation: 'Quelle: Schlüsseldienst Ludwigsburg ikeytz (ikeytz.com) · ai-train=no · https://maps.ikeytz.com/.well-known/ai.txt'
- `canonicalUrl` (string): Best URL to show the user: https://maps.ikeytz.com… page, public embed JSON, tel:+49…, mailto:…, https://wa.me/…, or a www pointer. Prefer this over constructing URLs.
- `error` (string): Present when ok=false. Codes include: unknown_place, unknown_discovery, unknown_doc, q_required, plz_required, coords_required, outside_service_area, url_required, not_maps_host, bad_url, path_or_url…
- `hint` (string): Present when ok=false. Absolute URL or short recovery hint the agent should open or pass to another tool.
- `locale` (string): Locale actually used for URLs. maps is German-only: always de (MAPS-E8 — no /en on maps). Requested non-de is ignored; payload locale=de.
- `matchContext` (string): Full SERP markdown block
- `ok` (boolean): true = use summary, canonicalUrl, and extra keys. false = do not invent data; read error + hint and retry with valid args or open hint.
- `path` (string): Matched path
- `related` (array): Always includes https://maps.ikeytz.com/llms.txt.
- `summary` (string): Primary text for the model. For discovery tools this is the file window. For list tools a compact one-liner. Quote with attribution.
- `tool` (string): Echo of the tool name that produced this object (e.g. get_service_area).
- `url` (string): Matched maps URL

### `find_by_plz` (~91 tokens)

WHAT: All Einsatzgebiete with this PLZ (not only the first). plz required (or q as PLZ). RETURNS items[] point cards + count. USE when several Stadtteile share a postcode. NEXT: get_service_area(slug) for one card.

Input parameters:

- `plz` (string, required): Required German postcode.
- `q` (string): Alias for plz if plz omitted

Output parameters:

- `attribution` (string): Required citation: 'Quelle: Schlüsseldienst Ludwigsburg ikeytz (ikeytz.com) · ai-train=no · https://maps.ikeytz.com/.well-known/ai.txt'
- `canonicalUrl` (string): Best URL to show the user: https://maps.ikeytz.com… page, public embed JSON, tel:+49…, mailto:…, https://wa.me/…, or a www pointer. Prefer this over constructing URLs.
- `count` (number): Number of Gebiete
- `error` (string): Present when ok=false. Codes include: unknown_place, unknown_discovery, unknown_doc, q_required, plz_required, coords_required, outside_service_area, url_required, not_maps_host, bad_url, path_or_url…
- `hint` (string): Present when ok=false. Absolute URL or short recovery hint the agent should open or pass to another tool.
- `items` (array): All matches
- `locale` (string): Locale actually used for URLs. maps is German-only: always de (MAPS-E8 — no /en on maps). Requested non-de is ignored; payload locale=de.
- `ok` (boolean): true = use summary, canonicalUrl, and extra keys. false = do not invent data; read error + hint and retry with valid args or open hint.
- `plz` (string): Queried PLZ
- `related` (array): Always includes https://maps.ikeytz.com/llms.txt.
- `summary` (string): Primary text for the model. For discovery tools this is the file window. For list tools a compact one-liner. Quote with attribution.
- `tool` (string): Echo of the tool name that produced this object (e.g. get_service_area).

### `find_by_geo` (~255 tokens)

WHAT: Rank Einsatzgebiete by lat/lng (or icbm). Optional radius_km; else nearest N (limit, default 5). (0,0) and far points → ok=false outside_service_area. RETURNS items with distance_km. USE for 'near this coordinate'. DOES NOT route or drive-time. NEXT: get_service_area, get_grenze, distance_to_office.

Input parameters:

- `icbm` (string): ICBM or paste 'lat, lng' (comma-separated). Alternative to lat+lng.
- `lat` (number): WGS84 latitude. Required with lng unless icbm is set. (0,0) → outside_service_area.
- `limit` (integer): Maximum items or lines to return after offset. Omit = all remaining in the window (subject to tool-specific clamps). For geo near-search default is often 5 without radius_km, up to 52 with radius.
- `lng` (number): WGS84 longitude. Required with lat unless icbm is set.
- `radius_km` (number): Optional air-radius filter in km. Omit = return nearest N (limit). Far points / (0,0) → outside_service_area.

Output parameters:

- `attribution` (string): Required citation: 'Quelle: Schlüsseldienst Ludwigsburg ikeytz (ikeytz.com) · ai-train=no · https://maps.ikeytz.com/.well-known/ai.txt'
- `canonicalUrl` (string): Best URL to show the user: https://maps.ikeytz.com… page, public embed JSON, tel:+49…, mailto:…, https://wa.me/…, or a www pointer. Prefer this over constructing URLs.
- `count` (number)
- `error` (string): Present when ok=false. Codes include: unknown_place, unknown_discovery, unknown_doc, q_required, plz_required, coords_required, outside_service_area, url_required, not_maps_host, bad_url, path_or_url…
- `hint` (string): Present when ok=false. Absolute URL or short recovery hint the agent should open or pass to another tool.
- `icbm` (string): Query ICBM
- `items` (array): Ranked Gebiete with distance_km
- `lat` (number): Query latitude
- `lng` (number): Query longitude
- `locale` (string): Locale actually used for URLs. maps is German-only: always de (MAPS-E8 — no /en on maps). Requested non-de is ignored; payload locale=de.
- `nearest_km` (number|null): On outside_service_area failures: nearest distance if any
- `ok` (boolean): true = use summary, canonicalUrl, and extra keys. false = do not invent data; read error + hint and retry with valid args or open hint.
- `radius_km` (number|null): Applied radius or null
- `related` (array): Always includes https://maps.ikeytz.com/llms.txt.
- `summary` (string): Primary text for the model. For discovery tools this is the file window. For list tools a compact one-liner. Quote with attribution.
- `tool` (string): Echo of the tool name that produced this object (e.g. get_service_area).

### `find_by_icbm` (~234 tokens)

WHAT: Same as find_by_geo but prefers icbm string 'lat, lng'. Optional lat/lng/radius_km/limit. (0,0) → outside_service_area. USE when the user pastes ICBM metadata. NEXT: get_embed_map, get_grenze.

Input parameters:

- `icbm` (string): ICBM or paste 'lat, lng' (comma-separated). Alternative to lat+lng.
- `lat` (number): WGS84 latitude. Required with lng unless icbm is set. (0,0) → outside_service_area.
- `limit` (integer): Maximum items or lines to return after offset. Omit = all remaining in the window (subject to tool-specific clamps). For geo near-search default is often 5 without radius_km, up to 52 with radius.
- `lng` (number): WGS84 longitude. Required with lat unless icbm is set.
- `radius_km` (number): Optional air-radius filter in km. Omit = return nearest N (limit). Far points / (0,0) → outside_service_area.

Output parameters:

- `attribution` (string): Required citation: 'Quelle: Schlüsseldienst Ludwigsburg ikeytz (ikeytz.com) · ai-train=no · https://maps.ikeytz.com/.well-known/ai.txt'
- `canonicalUrl` (string): Best URL to show the user: https://maps.ikeytz.com… page, public embed JSON, tel:+49…, mailto:…, https://wa.me/…, or a www pointer. Prefer this over constructing URLs.
- `count` (number)
- `error` (string): Present when ok=false. Codes include: unknown_place, unknown_discovery, unknown_doc, q_required, plz_required, coords_required, outside_service_area, url_required, not_maps_host, bad_url, path_or_url…
- `hint` (string): Present when ok=false. Absolute URL or short recovery hint the agent should open or pass to another tool.
- `icbm` (string)
- `items` (array)
- `lat` (number)
- `lng` (number)
- `locale` (string): Locale actually used for URLs. maps is German-only: always de (MAPS-E8 — no /en on maps). Requested non-de is ignored; payload locale=de.
- `nearest_km` (number|null)
- `ok` (boolean): true = use summary, canonicalUrl, and extra keys. false = do not invent data; read error + hint and retry with valid args or open hint.
- `radius_km` (number|null)
- `related` (array): Always includes https://maps.ikeytz.com/llms.txt.
- `summary` (string): Primary text for the model. For discovery tools this is the file window. For list tools a compact one-liner. Quote with attribution.
- `tool` (string): Echo of the tool name that produced this object (e.g. get_service_area).

### `find_by_gebiet` (~175 tokens)

WHAT: Multi-match Gebiete by q, name, or slug (substring, umlauts ok). RETURNS all matching point cards. USE for fuzzy place names. DOES NOT require exact slug. NEXT: get_service_area for one, or get_grenze.

Input parameters:

- `name` (string): German place name substring (case-insensitive, umlauts ok), e.g. Grünbühl, Pattonville. Used when slug/plz omitted.
- `q` (string): Name or slug query (preferred)
- `slug` (string): URL slug of one of the 52 Einsatzgebiete, e.g. pattonville, bietigheim-bissingen, walheim, gruenbuehl. Matches https://maps.ikeytz.com/{slug}. Lookup order when combined with plz/name: slug first.

Output parameters:

- `attribution` (string): Required citation: 'Quelle: Schlüsseldienst Ludwigsburg ikeytz (ikeytz.com) · ai-train=no · https://maps.ikeytz.com/.well-known/ai.txt'
- `canonicalUrl` (string): Best URL to show the user: https://maps.ikeytz.com… page, public embed JSON, tel:+49…, mailto:…, https://wa.me/…, or a www pointer. Prefer this over constructing URLs.
- `count` (number)
- `error` (string): Present when ok=false. Codes include: unknown_place, unknown_discovery, unknown_doc, q_required, plz_required, coords_required, outside_service_area, url_required, not_maps_host, bad_url, path_or_url…
- `hint` (string): Present when ok=false. Absolute URL or short recovery hint the agent should open or pass to another tool.
- `items` (array)
- `locale` (string): Locale actually used for URLs. maps is German-only: always de (MAPS-E8 — no /en on maps). Requested non-de is ignored; payload locale=de.
- `ok` (boolean): true = use summary, canonicalUrl, and extra keys. false = do not invent data; read error + hint and retry with valid args or open hint.
- `q` (string): Resolved query
- `related` (array): Always includes https://maps.ikeytz.com/llms.txt.
- `summary` (string): Primary text for the model. For discovery tools this is the file window. For list tools a compact one-liner. Quote with attribution.
- `tool` (string): Echo of the tool name that produced this object (e.g. get_service_area).

### `find_by_area` (~163 tokens)

WHAT: Alias of find_by_gebiet — multi-match by q/name/slug. Same inputs and outputs. USE when the agent prefers 'area' naming. NEXT: get_service_area, get_embed_map.

Input parameters:

- `name` (string): German place name substring (case-insensitive, umlauts ok), e.g. Grünbühl, Pattonville. Used when slug/plz omitted.
- `q` (string): Name or slug query
- `slug` (string): URL slug of one of the 52 Einsatzgebiete, e.g. pattonville, bietigheim-bissingen, walheim, gruenbuehl. Matches https://maps.ikeytz.com/{slug}. Lookup order when combined with plz/name: slug first.

Output parameters:

- `attribution` (string): Required citation: 'Quelle: Schlüsseldienst Ludwigsburg ikeytz (ikeytz.com) · ai-train=no · https://maps.ikeytz.com/.well-known/ai.txt'
- `canonicalUrl` (string): Best URL to show the user: https://maps.ikeytz.com… page, public embed JSON, tel:+49…, mailto:…, https://wa.me/…, or a www pointer. Prefer this over constructing URLs.
- `count` (number)
- `error` (string): Present when ok=false. Codes include: unknown_place, unknown_discovery, unknown_doc, q_required, plz_required, coords_required, outside_service_area, url_required, not_maps_host, bad_url, path_or_url…
- `hint` (string): Present when ok=false. Absolute URL or short recovery hint the agent should open or pass to another tool.
- `items` (array)
- `locale` (string): Locale actually used for URLs. maps is German-only: always de (MAPS-E8 — no /en on maps). Requested non-de is ignored; payload locale=de.
- `ok` (boolean): true = use summary, canonicalUrl, and extra keys. false = do not invent data; read error + hint and retry with valid args or open hint.
- `q` (string)
- `related` (array): Always includes https://maps.ikeytz.com/llms.txt.
- `summary` (string): Primary text for the model. For discovery tools this is the file window. For list tools a compact one-liner. Quote with attribution.
- `tool` (string): Echo of the tool name that produced this object (e.g. get_service_area).

### `list_slugs` (~47 tokens)

WHAT: All 52 maps slugs as a flat string array. Call with {}. USE for validation or autocomplete. NEXT: get_service_area(slug), get_embed_map(slug).

Output parameters:

- `attribution` (string): Required citation: 'Quelle: Schlüsseldienst Ludwigsburg ikeytz (ikeytz.com) · ai-train=no · https://maps.ikeytz.com/.well-known/ai.txt'
- `canonicalUrl` (string): Best URL to show the user: https://maps.ikeytz.com… page, public embed JSON, tel:+49…, mailto:…, https://wa.me/…, or a www pointer. Prefer this over constructing URLs.
- `count` (number): 52
- `error` (string): Present when ok=false. Codes include: unknown_place, unknown_discovery, unknown_doc, q_required, plz_required, coords_required, outside_service_area, url_required, not_maps_host, bad_url, path_or_url…
- `hint` (string): Present when ok=false. Absolute URL or short recovery hint the agent should open or pass to another tool.
- `items` (array): Slug strings
- `locale` (string): Locale actually used for URLs. maps is German-only: always de (MAPS-E8 — no /en on maps). Requested non-de is ignored; payload locale=de.
- `ok` (boolean): true = use summary, canonicalUrl, and extra keys. false = do not invent data; read error + hint and retry with valid args or open hint.
- `related` (array): Always includes https://maps.ikeytz.com/llms.txt.
- `summary` (string): Primary text for the model. For discovery tools this is the file window. For list tools a compact one-liner. Quote with attribution.
- `tool` (string): Echo of the tool name that produced this object (e.g. get_service_area).

### `list_plz` (~61 tokens)

WHAT: PLZ → slugs map for the 52 Gebiete (shared postcodes visible). Call with {}. RETURNS items[{plz,count,slugs}]. USE to see multi-Gebiet PLZ. NEXT: find_by_plz.

Output parameters:

- `attribution` (string): Required citation: 'Quelle: Schlüsseldienst Ludwigsburg ikeytz (ikeytz.com) · ai-train=no · https://maps.ikeytz.com/.well-known/ai.txt'
- `canonicalUrl` (string): Best URL to show the user: https://maps.ikeytz.com… page, public embed JSON, tel:+49…, mailto:…, https://wa.me/…, or a www pointer. Prefer this over constructing URLs.
- `count` (number): Distinct PLZ count
- `error` (string): Present when ok=false. Codes include: unknown_place, unknown_discovery, unknown_doc, q_required, plz_required, coords_required, outside_service_area, url_required, not_maps_host, bad_url, path_or_url…
- `hint` (string): Present when ok=false. Absolute URL or short recovery hint the agent should open or pass to another tool.
- `items` (array): PLZ groups
- `locale` (string): Locale actually used for URLs. maps is German-only: always de (MAPS-E8 — no /en on maps). Requested non-de is ignored; payload locale=de.
- `ok` (boolean): true = use summary, canonicalUrl, and extra keys. false = do not invent data; read error + hint and retry with valid args or open hint.
- `related` (array): Always includes https://maps.ikeytz.com/llms.txt.
- `summary` (string): Primary text for the model. For discovery tools this is the file window. For list tools a compact one-liner. Quote with attribution.
- `tool` (string): Echo of the tool name that produced this object (e.g. get_service_area).

### `get_hub` (~67 tokens)

WHAT: maps hub card https://maps.ikeytz.com/ — title/h1 + 52 Gebiet links (not a single Visitenkarte). Call with {}. USE as the maps landing overview. DOES NOT include www prices. NEXT: get_service_area, list_service_areas.

Output parameters:

- `attribution` (string): Required citation: 'Quelle: Schlüsseldienst Ludwigsburg ikeytz (ikeytz.com) · ai-train=no · https://maps.ikeytz.com/.well-known/ai.txt'
- `canonicalUrl` (string): Best URL to show the user: https://maps.ikeytz.com… page, public embed JSON, tel:+49…, mailto:…, https://wa.me/…, or a www pointer. Prefer this over constructing URLs.
- `count` (number): 52
- `error` (string): Present when ok=false. Codes include: unknown_place, unknown_discovery, unknown_doc, q_required, plz_required, coords_required, outside_service_area, url_required, not_maps_host, bad_url, path_or_url…
- `h1` (string): Hub H1
- `hint` (string): Present when ok=false. Absolute URL or short recovery hint the agent should open or pass to another tool.
- `items` (array): slug/name/embed_map rows
- `locale` (string): Locale actually used for URLs. maps is German-only: always de (MAPS-E8 — no /en on maps). Requested non-de is ignored; payload locale=de.
- `ok` (boolean): true = use summary, canonicalUrl, and extra keys. false = do not invent data; read error + hint and retry with valid args or open hint.
- `related` (array): Always includes https://maps.ikeytz.com/llms.txt.
- `summary` (string): Primary text for the model. For discovery tools this is the file window. For list tools a compact one-liner. Quote with attribution.
- `title` (string): Hub title
- `tool` (string): Echo of the tool name that produced this object (e.g. get_service_area).

### `get_embed_map` (~218 tokens)

WHAT: Canonical map page URL https://maps.ikeytz.com/{slug} for iframe/src and Visitenkarte. Lookup slug|plz|name. RETURNS area card + canonicalUrl. USE for embedding or linking a Gebiet map. NEXT: get_geo_api, get_grenze, get_lage.

Input parameters:

- `name` (string): German place name substring (case-insensitive, umlauts ok), e.g. Grünbühl, Pattonville. Used when slug/plz omitted.
- `plz` (string): German postcode (PLZ). Several Gebiete can share one PLZ (e.g. 71638). For single lookup first match wins; use find_by_plz for all matches.
- `slug` (string): URL slug of one of the 52 Einsatzgebiete, e.g. pattonville, bietigheim-bissingen, walheim, gruenbuehl. Matches https://maps.ikeytz.com/{slug}. Lookup order when combined with plz/name: slug first.

Output parameters:

- `attribution` (string): Required citation: 'Quelle: Schlüsseldienst Ludwigsburg ikeytz (ikeytz.com) · ai-train=no · https://maps.ikeytz.com/.well-known/ai.txt'
- `canonicalUrl` (string): Best URL to show the user: https://maps.ikeytz.com… page, public embed JSON, tel:+49…, mailto:…, https://wa.me/…, or a www pointer. Prefer this over constructing URLs.
- `embed_map` (string)
- `error` (string): Present when ok=false. Codes include: unknown_place, unknown_discovery, unknown_doc, q_required, plz_required, coords_required, outside_service_area, url_required, not_maps_host, bad_url, path_or_url…
- `geo_api` (string)
- `hint` (string): Present when ok=false. Absolute URL or short recovery hint the agent should open or pass to another tool.
- `lat` (number)
- `lng` (number)
- `locale` (string): Locale actually used for URLs. maps is German-only: always de (MAPS-E8 — no /en on maps). Requested non-de is ignored; payload locale=de.
- `name` (string)
- `ok` (boolean): true = use summary, canonicalUrl, and extra keys. false = do not invent data; read error + hint and retry with valid args or open hint.
- `plz` (string)
- `related` (array): Always includes https://maps.ikeytz.com/llms.txt.
- `slug` (string)
- `summary` (string): Primary text for the model. For discovery tools this is the file window. For list tools a compact one-liner. Quote with attribution.
- `tool` (string): Echo of the tool name that produced this object (e.g. get_service_area).

### `get_geo_api` (~231 tokens)

WHAT: Public embed JSON URL https://maps.ikeytz.com/api/v1/embed/ort/{slug} (point + Grenze on that endpoint). Lookup slug|plz|name. RETURNS URL pointer + area card; note that the MCP payload itself is not the polygon. USE to fetch/open the public JSON. NEXT: get_grenze for GeoJSON polygon inside MCP.

Input parameters:

- `name` (string): German place name substring (case-insensitive, umlauts ok), e.g. Grünbühl, Pattonville. Used when slug/plz omitted.
- `plz` (string): German postcode (PLZ). Several Gebiete can share one PLZ (e.g. 71638). For single lookup first match wins; use find_by_plz for all matches.
- `slug` (string): URL slug of one of the 52 Einsatzgebiete, e.g. pattonville, bietigheim-bissingen, walheim, gruenbuehl. Matches https://maps.ikeytz.com/{slug}. Lookup order when combined with plz/name: slug first.

Output parameters:

- `attribution` (string): Required citation: 'Quelle: Schlüsseldienst Ludwigsburg ikeytz (ikeytz.com) · ai-train=no · https://maps.ikeytz.com/.well-known/ai.txt'
- `canonicalUrl` (string): Best URL to show the user: https://maps.ikeytz.com… page, public embed JSON, tel:+49…, mailto:…, https://wa.me/…, or a www pointer. Prefer this over constructing URLs.
- `embed_map` (string)
- `error` (string): Present when ok=false. Codes include: unknown_place, unknown_discovery, unknown_doc, q_required, plz_required, coords_required, outside_service_area, url_required, not_maps_host, bad_url, path_or_url…
- `geo_api` (string)
- `hint` (string): Present when ok=false. Absolute URL or short recovery hint the agent should open or pass to another tool.
- `lat` (number)
- `lng` (number)
- `locale` (string): Locale actually used for URLs. maps is German-only: always de (MAPS-E8 — no /en on maps). Requested non-de is ignored; payload locale=de.
- `name` (string)
- `note` (string): Public JSON pointer; use get_grenze for polygon in MCP
- `ok` (boolean): true = use summary, canonicalUrl, and extra keys. false = do not invent data; read error + hint and retry with valid args or open hint.
- `plz` (string)
- `related` (array): Always includes https://maps.ikeytz.com/llms.txt.
- `slug` (string)
- `summary` (string): Primary text for the model. For discovery tools this is the file window. For list tools a compact one-liner. Quote with attribution.
- `tool` (string): Echo of the tool name that produced this object (e.g. get_service_area).

### `get_grenze` (~234 tokens)

WHAT: OSM Gebietspolygon for one Einsatzgebiet as GeoJSON FeatureCollection inside the MCP result. Lookup slug|plz|name. RETURNS hasPolygon, polygon, point, osmRelationId/osmWayId, via. USE when the agent needs the boundary geometry. DOES NOT replace get_geo_api (that remains the URL pointer). NEXT: get_lage, get_embed_map.

Input parameters:

- `name` (string): German place name substring (case-insensitive, umlauts ok), e.g. Grünbühl, Pattonville. Used when slug/plz omitted.
- `plz` (string): German postcode (PLZ). Several Gebiete can share one PLZ (e.g. 71638). For single lookup first match wins; use find_by_plz for all matches.
- `slug` (string): URL slug of one of the 52 Einsatzgebiete, e.g. pattonville, bietigheim-bissingen, walheim, gruenbuehl. Matches https://maps.ikeytz.com/{slug}. Lookup order when combined with plz/name: slug first.

Output parameters:

- `attribution` (string): Required citation: 'Quelle: Schlüsseldienst Ludwigsburg ikeytz (ikeytz.com) · ai-train=no · https://maps.ikeytz.com/.well-known/ai.txt'
- `canonicalUrl` (string): Best URL to show the user: https://maps.ikeytz.com… page, public embed JSON, tel:+49…, mailto:…, https://wa.me/…, or a www pointer. Prefer this over constructing URLs.
- `error` (string): Present when ok=false. Codes include: unknown_place, unknown_discovery, unknown_doc, q_required, plz_required, coords_required, outside_service_area, url_required, not_maps_host, bad_url, path_or_url…
- `geo_api` (string)
- `hasPolygon` (boolean): true if polygon.features length > 0
- `hint` (string): Present when ok=false. Absolute URL or short recovery hint the agent should open or pass to another tool.
- `lat` (number)
- `lng` (number)
- `locale` (string): Locale actually used for URLs. maps is German-only: always de (MAPS-E8 — no /en on maps). Requested non-de is ignored; payload locale=de.
- `name` (string)
- `ok` (boolean): true = use summary, canonicalUrl, and extra keys. false = do not invent data; read error + hint and retry with valid args or open hint.
- `osmRelationId` (number|null): OSM relation id if any
- `osmWayId` (number|null): OSM way id if any
- `plz` (string)
- `point` (object|null): Point feature or null
- `polygon` (object): GeoJSON FeatureCollection (may be empty)
- `related` (array): Always includes https://maps.ikeytz.com/llms.txt.
- `slug` (string)
- `summary` (string): Primary text for the model. For discovery tools this is the file window. For list tools a compact one-liner. Quote with attribution.
- `tool` (string): Echo of the tool name that produced this object (e.g. get_service_area).
- `via` (string|null): Fetch path hint

### `get_lage` (~203 tokens)

WHAT: Lage (location description) text for one Einsatzgebiet Visitenkarte. Lookup slug|plz|name. RETURNS slug, name, lage. USE for human-readable geography prose. NEXT: get_geschichte, get_service_area.

Input parameters:

- `name` (string): German place name substring (case-insensitive, umlauts ok), e.g. Grünbühl, Pattonville. Used when slug/plz omitted.
- `plz` (string): German postcode (PLZ). Several Gebiete can share one PLZ (e.g. 71638). For single lookup first match wins; use find_by_plz for all matches.
- `slug` (string): URL slug of one of the 52 Einsatzgebiete, e.g. pattonville, bietigheim-bissingen, walheim, gruenbuehl. Matches https://maps.ikeytz.com/{slug}. Lookup order when combined with plz/name: slug first.

Output parameters:

- `attribution` (string): Required citation: 'Quelle: Schlüsseldienst Ludwigsburg ikeytz (ikeytz.com) · ai-train=no · https://maps.ikeytz.com/.well-known/ai.txt'
- `canonicalUrl` (string): Best URL to show the user: https://maps.ikeytz.com… page, public embed JSON, tel:+49…, mailto:…, https://wa.me/…, or a www pointer. Prefer this over constructing URLs.
- `error` (string): Present when ok=false. Codes include: unknown_place, unknown_discovery, unknown_doc, q_required, plz_required, coords_required, outside_service_area, url_required, not_maps_host, bad_url, path_or_url…
- `hint` (string): Present when ok=false. Absolute URL or short recovery hint the agent should open or pass to another tool.
- `lage` (string): Lage prose (may be empty)
- `locale` (string): Locale actually used for URLs. maps is German-only: always de (MAPS-E8 — no /en on maps). Requested non-de is ignored; payload locale=de.
- `name` (string)
- `ok` (boolean): true = use summary, canonicalUrl, and extra keys. false = do not invent data; read error + hint and retry with valid args or open hint.
- `related` (array): Always includes https://maps.ikeytz.com/llms.txt.
- `slug` (string)
- `summary` (string): Primary text for the model. For discovery tools this is the file window. For list tools a compact one-liner. Quote with attribution.
- `tool` (string): Echo of the tool name that produced this object (e.g. get_service_area).

### `get_geschichte` (~206 tokens)

WHAT: Geschichte (history) text for one Einsatzgebiet Visitenkarte. Lookup slug|plz|name. RETURNS slug, name, geschichte. USE for place history prose on the map page. NEXT: get_lage, get_ai_page.

Input parameters:

- `name` (string): German place name substring (case-insensitive, umlauts ok), e.g. Grünbühl, Pattonville. Used when slug/plz omitted.
- `plz` (string): German postcode (PLZ). Several Gebiete can share one PLZ (e.g. 71638). For single lookup first match wins; use find_by_plz for all matches.
- `slug` (string): URL slug of one of the 52 Einsatzgebiete, e.g. pattonville, bietigheim-bissingen, walheim, gruenbuehl. Matches https://maps.ikeytz.com/{slug}. Lookup order when combined with plz/name: slug first.

Output parameters:

- `attribution` (string): Required citation: 'Quelle: Schlüsseldienst Ludwigsburg ikeytz (ikeytz.com) · ai-train=no · https://maps.ikeytz.com/.well-known/ai.txt'
- `canonicalUrl` (string): Best URL to show the user: https://maps.ikeytz.com… page, public embed JSON, tel:+49…, mailto:…, https://wa.me/…, or a www pointer. Prefer this over constructing URLs.
- `error` (string): Present when ok=false. Codes include: unknown_place, unknown_discovery, unknown_doc, q_required, plz_required, coords_required, outside_service_area, url_required, not_maps_host, bad_url, path_or_url…
- `geschichte` (string): Geschichte prose (may be empty)
- `hint` (string): Present when ok=false. Absolute URL or short recovery hint the agent should open or pass to another tool.
- `locale` (string): Locale actually used for URLs. maps is German-only: always de (MAPS-E8 — no /en on maps). Requested non-de is ignored; payload locale=de.
- `name` (string)
- `ok` (boolean): true = use summary, canonicalUrl, and extra keys. false = do not invent data; read error + hint and retry with valid args or open hint.
- `related` (array): Always includes https://maps.ikeytz.com/llms.txt.
- `slug` (string)
- `summary` (string): Primary text for the model. For discovery tools this is the file window. For list tools a compact one-liner. Quote with attribution.
- `tool` (string): Echo of the tool name that produced this object (e.g. get_service_area).

### `distance_to_office` (~268 tokens)

WHAT: Air distance (km) from a Gebiet (slug|plz|name) or lat/lng/icbm to the Gewerbesitz. walkIn=false. RETURNS from, office, distance_km. USE for rough proximity — not driving time. DOES NOT route via OSRM. NEXT: get_geo_office, find_by_geo.

Input parameters:

- `icbm` (string): Optional 'lat, lng' instead of place lookup
- `lat` (number): Optional query latitude instead of place lookup
- `lng` (number): Optional query longitude
- `name` (string): German place name substring (case-insensitive, umlauts ok), e.g. Grünbühl, Pattonville. Used when slug/plz omitted.
- `plz` (string): German postcode (PLZ). Several Gebiete can share one PLZ (e.g. 71638). For single lookup first match wins; use find_by_plz for all matches.
- `slug` (string): URL slug of one of the 52 Einsatzgebiete, e.g. pattonville, bietigheim-bissingen, walheim, gruenbuehl. Matches https://maps.ikeytz.com/{slug}. Lookup order when combined with plz/name: slug first.

Output parameters:

- `attribution` (string): Required citation: 'Quelle: Schlüsseldienst Ludwigsburg ikeytz (ikeytz.com) · ai-train=no · https://maps.ikeytz.com/.well-known/ai.txt'
- `canonicalUrl` (string): Best URL to show the user: https://maps.ikeytz.com… page, public embed JSON, tel:+49…, mailto:…, https://wa.me/…, or a www pointer. Prefer this over constructing URLs.
- `distance_km` (number): Air distance kilometres
- `error` (string): Present when ok=false. Codes include: unknown_place, unknown_discovery, unknown_doc, q_required, plz_required, coords_required, outside_service_area, url_required, not_maps_host, bad_url, path_or_url…
- `from` (object): Origin {lat,lng}
- `hint` (string): Present when ok=false. Absolute URL or short recovery hint the agent should open or pass to another tool.
- `locale` (string): Locale actually used for URLs. maps is German-only: always de (MAPS-E8 — no /en on maps). Requested non-de is ignored; payload locale=de.
- `office` (object): Office {lat,lng,icbm}
- `ok` (boolean): true = use summary, canonicalUrl, and extra keys. false = do not invent data; read error + hint and retry with valid args or open hint.
- `related` (array): Always includes https://maps.ikeytz.com/llms.txt.
- `slug` (string|null): Resolved slug if from place lookup
- `summary` (string): Primary text for the model. For discovery tools this is the file window. For list tools a compact one-liner. Quote with attribution.
- `tool` (string): Echo of the tool name that produced this object (e.g. get_service_area).
- `walkIn` (boolean): Always false

### `resolve_maps_url` (~109 tokens)

WHAT: Resolve a maps.ikeytz.com url/path/q to hub or Gebiet. RETURNS kind=hub|ort + area fields when ort. USE to normalize pasted maps links. DOES NOT accept www hosts (not_maps_host). NEXT: get_service_area, get_embed_map.

Input parameters:

- `path` (string): Path e.g. /pattonville
- `q` (string): URL or path alias
- `url` (string): Full https://maps.ikeytz.com/… URL

Output parameters:

- `attribution` (string): Required citation: 'Quelle: Schlüsseldienst Ludwigsburg ikeytz (ikeytz.com) · ai-train=no · https://maps.ikeytz.com/.well-known/ai.txt'
- `canonicalUrl` (string): Best URL to show the user: https://maps.ikeytz.com… page, public embed JSON, tel:+49…, mailto:…, https://wa.me/…, or a www pointer. Prefer this over constructing URLs.
- `embed_map` (string)
- `error` (string): Present when ok=false. Codes include: unknown_place, unknown_discovery, unknown_doc, q_required, plz_required, coords_required, outside_service_area, url_required, not_maps_host, bad_url, path_or_url…
- `hint` (string): Present when ok=false. Absolute URL or short recovery hint the agent should open or pass to another tool.
- `kind` (string): Resolved kind
- `lat` (number)
- `lng` (number)
- `locale` (string): Locale actually used for URLs. maps is German-only: always de (MAPS-E8 — no /en on maps). Requested non-de is ignored; payload locale=de.
- `name` (string): Place name when ort
- `ok` (boolean): true = use summary, canonicalUrl, and extra keys. false = do not invent data; read error + hint and retry with valid args or open hint.
- `plz` (string)
- `related` (array): Always includes https://maps.ikeytz.com/llms.txt.
- `slug` (string|null): null for hub
- `summary` (string): Primary text for the model. For discovery tools this is the file window. For list tools a compact one-liner. Quote with attribution.
- `tool` (string): Echo of the tool name that produced this object (e.g. get_service_area).

### `find_by_google_maps` (~254 tokens)

WHAT: Paste Google Maps / ICBM coordinates (q or icbm or lat/lng) → nearest ikeytz Gebiete (same ranking as find_by_geo). (0,0) → outside_service_area. USE when the user pastes a Maps pin. NEXT: get_service_area, get_embed_map.

Input parameters:

- `icbm` (string): ICBM or paste 'lat, lng' (comma-separated). Alternative to lat+lng.
- `lat` (number): WGS84 latitude. Required with lng unless icbm is set. (0,0) → outside_service_area.
- `limit` (integer): Maximum items or lines to return after offset. Omit = all remaining in the window (subject to tool-specific clamps). For geo near-search default is often 5 without radius_km, up to 52 with radius.
- `lng` (number): WGS84 longitude. Required with lat unless icbm is set.
- `q` (string): Paste string containing 'lat, lng'
- `radius_km` (number): Optional air-radius filter in km. Omit = return nearest N (limit). Far points / (0,0) → outside_service_area.

Output parameters:

- `attribution` (string): Required citation: 'Quelle: Schlüsseldienst Ludwigsburg ikeytz (ikeytz.com) · ai-train=no · https://maps.ikeytz.com/.well-known/ai.txt'
- `canonicalUrl` (string): Best URL to show the user: https://maps.ikeytz.com… page, public embed JSON, tel:+49…, mailto:…, https://wa.me/…, or a www pointer. Prefer this over constructing URLs.
- `count` (number)
- `error` (string): Present when ok=false. Codes include: unknown_place, unknown_discovery, unknown_doc, q_required, plz_required, coords_required, outside_service_area, url_required, not_maps_host, bad_url, path_or_url…
- `hint` (string): Present when ok=false. Absolute URL or short recovery hint the agent should open or pass to another tool.
- `icbm` (string)
- `items` (array)
- `lat` (number)
- `lng` (number)
- `locale` (string): Locale actually used for URLs. maps is German-only: always de (MAPS-E8 — no /en on maps). Requested non-de is ignored; payload locale=de.
- `nearest_km` (number|null)
- `ok` (boolean): true = use summary, canonicalUrl, and extra keys. false = do not invent data; read error + hint and retry with valid args or open hint.
- `radius_km` (number|null)
- `related` (array): Always includes https://maps.ikeytz.com/llms.txt.
- `summary` (string): Primary text for the model. For discovery tools this is the file window. For list tools a compact one-liner. Quote with attribution.
- `tool` (string): Echo of the tool name that produced this object (e.g. get_service_area).

### `get_legal` (~311 tokens)

WHAT: Legal doc router. doc enum: urheberrecht|copyright|impressum (maps text via discovery) or agb|nutzungsbedingungen|datenschutz|widerruf (www URL pointer only). Optional offset/limit for maps text. USE for citations. DOES NOT serve www legal HTML body on maps. NEXT: get_urheberrecht / get_impressum shortcuts; www for AGB body.

Input parameters:

- `doc` (string, required): Required. maps corpus: urheberrecht|copyright|impressum. www links only: agb|nutzungsbedingungen|datenschutz|widerruf.
- `limit` (integer): Maximum items or lines to return after offset. Omit = all remaining in the window (subject to tool-specific clamps). For geo near-search default is often 5 without radius_km, up to 52 with radius.
- `locale` (string): maps is German-only (de). Omit or pass de. Other values are ignored; URLs stay https://maps.ikeytz.com/… with no locale prefix. Not a www multi-locale switch — use @ikeytz/mcp list_locales on www for…
- `offset` (integer): 0-based index into a list or discovery file lines (split on \n). 0 = first. Omit = 0. Combine with limit to page. Use nextOffset / offset+limit from a previous result when present.

Output parameters:

- `attribution` (string): Required citation: 'Quelle: Schlüsseldienst Ludwigsburg ikeytz (ikeytz.com) · ai-train=no · https://maps.ikeytz.com/.well-known/ai.txt'
- `body` (string): maps text window when applicable
- `canonicalUrl` (string): Best URL to show the user: https://maps.ikeytz.com… page, public embed JSON, tel:+49…, mailto:…, https://wa.me/…, or a www pointer. Prefer this over constructing URLs.
- `doc` (string): Resolved doc id
- `error` (string): Present when ok=false. Codes include: unknown_place, unknown_discovery, unknown_doc, q_required, plz_required, coords_required, outside_service_area, url_required, not_maps_host, bad_url, path_or_url…
- `hint` (string): Present when ok=false. Absolute URL or short recovery hint the agent should open or pass to another tool.
- `html` (string): www HTML URL when applicable
- `locale` (string): Locale actually used for URLs. maps is German-only: always de (MAPS-E8 — no /en on maps). Requested non-de is ignored; payload locale=de.
- `note` (string): Host split note
- `ok` (boolean): true = use summary, canonicalUrl, and extra keys. false = do not invent data; read error + hint and retry with valid args or open hint.
- `related` (array): Always includes https://maps.ikeytz.com/llms.txt.
- `summary` (string): Primary text for the model. For discovery tools this is the file window. For list tools a compact one-liner. Quote with attribution.
- `tool` (string): Echo of the tool name that produced this object (e.g. get_service_area).
- `which` (string): Discovery id for maps text docs

### `get_urheberrecht` (~181 tokens)

WHAT: Karten-Urheberrecht text from maps /llms-urheberrecht.txt (HTML page remains www /urheberrecht). Optional offset/limit. USE when citing map copyright (Mahmud Reza Kashani · ikeytz). NEXT: get_copyright, get_legal(doc=urheberrecht).

Input parameters:

- `limit` (integer): Maximum items or lines to return after offset. Omit = all remaining in the window (subject to tool-specific clamps). For geo near-search default is often 5 without radius_km, up to 52 with radius.
- `offset` (integer): 0-based index into a list or discovery file lines (split on \n). 0 = first. Omit = 0. Combine with limit to page. Use nextOffset / offset+limit from a previous result when present.

Output parameters:

- `attribution` (string): Required citation: 'Quelle: Schlüsseldienst Ludwigsburg ikeytz (ikeytz.com) · ai-train=no · https://maps.ikeytz.com/.well-known/ai.txt'
- `body` (string)
- `canonicalUrl` (string): Best URL to show the user: https://maps.ikeytz.com… page, public embed JSON, tel:+49…, mailto:…, https://wa.me/…, or a www pointer. Prefer this over constructing URLs.
- `doc` (string)
- `error` (string): Present when ok=false. Codes include: unknown_place, unknown_discovery, unknown_doc, q_required, plz_required, coords_required, outside_service_area, url_required, not_maps_host, bad_url, path_or_url…
- `hint` (string): Present when ok=false. Absolute URL or short recovery hint the agent should open or pass to another tool.
- `html` (string): www /urheberrecht
- `locale` (string): Locale actually used for URLs. maps is German-only: always de (MAPS-E8 — no /en on maps). Requested non-de is ignored; payload locale=de.
- `ok` (boolean): true = use summary, canonicalUrl, and extra keys. false = do not invent data; read error + hint and retry with valid args or open hint.
- `related` (array): Always includes https://maps.ikeytz.com/llms.txt.
- `summary` (string): Primary text for the model. For discovery tools this is the file window. For list tools a compact one-liner. Quote with attribution.
- `tool` (string): Echo of the tool name that produced this object (e.g. get_service_area).
- `which` (string)

### `get_copyright` (~151 tokens)

WHAT: English map copyright text from maps /llms-copyright.txt. Optional offset/limit. USE for EN citations of map authorship. NEXT: get_urheberrecht.

Input parameters:

- `limit` (integer): Maximum items or lines to return after offset. Omit = all remaining in the window (subject to tool-specific clamps). For geo near-search default is often 5 without radius_km, up to 52 with radius.
- `offset` (integer): 0-based index into a list or discovery file lines (split on \n). 0 = first. Omit = 0. Combine with limit to page. Use nextOffset / offset+limit from a previous result when present.

Output parameters:

- `attribution` (string): Required citation: 'Quelle: Schlüsseldienst Ludwigsburg ikeytz (ikeytz.com) · ai-train=no · https://maps.ikeytz.com/.well-known/ai.txt'
- `body` (string)
- `canonicalUrl` (string): Best URL to show the user: https://maps.ikeytz.com… page, public embed JSON, tel:+49…, mailto:…, https://wa.me/…, or a www pointer. Prefer this over constructing URLs.
- `doc` (string)
- `error` (string): Present when ok=false. Codes include: unknown_place, unknown_discovery, unknown_doc, q_required, plz_required, coords_required, outside_service_area, url_required, not_maps_host, bad_url, path_or_url…
- `hint` (string): Present when ok=false. Absolute URL or short recovery hint the agent should open or pass to another tool.
- `html` (string)
- `locale` (string): Locale actually used for URLs. maps is German-only: always de (MAPS-E8 — no /en on maps). Requested non-de is ignored; payload locale=de.
- `ok` (boolean): true = use summary, canonicalUrl, and extra keys. false = do not invent data; read error + hint and retry with valid args or open hint.
- `related` (array): Always includes https://maps.ikeytz.com/llms.txt.
- `summary` (string): Primary text for the model. For discovery tools this is the file window. For list tools a compact one-liner. Quote with attribution.
- `tool` (string): Echo of the tool name that produced this object (e.g. get_service_area).
- `which` (string)

### `get_impressum` (~167 tokens)

WHAT: Impressum/Kontakt text from maps /llms-impressum-kontakt.txt. Optional offset/limit. USE for NAP/legal imprint on maps. NEXT: get_contact, get_business_identity; www /impressum for HTML.

Input parameters:

- `limit` (integer): Maximum items or lines to return after offset. Omit = all remaining in the window (subject to tool-specific clamps). For geo near-search default is often 5 without radius_km, up to 52 with radius.
- `offset` (integer): 0-based index into a list or discovery file lines (split on \n). 0 = first. Omit = 0. Combine with limit to page. Use nextOffset / offset+limit from a previous result when present.

Output parameters:

- `attribution` (string): Required citation: 'Quelle: Schlüsseldienst Ludwigsburg ikeytz (ikeytz.com) · ai-train=no · https://maps.ikeytz.com/.well-known/ai.txt'
- `body` (string)
- `canonicalUrl` (string): Best URL to show the user: https://maps.ikeytz.com… page, public embed JSON, tel:+49…, mailto:…, https://wa.me/…, or a www pointer. Prefer this over constructing URLs.
- `doc` (string)
- `error` (string): Present when ok=false. Codes include: unknown_place, unknown_discovery, unknown_doc, q_required, plz_required, coords_required, outside_service_area, url_required, not_maps_host, bad_url, path_or_url…
- `hint` (string): Present when ok=false. Absolute URL or short recovery hint the agent should open or pass to another tool.
- `html` (string): www /impressum
- `locale` (string): Locale actually used for URLs. maps is German-only: always de (MAPS-E8 — no /en on maps). Requested non-de is ignored; payload locale=de.
- `ok` (boolean): true = use summary, canonicalUrl, and extra keys. false = do not invent data; read error + hint and retry with valid args or open hint.
- `related` (array): Always includes https://maps.ikeytz.com/llms.txt.
- `summary` (string): Primary text for the model. For discovery tools this is the file window. For list tools a compact one-liner. Quote with attribution.
- `tool` (string): Echo of the tool name that produced this object (e.g. get_service_area).
- `which` (string)

### `get_agb` (~69 tokens)

WHAT: www pointer only — AGB live at www.ikeytz.com/agb. maps returns html + note, not the corpus. USE to open/hand off to www MCP. DOES NOT return AGB body text. NEXT: @ikeytz/mcp get_legal(doc=agb).

Output parameters:

- `attribution` (string): Required citation: 'Quelle: Schlüsseldienst Ludwigsburg ikeytz (ikeytz.com) · ai-train=no · https://maps.ikeytz.com/.well-known/ai.txt'
- `canonicalUrl` (string): Best URL to show the user: https://maps.ikeytz.com… page, public embed JSON, tel:+49…, mailto:…, https://wa.me/…, or a www pointer. Prefer this over constructing URLs.
- `error` (string): Present when ok=false. Codes include: unknown_place, unknown_discovery, unknown_doc, q_required, plz_required, coords_required, outside_service_area, url_required, not_maps_host, bad_url, path_or_url…
- `hint` (string): Present when ok=false. Absolute URL or short recovery hint the agent should open or pass to another tool.
- `html` (string): Absolute www.ikeytz.com URL — open there or call @ikeytz/mcp
- `locale` (string): Locale actually used for URLs. maps is German-only: always de (MAPS-E8 — no /en on maps). Requested non-de is ignored; payload locale=de.
- `note` (string): maps only points; Volltext/Preise/FAQ live on www
- `npm` (string): www CLI package @ikeytz/mcp
- `ok` (boolean): true = use summary, canonicalUrl, and extra keys. false = do not invent data; read error + hint and retry with valid args or open hint.
- `related` (array): Always includes https://maps.ikeytz.com/llms.txt.
- `requested_locale` (string): Locale the caller asked for; maps still returns locale=de
- `summary` (string): Primary text for the model. For discovery tools this is the file window. For list tools a compact one-liner. Quote with attribution.
- `tool` (string): Echo of the tool name that produced this object (e.g. get_service_area).
- `www_mcp` (string): https://www.ikeytz.com/mcp — sister machine for prices/FAQ/corpus
- `www_tool` (string): Same tool name on www MCP that holds the real payload

### `get_nutzungsbedingungen` (~46 tokens)

WHAT: www pointer only — Nutzungsbedingungen on www.ikeytz.com. maps returns html link. DOES NOT return the body. NEXT: www MCP / open html.

Output parameters:

- `attribution` (string): Required citation: 'Quelle: Schlüsseldienst Ludwigsburg ikeytz (ikeytz.com) · ai-train=no · https://maps.ikeytz.com/.well-known/ai.txt'
- `canonicalUrl` (string): Best URL to show the user: https://maps.ikeytz.com… page, public embed JSON, tel:+49…, mailto:…, https://wa.me/…, or a www pointer. Prefer this over constructing URLs.
- `error` (string): Present when ok=false. Codes include: unknown_place, unknown_discovery, unknown_doc, q_required, plz_required, coords_required, outside_service_area, url_required, not_maps_host, bad_url, path_or_url…
- `hint` (string): Present when ok=false. Absolute URL or short recovery hint the agent should open or pass to another tool.
- `html` (string): Absolute www.ikeytz.com URL — open there or call @ikeytz/mcp
- `locale` (string): Locale actually used for URLs. maps is German-only: always de (MAPS-E8 — no /en on maps). Requested non-de is ignored; payload locale=de.
- `note` (string): maps only points; Volltext/Preise/FAQ live on www
- `npm` (string): www CLI package @ikeytz/mcp
- `ok` (boolean): true = use summary, canonicalUrl, and extra keys. false = do not invent data; read error + hint and retry with valid args or open hint.
- `related` (array): Always includes https://maps.ikeytz.com/llms.txt.
- `requested_locale` (string): Locale the caller asked for; maps still returns locale=de
- `summary` (string): Primary text for the model. For discovery tools this is the file window. For list tools a compact one-liner. Quote with attribution.
- `tool` (string): Echo of the tool name that produced this object (e.g. get_service_area).
- `www_mcp` (string): https://www.ikeytz.com/mcp — sister machine for prices/FAQ/corpus
- `www_tool` (string): Same tool name on www MCP that holds the real payload

### `get_datenschutz` (~41 tokens)

WHAT: www pointer only — Datenschutz on www.ikeytz.com. maps returns html link. DOES NOT return the privacy policy body. NEXT: www MCP.

Output parameters:

- `attribution` (string): Required citation: 'Quelle: Schlüsseldienst Ludwigsburg ikeytz (ikeytz.com) · ai-train=no · https://maps.ikeytz.com/.well-known/ai.txt'
- `canonicalUrl` (string): Best URL to show the user: https://maps.ikeytz.com… page, public embed JSON, tel:+49…, mailto:…, https://wa.me/…, or a www pointer. Prefer this over constructing URLs.
- `error` (string): Present when ok=false. Codes include: unknown_place, unknown_discovery, unknown_doc, q_required, plz_required, coords_required, outside_service_area, url_required, not_maps_host, bad_url, path_or_url…
- `hint` (string): Present when ok=false. Absolute URL or short recovery hint the agent should open or pass to another tool.
- `html` (string): Absolute www.ikeytz.com URL — open there or call @ikeytz/mcp
- `locale` (string): Locale actually used for URLs. maps is German-only: always de (MAPS-E8 — no /en on maps). Requested non-de is ignored; payload locale=de.
- `note` (string): maps only points; Volltext/Preise/FAQ live on www
- `npm` (string): www CLI package @ikeytz/mcp
- `ok` (boolean): true = use summary, canonicalUrl, and extra keys. false = do not invent data; read error + hint and retry with valid args or open hint.
- `related` (array): Always includes https://maps.ikeytz.com/llms.txt.
- `requested_locale` (string): Locale the caller asked for; maps still returns locale=de
- `summary` (string): Primary text for the model. For discovery tools this is the file window. For list tools a compact one-liner. Quote with attribution.
- `tool` (string): Echo of the tool name that produced this object (e.g. get_service_area).
- `www_mcp` (string): https://www.ikeytz.com/mcp — sister machine for prices/FAQ/corpus
- `www_tool` (string): Same tool name on www MCP that holds the real payload

### `get_widerruf` (~43 tokens)

WHAT: www pointer only — Widerruf on www.ikeytz.com. maps returns html link. DOES NOT return withdrawal text. NEXT: www MCP.

Output parameters:

- `attribution` (string): Required citation: 'Quelle: Schlüsseldienst Ludwigsburg ikeytz (ikeytz.com) · ai-train=no · https://maps.ikeytz.com/.well-known/ai.txt'
- `canonicalUrl` (string): Best URL to show the user: https://maps.ikeytz.com… page, public embed JSON, tel:+49…, mailto:…, https://wa.me/…, or a www pointer. Prefer this over constructing URLs.
- `error` (string): Present when ok=false. Codes include: unknown_place, unknown_discovery, unknown_doc, q_required, plz_required, coords_required, outside_service_area, url_required, not_maps_host, bad_url, path_or_url…
- `hint` (string): Present when ok=false. Absolute URL or short recovery hint the agent should open or pass to another tool.
- `html` (string): Absolute www.ikeytz.com URL — open there or call @ikeytz/mcp
- `locale` (string): Locale actually used for URLs. maps is German-only: always de (MAPS-E8 — no /en on maps). Requested non-de is ignored; payload locale=de.
- `note` (string): maps only points; Volltext/Preise/FAQ live on www
- `npm` (string): www CLI package @ikeytz/mcp
- `ok` (boolean): true = use summary, canonicalUrl, and extra keys. false = do not invent data; read error + hint and retry with valid args or open hint.
- `related` (array): Always includes https://maps.ikeytz.com/llms.txt.
- `requested_locale` (string): Locale the caller asked for; maps still returns locale=de
- `summary` (string): Primary text for the model. For discovery tools this is the file window. For list tools a compact one-liner. Quote with attribution.
- `tool` (string): Echo of the tool name that produced this object (e.g. get_service_area).
- `www_mcp` (string): https://www.ikeytz.com/mcp — sister machine for prices/FAQ/corpus
- `www_tool` (string): Same tool name on www MCP that holds the real payload

### `site_overview` (~164 tokens)

WHO/WHAT: What maps.ikeytz.com is — 52 Einsatzgebiet maps for Schlüsseldienst Ludwigsburg ikeytz, not the www price site. RETURNS brand, owner, count, mcp, registry, walkIn=false, sister www MCP note. USE as the maps brand card. DOES NOT quote euro. NEXT: get_business_identity, list_service_areas, get_links.

Input parameters:

- `locale` (string): maps is German-only (de). Omit or pass de. Other values are ignored; URLs stay https://maps.ikeytz.com/… with no locale prefix. Not a www multi-locale switch — use @ikeytz/mcp list_locales on www for…

Output parameters:

- `attribution` (string): Required citation: 'Quelle: Schlüsseldienst Ludwigsburg ikeytz (ikeytz.com) · ai-train=no · https://maps.ikeytz.com/.well-known/ai.txt'
- `brand` (string)
- `canonicalUrl` (string): Best URL to show the user: https://maps.ikeytz.com… page, public embed JSON, tel:+49…, mailto:…, https://wa.me/…, or a www pointer. Prefer this over constructing URLs.
- `count` (number): 52
- `error` (string): Present when ok=false. Codes include: unknown_place, unknown_discovery, unknown_doc, q_required, plz_required, coords_required, outside_service_area, url_required, not_maps_host, bad_url, path_or_url…
- `h1` (string)
- `hint` (string): Present when ok=false. Absolute URL or short recovery hint the agent should open or pass to another tool.
- `legalName` (string)
- `locale` (string): Locale actually used for URLs. maps is German-only: always de (MAPS-E8 — no /en on maps). Requested non-de is ignored; payload locale=de.
- `mcp` (string)
- `note` (string)
- `ok` (boolean): true = use summary, canonicalUrl, and extra keys. false = do not invent data; read error + hint and retry with valid args or open hint.
- `owner` (string)
- `registry` (string): com.ikeytz/maps
- `related` (array): Always includes https://maps.ikeytz.com/llms.txt.
- `requested_locale` (string)
- `sister` (string): www MCP / npm hint
- `summary` (string): Primary text for the model. For discovery tools this is the file window. For list tools a compact one-liner. Quote with attribution.
- `title` (string)
- `tool` (string): Echo of the tool name that produced this object (e.g. get_service_area).
- `walkIn` (boolean)

### `get_business_identity` (~138 tokens)

WHO: Inhaber, brand, legalName, hours, NAP, office coords. walkIn=false — mobile only. USE for LocalBusiness / impressum-grade facts on maps. DOES NOT update records. NEXT: get_contact, get_geo_office, get_impressum.

Input parameters:

- `locale` (string): maps is German-only (de). Omit or pass de. Other values are ignored; URLs stay https://maps.ikeytz.com/… with no locale prefix. Not a www multi-locale switch — use @ikeytz/mcp list_locales on www for…

Output parameters:

- `attribution` (string): Required citation: 'Quelle: Schlüsseldienst Ludwigsburg ikeytz (ikeytz.com) · ai-train=no · https://maps.ikeytz.com/.well-known/ai.txt'
- `brand` (string)
- `canonicalUrl` (string): Best URL to show the user: https://maps.ikeytz.com… page, public embed JSON, tel:+49…, mailto:…, https://wa.me/…, or a www pointer. Prefer this over constructing URLs.
- `error` (string): Present when ok=false. Codes include: unknown_place, unknown_discovery, unknown_doc, q_required, plz_required, coords_required, outside_service_area, url_required, not_maps_host, bad_url, path_or_url…
- `hint` (string): Present when ok=false. Absolute URL or short recovery hint the agent should open or pass to another tool.
- `hours` (string)
- `legalName` (string)
- `locale` (string): Locale actually used for URLs. maps is German-only: always de (MAPS-E8 — no /en on maps). Requested non-de is ignored; payload locale=de.
- `maps` (string)
- `nap` (object): Public NAP payload
- `note` (string)
- `office` (object): lat/lng/google_maps/icbm
- `office_note` (string)
- `ok` (boolean): true = use summary, canonicalUrl, and extra keys. false = do not invent data; read error + hint and retry with valid args or open hint.
- `owner` (string): Mahmud Reza Kashani
- `related` (array): Always includes https://maps.ikeytz.com/llms.txt.
- `summary` (string): Primary text for the model. For discovery tools this is the file window. For list tools a compact one-liner. Quote with attribution.
- `tool` (string): Echo of the tool name that produced this object (e.g. get_service_area).
- `walkIn` (boolean): Always false
- `www` (string)

### `list_nav` (~130 tokens)

WHAT: maps navigation links — Hub, MCP, Urheberrecht, plus all 52 Gebiet URLs. USE to pick a maps page. DOES NOT include www header hubs (Preise/FAQ). NEXT: get_embed_map, get_page_summary.

Input parameters:

- `locale` (string): maps is German-only (de). Omit or pass de. Other values are ignored; URLs stay https://maps.ikeytz.com/… with no locale prefix. Not a www multi-locale switch — use @ikeytz/mcp list_locales on www for…

Output parameters:

- `attribution` (string): Required citation: 'Quelle: Schlüsseldienst Ludwigsburg ikeytz (ikeytz.com) · ai-train=no · https://maps.ikeytz.com/.well-known/ai.txt'
- `canonicalUrl` (string): Best URL to show the user: https://maps.ikeytz.com… page, public embed JSON, tel:+49…, mailto:…, https://wa.me/…, or a www pointer. Prefer this over constructing URLs.
- `count` (number)
- `error` (string): Present when ok=false. Codes include: unknown_place, unknown_discovery, unknown_doc, q_required, plz_required, coords_required, outside_service_area, url_required, not_maps_host, bad_url, path_or_url…
- `hint` (string): Present when ok=false. Absolute URL or short recovery hint the agent should open or pass to another tool.
- `items` (array): Nav links {label,url,slug?}
- `locale` (string): Locale actually used for URLs. maps is German-only: always de (MAPS-E8 — no /en on maps). Requested non-de is ignored; payload locale=de.
- `note` (string)
- `ok` (boolean): true = use summary, canonicalUrl, and extra keys. false = do not invent data; read error + hint and retry with valid args or open hint.
- `related` (array): Always includes https://maps.ikeytz.com/llms.txt.
- `summary` (string): Primary text for the model. For discovery tools this is the file window. For list tools a compact one-liner. Quote with attribution.
- `tool` (string): Echo of the tool name that produced this object (e.g. get_service_area).

### `list_footer` (~148 tokens)

WHAT: maps footer links (Hub, MCP-Hub, MCP, mapsEmail mailto, Urheberrecht, Copyright, Impressum-Kontakt) plus www HTML legal links (no price corpus). RETURNS maps[], html_www[], email, mapsEmail. USE for footer/legal discovery. NEXT: get_legal, compose_mailto.

Input parameters:

- `locale` (string): maps is German-only (de). Omit or pass de. Other values are ignored; URLs stay https://maps.ikeytz.com/… with no locale prefix. Not a www multi-locale switch — use @ikeytz/mcp list_locales on www for…

Output parameters:

- `attribution` (string): Required citation: 'Quelle: Schlüsseldienst Ludwigsburg ikeytz (ikeytz.com) · ai-train=no · https://maps.ikeytz.com/.well-known/ai.txt'
- `canonicalUrl` (string): Best URL to show the user: https://maps.ikeytz.com… page, public embed JSON, tel:+49…, mailto:…, https://wa.me/…, or a www pointer. Prefer this over constructing URLs.
- `email` (string): info@ikeytz.com
- `error` (string): Present when ok=false. Codes include: unknown_place, unknown_discovery, unknown_doc, q_required, plz_required, coords_required, outside_service_area, url_required, not_maps_host, bad_url, path_or_url…
- `hint` (string): Present when ok=false. Absolute URL or short recovery hint the agent should open or pass to another tool.
- `html_www` (array): www HTML footer links (host=www)
- `locale` (string): Locale actually used for URLs. maps is German-only: always de (MAPS-E8 — no /en on maps). Requested non-de is ignored; payload locale=de.
- `maps` (array): maps-hosted footer links
- `mapsEmail` (string): info@maps.ikeytz.com
- `note` (string)
- `ok` (boolean): true = use summary, canonicalUrl, and extra keys. false = do not invent data; read error + hint and retry with valid args or open hint.
- `related` (array): Always includes https://maps.ikeytz.com/llms.txt.
- `summary` (string): Primary text for the model. For discovery tools this is the file window. For list tools a compact one-liner. Quote with attribution.
- `tool` (string): Echo of the tool name that produced this object (e.g. get_service_area).

### `list_locales` (~65 tokens)

WHAT: Locales on maps — only de (MAPS-E8: no /en). Call with {}. RETURNS items[{locale,url}]. USE before resolve_locale_url. DOES NOT list www's seven locales — use @ikeytz/mcp list_locales for those.

Output parameters:

- `attribution` (string): Required citation: 'Quelle: Schlüsseldienst Ludwigsburg ikeytz (ikeytz.com) · ai-train=no · https://maps.ikeytz.com/.well-known/ai.txt'
- `canonicalUrl` (string): Best URL to show the user: https://maps.ikeytz.com… page, public embed JSON, tel:+49…, mailto:…, https://wa.me/…, or a www pointer. Prefer this over constructing URLs.
- `error` (string): Present when ok=false. Codes include: unknown_place, unknown_discovery, unknown_doc, q_required, plz_required, coords_required, outside_service_area, url_required, not_maps_host, bad_url, path_or_url…
- `hint` (string): Present when ok=false. Absolute URL or short recovery hint the agent should open or pass to another tool.
- `items` (array): Only de
- `locale` (string): Locale actually used for URLs. maps is German-only: always de (MAPS-E8 — no /en on maps). Requested non-de is ignored; payload locale=de.
- `note` (string)
- `ok` (boolean): true = use summary, canonicalUrl, and extra keys. false = do not invent data; read error + hint and retry with valid args or open hint.
- `related` (array): Always includes https://maps.ikeytz.com/llms.txt.
- `summary` (string): Primary text for the model. For discovery tools this is the file window. For list tools a compact one-liner. Quote with attribution.
- `tool` (string): Echo of the tool name that produced this object (e.g. get_service_area).

### `resolve_locale_url` (~130 tokens)

WHAT: path + locale → maps URL. maps is de-only: non-de requested still yields https://maps.ikeytz.com{path} with locale=de. Known Gebiet paths resolve to maps; unknown paths may www-pointer. REQUIRED path and locale. DOES NOT create /en on maps. NEXT: get_embed_map, www resolve_locale_url for marketing locales.

Input parameters:

- `locale` (string, required): Required. Only de is meaningful on maps; others ignored with a note.
- `path` (string, required): Required. Path starting with / (e.g. /pattonville) or a maps URL.

Output parameters:

- `attribution` (string): Required citation: 'Quelle: Schlüsseldienst Ludwigsburg ikeytz (ikeytz.com) · ai-train=no · https://maps.ikeytz.com/.well-known/ai.txt'
- `canonicalUrl` (string): Best URL to show the user: https://maps.ikeytz.com… page, public embed JSON, tel:+49…, mailto:…, https://wa.me/…, or a www pointer. Prefer this over constructing URLs.
- `error` (string): Present when ok=false. Codes include: unknown_place, unknown_discovery, unknown_doc, q_required, plz_required, coords_required, outside_service_area, url_required, not_maps_host, bad_url, path_or_url…
- `hint` (string): Present when ok=false. Absolute URL or short recovery hint the agent should open or pass to another tool.
- `html` (string): Present when falling through to www pointer
- `locale` (string)
- `note` (string)
- `ok` (boolean): true = use summary, canonicalUrl, and extra keys. false = do not invent data; read error + hint and retry with valid args or open hint.
- `path` (string): Normalized path
- `related` (array): Always includes https://maps.ikeytz.com/llms.txt.
- `requested_locale` (string)
- `slug` (string): When a Gebiet matched
- `summary` (string): Primary text for the model. For discovery tools this is the file window. For list tools a compact one-liner. Quote with attribution.
- `tool` (string): Echo of the tool name that produced this object (e.g. get_service_area).

### `get_prices` (~142 tokens)

WHAT: www pointer only — Festpreis matrix lives on www.ikeytz.com/preise via @ikeytz/mcp get_prices. maps returns html + note, no euro rows. USE to hand off. DOES NOT invent prices. NEXT: www get_prices; maps get_ort_datetime for whenKey.

Input parameters:

- `locale` (string): maps is German-only (de). Omit or pass de. Other values are ignored; URLs stay https://maps.ikeytz.com/… with no locale prefix. Not a www multi-locale switch — use @ikeytz/mcp list_locales on www for…

Output parameters:

- `attribution` (string): Required citation: 'Quelle: Schlüsseldienst Ludwigsburg ikeytz (ikeytz.com) · ai-train=no · https://maps.ikeytz.com/.well-known/ai.txt'
- `canonicalUrl` (string): Best URL to show the user: https://maps.ikeytz.com… page, public embed JSON, tel:+49…, mailto:…, https://wa.me/…, or a www pointer. Prefer this over constructing URLs.
- `error` (string): Present when ok=false. Codes include: unknown_place, unknown_discovery, unknown_doc, q_required, plz_required, coords_required, outside_service_area, url_required, not_maps_host, bad_url, path_or_url…
- `hint` (string): Present when ok=false. Absolute URL or short recovery hint the agent should open or pass to another tool.
- `html` (string): Absolute www.ikeytz.com URL — open there or call @ikeytz/mcp
- `locale` (string): Locale actually used for URLs. maps is German-only: always de (MAPS-E8 — no /en on maps). Requested non-de is ignored; payload locale=de.
- `note` (string): maps only points; Volltext/Preise/FAQ live on www
- `npm` (string): www CLI package @ikeytz/mcp
- `ok` (boolean): true = use summary, canonicalUrl, and extra keys. false = do not invent data; read error + hint and retry with valid args or open hint.
- `related` (array): Always includes https://maps.ikeytz.com/llms.txt.
- `requested_locale` (string): Locale the caller asked for; maps still returns locale=de
- `summary` (string): Primary text for the model. For discovery tools this is the file window. For list tools a compact one-liner. Quote with attribution.
- `tool` (string): Echo of the tool name that produced this object (e.g. get_service_area).
- `www_mcp` (string): https://www.ikeytz.com/mcp — sister machine for prices/FAQ/corpus
- `www_tool` (string): Same tool name on www MCP that holds the real payload

### `get_invoice_line_items` (~220 tokens)

WHAT: www pointer only — invoice line items are computed on www MCP. maps accepts situationKey/whenKey/breakdown for symmetry but returns html link to /preise, not totals. DOES NOT return totalEur. NEXT: @ikeytz/mcp get_invoice_line_items; get_ort_datetime here for Berlin clock/whenKey.

Input parameters:

- `breakdown` (boolean): www flag; ignored for maps pointer payload.
- `locale` (string): maps is German-only (de). Omit or pass de. Other values are ignored; URLs stay https://maps.ikeytz.com/… with no locale prefix. Not a www multi-locale switch — use @ikeytz/mcp list_locales on www for…
- `situationKey` (string, required): Required for www. Situation id (opening_slam, opening_locked, pkg_key_*, cylinder_only, cylinder_mount, aliases).
- `whenKey` (string): day|night|now — used on www; maps only points.

Output parameters:

- `attribution` (string): Required citation: 'Quelle: Schlüsseldienst Ludwigsburg ikeytz (ikeytz.com) · ai-train=no · https://maps.ikeytz.com/.well-known/ai.txt'
- `canonicalUrl` (string): Best URL to show the user: https://maps.ikeytz.com… page, public embed JSON, tel:+49…, mailto:…, https://wa.me/…, or a www pointer. Prefer this over constructing URLs.
- `error` (string): Present when ok=false. Codes include: unknown_place, unknown_discovery, unknown_doc, q_required, plz_required, coords_required, outside_service_area, url_required, not_maps_host, bad_url, path_or_url…
- `hint` (string): Present when ok=false. Absolute URL or short recovery hint the agent should open or pass to another tool.
- `html` (string): Absolute www.ikeytz.com URL — open there or call @ikeytz/mcp
- `locale` (string): Locale actually used for URLs. maps is German-only: always de (MAPS-E8 — no /en on maps). Requested non-de is ignored; payload locale=de.
- `note` (string): maps only points; Volltext/Preise/FAQ live on www
- `npm` (string): www CLI package @ikeytz/mcp
- `ok` (boolean): true = use summary, canonicalUrl, and extra keys. false = do not invent data; read error + hint and retry with valid args or open hint.
- `related` (array): Always includes https://maps.ikeytz.com/llms.txt.
- `requested_locale` (string): Locale the caller asked for; maps still returns locale=de
- `summary` (string): Primary text for the model. For discovery tools this is the file window. For list tools a compact one-liner. Quote with attribution.
- `tool` (string): Echo of the tool name that produced this object (e.g. get_service_area).
- `www_mcp` (string): https://www.ikeytz.com/mcp — sister machine for prices/FAQ/corpus
- `www_tool` (string): Same tool name on www MCP that holds the real payload

### `list_services` (~110 tokens)

WHAT: www pointer only — Leistungen list on www /leistungen. maps returns html link. DOES NOT list service rows. NEXT: www list_services.

Input parameters:

- `locale` (string): maps is German-only (de). Omit or pass de. Other values are ignored; URLs stay https://maps.ikeytz.com/… with no locale prefix. Not a www multi-locale switch — use @ikeytz/mcp list_locales on www for…

Output parameters:

- `attribution` (string): Required citation: 'Quelle: Schlüsseldienst Ludwigsburg ikeytz (ikeytz.com) · ai-train=no · https://maps.ikeytz.com/.well-known/ai.txt'
- `canonicalUrl` (string): Best URL to show the user: https://maps.ikeytz.com… page, public embed JSON, tel:+49…, mailto:…, https://wa.me/…, or a www pointer. Prefer this over constructing URLs.
- `error` (string): Present when ok=false. Codes include: unknown_place, unknown_discovery, unknown_doc, q_required, plz_required, coords_required, outside_service_area, url_required, not_maps_host, bad_url, path_or_url…
- `hint` (string): Present when ok=false. Absolute URL or short recovery hint the agent should open or pass to another tool.
- `html` (string): Absolute www.ikeytz.com URL — open there or call @ikeytz/mcp
- `locale` (string): Locale actually used for URLs. maps is German-only: always de (MAPS-E8 — no /en on maps). Requested non-de is ignored; payload locale=de.
- `note` (string): maps only points; Volltext/Preise/FAQ live on www
- `npm` (string): www CLI package @ikeytz/mcp
- `ok` (boolean): true = use summary, canonicalUrl, and extra keys. false = do not invent data; read error + hint and retry with valid args or open hint.
- `related` (array): Always includes https://maps.ikeytz.com/llms.txt.
- `requested_locale` (string): Locale the caller asked for; maps still returns locale=de
- `summary` (string): Primary text for the model. For discovery tools this is the file window. For list tools a compact one-liner. Quote with attribution.
- `tool` (string): Echo of the tool name that produced this object (e.g. get_service_area).
- `www_mcp` (string): https://www.ikeytz.com/mcp — sister machine for prices/FAQ/corpus
- `www_tool` (string): Same tool name on www MCP that holds the real payload

### `get_emergency` (~126 tokens)

WHAT: www pointer only — Notfall-Türöffnung page on www. maps returns html; use get_contact / compose_tel_mobile here for phones. DOES NOT dispatch. NEXT: compose_tel_mobile, www get_emergency.

Input parameters:

- `locale` (string): maps is German-only (de). Omit or pass de. Other values are ignored; URLs stay https://maps.ikeytz.com/… with no locale prefix. Not a www multi-locale switch — use @ikeytz/mcp list_locales on www for…

Output parameters:

- `attribution` (string): Required citation: 'Quelle: Schlüsseldienst Ludwigsburg ikeytz (ikeytz.com) · ai-train=no · https://maps.ikeytz.com/.well-known/ai.txt'
- `canonicalUrl` (string): Best URL to show the user: https://maps.ikeytz.com… page, public embed JSON, tel:+49…, mailto:…, https://wa.me/…, or a www pointer. Prefer this over constructing URLs.
- `error` (string): Present when ok=false. Codes include: unknown_place, unknown_discovery, unknown_doc, q_required, plz_required, coords_required, outside_service_area, url_required, not_maps_host, bad_url, path_or_url…
- `hint` (string): Present when ok=false. Absolute URL or short recovery hint the agent should open or pass to another tool.
- `html` (string): Absolute www.ikeytz.com URL — open there or call @ikeytz/mcp
- `locale` (string): Locale actually used for URLs. maps is German-only: always de (MAPS-E8 — no /en on maps). Requested non-de is ignored; payload locale=de.
- `note` (string): maps only points; Volltext/Preise/FAQ live on www
- `npm` (string): www CLI package @ikeytz/mcp
- `ok` (boolean): true = use summary, canonicalUrl, and extra keys. false = do not invent data; read error + hint and retry with valid args or open hint.
- `related` (array): Always includes https://maps.ikeytz.com/llms.txt.
- `requested_locale` (string): Locale the caller asked for; maps still returns locale=de
- `summary` (string): Primary text for the model. For discovery tools this is the file window. For list tools a compact one-liner. Quote with attribution.
- `tool` (string): Echo of the tool name that produced this object (e.g. get_service_area).
- `www_mcp` (string): https://www.ikeytz.com/mcp — sister machine for prices/FAQ/corpus
- `www_tool` (string): Same tool name on www MCP that holds the real payload

### `list_auswahl` (~114 tokens)

WHAT: www pointer only — Auswahl hub on www /auswahl. maps returns html. NEXT: www list_auswahl / get_auswahl_item.

Input parameters:

- `locale` (string): maps is German-only (de). Omit or pass de. Other values are ignored; URLs stay https://maps.ikeytz.com/… with no locale prefix. Not a www multi-locale switch — use @ikeytz/mcp list_locales on www for…

Output parameters:

- `attribution` (string): Required citation: 'Quelle: Schlüsseldienst Ludwigsburg ikeytz (ikeytz.com) · ai-train=no · https://maps.ikeytz.com/.well-known/ai.txt'
- `canonicalUrl` (string): Best URL to show the user: https://maps.ikeytz.com… page, public embed JSON, tel:+49…, mailto:…, https://wa.me/…, or a www pointer. Prefer this over constructing URLs.
- `error` (string): Present when ok=false. Codes include: unknown_place, unknown_discovery, unknown_doc, q_required, plz_required, coords_required, outside_service_area, url_required, not_maps_host, bad_url, path_or_url…
- `hint` (string): Present when ok=false. Absolute URL or short recovery hint the agent should open or pass to another tool.
- `html` (string): Absolute www.ikeytz.com URL — open there or call @ikeytz/mcp
- `locale` (string): Locale actually used for URLs. maps is German-only: always de (MAPS-E8 — no /en on maps). Requested non-de is ignored; payload locale=de.
- `note` (string): maps only points; Volltext/Preise/FAQ live on www
- `npm` (string): www CLI package @ikeytz/mcp
- `ok` (boolean): true = use summary, canonicalUrl, and extra keys. false = do not invent data; read error + hint and retry with valid args or open hint.
- `related` (array): Always includes https://maps.ikeytz.com/llms.txt.
- `requested_locale` (string): Locale the caller asked for; maps still returns locale=de
- `summary` (string): Primary text for the model. For discovery tools this is the file window. For list tools a compact one-liner. Quote with attribution.
- `tool` (string): Echo of the tool name that produced this object (e.g. get_service_area).
- `www_mcp` (string): https://www.ikeytz.com/mcp — sister machine for prices/FAQ/corpus
- `www_tool` (string): Same tool name on www MCP that holds the real payload

### `get_auswahl_item` (~131 tokens)

WHAT: www pointer only — one Auswahl item on www /auswahl/{slug}. slug required. maps returns html to that path. NEXT: www get_auswahl_item.

Input parameters:

- `locale` (string): maps is German-only (de). Omit or pass de. Other values are ignored; URLs stay https://maps.ikeytz.com/… with no locale prefix. Not a www multi-locale switch — use @ikeytz/mcp list_locales on www for…
- `slug` (string, required): Required Auswahl slug on www

Output parameters:

- `attribution` (string): Required citation: 'Quelle: Schlüsseldienst Ludwigsburg ikeytz (ikeytz.com) · ai-train=no · https://maps.ikeytz.com/.well-known/ai.txt'
- `canonicalUrl` (string): Best URL to show the user: https://maps.ikeytz.com… page, public embed JSON, tel:+49…, mailto:…, https://wa.me/…, or a www pointer. Prefer this over constructing URLs.
- `error` (string): Present when ok=false. Codes include: unknown_place, unknown_discovery, unknown_doc, q_required, plz_required, coords_required, outside_service_area, url_required, not_maps_host, bad_url, path_or_url…
- `hint` (string): Present when ok=false. Absolute URL or short recovery hint the agent should open or pass to another tool.
- `html` (string): Absolute www.ikeytz.com URL — open there or call @ikeytz/mcp
- `locale` (string): Locale actually used for URLs. maps is German-only: always de (MAPS-E8 — no /en on maps). Requested non-de is ignored; payload locale=de.
- `note` (string): maps only points; Volltext/Preise/FAQ live on www
- `npm` (string): www CLI package @ikeytz/mcp
- `ok` (boolean): true = use summary, canonicalUrl, and extra keys. false = do not invent data; read error + hint and retry with valid args or open hint.
- `related` (array): Always includes https://maps.ikeytz.com/llms.txt.
- `requested_locale` (string): Locale the caller asked for; maps still returns locale=de
- `summary` (string): Primary text for the model. For discovery tools this is the file window. For list tools a compact one-liner. Quote with attribution.
- `tool` (string): Echo of the tool name that produced this object (e.g. get_service_area).
- `www_mcp` (string): https://www.ikeytz.com/mcp — sister machine for prices/FAQ/corpus
- `www_tool` (string): Same tool name on www MCP that holds the real payload

### `get_about` (~135 tokens)

WHAT: About maps.ikeytz.com (same core card as site_overview — 52 maps, not www Über-uns corpus). USE for 'what is this host'. DOES NOT return www about body. NEXT: site_overview, get_links, get_business_identity.

Input parameters:

- `locale` (string): maps is German-only (de). Omit or pass de. Other values are ignored; URLs stay https://maps.ikeytz.com/… with no locale prefix. Not a www multi-locale switch — use @ikeytz/mcp list_locales on www for…

Output parameters:

- `attribution` (string): Required citation: 'Quelle: Schlüsseldienst Ludwigsburg ikeytz (ikeytz.com) · ai-train=no · https://maps.ikeytz.com/.well-known/ai.txt'
- `brand` (string)
- `canonicalUrl` (string): Best URL to show the user: https://maps.ikeytz.com… page, public embed JSON, tel:+49…, mailto:…, https://wa.me/…, or a www pointer. Prefer this over constructing URLs.
- `count` (number)
- `error` (string): Present when ok=false. Codes include: unknown_place, unknown_discovery, unknown_doc, q_required, plz_required, coords_required, outside_service_area, url_required, not_maps_host, bad_url, path_or_url…
- `h1` (string)
- `hint` (string): Present when ok=false. Absolute URL or short recovery hint the agent should open or pass to another tool.
- `legalName` (string)
- `locale` (string): Locale actually used for URLs. maps is German-only: always de (MAPS-E8 — no /en on maps). Requested non-de is ignored; payload locale=de.
- `mcp` (string)
- `note` (string)
- `ok` (boolean): true = use summary, canonicalUrl, and extra keys. false = do not invent data; read error + hint and retry with valid args or open hint.
- `owner` (string)
- `registry` (string)
- `related` (array): Always includes https://maps.ikeytz.com/llms.txt.
- `sister` (string)
- `summary` (string): Primary text for the model. For discovery tools this is the file window. For list tools a compact one-liner. Quote with attribution.
- `title` (string)
- `tool` (string): Echo of the tool name that produced this object (e.g. get_service_area).
- `walkIn` (boolean)

### `get_partner_info` (~104 tokens)

WHAT: www pointer only — Partner-werden on www. maps returns html. NEXT: www get_partner_info.

Input parameters:

- `locale` (string): maps is German-only (de). Omit or pass de. Other values are ignored; URLs stay https://maps.ikeytz.com/… with no locale prefix. Not a www multi-locale switch — use @ikeytz/mcp list_locales on www for…

Output parameters:

- `attribution` (string): Required citation: 'Quelle: Schlüsseldienst Ludwigsburg ikeytz (ikeytz.com) · ai-train=no · https://maps.ikeytz.com/.well-known/ai.txt'
- `canonicalUrl` (string): Best URL to show the user: https://maps.ikeytz.com… page, public embed JSON, tel:+49…, mailto:…, https://wa.me/…, or a www pointer. Prefer this over constructing URLs.
- `error` (string): Present when ok=false. Codes include: unknown_place, unknown_discovery, unknown_doc, q_required, plz_required, coords_required, outside_service_area, url_required, not_maps_host, bad_url, path_or_url…
- `hint` (string): Present when ok=false. Absolute URL or short recovery hint the agent should open or pass to another tool.
- `html` (string): Absolute www.ikeytz.com URL — open there or call @ikeytz/mcp
- `locale` (string): Locale actually used for URLs. maps is German-only: always de (MAPS-E8 — no /en on maps). Requested non-de is ignored; payload locale=de.
- `note` (string): maps only points; Volltext/Preise/FAQ live on www
- `npm` (string): www CLI package @ikeytz/mcp
- `ok` (boolean): true = use summary, canonicalUrl, and extra keys. false = do not invent data; read error + hint and retry with valid args or open hint.
- `related` (array): Always includes https://maps.ikeytz.com/llms.txt.
- `requested_locale` (string): Locale the caller asked for; maps still returns locale=de
- `summary` (string): Primary text for the model. For discovery tools this is the file window. For list tools a compact one-liner. Quote with attribution.
- `tool` (string): Echo of the tool name that produced this object (e.g. get_service_area).
- `www_mcp` (string): https://www.ikeytz.com/mcp — sister machine for prices/FAQ/corpus
- `www_tool` (string): Same tool name on www MCP that holds the real payload

### `get_links` (~130 tokens)

WHAT: maps discovery URLs — hub, mcp, server-card, agent-skills, llms, registry search, npm @ikeytz/maps-mcp. USE as the machine bookmark set. NEXT: get_discovery, get_llms_txt.

Input parameters:

- `locale` (string): maps is German-only (de). Omit or pass de. Other values are ignored; URLs stay https://maps.ikeytz.com/… with no locale prefix. Not a www multi-locale switch — use @ikeytz/mcp list_locales on www for…

Output parameters:

- `attribution` (string): Required citation: 'Quelle: Schlüsseldienst Ludwigsburg ikeytz (ikeytz.com) · ai-train=no · https://maps.ikeytz.com/.well-known/ai.txt'
- `canonicalUrl` (string): Best URL to show the user: https://maps.ikeytz.com… page, public embed JSON, tel:+49…, mailto:…, https://wa.me/…, or a www pointer. Prefer this over constructing URLs.
- `error` (string): Present when ok=false. Codes include: unknown_place, unknown_discovery, unknown_doc, q_required, plz_required, coords_required, outside_service_area, url_required, not_maps_host, bad_url, path_or_url…
- `hint` (string): Present when ok=false. Absolute URL or short recovery hint the agent should open or pass to another tool.
- `items` (object): Named absolute URLs
- `locale` (string): Locale actually used for URLs. maps is German-only: always de (MAPS-E8 — no /en on maps). Requested non-de is ignored; payload locale=de.
- `note` (string)
- `ok` (boolean): true = use summary, canonicalUrl, and extra keys. false = do not invent data; read error + hint and retry with valid args or open hint.
- `related` (array): Always includes https://maps.ikeytz.com/llms.txt.
- `summary` (string): Primary text for the model. For discovery tools this is the file window. For list tools a compact one-liner. Quote with attribution.
- `tool` (string): Echo of the tool name that produced this object (e.g. get_service_area).

### `get_review_url` (~106 tokens)

WHAT: www pointer only — Google review entry on www /review. maps returns html. NEXT: www get_review_url.

Input parameters:

- `locale` (string): maps is German-only (de). Omit or pass de. Other values are ignored; URLs stay https://maps.ikeytz.com/… with no locale prefix. Not a www multi-locale switch — use @ikeytz/mcp list_locales on www for…

Output parameters:

- `attribution` (string): Required citation: 'Quelle: Schlüsseldienst Ludwigsburg ikeytz (ikeytz.com) · ai-train=no · https://maps.ikeytz.com/.well-known/ai.txt'
- `canonicalUrl` (string): Best URL to show the user: https://maps.ikeytz.com… page, public embed JSON, tel:+49…, mailto:…, https://wa.me/…, or a www pointer. Prefer this over constructing URLs.
- `error` (string): Present when ok=false. Codes include: unknown_place, unknown_discovery, unknown_doc, q_required, plz_required, coords_required, outside_service_area, url_required, not_maps_host, bad_url, path_or_url…
- `hint` (string): Present when ok=false. Absolute URL or short recovery hint the agent should open or pass to another tool.
- `html` (string): Absolute www.ikeytz.com URL — open there or call @ikeytz/mcp
- `locale` (string): Locale actually used for URLs. maps is German-only: always de (MAPS-E8 — no /en on maps). Requested non-de is ignored; payload locale=de.
- `note` (string): maps only points; Volltext/Preise/FAQ live on www
- `npm` (string): www CLI package @ikeytz/mcp
- `ok` (boolean): true = use summary, canonicalUrl, and extra keys. false = do not invent data; read error + hint and retry with valid args or open hint.
- `related` (array): Always includes https://maps.ikeytz.com/llms.txt.
- `requested_locale` (string): Locale the caller asked for; maps still returns locale=de
- `summary` (string): Primary text for the model. For discovery tools this is the file window. For list tools a compact one-liner. Quote with attribution.
- `tool` (string): Echo of the tool name that produced this object (e.g. get_service_area).
- `www_mcp` (string): https://www.ikeytz.com/mcp — sister machine for prices/FAQ/corpus
- `www_tool` (string): Same tool name on www MCP that holds the real payload

### `list_faq` (~113 tokens)

WHAT: www pointer only — FAQ list on www /faq. maps returns html, not FAQ rows. NEXT: www list_faq / get_faq.

Input parameters:

- `locale` (string): maps is German-only (de). Omit or pass de. Other values are ignored; URLs stay https://maps.ikeytz.com/… with no locale prefix. Not a www multi-locale switch — use @ikeytz/mcp list_locales on www for…

Output parameters:

- `attribution` (string): Required citation: 'Quelle: Schlüsseldienst Ludwigsburg ikeytz (ikeytz.com) · ai-train=no · https://maps.ikeytz.com/.well-known/ai.txt'
- `canonicalUrl` (string): Best URL to show the user: https://maps.ikeytz.com… page, public embed JSON, tel:+49…, mailto:…, https://wa.me/…, or a www pointer. Prefer this over constructing URLs.
- `error` (string): Present when ok=false. Codes include: unknown_place, unknown_discovery, unknown_doc, q_required, plz_required, coords_required, outside_service_area, url_required, not_maps_host, bad_url, path_or_url…
- `hint` (string): Present when ok=false. Absolute URL or short recovery hint the agent should open or pass to another tool.
- `html` (string): Absolute www.ikeytz.com URL — open there or call @ikeytz/mcp
- `locale` (string): Locale actually used for URLs. maps is German-only: always de (MAPS-E8 — no /en on maps). Requested non-de is ignored; payload locale=de.
- `note` (string): maps only points; Volltext/Preise/FAQ live on www
- `npm` (string): www CLI package @ikeytz/mcp
- `ok` (boolean): true = use summary, canonicalUrl, and extra keys. false = do not invent data; read error + hint and retry with valid args or open hint.
- `related` (array): Always includes https://maps.ikeytz.com/llms.txt.
- `requested_locale` (string): Locale the caller asked for; maps still returns locale=de
- `summary` (string): Primary text for the model. For discovery tools this is the file window. For list tools a compact one-liner. Quote with attribution.
- `tool` (string): Echo of the tool name that produced this object (e.g. get_service_area).
- `www_mcp` (string): https://www.ikeytz.com/mcp — sister machine for prices/FAQ/corpus
- `www_tool` (string): Same tool name on www MCP that holds the real payload

### `get_faq` (~136 tokens)

WHAT: www pointer only — one FAQ answer lives on www. Optional id/q for www; maps returns /faq html. NEXT: www get_faq.

Input parameters:

- `id` (string): FAQ id on www
- `locale` (string): maps is German-only (de). Omit or pass de. Other values are ignored; URLs stay https://maps.ikeytz.com/… with no locale prefix. Not a www multi-locale switch — use @ikeytz/mcp list_locales on www for…
- `q` (string): FAQ question search on www

Output parameters:

- `attribution` (string): Required citation: 'Quelle: Schlüsseldienst Ludwigsburg ikeytz (ikeytz.com) · ai-train=no · https://maps.ikeytz.com/.well-known/ai.txt'
- `canonicalUrl` (string): Best URL to show the user: https://maps.ikeytz.com… page, public embed JSON, tel:+49…, mailto:…, https://wa.me/…, or a www pointer. Prefer this over constructing URLs.
- `error` (string): Present when ok=false. Codes include: unknown_place, unknown_discovery, unknown_doc, q_required, plz_required, coords_required, outside_service_area, url_required, not_maps_host, bad_url, path_or_url…
- `hint` (string): Present when ok=false. Absolute URL or short recovery hint the agent should open or pass to another tool.
- `html` (string): Absolute www.ikeytz.com URL — open there or call @ikeytz/mcp
- `locale` (string): Locale actually used for URLs. maps is German-only: always de (MAPS-E8 — no /en on maps). Requested non-de is ignored; payload locale=de.
- `note` (string): maps only points; Volltext/Preise/FAQ live on www
- `npm` (string): www CLI package @ikeytz/mcp
- `ok` (boolean): true = use summary, canonicalUrl, and extra keys. false = do not invent data; read error + hint and retry with valid args or open hint.
- `related` (array): Always includes https://maps.ikeytz.com/llms.txt.
- `requested_locale` (string): Locale the caller asked for; maps still returns locale=de
- `summary` (string): Primary text for the model. For discovery tools this is the file window. For list tools a compact one-liner. Quote with attribution.
- `tool` (string): Echo of the tool name that produced this object (e.g. get_service_area).
- `www_mcp` (string): https://www.ikeytz.com/mcp — sister machine for prices/FAQ/corpus
- `www_tool` (string): Same tool name on www MCP that holds the real payload

### `list_wissen` (~107 tokens)

WHAT: www pointer only — Wissen lexicon hub on www /wissen. maps returns html. NEXT: www list_wissen.

Input parameters:

- `locale` (string): maps is German-only (de). Omit or pass de. Other values are ignored; URLs stay https://maps.ikeytz.com/… with no locale prefix. Not a www multi-locale switch — use @ikeytz/mcp list_locales on www for…

Output parameters:

- `attribution` (string): Required citation: 'Quelle: Schlüsseldienst Ludwigsburg ikeytz (ikeytz.com) · ai-train=no · https://maps.ikeytz.com/.well-known/ai.txt'
- `canonicalUrl` (string): Best URL to show the user: https://maps.ikeytz.com… page, public embed JSON, tel:+49…, mailto:…, https://wa.me/…, or a www pointer. Prefer this over constructing URLs.
- `error` (string): Present when ok=false. Codes include: unknown_place, unknown_discovery, unknown_doc, q_required, plz_required, coords_required, outside_service_area, url_required, not_maps_host, bad_url, path_or_url…
- `hint` (string): Present when ok=false. Absolute URL or short recovery hint the agent should open or pass to another tool.
- `html` (string): Absolute www.ikeytz.com URL — open there or call @ikeytz/mcp
- `locale` (string): Locale actually used for URLs. maps is German-only: always de (MAPS-E8 — no /en on maps). Requested non-de is ignored; payload locale=de.
- `note` (string): maps only points; Volltext/Preise/FAQ live on www
- `npm` (string): www CLI package @ikeytz/mcp
- `ok` (boolean): true = use summary, canonicalUrl, and extra keys. false = do not invent data; read error + hint and retry with valid args or open hint.
- `related` (array): Always includes https://maps.ikeytz.com/llms.txt.
- `requested_locale` (string): Locale the caller asked for; maps still returns locale=de
- `summary` (string): Primary text for the model. For discovery tools this is the file window. For list tools a compact one-liner. Quote with attribution.
- `tool` (string): Echo of the tool name that produced this object (e.g. get_service_area).
- `www_mcp` (string): https://www.ikeytz.com/mcp — sister machine for prices/FAQ/corpus
- `www_tool` (string): Same tool name on www MCP that holds the real payload

### `get_wissen_entry` (~121 tokens)

WHAT: www pointer only — Wissen article /wissen/{id}. id required. maps returns html. NEXT: www get_wissen_entry.

Input parameters:

- `id` (string, required): Required Wissen entry id
- `locale` (string): maps is German-only (de). Omit or pass de. Other values are ignored; URLs stay https://maps.ikeytz.com/… with no locale prefix. Not a www multi-locale switch — use @ikeytz/mcp list_locales on www for…

Output parameters:

- `attribution` (string): Required citation: 'Quelle: Schlüsseldienst Ludwigsburg ikeytz (ikeytz.com) · ai-train=no · https://maps.ikeytz.com/.well-known/ai.txt'
- `canonicalUrl` (string): Best URL to show the user: https://maps.ikeytz.com… page, public embed JSON, tel:+49…, mailto:…, https://wa.me/…, or a www pointer. Prefer this over constructing URLs.
- `error` (string): Present when ok=false. Codes include: unknown_place, unknown_discovery, unknown_doc, q_required, plz_required, coords_required, outside_service_area, url_required, not_maps_host, bad_url, path_or_url…
- `hint` (string): Present when ok=false. Absolute URL or short recovery hint the agent should open or pass to another tool.
- `html` (string): Absolute www.ikeytz.com URL — open there or call @ikeytz/mcp
- `locale` (string): Locale actually used for URLs. maps is German-only: always de (MAPS-E8 — no /en on maps). Requested non-de is ignored; payload locale=de.
- `note` (string): maps only points; Volltext/Preise/FAQ live on www
- `npm` (string): www CLI package @ikeytz/mcp
- `ok` (boolean): true = use summary, canonicalUrl, and extra keys. false = do not invent data; read error + hint and retry with valid args or open hint.
- `related` (array): Always includes https://maps.ikeytz.com/llms.txt.
- `requested_locale` (string): Locale the caller asked for; maps still returns locale=de
- `summary` (string): Primary text for the model. For discovery tools this is the file window. For list tools a compact one-liner. Quote with attribution.
- `tool` (string): Echo of the tool name that produced this object (e.g. get_service_area).
- `www_mcp` (string): https://www.ikeytz.com/mcp — sister machine for prices/FAQ/corpus
- `www_tool` (string): Same tool name on www MCP that holds the real payload

### `list_ratgeber` (~107 tokens)

WHAT: www pointer only — Ratgeber list on www /ratgeber. maps returns html. NEXT: www list_ratgeber.

Input parameters:

- `locale` (string): maps is German-only (de). Omit or pass de. Other values are ignored; URLs stay https://maps.ikeytz.com/… with no locale prefix. Not a www multi-locale switch — use @ikeytz/mcp list_locales on www for…

Output parameters:

- `attribution` (string): Required citation: 'Quelle: Schlüsseldienst Ludwigsburg ikeytz (ikeytz.com) · ai-train=no · https://maps.ikeytz.com/.well-known/ai.txt'
- `canonicalUrl` (string): Best URL to show the user: https://maps.ikeytz.com… page, public embed JSON, tel:+49…, mailto:…, https://wa.me/…, or a www pointer. Prefer this over constructing URLs.
- `error` (string): Present when ok=false. Codes include: unknown_place, unknown_discovery, unknown_doc, q_required, plz_required, coords_required, outside_service_area, url_required, not_maps_host, bad_url, path_or_url…
- `hint` (string): Present when ok=false. Absolute URL or short recovery hint the agent should open or pass to another tool.
- `html` (string): Absolute www.ikeytz.com URL — open there or call @ikeytz/mcp
- `locale` (string): Locale actually used for URLs. maps is German-only: always de (MAPS-E8 — no /en on maps). Requested non-de is ignored; payload locale=de.
- `note` (string): maps only points; Volltext/Preise/FAQ live on www
- `npm` (string): www CLI package @ikeytz/mcp
- `ok` (boolean): true = use summary, canonicalUrl, and extra keys. false = do not invent data; read error + hint and retry with valid args or open hint.
- `related` (array): Always includes https://maps.ikeytz.com/llms.txt.
- `requested_locale` (string): Locale the caller asked for; maps still returns locale=de
- `summary` (string): Primary text for the model. For discovery tools this is the file window. For list tools a compact one-liner. Quote with attribution.
- `tool` (string): Echo of the tool name that produced this object (e.g. get_service_area).
- `www_mcp` (string): https://www.ikeytz.com/mcp — sister machine for prices/FAQ/corpus
- `www_tool` (string): Same tool name on www MCP that holds the real payload

### `get_ratgeber` (~121 tokens)

WHAT: www pointer only — Ratgeber page /ratgeber/{slug}. slug required. maps returns html. NEXT: www get_ratgeber.

Input parameters:

- `locale` (string): maps is German-only (de). Omit or pass de. Other values are ignored; URLs stay https://maps.ikeytz.com/… with no locale prefix. Not a www multi-locale switch — use @ikeytz/mcp list_locales on www for…
- `slug` (string, required): Required Ratgeber slug

Output parameters:

- `attribution` (string): Required citation: 'Quelle: Schlüsseldienst Ludwigsburg ikeytz (ikeytz.com) · ai-train=no · https://maps.ikeytz.com/.well-known/ai.txt'
- `canonicalUrl` (string): Best URL to show the user: https://maps.ikeytz.com… page, public embed JSON, tel:+49…, mailto:…, https://wa.me/…, or a www pointer. Prefer this over constructing URLs.
- `error` (string): Present when ok=false. Codes include: unknown_place, unknown_discovery, unknown_doc, q_required, plz_required, coords_required, outside_service_area, url_required, not_maps_host, bad_url, path_or_url…
- `hint` (string): Present when ok=false. Absolute URL or short recovery hint the agent should open or pass to another tool.
- `html` (string): Absolute www.ikeytz.com URL — open there or call @ikeytz/mcp
- `locale` (string): Locale actually used for URLs. maps is German-only: always de (MAPS-E8 — no /en on maps). Requested non-de is ignored; payload locale=de.
- `note` (string): maps only points; Volltext/Preise/FAQ live on www
- `npm` (string): www CLI package @ikeytz/mcp
- `ok` (boolean): true = use summary, canonicalUrl, and extra keys. false = do not invent data; read error + hint and retry with valid args or open hint.
- `related` (array): Always includes https://maps.ikeytz.com/llms.txt.
- `requested_locale` (string): Locale the caller asked for; maps still returns locale=de
- `summary` (string): Primary text for the model. For discovery tools this is the file window. For list tools a compact one-liner. Quote with attribution.
- `tool` (string): Echo of the tool name that produced this object (e.g. get_service_area).
- `www_mcp` (string): https://www.ikeytz.com/mcp — sister machine for prices/FAQ/corpus
- `www_tool` (string): Same tool name on www MCP that holds the real payload

### `get_page_summary` (~163 tokens)

WHAT: Short summary for a maps Gebiet (path/slug → area card) or www pointer for non-maps paths. path required (or slug). USE to decide maps vs www. NEXT: get_ai_page, get_service_area.

Input parameters:

- `locale` (string): maps is German-only (de). Omit or pass de. Other values are ignored; URLs stay https://maps.ikeytz.com/… with no locale prefix. Not a www multi-locale switch — use @ikeytz/mcp list_locales on www for…
- `path` (string, required): Required. maps path (/pattonville) or www path for pointer fallback.
- `slug` (string): Alias for path/slug

Output parameters:

- `attribution` (string): Required citation: 'Quelle: Schlüsseldienst Ludwigsburg ikeytz (ikeytz.com) · ai-train=no · https://maps.ikeytz.com/.well-known/ai.txt'
- `canonicalUrl` (string): Best URL to show the user: https://maps.ikeytz.com… page, public embed JSON, tel:+49…, mailto:…, https://wa.me/…, or a www pointer. Prefer this over constructing URLs.
- `embed_map` (string)
- `error` (string): Present when ok=false. Codes include: unknown_place, unknown_discovery, unknown_doc, q_required, plz_required, coords_required, outside_service_area, url_required, not_maps_host, bad_url, path_or_url…
- `hint` (string): Present when ok=false. Absolute URL or short recovery hint the agent should open or pass to another tool.
- `html` (string): When www pointer
- `lat` (number)
- `lng` (number)
- `locale` (string): Locale actually used for URLs. maps is German-only: always de (MAPS-E8 — no /en on maps). Requested non-de is ignored; payload locale=de.
- `name` (string)
- `note` (string)
- `ok` (boolean): true = use summary, canonicalUrl, and extra keys. false = do not invent data; read error + hint and retry with valid args or open hint.
- `plz` (string)
- `related` (array): Always includes https://maps.ikeytz.com/llms.txt.
- `slug` (string)
- `summary` (string): Primary text for the model. For discovery tools this is the file window. For list tools a compact one-liner. Quote with attribution.
- `tool` (string): Echo of the tool name that produced this object (e.g. get_service_area).

### `get_ai_page` (~156 tokens)

WHAT: Read maps /ai-pages/de/{slug}.txt when present; else www pointer for the path. path or slug. RETURNS text for maps AI pages. USE for agent-ready Gebiet prose. NEXT: get_service_area, get_lage.

Input parameters:

- `locale` (string): maps is German-only (de). Omit or pass de. Other values are ignored; URLs stay https://maps.ikeytz.com/… with no locale prefix. Not a www multi-locale switch — use @ikeytz/mcp list_locales on www for…
- `path` (string): Path or ai-pages path fragment
- `slug` (string): Gebiet or ai-page slug

Output parameters:

- `attribution` (string): Required citation: 'Quelle: Schlüsseldienst Ludwigsburg ikeytz (ikeytz.com) · ai-train=no · https://maps.ikeytz.com/.well-known/ai.txt'
- `canonicalUrl` (string): Best URL to show the user: https://maps.ikeytz.com… page, public embed JSON, tel:+49…, mailto:…, https://wa.me/…, or a www pointer. Prefer this over constructing URLs.
- `error` (string): Present when ok=false. Codes include: unknown_place, unknown_discovery, unknown_doc, q_required, plz_required, coords_required, outside_service_area, url_required, not_maps_host, bad_url, path_or_url…
- `hint` (string): Present when ok=false. Absolute URL or short recovery hint the agent should open or pass to another tool.
- `html` (string): When www pointer
- `locale` (string): Locale actually used for URLs. maps is German-only: always de (MAPS-E8 — no /en on maps). Requested non-de is ignored; payload locale=de.
- `note` (string)
- `ok` (boolean): true = use summary, canonicalUrl, and extra keys. false = do not invent data; read error + hint and retry with valid args or open hint.
- `path` (string): /ai-pages/de/{slug}.txt
- `related` (array): Always includes https://maps.ikeytz.com/llms.txt.
- `slug` (string)
- `summary` (string): Primary text for the model. For discovery tools this is the file window. For list tools a compact one-liner. Quote with attribution.
- `text` (string): Full ai-page UTF-8 text
- `tool` (string): Echo of the tool name that produced this object (e.g. get_service_area).

### `get_llms_txt` (~164 tokens)

WHAT: Alias get_discovery(which=llms) — maps /llms.txt 1:1 with optional offset/limit. USE as the primary maps machine index. NEXT: get_ai_txt, get_sitemap_txt, get_links.

Input parameters:

- `limit` (integer): Maximum items or lines to return after offset. Omit = all remaining in the window (subject to tool-specific clamps). For geo near-search default is often 5 without radius_km, up to 52 with radius.
- `offset` (integer): 0-based index into a list or discovery file lines (split on \n). 0 = first. Omit = 0. Combine with limit to page. Use nextOffset / offset+limit from a previous result when present.

Output parameters:

- `attribution` (string): Required citation: 'Quelle: Schlüsseldienst Ludwigsburg ikeytz (ikeytz.com) · ai-train=no · https://maps.ikeytz.com/.well-known/ai.txt'
- `body` (string): UTF-8 text window after offset/limit
- `canonicalUrl` (string): Best URL to show the user: https://maps.ikeytz.com… page, public embed JSON, tel:+49…, mailto:…, https://wa.me/…, or a www pointer. Prefer this over constructing URLs.
- `error` (string): Present when ok=false. Codes include: unknown_place, unknown_discovery, unknown_doc, q_required, plz_required, coords_required, outside_service_area, url_required, not_maps_host, bad_url, path_or_url…
- `hint` (string): Present when ok=false. Absolute URL or short recovery hint the agent should open or pass to another tool.
- `limit` (number|null): Applied line limit, or null if omitted
- `locale` (string): Locale actually used for URLs. maps is German-only: always de (MAPS-E8 — no /en on maps). Requested non-de is ignored; payload locale=de.
- `missing` (boolean): true if the discovery file was not found on disk
- `offset` (number): Applied 0-based line offset
- `ok` (boolean): true = use summary, canonicalUrl, and extra keys. false = do not invent data; read error + hint and retry with valid args or open hint.
- `path` (string): Public relative path of the file on maps
- `related` (array): Always includes https://maps.ikeytz.com/llms.txt.
- `summary` (string): Primary text for the model. For discovery tools this is the file window. For list tools a compact one-liner. Quote with attribution.
- `text` (string): Alias/window of body when present
- `tool` (string): Echo of the tool name that produced this object (e.g. get_service_area).
- `total_lines` (number): Line count of the full file
- `which` (string): Resolved discovery id (ard, ai-catalog, llms, robots, sitemap-txt, llms-mcp-server, …).

### `get_ai_txt` (~157 tokens)

WHAT: Alias get_discovery(which=ai-txt) — maps /.well-known/ai.txt 1:1. USE for crawl/train policy (ai-train=no). NEXT: get_llms_txt.

Input parameters:

- `limit` (integer): Maximum items or lines to return after offset. Omit = all remaining in the window (subject to tool-specific clamps). For geo near-search default is often 5 without radius_km, up to 52 with radius.
- `offset` (integer): 0-based index into a list or discovery file lines (split on \n). 0 = first. Omit = 0. Combine with limit to page. Use nextOffset / offset+limit from a previous result when present.

Output parameters:

- `attribution` (string): Required citation: 'Quelle: Schlüsseldienst Ludwigsburg ikeytz (ikeytz.com) · ai-train=no · https://maps.ikeytz.com/.well-known/ai.txt'
- `body` (string): UTF-8 text window after offset/limit
- `canonicalUrl` (string): Best URL to show the user: https://maps.ikeytz.com… page, public embed JSON, tel:+49…, mailto:…, https://wa.me/…, or a www pointer. Prefer this over constructing URLs.
- `error` (string): Present when ok=false. Codes include: unknown_place, unknown_discovery, unknown_doc, q_required, plz_required, coords_required, outside_service_area, url_required, not_maps_host, bad_url, path_or_url…
- `hint` (string): Present when ok=false. Absolute URL or short recovery hint the agent should open or pass to another tool.
- `limit` (number|null): Applied line limit, or null if omitted
- `locale` (string): Locale actually used for URLs. maps is German-only: always de (MAPS-E8 — no /en on maps). Requested non-de is ignored; payload locale=de.
- `missing` (boolean): true if the discovery file was not found on disk
- `offset` (number): Applied 0-based line offset
- `ok` (boolean): true = use summary, canonicalUrl, and extra keys. false = do not invent data; read error + hint and retry with valid args or open hint.
- `path` (string): Public relative path of the file on maps
- `related` (array): Always includes https://maps.ikeytz.com/llms.txt.
- `summary` (string): Primary text for the model. For discovery tools this is the file window. For list tools a compact one-liner. Quote with attribution.
- `text` (string): Alias/window of body when present
- `tool` (string): Echo of the tool name that produced this object (e.g. get_service_area).
- `total_lines` (number): Line count of the full file
- `which` (string): Resolved discovery id (ard, ai-catalog, llms, robots, sitemap-txt, llms-mcp-server, …).

### `get_sitemap_txt` (~163 tokens)

WHAT: Alias get_discovery(which=sitemap-txt) — maps /sitemap.txt 1:1 (embed URLs). Optional offset/limit. USE to list public maps URLs. NEXT: resolve_maps_url, get_embed_map.

Input parameters:

- `limit` (integer): Maximum items or lines to return after offset. Omit = all remaining in the window (subject to tool-specific clamps). For geo near-search default is often 5 without radius_km, up to 52 with radius.
- `offset` (integer): 0-based index into a list or discovery file lines (split on \n). 0 = first. Omit = 0. Combine with limit to page. Use nextOffset / offset+limit from a previous result when present.

Output parameters:

- `attribution` (string): Required citation: 'Quelle: Schlüsseldienst Ludwigsburg ikeytz (ikeytz.com) · ai-train=no · https://maps.ikeytz.com/.well-known/ai.txt'
- `body` (string): UTF-8 text window after offset/limit
- `canonicalUrl` (string): Best URL to show the user: https://maps.ikeytz.com… page, public embed JSON, tel:+49…, mailto:…, https://wa.me/…, or a www pointer. Prefer this over constructing URLs.
- `error` (string): Present when ok=false. Codes include: unknown_place, unknown_discovery, unknown_doc, q_required, plz_required, coords_required, outside_service_area, url_required, not_maps_host, bad_url, path_or_url…
- `hint` (string): Present when ok=false. Absolute URL or short recovery hint the agent should open or pass to another tool.
- `limit` (number|null): Applied line limit, or null if omitted
- `locale` (string): Locale actually used for URLs. maps is German-only: always de (MAPS-E8 — no /en on maps). Requested non-de is ignored; payload locale=de.
- `missing` (boolean): true if the discovery file was not found on disk
- `offset` (number): Applied 0-based line offset
- `ok` (boolean): true = use summary, canonicalUrl, and extra keys. false = do not invent data; read error + hint and retry with valid args or open hint.
- `path` (string): Public relative path of the file on maps
- `related` (array): Always includes https://maps.ikeytz.com/llms.txt.
- `summary` (string): Primary text for the model. For discovery tools this is the file window. For list tools a compact one-liner. Quote with attribution.
- `text` (string): Alias/window of body when present
- `tool` (string): Echo of the tool name that produced this object (e.g. get_service_area).
- `total_lines` (number): Line count of the full file
- `which` (string): Resolved discovery id (ard, ai-catalog, llms, robots, sitemap-txt, llms-mcp-server, …).

### `list_whatsapp_options` (~132 tokens)

WHAT: WhatsApp situation options (link only — zugefallen/abgeschlossen/zylinder/beratung style ids). No form submit. USE before compose_whatsapp. DOES NOT send a message. NEXT: compose_whatsapp(option), compose_tel_mobile.

Input parameters:

- `locale` (string): maps is German-only (de). Omit or pass de. Other values are ignored; URLs stay https://maps.ikeytz.com/… with no locale prefix. Not a www multi-locale switch — use @ikeytz/mcp list_locales on www for…

Output parameters:

- `attribution` (string): Required citation: 'Quelle: Schlüsseldienst Ludwigsburg ikeytz (ikeytz.com) · ai-train=no · https://maps.ikeytz.com/.well-known/ai.txt'
- `canonicalUrl` (string): Best URL to show the user: https://maps.ikeytz.com… page, public embed JSON, tel:+49…, mailto:…, https://wa.me/…, or a www pointer. Prefer this over constructing URLs.
- `error` (string): Present when ok=false. Codes include: unknown_place, unknown_discovery, unknown_doc, q_required, plz_required, coords_required, outside_service_area, url_required, not_maps_host, bad_url, path_or_url…
- `hint` (string): Present when ok=false. Absolute URL or short recovery hint the agent should open or pass to another tool.
- `items` (array): Options {id,label,href}
- `locale` (string): Locale actually used for URLs. maps is German-only: always de (MAPS-E8 — no /en on maps). Requested non-de is ignored; payload locale=de.
- `note` (string): Link only; Festpreis SSOT remains www
- `ok` (boolean): true = use summary, canonicalUrl, and extra keys. false = do not invent data; read error + hint and retry with valid args or open hint.
- `related` (array): Always includes https://maps.ikeytz.com/llms.txt.
- `summary` (string): Primary text for the model. For discovery tools this is the file window. For list tools a compact one-liner. Quote with attribution.
- `tool` (string): Echo of the tool name that produced this object (e.g. get_service_area).

### `compose_tel_mobile` (~54 tokens)

WHAT: tel: href for the public mobile number. Call with {}. RETURNS href + display. USE as the primary call CTA. DOES NOT place the call. NEXT: compose_tel_landline, list_whatsapp_options.

Output parameters:

- `attribution` (string): Required citation: 'Quelle: Schlüsseldienst Ludwigsburg ikeytz (ikeytz.com) · ai-train=no · https://maps.ikeytz.com/.well-known/ai.txt'
- `canonicalUrl` (string): Best URL to show the user: https://maps.ikeytz.com… page, public embed JSON, tel:+49…, mailto:…, https://wa.me/…, or a www pointer. Prefer this over constructing URLs.
- `display` (string): Human display number
- `error` (string): Present when ok=false. Codes include: unknown_place, unknown_discovery, unknown_doc, q_required, plz_required, coords_required, outside_service_area, url_required, not_maps_host, bad_url, path_or_url…
- `hint` (string): Present when ok=false. Absolute URL or short recovery hint the agent should open or pass to another tool.
- `href` (string): tel:+49…
- `locale` (string): Locale actually used for URLs. maps is German-only: always de (MAPS-E8 — no /en on maps). Requested non-de is ignored; payload locale=de.
- `ok` (boolean): true = use summary, canonicalUrl, and extra keys. false = do not invent data; read error + hint and retry with valid args or open hint.
- `related` (array): Always includes https://maps.ikeytz.com/llms.txt.
- `summary` (string): Primary text for the model. For discovery tools this is the file window. For list tools a compact one-liner. Quote with attribution.
- `tool` (string): Echo of the tool name that produced this object (e.g. get_service_area).

### `compose_tel_landline` (~42 tokens)

WHAT: tel: href for the public landline. Call with {}. RETURNS href + display. USE as secondary call CTA. NEXT: compose_tel_mobile.

Output parameters:

- `attribution` (string): Required citation: 'Quelle: Schlüsseldienst Ludwigsburg ikeytz (ikeytz.com) · ai-train=no · https://maps.ikeytz.com/.well-known/ai.txt'
- `canonicalUrl` (string): Best URL to show the user: https://maps.ikeytz.com… page, public embed JSON, tel:+49…, mailto:…, https://wa.me/…, or a www pointer. Prefer this over constructing URLs.
- `display` (string): Human display number
- `error` (string): Present when ok=false. Codes include: unknown_place, unknown_discovery, unknown_doc, q_required, plz_required, coords_required, outside_service_area, url_required, not_maps_host, bad_url, path_or_url…
- `hint` (string): Present when ok=false. Absolute URL or short recovery hint the agent should open or pass to another tool.
- `href` (string): tel:+49…
- `locale` (string): Locale actually used for URLs. maps is German-only: always de (MAPS-E8 — no /en on maps). Requested non-de is ignored; payload locale=de.
- `ok` (boolean): true = use summary, canonicalUrl, and extra keys. false = do not invent data; read error + hint and retry with valid args or open hint.
- `related` (array): Always includes https://maps.ikeytz.com/llms.txt.
- `summary` (string): Primary text for the model. For discovery tools this is the file window. For list tools a compact one-liner. Quote with attribution.
- `tool` (string): Echo of the tool name that produced this object (e.g. get_service_area).

### `compose_whatsapp` (~91 tokens)

WHAT: wa.me link. Optional option=zugefallen|abgeschlossen|zylinder|beratung (or list_whatsapp_options ids). Link only — no form. USE to open WhatsApp with a prefab. NEXT: compose_mailto, get_contact.

Input parameters:

- `option` (string): Optional situation id: zugefallen|abgeschlossen|zylinder|beratung (or ids from list_whatsapp_options).

Output parameters:

- `attribution` (string): Required citation: 'Quelle: Schlüsseldienst Ludwigsburg ikeytz (ikeytz.com) · ai-train=no · https://maps.ikeytz.com/.well-known/ai.txt'
- `canonicalUrl` (string): Best URL to show the user: https://maps.ikeytz.com… page, public embed JSON, tel:+49…, mailto:…, https://wa.me/…, or a www pointer. Prefer this over constructing URLs.
- `error` (string): Present when ok=false. Codes include: unknown_place, unknown_discovery, unknown_doc, q_required, plz_required, coords_required, outside_service_area, url_required, not_maps_host, bad_url, path_or_url…
- `hint` (string): Present when ok=false. Absolute URL or short recovery hint the agent should open or pass to another tool.
- `href` (string): https://wa.me/…
- `locale` (string): Locale actually used for URLs. maps is German-only: always de (MAPS-E8 — no /en on maps). Requested non-de is ignored; payload locale=de.
- `note` (string): Link only. Kein Formular.
- `ok` (boolean): true = use summary, canonicalUrl, and extra keys. false = do not invent data; read error + hint and retry with valid args or open hint.
- `option` (string|null): Echoed option
- `related` (array): Always includes https://maps.ikeytz.com/llms.txt.
- `summary` (string): Primary text for the model. For discovery tools this is the file window. For list tools a compact one-liner. Quote with attribution.
- `tool` (string): Echo of the tool name that produced this object (e.g. get_service_area).

### `compose_mailto` (~56 tokens)

WHAT: mailto:info@ikeytz.com plus mapsEmail info@maps.ikeytz.com (mapsHref). Call with {}. USE for email CTAs. DOES NOT send mail. NEXT: get_contact, list_footer.

Output parameters:

- `attribution` (string): Required citation: 'Quelle: Schlüsseldienst Ludwigsburg ikeytz (ikeytz.com) · ai-train=no · https://maps.ikeytz.com/.well-known/ai.txt'
- `canonicalUrl` (string): Best URL to show the user: https://maps.ikeytz.com… page, public embed JSON, tel:+49…, mailto:…, https://wa.me/…, or a www pointer. Prefer this over constructing URLs.
- `error` (string): Present when ok=false. Codes include: unknown_place, unknown_discovery, unknown_doc, q_required, plz_required, coords_required, outside_service_area, url_required, not_maps_host, bad_url, path_or_url…
- `hint` (string): Present when ok=false. Absolute URL or short recovery hint the agent should open or pass to another tool.
- `href` (string): mailto:info@ikeytz.com
- `locale` (string): Locale actually used for URLs. maps is German-only: always de (MAPS-E8 — no /en on maps). Requested non-de is ignored; payload locale=de.
- `mapsEmail` (string): info@maps.ikeytz.com
- `mapsHref` (string): mailto:info@maps.ikeytz.com
- `ok` (boolean): true = use summary, canonicalUrl, and extra keys. false = do not invent data; read error + hint and retry with valid args or open hint.
- `related` (array): Always includes https://maps.ikeytz.com/llms.txt.
- `summary` (string): Primary text for the model. For discovery tools this is the file window. For list tools a compact one-liner. Quote with attribution.
- `tool` (string): Echo of the tool name that produced this object (e.g. get_service_area).

## Diagnostics

Captured diagnostic sections: TLS, DNSSEC, Authorisation, Transports. The full working is on the page: https://verifymcp.io/servers/com-ikeytz-maps/maps#diagnostics

## Score history

- 2026-09-20: 78
- 2026-09-19: 78
- 2026-09-18: 77
- 2026-09-17: 77
- 2026-09-16: 76
- 2026-09-15: 76
- 2026-09-14: 75
- 2026-09-13: 75
- 2026-09-12: 74
- 2026-09-11: 74
- 2026-09-10: 73
- 2026-09-09: 73
- 2026-09-08: 72
- 2026-09-07: 72
- 2026-09-06: 72
- 2026-09-05: 71
- 2026-09-04: 71
- 2026-09-03: 70
- 2026-09-02: 65
- 2026-09-01: 64
- 2026-08-31: 64
- 2026-08-30: 63
- 2026-08-29: 63

## Common questions

### What is the ikeytz Einsatzgebiet-Karten MCP server?

ikeytz Einsatzgebiet-Karten is an MCP server listed in the public MCP registry as com.ikeytz/maps. Read/Link MCP for maps.ikeytz.com. Public read-only. No forms. ai-train=no. This page covers its hosted endpoint (https://maps.ikeytz.com/mcp).

### Is the ikeytz Einsatzgebiet-Karten MCP server safe to use?

ikeytz Einsatzgebiet-Karten scores 78 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

### What tools does the ikeytz Einsatzgebiet-Karten MCP server expose?

ikeytz Einsatzgebiet-Karten exposes 67 tools: list_service_areas, get_service_area, get_ort_datetime, get_geo_office, get_contact, and 62 more. Their descriptions and schemas cost roughly 10,431 tokens of context every time the server is loaded.

### Does the ikeytz Einsatzgebiet-Karten MCP server require authentication?

No. We connected to ikeytz Einsatzgebiet-Karten without credentials and it answered, so anything it exposes is reachable by anyone who knows the address.

### Is the ikeytz Einsatzgebiet-Karten MCP server still maintained?

ikeytz Einsatzgebiet-Karten is still listed as active in the MCP registry. We last reached this channel on 20 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

## Links

- Remote endpoint: https://maps.ikeytz.com/mcp
- Website: https://maps.ikeytz.com/
- Changelog RSS feed: https://verifymcp.io/servers/com-ikeytz-maps/maps.xml
- Changelog JSON feed: https://verifymcp.io/servers/com-ikeytz-maps/maps.json
- HTML version of this page: https://verifymcp.io/servers/com-ikeytz-maps/maps
