# Reported issues for openstreetmap-mcp-server

Pod holds 7 of 7 GitHub reports that passed its relevance review. This can include external user reports, maintainer-confirmed bugs, and concrete feature gaps. Treat them as evidence to inspect, not a count of distinct defects.

Back to [openstreetmap-mcp-server](/mcp/openstreetmap-mcp-server).

## Most discussed

### feat(query_nearby, query_bbox): key-existence and multi-tag conjunction filters

### Use case

`openstreetmap_query_nearby` and `openstreetmap_query_bbox` accept one tag pair: `amenity=<value>` or `tag_key` + `tag_value`. Finding any shop, or Italian restaurants, currently requires hand-written Overpass QL in `openstreetmap_query_raw`.

### Proposed behavior

| Ask | Input | Overpass filter emitted |
|:---|:---|:---|
| Any shop | `tag_key: "shop"` (no `tag_value`) | `["shop"]` |
| Italian restaurants | `amenity: "restaurant", filters: [{ key: "cuisine", value: "italian" }]`…

[Read the thread](https://github.com/cyanheads/openstreetmap-mcp-server/issues/65) · 2026-09-10 · closed · 2 comments

### feat(search_places): add viewbox locality bias

### Use case

Place names and small features are often ambiguous outside a caller's study area. A hydrologist may need a creek inside one watershed, or an analyst may need a street or facility inside a municipal boundary. `countrycodes` is too coarse for this, and adding locality words to free-form text is less precise than Nominatim's geographic bias.

The current workflow can discover an area with `openstreetmap_query_bbox`, but it cannot carry those bounds into `openstreetmap_search_places`.…

[Read the thread](https://github.com/cyanheads/openstreetmap-mcp-server/issues/62) · 2026-08-11 · closed · 2 comments

### bug(formatting): escape OSM text in Markdown content

### Server version

0.4.3

### mcp-ts-core version

0.12.5 (`package.json` pin `^0.12.5`; behaviour re-verified with 0.12.8 resolved in `node_modules`)

### Runtime

Bun

### Runtime version

Bun 1.4.0

### Transport

HTTP (Streamable HTTP)

### OS

macOS 26.1

### Description

Community-edited OSM text — Nominatim `display_name`/`name`/address values and Overpass tag keys/values/`members[].role` — is interpolated directly into Markdown-formatted `content[]` text across all six tools,…

[Read the thread](https://github.com/cyanheads/openstreetmap-mcp-server/issues/61) · 2026-08-11 · closed · 2 comments

### bug(query_raw): out:json/timeout directive checks miss whitespace spellings Overpass accepts

### Server version

0.4.6

### mcp-ts-core version

0.12.8

### Runtime

Bun

### Runtime version

Bun 1.4.0

### Transport

HTTP

### Description

`openstreetmap_query_raw` (`src/mcp-server/tools/definitions/openstreetmap-query-raw.tool.ts`) validates and rewrites the `[out:json]`/`[timeout:N]` settings directives with three literal-string checks that all assume one exact spelling:

- preflight: `ql.includes('[out:json]')`
- timeout injection anchor: `ql.replace('[out:json]', ...)`
- timeout…

[Read the thread](https://github.com/cyanheads/openstreetmap-mcp-server/issues/68) · 2026-09-11 · closed · 1 comment

### bug(overpass-service): a connection-level failure never faults the endpoint, so rotation returns to an unreachable host

### Server version

0.4.6

### mcp-ts-core version

0.12.8

### Runtime

Bun

### Runtime version

Bun 1.4.0

### Transport

HTTP

### Description

A connection-level failure never faults the endpoint that produced it, so rotation can return to an unreachable host for the rest of the call.

`postQuery` in `src/services/overpass/overpass-service.ts` wraps every `fetch` rejection that is not an `McpError`, not its own deadline, and not a caller abort as `serviceUnavailable('Network error…

[Read the thread](https://github.com/cyanheads/openstreetmap-mcp-server/issues/67) · 2026-09-11 · closed · 1 comment

### bug(search_places): countrycodes accepts non-alpha-2 tokens and Nominatim silently drops the filter

### Server version

0.4.6

### mcp-ts-core version

0.12.8

### Runtime

Bun

### Runtime version

Bun 1.4.0

### Transport

HTTP

### Description

`countrycodes` is a bare `z.string()`. Nominatim only honors comma-separated ISO 3166-1 alpha-2 codes; any token it cannot parse is discarded and the search runs unfiltered, with HTTP 200 and no warning. So an alpha-3 code, a semicolon-separated list, or a country name silently widens the query to the whole world while the response still echoes the…

[Read the thread](https://github.com/cyanheads/openstreetmap-mcp-server/issues/66) · 2026-09-11 · closed · 1 comment

### feat(query_bbox, query_raw): scope a tag search to an OSM boundary — everything inside this city, park, or watershed

The most common spatial question after "what is near X" is "what is inside Y": every school within Seattle's city limits, every spring inside a named watershed relation, every shop inside a park boundary. `openstreetmap_search_places` and `openstreetmap_reverse_geocode` return exactly the identifier needed — the boundary's `osm_type`/`osm_id` (`R237385` for Seattle) — but no tool accepts it as a search scope. `openstreetmap_query_bbox` over the boundary's `boundingbox` overcovers by design…

[Read the thread](https://github.com/cyanheads/openstreetmap-mcp-server/issues/71) · 2026-09-11 · open · 0 comments

## Most recent

The remaining reports are on [the project's issue tracker](https://github.com/cyanheads/openstreetmap-mcp-server/issues).
