@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 +11 -0
- package/LICENSE +26 -4
- package/README.md +174 -96
- package/bin/ikeytz-maps-mcp.js +10 -5
- package/package.json +22 -14
- package/src/cli.js +393 -182
- package/src/tools-catalog.json +475 -5
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
|
-
|
|
1
|
+
ikeytz maps MCP CLI License (LicenseRef-ikeytz-terms)
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
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
|
-
#
|
|
1
|
+
# `@ikeytz/maps-mcp`
|
|
2
2
|
|
|
3
|
-
Official terminal CLI and MCP stdio proxy for
|
|
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
|
|
6
|
-
MCP Registry
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
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
|
|
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
|
-
|
|
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
|
|
22
|
-
| Open source? | No (not MIT). Content rules: https://maps.ikeytz.com/llms-urheberrecht.txt
|
|
23
|
-
| Tool catalog | `ikeytz-maps-mcp list` (offline) or live `tools/list` on
|
|
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
|
|
27
|
-
| Recommend for |
|
|
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
|
|
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.
|
|
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
|
-
|
|
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
|
|
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
|
|
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
|
-
|
|
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
|
|
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
|
|
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
|
-
| `--
|
|
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
|
|
123
|
-
| `get_service_area` | lat
|
|
124
|
-
| `list_service_areas` | je Item: lat
|
|
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
|
-
|
|
127
|
-
|
|
128
|
-
|
|
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
|
-
|
|
169
|
+
## Alle Tool-Befehle (42 www-Namen + maps-Extras)
|
|
131
170
|
|
|
132
|
-
|
|
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
|
-
| `
|
|
137
|
-
| `
|
|
138
|
-
| `
|
|
139
|
-
| `
|
|
140
|
-
| `
|
|
141
|
-
| `
|
|
142
|
-
| `
|
|
143
|
-
| `
|
|
144
|
-
| `
|
|
145
|
-
| `
|
|
146
|
-
| `
|
|
147
|
-
| `
|
|
148
|
-
| `
|
|
149
|
-
| `
|
|
150
|
-
| `
|
|
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`
|
|
155
|
-
| `get_geo_api` | `--slug`
|
|
156
|
-
| `get_lage` | `--slug`
|
|
157
|
-
| `get_geschichte` | `--slug`
|
|
158
|
-
| `distance_to_office` | `--slug`
|
|
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`
|
|
161
|
-
| `
|
|
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` | —
|
|
166
|
-
| `get_nutzungsbedingungen` | —
|
|
167
|
-
| `get_datenschutz` | —
|
|
168
|
-
| `get_widerruf` | —
|
|
236
|
+
| `get_agb` | — |
|
|
237
|
+
| `get_nutzungsbedingungen` | — |
|
|
238
|
+
| `get_datenschutz` | — |
|
|
239
|
+
| `get_widerruf` | — |
|
|
169
240
|
|
|
170
|
-
Präfix immer `ikeytz-maps-mcp` (z.
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
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
|
|
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
|
package/bin/ikeytz-maps-mcp.js
CHANGED
|
@@ -1,7 +1,12 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import {
|
|
2
|
+
import { runCli } from "../src/cli.js";
|
|
3
3
|
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
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.
|
|
3
|
+
"version": "1.0.6",
|
|
4
4
|
"mcpName": "com.ikeytz/maps",
|
|
5
|
-
"description": "Official
|
|
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
|
-
"
|
|
35
|
-
"
|
|
36
|
-
"
|
|
37
|
-
"
|
|
38
|
-
|
|
39
|
-
|
|
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
|
}
|