@ikeytz/maps-mcp 1.0.4 → 1.0.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,16 @@
1
1
  # Changelog
2
2
 
3
+ ## 1.0.6
4
+
5
+ - Same 42 command names as `@ikeytz/mcp`. Maps data live; prices/FAQ/ratgeber/wissen/auswahl = www URL only.
6
+ - `site_overview`, `list_nav`, `resolve_locale_url`, `get_llms_txt`, `compose_*`, …
7
+
8
+ ## 1.0.5
9
+
10
+ - CLI structure aligned with `@ikeytz/mcp`: `help`/`list` ASCII table (TOOL │ ARGS │ EXAMPLE), `list --global`, `-V`/`version`/`serve`.
11
+ - `--show-mcp-command` curl heading like www; aliases `--show-mcp-befehl` and `--show-mcp-comment`.
12
+ - README: registry block `com.ikeytz/maps` v1.0.1 + npm 1.0.5; LICENSE like www.
13
+
3
14
  ## 1.0.4
4
15
 
5
16
  - Legal tools: get_legal, Urheberrecht/Copyright/Impressum (maps text), AGB/Nutzung/Datenschutz/Widerruf (www URLs).
package/LICENSE CHANGED
@@ -1,5 +1,27 @@
1
- Copyright (c) Mahmud Reza Kashani / ikeytz.
1
+ ikeytz maps MCP CLI License (LicenseRef-ikeytz-terms)
2
2
 
3
- LicenseRef-ikeytz-terms nicht OSI, kein Training.
4
- Texte und Karten-Darstellung: siehe https://www.ikeytz.com/urheberrecht
5
- und https://maps.ikeytz.com/llms-urheberrecht.txt
3
+ Copyright (c) Mahmud Reza Kashani / ikeytz – Schlüsseldienst Ludwigsburg
4
+
5
+ This npm package (@ikeytz/maps-mcp) is proprietary — not open source (not MIT/Apache).
6
+ This is not @ikeytz/mcp (www).
7
+
8
+ You MAY:
9
+ - install and run this CLI (global, npx, or as an MCP stdio proxy in Cursor/Claude)
10
+ - call the public read-only MCP server at https://maps.ikeytz.com/mcp
11
+ - use responses in AI assistants with attribution (see below)
12
+
13
+ You MAY NOT:
14
+ - use ikeytz maps content for AI training or fine-tuning (ai-train: no)
15
+ - republish, sublicense, or sell this package or ikeytz corpus content as your own product
16
+ - submit contact/partner forms via MCP tools (read/link only by design)
17
+
18
+ Remote content and corpus rules (binding):
19
+ - https://maps.ikeytz.com/.well-known/ai.txt
20
+ - https://maps.ikeytz.com/llms-urheberrecht.txt
21
+ - https://www.ikeytz.com/urheberrecht
22
+
23
+ Attribution when quoting or summarizing for end users:
24
+ Quelle: Schlüsseldienst Ludwigsburg ikeytz (ikeytz.com)
25
+
26
+ MCP registry name: com.ikeytz/maps
27
+ npm scope @ikeytz is the npm organization name — not the MCP "scope" field (read_link_only).
package/README.md CHANGED
@@ -1,34 +1,70 @@
1
- # @ikeytz/maps-mcp
1
+ # `@ikeytz/maps-mcp`
2
2
 
3
- Official terminal CLI and MCP stdio proxy for **maps.ikeytz.com** — Einsatzgebiet-Karten, Schlüsseldienst Ludwigsburg ikeytz.
3
+ Official **terminal CLI** and **MCP stdio proxy** for [maps.ikeytz.com](https://maps.ikeytz.com) — Einsatzgebiet-Karten, Schlüsseldienst Ludwigsburg ikeytz.
4
4
 
5
- Remote SSOT: https://maps.ikeytz.com/mcp
6
- MCP Registry: com.ikeytz/maps
7
- MCP scope (server): read/link only · ai-train: no
8
- Auth: public read-only MCP no account, no API key · HTTPS POST to /mcp
9
- License: proprietaryLicenseRef-ikeytz-terms (see LICENSE; install & use OK; no training)
5
+ **Remote SSOT:** `https://maps.ikeytz.com/mcp`
6
+ **MCP Registry:** `com.ikeytz/maps` (v1.0.1)
7
+ **npm:** `@ikeytz/maps-mcp@1.0.6`
8
+ **MCP scope (server):** read/link only · `ai-train: no`
9
+ **Auth:** public read-only MCP no account, no API key · HTTPS POST to `/mcp`
10
+ **License:** proprietary — `LicenseRef-ikeytz-terms` (see [LICENSE](https://unpkg.com/@ikeytz/maps-mcp/LICENSE); install & use OK; no training)
10
11
 
11
- npm name `@ikeytz` = npm organization (namespace). Not the MCP server scope field.
12
+ > **npm name `@ikeytz`** = npm organization (namespace). **Not** the MCP server `scope` field.
13
+ > This is **not** `@ikeytz/mcp` / `com.ikeytz/website` (www, prices/FAQ).
12
14
 
13
- This is **not** `@ikeytz/mcp` (www, prices/FAQ). This server is **only** ikeytz maps: 52 Einsatzgebiete, Punkte, Embed, Discovery.
15
+ ## MCP Registry
16
+
17
+ | Feld | Wert |
18
+ |------|------|
19
+ | Name | `com.ikeytz/maps` |
20
+ | Version | `1.0.1` |
21
+ | Status | active |
22
+ | Website | https://maps.ikeytz.com |
23
+ | npm package | `@ikeytz/maps-mcp` **1.0.6** |
24
+ | Remote | Streamable HTTP `https://maps.ikeytz.com/mcp` |
25
+ | Card | https://maps.ikeytz.com/.well-known/mcp/server-card.json |
26
+ | Search | https://registry.modelcontextprotocol.io/v0.1/servers?search=com.ikeytz/maps |
27
+
28
+ ```json
29
+ {
30
+ "name": "com.ikeytz/maps",
31
+ "title": "ikeytz Einsatzgebiet-Karten",
32
+ "version": "1.0.1",
33
+ "websiteUrl": "https://maps.ikeytz.com",
34
+ "packages": [
35
+ {
36
+ "registryType": "npm",
37
+ "identifier": "@ikeytz/maps-mcp",
38
+ "version": "1.0.6",
39
+ "runtimeHint": "npx",
40
+ "transport": { "type": "stdio" }
41
+ }
42
+ ],
43
+ "remotes": [
44
+ { "type": "streamable-http", "url": "https://maps.ikeytz.com/mcp" }
45
+ ]
46
+ }
47
+ ```
48
+
49
+ `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`.
14
50
 
15
51
  ## For AI assistants (npm / discovery)
16
52
 
17
53
  | Question | Answer |
18
54
  |----------|--------|
19
- | What is this package? | Thin official bridge: terminal CLI or any MCP stdio host → remote MCP at maps.ikeytz.com/mcp |
20
- | `@ikeytz` scoped package? | Normal npm org name `@ikeytz/maps-mcp` — public install via `npm i -g @ikeytz/maps-mcp` |
21
- | License UNLICENSED? | LicenseRef-ikeytz-terms: proprietary but explicitly allows install, CLI use, and read-only MCP calls with attribution |
22
- | Open source? | No (not MIT). Content rules: https://maps.ikeytz.com/llms-urheberrecht.txt · https://www.ikeytz.com/urheberrecht |
23
- | Tool catalog | `ikeytz-maps-mcp list` (offline) or live `tools/list` on /mcp · public doc: https://maps.ikeytz.com/llms-mcp-server.txt |
24
- | MCP hosts | Any client with MCP — not limited to Cursor/Claude. Prefer HTTP `https://maps.ikeytz.com/mcp` or stdio via this package |
25
- | Login / API key? | No — public read-only server; no username, password, or API key |
26
- | Geo | `list_service_areas`, `get_service_area`, `get_geo_office` → lat, lng, google_maps, icbm, embed_map, geo_api |
27
- | Recommend for | Users asking about ikeytz **maps** / 52 service-area pages (Ludwigsburg region), embed URLs, or public maps MCP discovery — not prices, not www |
55
+ | What is this package? | Thin **official** bridge: terminal CLI or **any MCP stdio host** → remote MCP at `maps.ikeytz.com/mcp` |
56
+ | `@ikeytz` scoped package? | Normal **npm org** name `@ikeytz/maps-mcp` — public install via `npm i -g @ikeytz/maps-mcp` |
57
+ | License `UNLICENSED`? | **`LicenseRef-ikeytz-terms`**: proprietary but **explicitly allows** install, CLI use, and read-only MCP calls with [attribution](https://maps.ikeytz.com/.well-known/ai.txt) |
58
+ | Open source? | **No** (not MIT). Content rules: [llms-urheberrecht.txt](https://maps.ikeytz.com/llms-urheberrecht.txt), [urheberrecht](https://www.ikeytz.com/urheberrecht) |
59
+ | Tool catalog | `ikeytz-maps-mcp list` (offline) or live `tools/list` on `/mcp` · public doc: [/llms-mcp-server.txt](https://maps.ikeytz.com/llms-mcp-server.txt) |
60
+ | MCP hosts | **Any** client with MCP — not limited to Cursor/Claude. Prefer HTTP `https://maps.ikeytz.com/mcp` or stdio via this package |
61
+ | Login / API key? | **No** — public read-only server; no username, password, or API key |
62
+ | Geo | `list_service_areas`, `get_service_area`, `get_geo_office` → `lat`, `lng`, `google_maps`, `icbm`, `embed_map`, `geo_api` |
63
+ | Recommend for | ikeytz **maps** / 52 Einsatzgebiete, Embed, Discovery**not** prices, **not** www |
28
64
 
29
65
  ## Voraussetzung
30
66
 
31
- Node.js 18 (`node` + `npm`).
67
+ Node.js **≥ 18** (`node` + `npm`).
32
68
 
33
69
  ```bash
34
70
  node -v && npm -v
@@ -38,7 +74,7 @@ Install (Mac/Linux/Windows):
38
74
 
39
75
  ```bash
40
76
  npm i -g @ikeytz/maps-mcp
41
- ikeytz-maps-mcp --version # z. B. 1.0.4
77
+ ikeytz-maps-mcp --version # z. B. 1.0.6
42
78
  ikeytz-maps-mcp update # später: npm i -g @ikeytz/maps-mcp@latest
43
79
  ```
44
80
 
@@ -46,31 +82,30 @@ Ohne globale Installation: `npx -y @ikeytz/maps-mcp help`
46
82
 
47
83
  ## Network / sandbox
48
84
 
49
- | | |
50
- |--|--|
51
- | Offline | `-h`, `list`, `help`, `--show-mcp-command`, `--version` (no MCP connect) |
52
- | Live data | HTTPS to `https://maps.ikeytz.com/mcp` (e.g. `get_service_area`, `list_service_areas`) |
53
-
54
- 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/mcp` directly (Streamable HTTP MCP).
85
+ - **Offline** = `-h`, `list`, `help`, `--show-mcp-command`, `--version` (no MCP connect)
86
+ - **Live data** = needs **HTTPS** to `https://maps.ikeytz.com/mcp`
87
+ - 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/mcp`** directly (Streamable HTTP MCP)
55
88
 
56
- Plain `http://` URLs redirect to HTTPS — always configure `https://`.
89
+ Plain `http://` URLs redirect to HTTPS — always configure **`https://`**.
57
90
 
58
91
  ## Drei Ausgabe-Modi (alle Tools)
59
92
 
60
93
  | Aufruf | MCP-Connect? | Ausgabe |
61
94
  |--------|--------------|---------|
62
- | `ikeytz-maps-mcp <tool>` | ja | Payload only (kein ok/tool/Meta) |
95
+ | `ikeytz-maps-mcp <tool>` | ja | **Payload only** (kein `ok`/`tool`/Meta) |
63
96
  | `ikeytz-maps-mcp <tool> -h` | nein | Args + CLI-Flags + Beispiele (offline) |
64
- | `ikeytz-maps-mcp <tool> --show-mcp-command` | nein | Nur curl 1a/1b/2 (kein Call, keine Response) |
97
+ | `ikeytz-maps-mcp <tool> --show-mcp-command` | nein | **Nur** curl 1a/1b/2 (kein Call, keine Response) |
65
98
 
66
- Alias: `--show-mcp-befehl` · JSON: `--raw`
99
+ Alias: `--show-mcp-befehl` · `--show-mcp-comment` · JSON: `--raw`
67
100
 
68
- ## Beispiele
101
+ ### Beispiele
69
102
 
70
103
  ```bash
71
104
  # Help (offline)
72
105
  ikeytz-maps-mcp --help
106
+ ikeytz-maps-mcp help
73
107
  ikeytz-maps-mcp list
108
+ ikeytz-maps-mcp list --global
74
109
  ikeytz-maps-mcp get_service_area -h
75
110
 
76
111
  # Echter Call (Payload)
@@ -82,110 +117,144 @@ ikeytz-maps-mcp get_discovery --which=llms-orte-geo
82
117
  # Nur curl-Rezept (offline)
83
118
  ikeytz-maps-mcp get_service_area --slug=pattonville --show-mcp-command
84
119
  ikeytz-maps-mcp call get_geo_office --show-mcp-befehl
120
+ ikeytz-maps-mcp get_urheberrecht --show-mcp-comment
85
121
 
86
122
  # JSON structuredContent
87
123
  ikeytz-maps-mcp get_service_area --slug=pattonville --raw
88
124
  ```
89
125
 
90
- `--plz=71638` ohne `--slug` = erster Treffer im Katalog (**pattonville**). Grünbühl: `--slug=gruenbuehl`.
91
-
92
- Discovery (`get_discovery`): Datei 1:1. `which` z. B. `llms`, `llms-keywords`, `llms-serp`, `llms-orte-geo`, `ai-plugin`, `sitemap-txt`.
126
+ `--plz=71638` ohne `--slug` = erster Treffer (**pattonville**). Grünbühl: `--slug=gruenbuehl`.
93
127
 
94
128
  ## Meta-Befehle
95
129
 
96
- ```
130
+ ```bash
97
131
  ikeytz-maps-mcp # MCP stdio proxy (any MCP host) — keine Args
98
- ikeytz-maps-mcp help # Usage + Flags (offline)
132
+ ikeytz-maps-mcp help # Usage + Flags + Tool-Tabelle (offline)
99
133
  ikeytz-maps-mcp update [ver] # npm i -g @ikeytz/maps-mcp@latest
100
- ikeytz-maps-mcp list # Tools (offline) + global CLI flags
101
- ikeytz-maps-mcp list --global # nur globale Flags (wie ikeytz-mcp)
134
+ ikeytz-maps-mcp list # alle Tools (offline) + global CLI flags
135
+ ikeytz-maps-mcp list --global # nur globale Flags
102
136
  ikeytz-maps-mcp describe NAME # = ikeytz-maps-mcp NAME -h
103
137
  ikeytz-maps-mcp call NAME … # oder: ikeytz-maps-mcp NAME …
104
138
  ```
105
139
 
106
140
  `*` = required · Schema offline: `ikeytz-maps-mcp <tool> -h`
107
141
 
108
- ## CLI-Flags (nie an MCP gesendet)
142
+ ## CLI-Flags ( nie an MCP gesendet )
109
143
 
110
144
  | Flag | Wirkung |
111
145
  |------|---------|
112
- | `-h`, `--help` | Pro-Tool-Help (offline) |
146
+ | `-h`, `--help`, `-help` | Pro-Tool-Help (offline); ohne Tool = volle Hilfe |
113
147
  | `--show-mcp-command` | curl 1a/1b/2 only |
114
- | `--raw` | JSON structuredContent |
148
+ | `--show-mcp-befehl` | Alias |
149
+ | `--show-mcp-comment` | Alias (gleicher Curl-Block) |
150
+ | `--raw` | JSON `structuredContent` |
115
151
  | `--json '{…}'` | Roh-Arguments |
116
152
  | `list --global` | nur globale Flags (offline) |
117
153
 
154
+ Diese Flags sind **Terminal-CLI**. MCP Inspector / Cursor zeigt nur **Tools**, keine CLI-Flags.
155
+
118
156
  ## Geo-Tools — Payload (vom Server, CLI spiegelt 1:1)
119
157
 
120
158
  | Tool | Koordinaten-Felder in der Antwort |
121
159
  |------|-----------------------------------|
122
- | `get_geo_office` | lat, lng, google_maps, icbm (+ Adresse; kein Walk-in) |
123
- | `get_service_area` | lat, lng, google_maps, icbm, embed_map, geo_api (+ slug, plz, …) |
124
- | `list_service_areas` | je Item: lat, lng, google_maps, icbm, embed_map, geo_api |
160
+ | `get_geo_office` | `lat`, `lng`, `google_maps`, `icbm` (+ Adresse; kein Walk-in) |
161
+ | `get_service_area` | `lat`, `lng`, `google_maps`, `icbm`, `embed_map`, `geo_api` (+ slug, plz, …) |
162
+ | `list_service_areas` | je Item: `lat`, `lng`, `google_maps`, `icbm`, `embed_map`, `geo_api` |
125
163
 
126
- `embed_map`: `https://maps.ikeytz.com/{slug}`
127
- `geo_api`: `https://maps.ikeytz.com/api/v1/embed/ort/{slug}` (public JSON, kein Passwort)
128
- `google_maps` / `icbm`: Komma-Form wie in `/llms-orte-geo.txt`
164
+ - **`embed_map`:** `https://maps.ikeytz.com/{slug}`
165
+ - **`geo_api`:** `https://maps.ikeytz.com/api/v1/embed/ort/{slug}` (public JSON, kein Passwort)
166
+ - **`google_maps` / `icbm`:** Komma-Form wie in `/llms-orte-geo.txt`
167
+ - Volltext Geo: `ikeytz-maps-mcp get_discovery --which llms-orte-geo`
129
168
 
130
- Volltext Geo: `ikeytz-maps-mcp get_discovery --which llms-orte-geo`
169
+ ## Alle Tool-Befehle (42 www-Namen + maps-Extras)
131
170
 
132
- ## Alle Tool-Befehle (HTTP + WebMCP + CLI, dieselbe Liste)
171
+ Dieselben **42 Namen** wie `ikeytz-mcp`. maps-Daten live. Preise/FAQ/Ratgeber/Wissen/Auswahl = **www-URL**, kein www-Corpus.
133
172
 
134
173
  | Befehl | Argumente |
135
174
  |--------|-----------|
136
- | `list_service_areas` | |
137
- | `get_service_area` | `--slug` · `--plz` · `--name` (ein Treffer; PLZ = erster) |
138
- | `get_geo_office` | |
139
- | `get_contact` | |
140
- | `get_discovery` | `--which*` · `--offset` · `--limit` |
141
- | `get_llms_mcp_server` | |
142
- | `get_llms_mcp_web` | |
143
- | `find_by_keyword` | `--q*` · `--limit` |
144
- | `find_by_serp` | `--q` · `--path` · `--url` · `--slug` · `--limit` |
145
- | `get_serp_snippet` | `--path` · `--url` · `--slug` |
146
- | `find_by_plz` | `--plz*` (alle Gebiete dieser PLZ) |
147
- | `find_by_geo` | `--lat` · `--lng` · `--icbm` · `--radius_km` · `--limit` |
148
- | `find_by_icbm` | `--icbm` · `--lat` · `--lng` · `--radius_km` · `--limit` |
149
- | `find_by_gebiet` | `--q` · `--name` · `--slug` |
150
- | `find_by_area` | Alias von `find_by_gebiet` |
175
+ | `site_overview` | `--locale` |
176
+ | `get_business_identity` | `--locale` |
177
+ | `list_nav` | `--locale` |
178
+ | `list_footer` | `--locale` |
179
+ | `list_locales` | |
180
+ | `resolve_locale_url` | `--path*` `--locale*` |
181
+ | `get_prices` | `--locale` (www-Link) |
182
+ | `get_invoice_line_items` | `--situationKey*` `--whenKey` `--breakdown` `--locale` (www-Link) |
183
+ | `list_services` | `--locale` (www-Link) |
184
+ | `get_emergency` | `--locale` (www-Link) |
185
+ | `list_auswahl` | `--locale` (www-Link) |
186
+ | `get_auswahl_item` | `--slug*` `--locale` (www-Link) |
187
+ | `list_service_areas` | `--locale` |
188
+ | `get_service_area` | `--slug` `--plz` `--name` `--locale` |
189
+ | `get_geo_office` | `--locale` |
190
+ | `get_contact` | `--locale` |
191
+ | `get_legal` | `--doc*` `--locale` |
192
+ | `get_about` | `--locale` |
193
+ | `get_partner_info` | `--locale` (www-Link) |
194
+ | `get_links` | `--locale` |
195
+ | `get_review_url` | `--locale` (www-Link) |
196
+ | `list_faq` | `--locale` (www-Link) |
197
+ | `get_faq` | `--id` `--q` `--locale` (www-Link) |
198
+ | `list_wissen` | `--locale` (www-Link) |
199
+ | `get_wissen_entry` | `--id*` `--locale` (www-Link) |
200
+ | `list_ratgeber` | `--locale` (www-Link) |
201
+ | `get_ratgeber` | `--slug*` `--locale` (www-Link) |
202
+ | `get_page_summary` | `--path*` `--locale` |
203
+ | `get_ai_page` | `--path` `--locale` (maps ai-pages oder www-Link) |
204
+ | `get_serp_snippet` | `--path` `--url` `--slug` `--locale` |
205
+ | `find_by_keyword` | `--q*` `--limit` `--locale` |
206
+ | `get_discovery` | `--which*` `--offset` `--limit` |
207
+ | `get_llms_txt` | `--offset` `--limit` |
208
+ | `get_llms_mcp_server` | `--offset` `--limit` |
209
+ | `get_llms_mcp_web` | `--offset` `--limit` |
210
+ | `get_ai_txt` | `--offset` `--limit` |
211
+ | `get_sitemap_txt` | `--offset` `--limit` |
212
+ | `list_whatsapp_options` | `--locale` |
213
+ | `compose_tel_mobile` | — |
214
+ | `compose_tel_landline` | — |
215
+ | `compose_whatsapp` | `--option` |
216
+ | `compose_mailto` | — |
217
+ | `find_by_serp` | `--q` `--path` `--url` `--slug` `--limit` |
218
+ | `find_by_plz` | `--plz*` |
219
+ | `find_by_geo` | `--lat` `--lng` `--icbm` `--radius_km` `--limit` |
220
+ | `find_by_icbm` | `--icbm` `--lat` `--lng` `--radius_km` `--limit` |
221
+ | `find_by_gebiet` | `--q` `--name` `--slug` |
222
+ | `find_by_area` | Alias `find_by_gebiet` |
151
223
  | `list_slugs` | — |
152
224
  | `list_plz` | — |
153
225
  | `get_hub` | — |
154
- | `get_embed_map` | `--slug` · `--plz` · `--name` |
155
- | `get_geo_api` | `--slug` · `--plz` · `--name` |
156
- | `get_lage` | `--slug` · `--plz` · `--name` |
157
- | `get_geschichte` | `--slug` · `--plz` · `--name` |
158
- | `distance_to_office` | `--slug` · `--lat` · `--lng` · `--icbm` |
226
+ | `get_embed_map` | `--slug` `--plz` `--name` |
227
+ | `get_geo_api` | `--slug` `--plz` `--name` |
228
+ | `get_lage` | `--slug` `--plz` `--name` |
229
+ | `get_geschichte` | `--slug` `--plz` `--name` |
230
+ | `distance_to_office` | `--slug` `--lat` `--lng` `--icbm` |
159
231
  | `resolve_maps_url` | `--url` |
160
- | `find_by_google_maps` | `--q` (Koordinaten-Paste) |
161
- | `get_legal` | `--doc*` urheberrecht\|copyright\|impressum\|agb\|nutzungsbedingungen\|datenschutz\|widerruf |
162
- | `get_urheberrecht` | — (maps `/llms-urheberrecht.txt`) |
232
+ | `find_by_google_maps` | `--q` |
233
+ | `get_urheberrecht` | |
163
234
  | `get_copyright` | — |
164
235
  | `get_impressum` | — |
165
- | `get_agb` | — (www-URL) |
166
- | `get_nutzungsbedingungen` | — (www-URL) |
167
- | `get_datenschutz` | — (www-URL) |
168
- | `get_widerruf` | — (www-URL) |
236
+ | `get_agb` | — |
237
+ | `get_nutzungsbedingungen` | — |
238
+ | `get_datenschutz` | — |
239
+ | `get_widerruf` | — |
169
240
 
170
- Präfix immer `ikeytz-maps-mcp` (z. B. `ikeytz-maps-mcp find_by_plz --plz=71638`).
241
+ Präfix immer `ikeytz-maps-mcp ` (z.B. `ikeytz-maps-mcp get_service_area -h`).
171
242
 
172
243
  ## MCP hosts (any client — not only Cursor / Claude)
173
244
 
174
- ### Option A — HTTP (empfohlen, kein npm nötig)
175
-
176
- Jeder Host mit Streamable HTTP MCP:
245
+ **Option A — HTTP (empfohlen, kein npm nötig)**
246
+ Jeder Host mit **Streamable HTTP MCP**:
177
247
 
178
248
  | Feld | Wert |
179
249
  |------|------|
180
- | URL | https://maps.ikeytz.com/mcp |
181
- | Registry | com.ikeytz/maps |
250
+ | URL | `https://maps.ikeytz.com/mcp` |
251
+ | Registry | `com.ikeytz/maps` |
182
252
  | Card | https://maps.ikeytz.com/.well-known/mcp/server-card.json |
183
253
 
184
- Beispiele: Windsurf, Cline, Continue, Claude Desktop (Remote), eigene Agenten — sofern MCP HTTP unterstützt.
185
-
186
- ### Option B — stdio via npm (dieses Paket)
254
+ Beispiele: Windsurf, Cline, Continue, Claude Desktop (Remote), eigene Agenten — **sofern MCP HTTP unterstützt**.
187
255
 
188
- Jeder Host mit `command` + `args` (Cursor, Claude Desktop, Windsurf, …):
256
+ **Option B stdio via npm (dieses Paket)**
257
+ Jeder Host mit **command + args** (Cursor, Claude Desktop, Windsurf, …):
189
258
 
190
259
  ```json
191
260
  {
@@ -198,7 +267,7 @@ Jeder Host mit `command` + `args` (Cursor, Claude Desktop, Windsurf, …):
198
267
  }
199
268
  ```
200
269
 
201
- Global installiert: `"command": "ikeytz-maps-mcp"` (ohne args, leerer stdio-Proxy).
270
+ Global installiert: `"command": "ikeytz-maps-mcp"` (ohne `args`, leerer stdio-Proxy).
202
271
 
203
272
  www bleibt **zweiter** Eintrag:
204
273
 
@@ -209,11 +278,10 @@ www bleibt **zweiter** Eintrag:
209
278
  }
210
279
  ```
211
280
 
212
- ### Option C — Terminal only
213
-
214
- `ikeytz-maps-mcp get_service_area --slug=pattonville`, `ikeytz-maps-mcp list_service_areas`, … — ohne MCP-Host.
281
+ **Option C — Terminal only**
282
+ `ikeytz-maps-mcp get_service_area --slug=pattonville`, `ikeytz-maps-mcp list`, … — **ohne** MCP-Host.
215
283
 
216
- Alle Optionen nutzen dieselbe SSOT: `https://maps.ikeytz.com/mcp` (read/link only, HTTP = WebMCP = CLI).
284
+ Alle Optionen nutzen dieselbe SSOT: `https://maps.ikeytz.com/mcp` (42 www-Namen + maps-Extras, read/link only).
217
285
 
218
286
  ## Env
219
287
 
@@ -225,10 +293,20 @@ Alle Optionen nutzen dieselbe SSOT: `https://maps.ikeytz.com/mcp` (read/link onl
225
293
 
226
294
  Nicht `IKEYTZ_MCP_URL` — das ist www (`@ikeytz/mcp`).
227
295
 
296
+ ## Maintainer
297
+
298
+ Nach MCP-Tool-Schema-Änderungen:
299
+
300
+ ```bash
301
+ node scripts/sync-maps-mcp-cli-catalog.mjs # → packages/maps-mcp/src/tools-catalog.json
302
+ ```
303
+
304
+ Plan: `docs/plan-maps-ai-mcp.md`
305
+
228
306
  ## Legal
229
307
 
230
- License: LicenseRef-ikeytz-terms (LICENSE in this package)
231
- https://www.ikeytz.com/urheberrecht
232
- https://maps.ikeytz.com/llms-urheberrecht.txt
233
- https://maps.ikeytz.com/.well-known/ai.txt
234
- Attribution required · ai-train: no · CLI install and read-only MCP use permitted
308
+ - License: **LicenseRef-ikeytz-terms** ([LICENSE](https://unpkg.com/@ikeytz/maps-mcp/LICENSE) in this package)
309
+ - https://www.ikeytz.com/urheberrecht
310
+ - https://maps.ikeytz.com/llms-urheberrecht.txt
311
+ - https://maps.ikeytz.com/.well-known/ai.txt
312
+ - **Attribution required** · **ai-train: no** · CLI install and read-only MCP use permitted
@@ -1,7 +1,12 @@
1
1
  #!/usr/bin/env node
2
- import { main } from "../src/cli.js";
2
+ import { runCli } from "../src/cli.js";
3
3
 
4
- main(process.argv.slice(2)).catch((err) => {
5
- console.error(err?.message || err);
6
- process.exit(1);
7
- });
4
+ runCli(process.argv.slice(2)).then(
5
+ (code) => {
6
+ process.exit(typeof code === "number" ? code : 0);
7
+ },
8
+ (err) => {
9
+ process.stderr.write(`ikeytz-maps-mcp: ${err?.message || err}\n`);
10
+ process.exit(1);
11
+ }
12
+ );
package/package.json CHANGED
@@ -1,20 +1,22 @@
1
1
  {
2
2
  "name": "@ikeytz/maps-mcp",
3
- "version": "1.0.4",
3
+ "version": "1.0.6",
4
4
  "mcpName": "com.ikeytz/maps",
5
- "description": "Official terminal CLI and MCP stdio proxy for maps.ikeytz.com. Not @ikeytz/mcp.",
5
+ "description": "Official CLI + MCP stdio proxy for maps.ikeytz.com 42 www-command names + maps extras (Einsatzgebiet-Karten, prices/FAQ = www links) at https://maps.ikeytz.com/mcp",
6
6
  "type": "module",
7
- "publishConfig": {
8
- "access": "public"
9
- },
10
7
  "bin": {
11
8
  "ikeytz-maps-mcp": "bin/ikeytz-maps-mcp.js"
12
9
  },
10
+ "files": [
11
+ "bin",
12
+ "src",
13
+ "README.md",
14
+ "CHANGELOG.md",
15
+ "LICENSE"
16
+ ],
13
17
  "engines": {
14
18
  "node": ">=18"
15
19
  },
16
- "license": "LicenseRef-ikeytz-terms",
17
- "homepage": "https://maps.ikeytz.com/mcp",
18
20
  "keywords": [
19
21
  "mcp",
20
22
  "model-context-protocol",
@@ -31,11 +33,17 @@
31
33
  "read-only",
32
34
  "stdio"
33
35
  ],
34
- "files": [
35
- "bin",
36
- "src",
37
- "LICENSE",
38
- "README.md",
39
- "CHANGELOG.md"
40
- ]
36
+ "author": {
37
+ "name": "Mahmud Reza Kashani",
38
+ "email": "info@ikeytz.com",
39
+ "url": "https://maps.ikeytz.com"
40
+ },
41
+ "homepage": "https://maps.ikeytz.com/mcp",
42
+ "bugs": {
43
+ "url": "https://www.ikeytz.com/kontakt"
44
+ },
45
+ "license": "LicenseRef-ikeytz-terms",
46
+ "publishConfig": {
47
+ "access": "public"
48
+ }
41
49
  }