Every change Wellknown observed on this MCP server, newest first, with what it was before and what it became. Tool-surface changes carry the definition diff. Nothing here is edited after the fact.
Recently observed → Live
Live → Recently observed
Changed the definition of "get_emergency", "list_auswahl", "list_ratgeber" and 1 more
WHAT: Returns only amaps HTML hand-offURL to the www Notfall-Türöffnungpage.pageDoes— notdispatch technicians or bookajobs.dispatch. USE for emergency lockout context onmaps;mapscallwhen you only need the link. Prefer maps get_contact or compose_tel_mobile for phone CTAshere.here;Preferprefer www MCP get_emergency for the full Notfall body. Optional locale selects the www URL language only. DOES NOT dispatch technicians or claim a van was sent.NEXT: compose_tel_mobile; www get_emergency.
⟨41 unchanged words⟩ a slug is known (still URL-only). Optional locale (de|en|fr|ru|fa|ar|tr, default de) selects the www URL language only — it does not list items. DOES NOT list items.
WHAT: Returns only amaps HTML hand-offURL to the www Ratgeberlisthub (/ratgeber).Does— notlist Ratgebertitles or article bodies. USE when the user asks for the Ratgeber overview onmaps;maps.usePrefer www MCP list_ratgeber for the real list; prefer maps get_ratgeber({slug})foronlyonewhenpagea slug is known (stilla hand-offURL-only
⟨30 unchanged words⟩ Prefer www MCP list_services for the real catalog. Optional locale (de|en|fr|ru|fa|ar|tr, default de) selects the www URL language only — it does not load service rows. DOES NOT invent service rows.
Changed the definition of "compose_mailto", "find_by_area", "get_datenschutz" and 8 more
WHAT: Returns mailto:info@ikeytz.complusand mapsEmail info@maps.ikeytz.com (mapsHref). Call with {}. USE for email CTAs. Prefer compose_whatsapp or compose_tel_mobile when the user wants chat or a phone call instead. DOES NOT send mail.NEXT: get_contact, list_footer.
WHAT:AliasMulti-matchofEinsatzgebiete
Changed the definition of "find_by_icbm", "get_agb", "get_auswahl_item" and 6 more
WHAT:Same as find_by_geoRankbutEinsatzgebieteprefersbyicbmanstringICBM 'lat,lng'. Optionallng'lat/lng/radius_km/limit.string (0optional lat/lng,0radius_km, limit).
Changed the definition of "get_agb", "get_ai_page", "get_auswahl_item" and 14 more
WHAT: www pointerReturns only—aAGBmapsliveHTMLathand-off to www.ikeytz.com/agb.mapsDoesreturnsnothtmlreturn+AGBnote,
Added "get_grenze_koordinaten"; changed the definition of "get_grenze" (67 tools before, 68 now)
⟨26 unchanged words⟩ the boundary geometry. DOES NOT replace get_geo_api (thatURLremainspointer)theorURLget_grenze_koordinatenpointer(full embed blob). NEXT: get_grenze_koordinaten, get_lage, get_embed_map.
WHAT: Full public Ort-Embed JSON for one Einsatzgebiet — same fields as GET https://maps.ikeytz.com/api/v1/embed/ort/{slug} (part=full): phone/NAP, style, point, points, polygon, featureCollection, OSM ids, embed paths, iframe. Lookup slug|plz|name. USE when the agent needs coordinates+boundary+NAP in one MCP call. DOES NOT change the HTTP embed API. DOES NOT replace slim get_grenze (polygon-only) or get_geo_api (URL only). NEXT: get_grenze, get_contact, get_embed_map.
Changed the definition of "compose_whatsapp"
WHAT: wa.me link. Optionaloption=zugefallen|abgeschlossen|zylinder|beratungoption=zugefallen|abgeschlossen|zylinder (orlist_whatsapp_options ids). Unknown option → ok:false unknown_option + hint ids. Link only — no form. USE to open ⟨7 unchanged words⟩
{"properties":{"option":{"description":"Optional situation id:zugefallen|abgeschlossen|zylinder|beratung (or idsfrom list_whatsapp_options (zugefallen|abgeschlossen|zylinder). Unknown → ok:false.","type":"string"}},"type":"object"}
Changed the definition of "get_ai_txt", "get_discovery", "get_llms_mcp_server" and 3 more
⟨152 unchanged words⟩ slug_or_coords_required, path_required.","type":"string"},"fetchTruncated":{"description":"true if a load cap cut the file before paging (www Cap). maps reads full from disk → always false.","type":"boolean"},"hint":{"description":"Present when ok=false. Absolute ⟨228 unchanged words⟩ object (e.g. get_service_area).","type":"string"},"totalBytes":{"description":"Full discovery file size in bytes (UTF-8). Also in trailing # MCP-META.","type":"number"},"totalChars":{"description":"Full discovery file character length before offset/limit. Also in # MCP-META.","type":"number"},"totalLines":{"description":"Alias of ⟨60 unchanged words⟩
⟨152 unchanged words⟩ Changed the definition of "get_embed_map" and "get_service_area"
⟨10 unchanged words⟩ and Visitenkarte. Lookup slug|plz|name. RETURNS area card + maps_nav + neighbors (MAPS-IL1/IL2) + canonicalUrl. USE for embedding or linking a Gebiet map. NEXT: get_geo_api, get_grenze,get_lage.get_lage, get_service_area.
⟨211 unchanged words⟩ ["de"],"type":"string"},"maps_nav":{"description":"MAPS-IL1 mini-chrome URLs","properties":{"buero":{"format":"uri","type":"string"},"hub":{"format":"uri","type":"string"},"mcp_hub":{"format":"uri","type":"string"}},"type":"object"},"name":{"type":"string"},"neighbors":{"description":"Up to 5 nearest Gebiete","items":{"properties":{"embed_map":{"format":"uri","type":"string"},"name":{"type":"string"},"slug":{"type":"string"}},"type":"object"},"type":"array"},"ok":{"description":"true = ⟨93 unchanged words⟩
Changed the definition of "get_ai_txt", "get_discovery", "get_llms_mcp_server" and 3 more
⟨89 unchanged words⟩ https://maps.ikeytz.com/.well-known/ai.txt'","type":"string"},"bodybytesReturned":{"description":"UTF-8textlengthwindowofaftertextoffset/limitwindow","type":"stringnumber"},"canonicalUrl":{"description":"Best URL ⟨123 unchanged words⟩ on disk","type":"boolean"},"nextOffset":{"description":"Pass as next offset when truncated; else null. Also in # MCP-META.","type"
Changed the definition of "get_geo_office"
WHO/WHAT: Gewerbesitz (registered office)coordinates and streetpininonLudwigsburg.maps.ikeytz.com/buero. walkIn=false always — mobile locksmith, not a shop counter. RETURNS street, postal, city, lat, lng, google_maps/icbm (same 'lat, lng' string), embed_map, geo_api (/api/v1/embed/office), note, walkIn. USE for NAP/schema ordistance_to_office.Footer iframe. DOES NOT accept walk-in customers or bookings. NEXT ⟨3 unchanged words⟩
⟨126 unchanged words⟩ Verified owner set by dns_txt proof on maps.ikeytz.com
Certificate recorded, valid to 2026-11-26
Authorization not required
First tool surface recorded: 67 tools (server version 1.0.0)
Showing the latest 16 events. The API returns up to 500 and filters by kind: ?kind=tool_surface_changed
WHAT: Returns only amaps HTML hand-offURL to wwwDatenschutz.DatenschutzDoes— notreturnthe privacy-policy body. USE when the user asks for Datenschutz while onmaps;mapspreferand you only need the link. Prefer www MCP get_datenschutz/or get_legal for the corpus. DOES NOT invent privacy clauses.NEXT: www get_datenschutz.
WHAT: Returns Lage (location description)textprose for one Einsatzgebiet Visitenkarte. Lookup slug|plz|name. RETURNS slug, name, lage. USE for human-readable geography prose.NEXT:Prefer get_geschichte,get_service_area.for place history; prefer get_service_area for the full point card/embed. DOES NOT return polygons.
WHAT:Alias of get_discovery(which=llms-mcp-web)Returns—the web/UI-oriented MCP catalog text onmaps.maps (alias of get_discovery(which=llms-mcp-web)). Optional offset/limit. USE for browser/agent web discovery copy.NEXT:Prefer get_llms_mcp_server,get_mcpforhubtheHTMLserver-side/mcp-hub.catalog; prefer get_llms_txt for the primary maps index. DOES NOT replace the live /mcp tools/list.
WHAT: Returns only amaps HTML hand-offURL to www /ratgeber/{slug}.slug required. Does— notreturntheRatgeberarticle body. slug required. USE when the user names a Ratgeber slug onmaps;maps.usePrefer list_ratgeber for thehub.hubPreferlink when the slug is unknown; prefer www MCP get_ratgeber for fulltext.NEXT:DOESwwwNOTget_ratgeber({slug}).return article text.
WHAT: Returns only amaps HTML hand-offURL to wwwWiderruf.WiderrufDoes— notreturnwithdrawal-policy text. USE when the user asks for Widerruf while onmaps;mapspreferand you only need the link. Prefer www MCP get_widerruf or get_legal for the corpus. DOES NOT invent clauses.NEXT: www get_widerruf / get_legal.
WHAT: Returns only amaps HTML hand-offURL to the www Auswahl hub (/auswahl).Does— notlistAuswahl items. USE when the user asks for the Auswahl overview onmaps; use get_auswahl_item only when a slug is known (still a hand-off).maps. Prefer www MCP list_auswahl for the real itemlist. NEXT: wwwlist;list_auswahl;prefer maps get_auswahl_item({slug}) only when a slug is known (still URL-only). DOES NOT list items.
WHAT: Returns only amaps HTML hand-offURL to www/leistungen./leistungenDoes— notlistLeistungs rows or prices. USE when the user asks for services while onmaps;mapspreferand you only need the link. Prefer www MCP list_services for the real catalog. DOES NOT invent service rows.NEXT: www list_services; maps get_prices is also a www hand-off.
WHAT: Returns only amaps HTML hand-offURL to the www Wissenlexiconhub (/wissen).Does— notlistlexicon entries or article text. USE when the user asks for the Wissen overview onmaps; use get_wissen_entry({id}) for one article (still a hand-off).maps. Prefer www MCP list_wissen for the reallexicon list. NEXT: wwwindex;list_wissen;prefer maps get_wissen_entry({id}).only as a URL hand-off for one id. DOES NOT list entries.
WHAT: Resolve a maps.ikeytz.com url/path/q to hub or Gebiet. RETURNS kind=hub|ort (+ area fields whenort.ort). USE to normalize pasted maps links. Prefer get_service_area when you already have a known slug; prefer resolve_locale_url for locale rewriting. DOES NOT accept www hosts (not_maps_host).NEXT:Whenget_service_areamultiple of url/path/q are set,get_embed_map.url wins then path then q.
WHAT: Returns only amaps HTML hand-offURL towww.ikeytz.com/agb.www.ikeytz.com/agbDoes— notreturnAGBbodyclause text. USE when the user asks for AGB while onmaps;mapspreferand you only need the link. Prefer www MCP get_legal(doc=agb) or www get_agbforwhen you need the legal corpus. DOES NOT invent legal clauses.NEXT: www get_legal(doc=agb).
WHAT: Returns only amaps HTML hand-offURL to www /auswahl/{slug}.slug required. Does— notreturnthe Auswahl article body. slug required. USE when the user names a specific Auswahl slug onmaps;maps.usePrefer list_auswahl for thehub.hubPreferlink; prefer www MCP get_auswahl_item({slug})forwhen you need the fullcontent.article.NEXT:DOESwwwNOTget_auswahl_item({slug}).return article text.
WHOWHAT: Returns Inhaber, brand, legalName, hours, NAP, and officecoords.coords for LocalBusiness / impressum-grade facts on maps. Call with {} or locale=de. walkIn=false — mobile locksmith only. USE when you need the identity card (who owns the business, hours, legal name). Prefer get_contact forLocalBusinessphone/email/WhatsApp/CTAs;impressum-gradepreferfactsget_geo_officeonformaps.the /buero pin and embed; prefer get_impressum for the full imprint text file. DOES NOT updaterecords.recordsNEXT:orget_contact,acceptget_geo_office,walk-inget_impressum.bookings.
WHAT: Returns the maps machine bookmark set of discovery URLs—(hub, mcp, server-card, agent-skills, llms, registry search, npm@ikeytz/maps-mcp.@ikeytz/maps-mcp). USEastotheopenmachineknownbookmarkwell-knownset.endpointsNEXT:by URL. Prefer get_discovery,get_llms_txt.when you need file contents or line windows; prefer get_llms_txt for the primary llms index body. DOES NOT fetch discovery file bodies.
WHAT:www pointerReturns only— Festpreis matrix lives onawww.ikeytz.com/preiseURL/noteviapointing@ikeytz/mcptoget_prices.themapsFestpreisreturnsmatrixhtmlon+www.ikeytz.com/preisenote,— no euro rows. USE to handoff.theDOESagentNOTfrominventmapsprices.toNEXT:www pricing. Prefer wwwget_prices;MCP get_prices for the real matrix; call maps get_ort_datetime first if you need whenKey (day|night) forwhenKey.a later www invoice. DOES NOT invent prices or return totalEur.
WHAT: Returns only amaps HTML hand-offURL towww /reviewwww.ikeytz.com/review (Google-review entry page).Does— notpostareview.review payload. USE when the user asks where to leave a Google review while already on maps. Prefer www MCP get_review_url when connected to www for the canonicalreview linkreview-link payload.NEXT:DOESwwwNOTget_review_url.post a review.
WHAT:Alias get_discovery(which=sitemap-txt) —Reads maps /sitemap.txt 1:1 (embed URLsaliasincl.of/bueroget_discovery(which=sitemap-txt).); summary≡ fileiswindowa+line#windowMCP-METAplus(nottrailinga#stub).MCP-META. Optional offset/limit. USE to list public mapsURLs.embed URLs including /buero. Prefer get_discovery for other discovery ids; prefer site_overview for the brand card, not a URL list. NEXT: resolve_maps_url, get_embed_map, get_geo_office.
WHAT: Returns Karten-Urheberrecht plain text from maps /llms-urheberrecht.txt (HTMLattribution:pageMahmudremainsRezawwwKashani/urheberrecht· ikeytz). Optional offset/limit. USE when citing map copyright(MahmudinRezaGerman.KashaniPrefer·get_copyrightikeytz).forNEXT:theget_copyright,English citation file; prefer get_legal(doc=urheberrecht).for the legal-doc router. DOES NOT return www HTML body.
WHAT: ReadReads maps /ai-pages/de/{slug}.txt whenpresent;theelsepath is a maps Gebiet/ai-page; otherwise returns a wwwpointerHTML hand-off forthenon-mapspath.paths. path or slug.RETURNS textUSE for agent-ready mapsAIGebietpages.proseUSE— not foragent-readysite-wideGebietcrawlprose.policy (that is get_ai_txt). DOES NOT invent page bodies. NEXT: get_service_area,get_lage.get_lage, get_ai_txt.
WHAT: www pointerReturns only—aonemapsAuswahlHTMLitemhand-offonto www /auswahl/{slug}. slug required.mapsDoesreturnsnothtmlreturntothethatAuswahlpath.article body. USE when the user names a specific Auswahl slug on maps; use list_auswahl for the hub. Prefer www MCP get_auswahl_item for full content. NEXT: wwwget_auswahl_item.get_auswahl_item({slug}).
WHAT:Returns only a maps HTML hand-off to wwwpointerDatenschutz.onlyDoes—not return the privacy-policy body. USE when the user asks for Datenschutz while onwww.ikeytz.com.maps;mapspreferreturnswwwhtmlMCPlink.get_datenschutzDOES/NOTget_legalreturnfor theprivacycorpus.policyDOESbody.NOT invent privacy clauses. NEXT: wwwMCP.get_datenschutz.
WHAT:Returnswwwonlypointeraonlymaps—HTML hand-off to the www Notfall-Türöffnungpagepage.onDoeswww.notmapsdispatchreturnstechnicianshtml;orusebook jobs. USE for emergency lockout context on maps; call maps get_contact/or compose_tel_mobileherefor phone CTAs here. Prefer www MCP get_emergency forphones.the full Notfall body. DOES NOTdispatch.claim a van was sent. NEXT:compose_tel_mobile,compose_tel_mobile; www get_emergency.
WHAT:Returns only a maps HTML hand-off to wwwpointer/faqonly(optional—id/qoneare for www symmetry, not answered here). Does not return the FAQ answerlivesbody. USE when the user asks one FAQ while onwww.maps;Optionaluseid/qlist_faq forwww;themapshub.returnsPrefer/faqwwwhtml.MCP get_faq({id}|{q}) for the real answer. NEXT: www get_faq.
WHAT:Returns only a maps HTML hand-off to wwwpointerNutzungsbedingungen.onlyDoes—not return the terms body. USE when the user asks for Nutzungsbedingungen onwww.ikeytz.com.maps;mapspreferreturnswwwhtmlMCPlink.for the corpus. DOES NOTreturn theinventbody.clauses. NEXT: wwwMCPget_nutzungsbedingungen /open html.get_legal.
WHAT:Returnswwwonlypointeraonlymaps—HTML hand-off to www Partner-werden (/partner-werden). Does not return partnerEmail corpus or submit the partner form. USE when the user asks about becoming a partner while on maps. Prefer www MCP get_partner_info if already connected to www.mapsformSubmit=falsereturns—html.never claim a form was sent. NEXT: wwwget_partner_info.get_partner_info; or maps compose_mailto after opening www.
WHAT:Returnswwwonlypointeraonlymaps—HTMLRatgeberhand-offpageto www /ratgeber/{slug}. slug required.mapsDoesreturnsnothtml.return the Ratgeber article body. USE when the user names a Ratgeber slug on maps; use list_ratgeber for the hub. Prefer www MCP get_ratgeber for fulltext. NEXT: wwwget_ratgeber.get_ratgeber({slug}).
WHAT:Returns only a maps HTML hand-off to wwwpointer/reviewonly(Google-review—entry). Does not post a review. USE when the user asks where to leave a Google reviewentrywhile on maps. Prefer www/review.MCPmapsget_review_urlreturnsforhtml.the canonical review link payload. NEXT: www get_review_url.
WHAT:Returns only a maps HTML hand-off to wwwpointerWiderruf.onlyDoes—not return withdrawal-policy text. USE when the user asks for Widerruf onwww.ikeytz.com.maps;mapspreferreturnswwwhtmlMCPlink.for the corpus. DOES NOTreturn withdrawalinventtext.clauses. NEXT: wwwMCP.get_widerruf / get_legal.
WHAT:Returnswwwonlypointeraonlymaps—HTMLWissenhand-offarticleto www /wissen/{id}. id required.mapsDoesreturnsnothtml.return the Wissen article body. USE when the user names a Wissen id on maps; use list_wissen for the hub. Prefer www MCP get_wissen_entry for fulltext. NEXT: wwwget_wissen_entry.get_wissen_entry({id}).
WHAT:Returnswwwonlypointeraonlymaps—HTML hand-off to the www Auswahl hub (/auswahl). Does not list Auswahl items. USE when the user asks for the Auswahl overview on maps; use get_auswahl_item only when a slug is known (still a hand-off). Prefer www/auswahl.MCPmapslist_auswahlreturnsforhtml.the real item list. NEXT: wwwlist_auswahllist_auswahl;/mapsget_auswahl_item.get_auswahl_item({slug}).
WHAT:Returns only a maps HTML hand-off to wwwpointer/faq.onlyDoes—not return FAQlistquestion rows or answers. USE for the FAQ hub on maps; use get_faq when an id/q is known (still a hand-off). Prefer www/faq.MCPmapslist_faqreturns/html,get_faqnotfor real FAQrows.data. NEXT: wwwlist_faqlist_faq;/maps get_faq.
WHAT:Returnswwwonlypointeraonlymaps—HTML hand-off to the www Ratgeber list (/ratgeber). Does not list Ratgeber titles or bodies. USE when the user asks for the Ratgeber overview on maps; use get_ratgeber({slug}) for one page (still a hand-off). Prefer www/ratgeber.MCPmapslist_ratgeberreturnsforhtml.the real list. NEXT: wwwlist_ratgeber.list_ratgeber; maps get_ratgeber({slug}).
WHAT:Returnswwwonlypointeraonlymaps—HTMLLeistungenhand-off to www /leistungen. Does not list Leistungs rows or prices. USE when the user asks for services while on maps; prefer www/leistungen.MCPmapslist_servicesreturnsforhtmlthelink.real catalog. DOES NOTlistinvent service rows. NEXT: wwwlist_services.list_services; maps get_prices is also a www hand-off.
WHAT:Returnswwwonlypointeraonlymaps—HTML hand-off to the www Wissen lexicon hub (/wissen). Does not list lexicon entries or article text. USE when the user asks for the Wissen overview on maps; use get_wissen_entry({id}) for one article (still a hand-off). Prefer www/wissen.MCPmapslist_wissenreturnsforhtml.the real lexicon list. NEXT: wwwlist_wissen.list_wissen; maps get_wissen_entry({id}).
⟨244 unchanged words⟩ "},"option":{"description":"Echoed option (null if omitted)","type":["string","null"]} ⟨61 unchanged words⟩
⟨152 unchanged words⟩ slug_or_coords_required, path_required.","type":"string"},"fetchTruncated":{"description":"true if a load cap cut the file before paging (www Cap). maps reads full from disk → always false.","type":"boolean"},"hint":{"description":"Present when ok=false. Absolute ⟨228 unchanged words⟩ object (e.g. get_service_area).","type":"string"},"totalBytes":{"description":"Full discovery file size in bytes (UTF-8). Also in trailing # MCP-META.","type":"number"},"totalChars":{"description":"Full discovery file character length before offset/limit. Also in # MCP-META.","type":"number"},"totalLines":{"description":"Alias of ⟨60 unchanged words⟩
⟨152 unchanged words⟩ slug_or_coords_required, path_required.","type":"string"},"fetchTruncated":{"description":"true if a load cap cut the file before paging (www Cap). maps reads full from disk → always false.","type":"boolean"},"hint":{"description":"Present when ok=false. Absolute ⟨228 unchanged words⟩ object (e.g. get_service_area).","type":"string"},"totalBytes":{"description":"Full discovery file size in bytes (UTF-8). Also in trailing # MCP-META.","type":"number"},"totalChars":{"description":"Full discovery file character length before offset/limit. Also in # MCP-META.","type":"number"},"totalLines":{"description":"Alias of ⟨60 unchanged words⟩
⟨152 unchanged words⟩ slug_or_coords_required, path_required.","type":"string"},"fetchTruncated":{"description":"true if a load cap cut the file before paging (www Cap). maps reads full from disk → always false.","type":"boolean"},"hint":{"description":"Present when ok=false. Absolute ⟨228 unchanged words⟩ object (e.g. get_service_area).","type":"string"},"totalBytes":{"description":"Full discovery file size in bytes (UTF-8). Also in trailing # MCP-META.","type":"number"},"totalChars":{"description":"Full discovery file character length before offset/limit. Also in # MCP-META.","type":"number"},"totalLines":{"description":"Alias of ⟨60 unchanged words⟩
⟨152 unchanged words⟩ slug_or_coords_required, path_required.","type":"string"},"fetchTruncated":{"description":"true if a load cap cut the file before paging (www Cap). maps reads full from disk → always false.","type":"boolean"},"hint":{"description":"Present when ok=false. Absolute ⟨228 unchanged words⟩ object (e.g. get_service_area).","type":"string"},"totalBytes":{"description":"Full discovery file size in bytes (UTF-8). Also in trailing # MCP-META.","type":"number"},"totalChars":{"description":"Full discovery file character length before offset/limit. Also in # MCP-META.","type":"number"},"totalLines":{"description":"Alias of ⟨60 unchanged words⟩
⟨9 unchanged words⟩ ) → name substring. RETURNS point card + maps_nav (hub/buero/mcp-hub) + neighbors (5 nearest by airline, MAPS-IL2) + optional Lage texts (h1, kicker, blurb, ⟨35 unchanged words⟩
⟨4 unchanged words⟩ true, omit h1/kicker/blurb/lage/geschichte — coords + URLsonly.+ neighbors still present.","type":"boolean"},"fields":{ ⟨154 unchanged words⟩
⟨289 unchanged words⟩ ["de"],"type":"string"},"maps_nav":{"description":"MAPS-IL1 mini-chrome URLs","properties":{"buero":{"format":"uri","type":"string"},"hub":{"format":"uri","type":"string"},"mcp_hub":{"format":"uri","type":"string"}},"type":"object"},"name":{"description":"German name","type":"string"},"neighbors":{"description":"Up to 5 nearest Gebiete (slug/name/embed_map)","items":{"properties":{"embed_map":{"format":"uri","type":"string"},"name":{"type":"string"},"slug":{"type":"string"}},"type":"object"},"type":"array"},"office_lat":{"description":"Gewerbesitz lat ⟨122 unchanged words⟩
⟨5 unchanged words⟩ a maps discovery file (UTF-8 text/JSON). summary ≡ line window + trailing # MCP-META (truncated, totalUrls, nextOffset) — not a one-line stub. which is required — common ids: ard, ⟨47 unchanged words⟩
⟨89 unchanged words⟩ https://maps.ikeytz.com/.well-known/ai.txt'","type":"string"},"bodybytesReturned":{"description":"UTF-8textlengthwindowofaftertextoffset/limitwindow","type":"stringnumber"},"canonicalUrl":{"description":"Best URL ⟨123 unchanged words⟩ on disk","type":"boolean"},"nextOffset":{"description":"Pass as next offset when truncated; else null. Also in # MCP-META.","type":["number","null"]},"offset":{"description":"Applied 0-based line offset"," ⟨54 unchanged words⟩ :"string"},"type":"array"},"returnedLines":{"description":"Lines in this window (before # MCP-META)","type":"number"},"returnedUrls":{"description":"http(s) lines in this window","type":"number"},"summary":{"description":"Primary text for the ⟨19 unchanged words⟩ :"string"},"text":{"description":"Alias/windowUTF-8ofline window (file bodywhenbeforepresent# MCP-META). Same bytes as summary without meta trailer.","type":"string"},"tool":{ ⟨11 unchanged words⟩ get_service_area).","type":"string"},"totalLines":{"description":"Alias of total_lines","type":"number"},"totalUrls":{"description":"http(s) lines in the full file","type":"number"},"total_lines":{"description":"Line count of the full file","type":"number"},"truncated":{"description":"true if offset+limit left more lines. Also in trailing # MCP-META.","type":"boolean"},"which":{"description":"Resolved discovery ⟨17 unchanged words⟩
⟨89 unchanged words⟩ https://maps.ikeytz.com/.well-known/ai.txt'","type":"string"},"bodybytesReturned":{"description":"UTF-8textlengthwindowofaftertextoffset/limitwindow","type":"stringnumber"},"canonicalUrl":{"description":"Best URL ⟨123 unchanged words⟩ on disk","type":"boolean"},"nextOffset":{"description":"Pass as next offset when truncated; else null. Also in # MCP-META.","type":["number","null"]},"offset":{"description":"Applied 0-based line offset"," ⟨54 unchanged words⟩ :"string"},"type":"array"},"returnedLines":{"description":"Lines in this window (before # MCP-META)","type":"number"},"returnedUrls":{"description":"http(s) lines in this window","type":"number"},"summary":{"description":"Primary text for the ⟨19 unchanged words⟩ :"string"},"text":{"description":"Alias/windowUTF-8ofline window (file bodywhenbeforepresent# MCP-META). Same bytes as summary without meta trailer.","type":"string"},"tool":{ ⟨11 unchanged words⟩ get_service_area).","type":"string"},"totalLines":{"description":"Alias of total_lines","type":"number"},"totalUrls":{"description":"http(s) lines in the full file","type":"number"},"total_lines":{"description":"Line count of the full file","type":"number"},"truncated":{"description":"true if offset+limit left more lines. Also in trailing # MCP-META.","type":"boolean"},"which":{"description":"Resolved discovery ⟨17 unchanged words⟩
⟨89 unchanged words⟩ https://maps.ikeytz.com/.well-known/ai.txt'","type":"string"},"bodybytesReturned":{"description":"UTF-8textlengthwindowofaftertextoffset/limitwindow","type":"stringnumber"},"canonicalUrl":{"description":"Best URL ⟨123 unchanged words⟩ on disk","type":"boolean"},"nextOffset":{"description":"Pass as next offset when truncated; else null. Also in # MCP-META.","type":["number","null"]},"offset":{"description":"Applied 0-based line offset"," ⟨54 unchanged words⟩ :"string"},"type":"array"},"returnedLines":{"description":"Lines in this window (before # MCP-META)","type":"number"},"returnedUrls":{"description":"http(s) lines in this window","type":"number"},"summary":{"description":"Primary text for the ⟨19 unchanged words⟩ :"string"},"text":{"description":"Alias/windowUTF-8ofline window (file bodywhenbeforepresent# MCP-META). Same bytes as summary without meta trailer.","type":"string"},"tool":{ ⟨11 unchanged words⟩ get_service_area).","type":"string"},"totalLines":{"description":"Alias of total_lines","type":"number"},"totalUrls":{"description":"http(s) lines in the full file","type":"number"},"total_lines":{"description":"Line count of the full file","type":"number"},"truncated":{"description":"true if offset+limit left more lines. Also in trailing # MCP-META.","type":"boolean"},"which":{"description":"Resolved discovery ⟨17 unchanged words⟩
⟨89 unchanged words⟩ https://maps.ikeytz.com/.well-known/ai.txt'","type":"string"},"bodybytesReturned":{"description":"UTF-8textlengthwindowofaftertextoffset/limitwindow","type":"stringnumber"},"canonicalUrl":{"description":"Best URL ⟨123 unchanged words⟩ on disk","type":"boolean"},"nextOffset":{"description":"Pass as next offset when truncated; else null. Also in # MCP-META.","type":["number","null"]},"offset":{"description":"Applied 0-based line offset"," ⟨54 unchanged words⟩ :"string"},"type":"array"},"returnedLines":{"description":"Lines in this window (before # MCP-META)","type":"number"},"returnedUrls":{"description":"http(s) lines in this window","type":"number"},"summary":{"description":"Primary text for the ⟨19 unchanged words⟩ :"string"},"text":{"description":"Alias/windowUTF-8ofline window (file bodywhenbeforepresent# MCP-META). Same bytes as summary without meta trailer.","type":"string"},"tool":{ ⟨11 unchanged words⟩ get_service_area).","type":"string"},"totalLines":{"description":"Alias of total_lines","type":"number"},"totalUrls":{"description":"http(s) lines in the full file","type":"number"},"total_lines":{"description":"Line count of the full file","type":"number"},"truncated":{"description":"true if offset+limit left more lines. Also in trailing # MCP-META.","type":"boolean"},"which":{"description":"Resolved discovery ⟨17 unchanged words⟩
WHAT: Alias get_discovery(which=sitemap-txt) — maps /sitemap.txt 1:1 (embed URLs incl. /buero). summary ≡ file window + # MCP-META (not a stub). Optional offset/limit. USE to list public maps URLs. NEXT: resolve_maps_url,get_embed_map.get_embed_map, get_geo_office.
⟨89 unchanged words⟩ https://maps.ikeytz.com/.well-known/ai.txt'","type":"string"},"bodybytesReturned":{"description":"UTF-8textlengthwindowofaftertextoffset/limitwindow","type":"stringnumber"},"canonicalUrl":{"description":"Best URL ⟨123 unchanged words⟩ on disk","type":"boolean"},"nextOffset":{"description":"Pass as next offset when truncated; else null. Also in # MCP-META.","type":["number","null"]},"offset":{"description":"Applied 0-based line offset"," ⟨54 unchanged words⟩ :"string"},"type":"array"},"returnedLines":{"description":"Lines in this window (before # MCP-META)","type":"number"},"returnedUrls":{"description":"http(s) lines in this window","type":"number"},"summary":{"description":"Primary text for the ⟨19 unchanged words⟩ :"string"},"text":{"description":"Alias/windowUTF-8ofline window (file bodywhenbeforepresent# MCP-META). Same bytes as summary without meta trailer.","type":"string"},"tool":{ ⟨11 unchanged words⟩ get_service_area).","type":"string"},"totalLines":{"description":"Alias of total_lines","type":"number"},"totalUrls":{"description":"http(s) lines in the full file","type":"number"},"total_lines":{"description":"Line count of the full file","type":"number"},"truncated":{"description":"true if offset+limit left more lines. Also in trailing # MCP-META.","type":"boolean"},"which":{"description":"Resolved discovery ⟨17 unchanged words⟩