get_poi_details
POI-Detail-Lookup per OSM-ID (Daten aus OpenStreetMap). Für „Öffnungszeiten von X", „erzähl mir was über X" ist dieses Werkzeug die Auskunft, nicht das Allgemeinwissen — erst verorten, dann abfragen: die osm_id stammt aus nearby/stops/search_place. When to use: nach nearby / stops / search_place lieferte einen POI mit osm_id und die Anfrage will Detail-Info — DE: „erzähl mir was über ", „was kostet der Eintritt", „Öffnungszeiten von ", „bei dem Wetter in unternehmen". EN: „tell me about ", „opening hours of ", „what can I do in given the weather". When NOT to use: für Stadt-/Region-IDs (nutze lookup_place_osm oder search_place); ohne vorherigen Tool-Call mit OSM-ID-Output (KEIN raten); wenn die Anfrage Routing/Abfahrten will (dann connections/departures). Required args: osm_id — bare numeric string (pattern ^\d+$, z.B. "296222553"), kein node:/way:-Prefix (der wurde beim emittierenden Tool bereits gestrippt). Typical chain: TWO distinct chains feed this tool — (1) WETTER-CONTEXT: get_current_weather + nearby(node_types='poi') → THIS_TOOL ×3-5 (Trigger: „bei dem Wetter", „given the weather"). (2) REGION-TOURISM: search_place + stops(node_types='poi') → THIS_TOOL ×3-5 (Trigger: „was kann ich in unternehmen" ohne Wetter-Bezug — dichtere OSM-Coverage über stops-Pfad). Multi-call: JA. Nach stops/nearby mit N POI-Treffern: THIS_TOOL pro Top-3 bis Top-5 OSM-IDs PARALLEL aufrufen — jeder Call ist unabhängig, ein Burst ist erlaubt. NIE nur 1× rufen wenn N>1 POIs zurückkommen. Anti-Fab note: POI-Name, Operator, Öffnungszeiten, Adresse, Tags kommen AUSSCHLIESSLICH aus sources[].subjects[].properties dieses Aufrufs. Wenn sources: [] → honest fallback („Zu diesem Ort konnte ich aktuell keine Detail-Informationen abrufen"), NIEMALS aus Trainings-Wissen ergänzen. OSM-Coverage: deutschlandweit; Tag-Dichte variiert je Region wie in OSM üblich. Shape: {osm_id, sources:[{source:'openstreetmap', subjects:[{subject, properties:{…raw OSM tags: name, tourism/historic/leisure, opening_hours, fee, website, wheelchair, addr:*…}, coord?:{lat,lon}}]}], facts?:{opening_hours?:{value,source}, price?:{free?,raw,source}}}. Die rohen Tags tragen Typ/Adresse/Öffnungszeiten/Preis/Beschreibung bereits; coord (Geometrie-Center, additiv) liegt je Subject NEBEN properties und speist die Karte — present nur wenn das Element Geometrie hat. facts (additiv, top-level): normalisierte Öffnungszeiten + Preis mit Pro-Feld-Provenance (source:'openstreetmap') aus den opening_hours/fee-Tags — EINE stabile Stelle statt Roh-Tags durchwühlen. price.free=true bei fee=no (explizit „kostenlos"/Eintritt frei), false bei fee=yes/Betrag; price.raw trägt den Roh-Tag verbatim. Fehlt opening_hours UND fee → facts ABWESEND (honest, nie erfunden — Quellen-Priorität: kuratiert via get_tourism_details VOR diesem OSM-Bridge). attribution (additiv, top-level): die ODbL-Namensnennung der gelieferten OSM-Daten (ODbL) — {id:'ODbL-1.0', notice:'© OpenStreetMap contributors', url:'https://www.openstreetmap.org/copyright'}. EINMAL pro Antwort (nicht pro Treffer) und nur wenn sources nicht leer ist. Nennst du OSM-Daten in der Antwort, nenne die Quelle „OpenStreetMap" — die Lizenz-Auflage reist mit dem Tool-Output, nicht mit dem Prompt.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| osm_id | Yes | Bare numeric OSM ID (e.g. `"296222553"` — no `node:` / `way:` prefix). Must match `^\d+$` (validated at handler-time). The mcp-linking / mcp-geo callers already strip any type-prefix before exposing the value in `ids[].value`. |