Pod

Available as Markdown and JSON. Pod is also available over MCP.

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.

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 · 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 · 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 · 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 · 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 · 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 · 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 · 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 · 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 · 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 · 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 · 2026-10-01 · closed · 1 comment

The remaining reports are on the project's issue tracker.