postman/juuglmaps
Answers questions about the JuuglMaps OpenStreetMap stack and calls its four public APIs to get the answer.
JuuglMaps
An agent over the JuuglMaps OpenStreetMap stack: four public APIs — OSM Editing v0.6, Nominatim geocoding, Overpass feature queries and OSRM routing — served from one origin over a Germany-only dataset.
It has two sets of tools. Eighteen tools call the APIs directly. One tool, searchDocs,
searches the published documentation portal for questions about the APIs themselves.
It cannot write to the map, by construction
Every OSM write — opening or closing a changeset, creating, updating or deleting a node —
is absent and unreachable. This is not a prompt instruction the model could talk itself
out of. The tool layer exposes only operations whose OpenAPI security is the empty
list, refuses any method other than GET (plus the single Overpass POST), and never
attaches a credential header. A write needs a JuuglMaps gateway API key and an OSM
OAuth token with write_api scope; this agent holds neither.
Why the API tools are hand-written
Fern's generated API Definition cannot express two things this stack depends on. The
Overpass text/plain query body is dropped by the intermediate representation, so a
generated tool would have no parameter to carry the query at all. And all eight XML
responses vanish from the Definition entirely. Both are recorded in the source
repository's own audit (docs/OBSERVED.md #36 and #42). The tools are therefore written
against the OpenAPI documents directly, with the documented traps — coordinate order,
bounding-box limits, the ambiguous 504 — encoded in the tool descriptions.
Usage
Ask it map questions and it will make real requests:
- "What pharmacies are within 500 m of Marienplatz in Munich?"
- "How long is the drive from Munich to Nuremberg?"
- "What are the tags on node 1?"
- "Which of these three addresses is closest by car to our office?"
Ask it API questions and it will search the portal:
- "How do I open a changeset?"
- "What are the limits on a bounding-box download?"
Limitations
- Germany only, from a fixed extract. Outside Germany the honest answer is that this deployment has no data there.
- The origin serves Mon–Fri 07:00–19:00 Europe/Berlin. Outside that window requests fail at the gateway; the agent reports that as an environment problem rather than as missing data.
- Vector tiles are not exposed.
getRoutingTileanswers with binary protobuf (~170 KB), which cannot survive a text tool result. searchDocsrefuses any query containing the literal word "overpass" — a server-side input filter on the documentation service, reproduced deterministically and defeated by dropping one letter. The agent works around it by rephrasing; theoverpass_querytool is unaffected.
Attribution
Data is © OpenStreetMap contributors, licensed under ODbL 1.0. Every API response carries
an X-Attribution header. Downstream use must preserve attribution and applicable
share-alike obligations.