juuglmaps

postman/juuglmaps 

Answers questions about the JuuglMaps OpenStreetMap stack and calls its four public APIs to get the answer.

Copy a prompt to use in Claude Code, Codex, or Cursor.
Repository
Contributors
Integrations
JuuglMaps OpenStreetMap stackFern documentation MCP server
More blueprints
AGENT.md

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. getRoutingTile answers with binary protobuf (~170 KB), which cannot survive a text tool result.
  • searchDocs refuses 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; the overpass_query tool 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.