# Reported issues for geonames-mcp-server

Pod holds 11 of 11 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 [geonames-mcp-server](/mcp/geonames-mcp-server).

## Most discussed

### bug(geonameId): ids above 2147483647 pass validation and fail upstream with an unrelated hint

### Server version

0.1.0

### mcp-ts-core version

0.13.10

### Runtime

Node.js

### Runtime version

Node 26.5.0

### Transport

HTTP (Streamable HTTP)

### Description

The shared `geonameId` input accepts up to 10 digits (`^[1-9]\d{0,9}$`), but GeoNames parses the id as a 32-bit integer and answers anything above 2147483647 with status 14. `geonames_get_place`, `geonames_get_hierarchy`, and `geonames_get_children` then fail with `upstream_rejected_parameter`, GeoNames' bare `For input…

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

### bug(geonames_get_place): timezone offsets labelled standard/DST are swapped south of the equator

### Server version

0.1.0

### mcp-ts-core version

0.13.10

### Runtime

Node.js

### Runtime version

Node 26.5.0

### Transport

HTTP (Streamable HTTP)

### Description

`geonames_get_place` presents GeoNames' `gmtOffset` (the offset on 1 January) as the standard-time offset and `dstOffset` (the offset on 1 July) as the daylight-saving offset. South of the equator January falls in summer, so every southern-hemisphere place that observes DST gets its standard and DST offsets swapped, in both…

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

### bug(geonames_get_countries): Kosovo isoNumeric placeholder "0" is reported as a code and resolves 000

### Server version

0.1.1

### mcp-ts-core version

0.13.10

### Runtime

Bun

### Runtime version

1.4.2

### Transport

stdio

### Description

GeoNames' `countryInfoJSON` sends `isoNumeric: "0"` for Kosovo (`XK`/`XKX`), which has no ISO 3166-1 numeric code. `geonames_get_countries` reports that `0` as Kosovo's numeric code, and because numeric lookups are zero-padded, `countries: ["000"]` resolves to Kosovo. ISO 3166-1 assigns no `000`.

Related: #8, whose numeric code table leaves Kosovo…

[Read the thread](https://github.com/cyanheads/geonames-mcp-server/issues/10) · 2026-10-01 · closed · 1 comment

### bug(geonames_search_places): cities with a non-P featureClasses or featureCodes filter silently returns nothing

### Server version

0.1.1

### mcp-ts-core version

0.13.10

### Runtime

Bun

### Runtime version

1.4.2

### Transport

stdio

### Description

`cities` restricts GeoNames' `searchJSON` to populated places (class P), and it intersects with `featureClass` and `featureCode`. `geonames_search_places` forwards `cities` beside any feature filter, so `cities` with a class other than P, or a code outside class P, matches nothing and the call returns an empty page. Its zero-hit notice suggests…

[Read the thread](https://github.com/cyanheads/geonames-mcp-server/issues/9) · 2026-10-01 · closed · 1 comment

### feat(countries filter): accept ISO alpha-3 and numeric codes in search and postal country filters

### Use case

`geonames_get_countries` accepts alpha-2, alpha-3, and numeric codes, but the shared `countries` filter of `geonames_search_places` and `geonames_find_postal_codes` takes alpha-2 only. A caller passing `USA` or `DEU`, the form many datasets and other gazetteers use, gets a bare pattern error and has to look the code up:

```
countries.0: Invalid string: must match pattern /^[A-Z]{2}$/
Recovery: Provide countries.0.
```

### Proposed behavior

Map alpha-3 and three-digit numeric…

[Read the thread](https://github.com/cyanheads/geonames-mcp-server/issues/8) · 2026-10-01 · closed · 1 comment

### feat(geonames_reverse_geocode): coastal buffer so harbor and shoreline points resolve to their country

### Use case

A point in a harbor or on a waterfront (a berth, a pier, a GPS fix on a quay) can resolve to no country and an ocean, because the containment lookup runs without a buffer. At (40.69, -74.03) in Upper New York Bay, 134 m outside the nearest country polygon GeoNames holds, `geonames_reverse_geocode` answers North Atlantic Ocean with no country or admin levels; at (43.29, 5.35), 48 m outside it on Marseille's waterfront, Mediterranean Sea, Western Basin. Port, shipping, and…

[Read the thread](https://github.com/cyanheads/geonames-mcp-server/issues/7) · 2026-10-01 · closed · 1 comment

### bug(feature filters): featureClasses and featureCodes intersect upstream, so a mismatched pair silently drops matches

### Server version

0.1.1

### mcp-ts-core version

0.13.10

### Runtime

Node.js

### Runtime version

v26.5.0

### Transport

HTTP (Streamable HTTP)

### Description

GeoNames applies `featureClass` and `featureCode` as an intersection on both `searchJSON` and `findNearbyJSON`: a code outside every listed class never matches, and a class with no listed code adds nothing. Neither `geonames_search_places` nor `geonames_reverse_geocode` says so, and the reverse-geocode zero-hit notice states the…

[Read the thread](https://github.com/cyanheads/geonames-mcp-server/issues/6) · 2026-10-01 · closed · 1 comment

### bug(geonames_get_children): tourism, geography, and dependency trees return the administrative children when the feature has none

### Server version

0.1.1

### mcp-ts-core version

0.13.10

### Runtime

Node.js

### Runtime version

v26.5.0

### Transport

HTTP (Streamable HTTP)

### Description

When a parent has no edges in the requested tree, GeoNames' `childrenJSON` answers with its administrative children, byte-identical to the `administrative` response, and `geonames_get_children` labels them with the requested tree (`hierarchy: "dependency"`, heading "(dependency tree)"). `geography` has no data: GeoNames'…

[Read the thread](https://github.com/cyanheads/geonames-mcp-server/issues/5) · 2026-10-01 · closed · 1 comment

## Most recent

### bug(GeoNamesService): a cancelled shared request makes every waiter start its own, and a cancelled waiter keeps waiting

### Server version

0.1.1

### mcp-ts-core version

0.13.10

### Runtime

Bun

### Runtime version

1.4.2

### Transport

stdio

### Description

`GeoNamesService.#singleFlight` lets identical in-flight requests on one account share a single upstream call. When the caller that started the shared request is cancelled, every caller waiting on it falls through and starts its own request, so N waiters spend N credits where one restart would do. A waiter cancelled while it waits is also not…

[Read the thread](https://github.com/cyanheads/geonames-mcp-server/issues/12) · 2026-10-02 · open · 0 comments

### feat(geonames_reverse_geocode): derive date-labelled timezone offsets from the IANA zone instead of deprecated gmtOffset/dstOffset

### Use case

`geonames_reverse_geocode` reports a point's UTC offset on 1 January and 1 July from `timezoneJSON`'s `gmtOffset` and `dstOffset`. GeoNames' web-services documentation now marks both fields "(deprecated)", with no removal date. When they stop arriving, the timezone block loses its two date-labelled offsets, and today the output schema requires them.

### Proposed behavior

When `timezoneJSON` returns a `timezoneId`, derive the 1 January and 1 July offsets locally from the IANA…

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

### bug(geonames_reverse_geocode): offshore dstOffset placeholder 0 is reported as the 1 July UTC offset

### Server version

0.1.1

### mcp-ts-core version

0.13.10

### Runtime

Node.js

### Runtime version

v26.5.0

### Transport

HTTP (Streamable HTTP)

### Description

Offshore, GeoNames' `timezoneJSON` sends no `timezoneId` and `dstOffset: 0`, while `rawOffset` and `gmtOffset` carry the nautical offset. `geonames_reverse_geocode` passes the `0` through as `dstOffsetInHours`, which it describes as "UTC offset in hours on 1 July", so open-water points report UTC+0 for July. Open water has no…

[Read the thread](https://github.com/cyanheads/geonames-mcp-server/issues/4) · 2026-10-01 · closed · 1 comment

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