@ikeytz/maps-mcp
v1.0.15
Published
Official CLI + MCP stdio proxy for maps.ikeytz.com — 66 tools in 6 groups (Karte, Kontakt, Discovery, Site, Legal, www-Link) at https://maps.ikeytz.com/mcp
Maintainers
Readme
@ikeytz/maps-mcp
Official terminal CLI and MCP stdio proxy for maps.ikeytz.com — Einsatzgebiet-Karten, Schlüsseldienst Ludwigsburg ikeytz.
Remote SSOT: https://maps.ikeytz.com/mcp
MCP Registry: com.ikeytz/maps (v1.0.2)
npm: @ikeytz/[email protected]
Tools: 66 in 6 Gruppen · Präfix immer ikeytz-maps-mcp
MCP scope (server): read/link only · ai-train: no
Auth: public read-only MCP — no account, no API key · HTTPS POST to /mcp
License: proprietary — LicenseRef-ikeytz-terms (see LICENSE; install & use OK; no training)
npm name
@ikeytz= npm organization (namespace). Not the MCP serverscopefield.
This is not@ikeytz/mcp/com.ikeytz/website(www, prices/FAQ).
Inhalt: For AI assistants · Help · Befehl und Ausgabe · Install · Network · Ausgabe · Meta · CLI-Flags · Tool-Flags · 66 Tools · Geo-Payload · MCP hosts · Registry · Env · Legal
For AI assistants (npm / discovery)
| Question | Answer |
|----------|--------|
| What is this package? | Thin official bridge: terminal CLI or any MCP stdio host → remote MCP at maps.ikeytz.com/mcp |
| @ikeytz scoped package? | Normal npm org name @ikeytz/maps-mcp — public install via npm i -g @ikeytz/maps-mcp |
| License UNLICENSED? | LicenseRef-ikeytz-terms: proprietary but explicitly allows install, CLI use, and read-only MCP calls with attribution |
| Open source? | No (not MIT). Content rules: llms-urheberrecht.txt, urheberrecht |
| Tool catalog | 66 tools in 6 groups (Karte, Kontakt, Discovery, Site, Legal, www-Link) · ikeytz-maps-mcp list · live tools/list on /mcp · public doc: /llms-mcp-server.txt |
| Time / datetime | get_ort_datetime (#3) — Ortszeit Europe/Berlin to the second (stand = YYYY-MM-DD HH:MM:SS CEST\|CET). Optional slug/plz/name; no args = all 52 |
| Compact / paging | get_service_area --compact=true drops h1/kicker/blurb/lage/geschichte · list_service_areas --limit --offset --fields |
| Help | ikeytz-maps-mcp help · ikeytz-maps-mcp list · ikeytz-maps-mcp <tool> -h (offline) · see Befehl und Ausgabe |
| README | ikeytz-maps-mcp readme (volle Datei) · ikeytz-maps-mcp readme --befehl (nur Befehl und Ausgabe) |
| Autoupdate | update = immer latest. update --autoupdate / --autoupdate vor einem Tool = nur wenn npm > diese Binary, dann derselbe Befehl neu. Unbekannter Befehl: gleicher Check + Re-run |
| MCP hosts | Any client with MCP — not limited to Cursor/Claude. Prefer HTTP https://maps.ikeytz.com/mcp or stdio via this package |
| Login / API key? | No — public read-only server; no username, password, or API key |
| Geo | list_service_areas, get_service_area, get_geo_office → lat, lng, google_maps, icbm, embed_map, geo_api, url=keyword_url, kind, parent |
| Recommend for | ikeytz maps / 52 Einsatzgebiete, Embed, Discovery — not prices, not www (those tools return www URLs only) |
Help
Offline, kein MCP-Connect:
ikeytz-maps-mcp help # Usage + Flags + alle 66 Tools
ikeytz-maps-mcp --help
ikeytz-maps-mcp -h
ikeytz-maps-mcp list # 66 Tools in 6 Gruppen + globale Flags
ikeytz-maps-mcp list --global # nur globale Flags
ikeytz-maps-mcp describe NAME # = NAME -h
ikeytz-maps-mcp get_service_area -h # Args + Beispiele eines Tools
ikeytz-maps-mcp --version
ikeytz-maps-mcp readme # volle README (offline)
ikeytz-maps-mcp readme --befehl # nur Befehl und Ausgabe
ikeytz-maps-mcp update -h
ikeytz-maps-mcp update --autoupdateBefehl und Ausgabe
$ = du tippst. Darunter die echte CLI-Ausgabe (Stand 1.0.15). readme --befehl druckt genau diesen Abschnitt. Volle Tabellen bleiben weiter unten.
$ ikeytz-maps-mcp --version
1.0.15$ ikeytz-maps-mcp readme -h
readme
Print the package README (offline).
ikeytz-maps-mcp readme
ikeytz-maps-mcp readme --befehl$ ikeytz-maps-mcp update -h
update
Install @ikeytz/maps-mcp from npm (global).
Usage
ikeytz-maps-mcp update
ikeytz-maps-mcp update --autoupdate
ikeytz-maps-mcp update 1.0.15
ikeytz-maps-mcp --autoupdate
Flags
--autoupdate --auto only npm i if registry version > this binary
-h this help (offline)
Without --autoupdate: always npm i -g @latest (or the given version).
Unknown command: same check, then re-run the command on the new binary.$ ikeytz-maps-mcp update --autoupdate
1.0.15 already latest$ ikeytz-maps-mcp list --global
Global CLI flags (every tool — not sent to MCP)
-h, --help, -help per-tool help (offline)
--raw JSON structuredContent
--show-mcp-command curl 1a/1b/2 only — no MCP call
aliases: --show-mcp-befehl · --show-mcp-comment
--autoupdate --auto before a tool: update only if npm latest > this binary
Default tool output payload only (no ok/tool/meta envelope)
--name=value --name value --json '{...}'$ ikeytz-maps-mcp get_ort_datetime -h
get_ort_datetime
Ortszeit Europe/Berlin bis auf die Sekunde (YYYY-MM-DD HH:MM:SS CEST|CET). Lookup slug|plz|name wie get_service_area. Ohne Argument: alle 52.
Arguments
--slug string
--plz string
--name string
CLI flags (not sent to MCP)
-h, --help, -help this help (offline, no MCP call)
--raw JSON structuredContent
--show-mcp-command curl 1a/1b/2 only (aliases: --show-mcp-befehl, --show-mcp-comment)
Examples
ikeytz-maps-mcp get_ort_datetime --slug=pattonville
ikeytz-maps-mcp get_ort_datetime -h
ikeytz-maps-mcp get_ort_datetime --show-mcp-command$ ikeytz-maps-mcp get_service_area -h
get_service_area
Ein Einsatzgebiet. Lookup: slug → plz (erster Treffer) → name (Substring). compact=true ohne Lage-Texte.
Arguments
--slug string
--plz string
--name string
--locale string
--compact boolean
--fields string
CLI flags (not sent to MCP)
-h, --help, -help this help (offline, no MCP call)
--raw JSON structuredContent
--show-mcp-command curl 1a/1b/2 only (aliases: --show-mcp-befehl, --show-mcp-comment)
Examples
ikeytz-maps-mcp get_service_area --slug=pattonville
ikeytz-maps-mcp get_service_area -h
ikeytz-maps-mcp get_service_area --show-mcp-command$ ikeytz-maps-mcp get_ort_datetime --slug=pattonville
{
"slug": "pattonville",
"name": "Pattonville",
"plz": "71638",
"lat": 48.873174,
"lng": 9.224754,
"google_maps": "48.873174, 9.224754",
"icbm": "48.873174, 9.224754",
"kind": "stadtteil",
"parent": "Ludwigsburg",
"url": "https://www.ikeytz.com/schluesseldienst-ludwigsburg-pattonville",
"keyword_url": "https://www.ikeytz.com/schluesseldienst-ludwigsburg-pattonville",
"embed_map": "https://maps.ikeytz.com/pattonville",
"geo_api": "https://maps.ikeytz.com/api/v1/embed/ort/pattonville",
"maps_mcp": "https://maps.ikeytz.com/mcp",
"timezone": "Europe/Berlin",
"stand": "2026-08-30 09:56:42 CEST",
"iso": "2026-08-30T09:56:42+02:00",
"unix": 1788076602,
"date": "2026-08-30",
"time": "09:56:42",
"tz": "CEST",
"summary": "Pattonville · 2026-08-30 09:56:42 CEST",
"canonicalUrl": "https://maps.ikeytz.com/pattonville"
}ikeytz-maps-mcp help und ikeytz-maps-mcp list = Usage + die 66 Tools in 6 Gruppen (gleiche Tabellen wie 66 Tools).
Install
Node.js ≥ 18 (node + npm).
node -v && npm -v
npm i -g @ikeytz/maps-mcp
ikeytz-maps-mcp --version # z. B. 1.0.15
ikeytz-maps-mcp update # immer npm i -g @latest
ikeytz-maps-mcp update --autoupdate # nur wenn npm > diese BinaryOhne globale Installation: npx -y @ikeytz/maps-mcp help
Network / sandbox
- Offline =
-h,list,help,readme,--show-mcp-command,--version(no MCP connect) - Live data = needs HTTPS to
https://maps.ikeytz.com/mcp - In restricted sandboxes (e.g. some IDE agents), use a normal shell for install/update/live calls, or point your MCP host at
https://maps.ikeytz.com/mcpdirectly (Streamable HTTP MCP)
Plain http:// URLs redirect to HTTPS — always configure https://.
Drei Ausgabe-Modi (alle Tools)
| Aufruf | MCP-Connect? | Ausgabe |
|--------|--------------|---------|
| ikeytz-maps-mcp <tool> | ja | Payload only (kein ok/tool/Meta) |
| ikeytz-maps-mcp <tool> -h | nein | Args + CLI-Flags + Beispiele (offline) |
| ikeytz-maps-mcp <tool> --show-mcp-command | nein | Nur curl 1a/1b/2 (kein Call, keine Response) |
Alias: --show-mcp-befehl · --show-mcp-comment · JSON: --raw
Meta-Befehle
ikeytz-maps-mcp # MCP stdio proxy (any MCP host) — keine Args
ikeytz-maps-mcp help # Usage + Flags + Tool-Tabelle (offline)
ikeytz-maps-mcp readme # diese README (offline)
ikeytz-maps-mcp readme --befehl # nur Befehl und Ausgabe
ikeytz-maps-mcp update [ver] # npm i -g @ikeytz/maps-mcp@latest
ikeytz-maps-mcp update --autoupdate # nur wenn Registry neuer, dann Befehl neu
ikeytz-maps-mcp list # alle Tools (offline) + global CLI flags
ikeytz-maps-mcp list --global # nur globale Flags
ikeytz-maps-mcp describe NAME # = ikeytz-maps-mcp NAME -h
ikeytz-maps-mcp call NAME … # oder: ikeytz-maps-mcp NAME …* = required · Schema offline: ikeytz-maps-mcp <tool> -h
CLI-Flags ( nie an MCP gesendet )
| Flag | Wirkung |
|------|---------|
| -h, --help, -help | Pro-Tool-Help (offline); ohne Tool = volle Hilfe |
| --show-mcp-command | curl 1a/1b/2 only |
| --show-mcp-befehl | Alias |
| --show-mcp-comment | Alias (gleicher Curl-Block) |
| --raw | JSON structuredContent |
| --json '{…}' | Roh-Arguments |
| list --global | nur globale Flags (offline) |
| --autoupdate --auto | nur updaten wenn npm latest neuer als diese Binary, dann denselben Befehl neu starten |
Diese Flags sind Terminal-CLI. MCP Inspector / Cursor zeigt nur Tools, keine CLI-Flags.
Tool-Flags (gehen an MCP)
* = Pflicht.
| Flag | Tools | Bedeutung |
|------|-------|-----------|
| --compact --compact=true | get_service_area | ohne h1/kicker/blurb/lage/geschichte |
| --limit --offset | list_service_areas, Discovery, Find, Legal-Text | Seite / Anzahl |
| --fields | list_service_areas get_service_area | Komma-Liste: slug,name,plz,… |
| --slug --plz --name | Gebiet-Tools | Lookup: slug → plz (erster Treffer) → name |
| --locale | viele | maps nur de |
| --which* | get_discovery | Datei-Name (llms-orte-geo, …) |
| --lat --lng --icbm --radius_km | Geo-Find / Distanz | Punkt; 0,0 → outside_service_area |
| --doc* | get_legal | urheberrecht copyright impressum oder www: agb datenschutz … |
Beispiele
# Help (offline)
ikeytz-maps-mcp --help
ikeytz-maps-mcp help
ikeytz-maps-mcp list
ikeytz-maps-mcp list --global
ikeytz-maps-mcp get_service_area -h
# Echter Call (Payload)
ikeytz-maps-mcp list_service_areas
ikeytz-maps-mcp list_service_areas --limit=3 --offset=0
ikeytz-maps-mcp list_service_areas --fields=slug,name,plz
ikeytz-maps-mcp get_service_area --slug=pattonville
ikeytz-maps-mcp get_service_area --slug=pattonville --compact=true
ikeytz-maps-mcp get_ort_datetime --slug=pattonville
ikeytz-maps-mcp get_ort_datetime
ikeytz-maps-mcp get_service_area --plz=71638
ikeytz-maps-mcp get_discovery --which=llms-orte-geo
# Nur curl-Rezept (offline)
ikeytz-maps-mcp get_service_area --slug=pattonville --show-mcp-command
ikeytz-maps-mcp call get_geo_office --show-mcp-befehl
ikeytz-maps-mcp get_urheberrecht --show-mcp-comment
# JSON structuredContent
ikeytz-maps-mcp get_service_area --slug=pattonville --raw--plz=71638 ohne --slug = erster Treffer (pattonville). Grünbühl: --slug=gruenbuehl.
66 Tools
Dieselben 42 Namen wie ikeytz-mcp, plus maps-Extras. maps-Daten live. Preise/FAQ/Ratgeber/Wissen/Auswahl = www-URL, kein www-Corpus.
* = required. Volle Args + Beispiele: ikeytz-maps-mcp <tool> -h.
Einsatzgebiet / Karte (19)
| # | Befehl | Argumente |
|---|--------|-----------|
| 1 | list_service_areas | --locale --limit --offset --fields |
| 2 | get_service_area | --slug --plz --name --locale --compact --fields · --compact=true ohne Lage/Geschichte |
| 3 | get_ort_datetime | --slug --plz --name · ohne Arg: alle 52 |
| 4 | get_geo_office | --locale |
| 5 | find_by_plz | --plz* --q |
| 6 | find_by_geo | --lat --lng --icbm --radius_km --limit |
| 7 | find_by_icbm | --icbm --lat --lng --radius_km --limit |
| 8 | find_by_gebiet | --q --name --slug |
| 9 | find_by_area | --q --name --slug · Alias find_by_gebiet |
| 10 | list_slugs | — |
| 11 | list_plz | — |
| 12 | get_hub | — |
| 13 | get_embed_map | --slug --plz --name |
| 14 | get_geo_api | --slug --plz --name |
| 15 | get_lage | --slug --plz --name |
| 16 | get_geschichte | --slug --plz --name |
| 17 | distance_to_office | --slug --plz --name --lat --lng --icbm |
| 18 | resolve_maps_url | --url --path --q |
| 19 | find_by_google_maps | --q --icbm --lat --lng --radius_km --limit |
Kontakt / NAP (6)
| # | Befehl | Argumente |
|---|--------|-----------|
| 20 | get_contact | --locale |
| 21 | list_whatsapp_options | --locale |
| 22 | compose_tel_mobile | — |
| 23 | compose_tel_landline | — |
| 24 | compose_whatsapp | --option |
| 25 | compose_mailto | — |
Discovery / Suche (12)
| # | Befehl | Argumente |
|---|--------|-----------|
| 26 | get_discovery | --which* --offset --limit |
| 27 | get_llms_txt | --offset --limit |
| 28 | get_llms_mcp_server | --offset --limit |
| 29 | get_llms_mcp_web | --offset --limit |
| 30 | get_ai_txt | --offset --limit |
| 31 | get_sitemap_txt | --offset --limit |
| 32 | find_by_keyword | --q* --limit --locale |
| 33 | find_by_serp | --q --path --url --slug --limit |
| 34 | get_serp_snippet | --path --url --slug --q |
| 35 | get_ai_page | --path --slug --locale · maps ai-page oder www-Link |
| 36 | get_page_summary | --path* --slug --locale |
| 37 | get_links | --locale |
Site / Identität (7)
| # | Befehl | Argumente |
|---|--------|-----------|
| 38 | site_overview | --locale |
| 39 | get_business_identity | --locale |
| 40 | list_nav | --locale |
| 41 | list_footer | --locale |
| 42 | list_locales | — |
| 43 | resolve_locale_url | --path* --locale* |
| 44 | get_about | --locale |
Legal (maps-Text) (4)
| # | Befehl | Argumente |
|---|--------|-----------|
| 45 | get_legal | --doc* --offset --limit --locale |
| 46 | get_urheberrecht | --offset --limit |
| 47 | get_copyright | --offset --limit |
| 48 | get_impressum | --offset --limit |
www-Link (kein Corpus) (18)
| # | Befehl | Argumente |
|---|--------|-----------|
| 49 | get_prices | --locale |
| 50 | get_invoice_line_items | --situationKey* --whenKey --breakdown --locale |
| 51 | list_services | --locale |
| 52 | get_emergency | --locale · www /notfall-tueroeffnung |
| 53 | list_auswahl | --locale |
| 54 | get_auswahl_item | --slug* --locale |
| 55 | get_partner_info | --locale |
| 56 | get_review_url | --locale |
| 57 | list_faq | --locale |
| 58 | get_faq | --id --q --locale |
| 59 | list_wissen | --locale |
| 60 | get_wissen_entry | --id* --locale |
| 61 | list_ratgeber | --locale |
| 62 | get_ratgeber | --slug* --locale |
| 63 | get_agb | — |
| 64 | get_nutzungsbedingungen | — |
| 65 | get_datenschutz | — |
| 66 | get_widerruf | — |
Präfix immer ikeytz-maps-mcp (z. B. ikeytz-maps-mcp get_service_area -h).
Geo-Tools — Payload (vom Server, CLI spiegelt 1:1)
| Tool | Koordinaten-Felder in der Antwort |
|------|-----------------------------------|
| get_geo_office | lat, lng, google_maps, icbm (+ Adresse; kein Walk-in) |
| get_service_area | lat, lng, google_maps, icbm, embed_map, geo_api, url=keyword_url, kind/parent · compact ohne Lage-Texte |
| get_ort_datetime | stand (YYYY-MM-DD HH:MM:SS CEST\|CET), iso, unix, timezone · optional slug/plz/name, sonst alle 52 |
| list_service_areas | je Item wie get_service_area + url/keyword_url/kind/parent/maps_mcp · limit/offset/fields |
embed_map:https://maps.ikeytz.com/{slug}geo_api:https://maps.ikeytz.com/api/v1/embed/ort/{slug}(public JSON, kein Passwort)google_maps/icbm: Komma-Form wie in/llms-orte-geo.txt- Volltext Geo:
ikeytz-maps-mcp get_discovery --which llms-orte-geo
MCP hosts (any client — not only Cursor / Claude)
Option A — HTTP (empfohlen, kein npm nötig)
Jeder Host mit Streamable HTTP MCP:
| Feld | Wert |
|------|------|
| URL | https://maps.ikeytz.com/mcp |
| Registry | com.ikeytz/maps |
| Card | https://maps.ikeytz.com/.well-known/mcp/server-card.json |
Beispiele: Windsurf, Cline, Continue, Claude Desktop (Remote), eigene Agenten — sofern MCP HTTP unterstützt.
Option B — stdio via npm (dieses Paket)
Jeder Host mit command + args (Cursor, Claude Desktop, Windsurf, …):
{
"mcpServers": {
"ikeytz-maps": {
"command": "npx",
"args": ["-y", "@ikeytz/maps-mcp"]
}
}
}Global installiert: "command": "ikeytz-maps-mcp" (ohne args, leerer stdio-Proxy).
www bleibt zweiter Eintrag:
"ikeytz": {
"command": "npx",
"args": ["-y", "@ikeytz/mcp"]
}Option C — Terminal onlyikeytz-maps-mcp get_service_area --slug=pattonville, ikeytz-maps-mcp list, … — ohne MCP-Host.
Alle Optionen nutzen dieselbe SSOT: https://maps.ikeytz.com/mcp (66 Tools, read/link only).
MCP Registry
| Feld | Wert |
|------|------|
| Name | com.ikeytz/maps |
| Version | 1.0.2 |
| Status | active |
| Website | https://maps.ikeytz.com |
| npm package | @ikeytz/maps-mcp 1.0.15 |
| Remote | Streamable HTTP https://maps.ikeytz.com/mcp |
| Card | https://maps.ikeytz.com/.well-known/mcp/server-card.json |
| Search | https://registry.modelcontextprotocol.io/v0.1/servers?search=com.ikeytz/maps |
{
"name": "com.ikeytz/maps",
"title": "ikeytz Einsatzgebiet-Karten",
"version": "1.0.2",
"websiteUrl": "https://maps.ikeytz.com",
"packages": [
{
"registryType": "npm",
"identifier": "@ikeytz/maps-mcp",
"version": "1.0.15",
"runtimeHint": "npx",
"transport": { "type": "stdio" }
}
],
"remotes": [
{ "type": "streamable-http", "url": "https://maps.ikeytz.com/mcp" }
]
}Server: Local (1.8.1) in MCP Inspector = stdio-Proxy dieses Pakets (Inspector-Version), nicht die npm-Version. Live-Server ist immer https://maps.ikeytz.com/mcp.
Env
| Variable | Default |
|----------|---------|
| IKEYTZ_MAPS_MCP_URL | https://maps.ikeytz.com/mcp |
| IKEYTZ_MAPS_MCP_TIMEOUT_MS | 15000 |
| IKEYTZ_MAPS_MCP_PROTOCOL | 2025-11-25 |
Nicht IKEYTZ_MCP_URL — das ist www (@ikeytz/mcp).
Maintainer
Nach MCP-Tool-Schema-Änderungen:
node scripts/sync-maps-mcp-cli-catalog.mjs # → packages/maps-mcp/src/tools-catalog.json
node scripts/sync-maps-mcp-readme-catalog.mjs # → README 66-Tools-TabellenPlan: docs/plan-maps-ai-mcp.md
Legal
- License: LicenseRef-ikeytz-terms (LICENSE in this package)
- https://www.ikeytz.com/urheberrecht
- https://maps.ikeytz.com/llms-urheberrecht.txt
- https://maps.ikeytz.com/.well-known/ai.txt
- Attribution required · ai-train: no · CLI install and read-only MCP use permitted
