# Reported issues for open-meteo-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 [open-meteo-mcp-server](/mcp/open-meteo-mcp-server).

## Most discussed

### bug(truncation): truncated responses emit [] for the unrequested cadence instead of omitting the key

### Server version

0.3.7

### mcp-ts-core version

0.12.8

### Runtime

Bun

### Runtime version

Bun 1.4.0

### Transport

stdio

### OS

macOS 26.1

### Description

On the non-truncated path, `openmeteo_get_forecast` / `_historical` / `_marine` / `_ensemble` set `daily: dailyRecords` and `hourly: hourlyRecords`, where each is `reshapeColumnar(...)` output or `undefined` — correctly absent whenever the corresponding `_variables` field wasn't requested, matching the output schema's…

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

### bug(canvas): no-canvas truncation disclosure never reaches structuredContent, only content[]

### Server version

0.3.7

### mcp-ts-core version

0.12.8

### Runtime

Bun

### Runtime version

Bun 1.4.0

### Transport

stdio

### OS

macOS 26.1

### Description

With `CANVAS_PROVIDER_TYPE` unset (canvas disabled) and a wide request — e.g. `openmeteo_get_forecast` with `forecast_days: 16`, `past_days: 92`, and several hourly variables — `structuredContent` carries `truncated: true`, `record_count`, and `canvas_id: undefined`. The `noCanvasNotice()` text (why there's no `canvas_id`, that…

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

### bug(weather-tools): "too much data" upstream rejections misclassified as invalid_variable

### Server version

0.3.7

### mcp-ts-core version

0.12.8

### Runtime

Bun

### Runtime version

Bun 1.4.0

### Transport

stdio

### OS

macOS 26.1

### Description

Live-confirmed on `openmeteo_get_climate` (`start_date: 1950-01-01`, `end_date: 2050-12-31`, 3 daily variables, all 7 CMIP6 models): Open-Meteo answers

```
{"reason":"Your API call requests too much data. Please reduce the number of variables, locations and/or weather models.","error":true}
```

`get-climate.tool.ts`'s `if…

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

### bug(open-meteo-service): HTTP 429 rate limit retried 3x and reported as a generic outage

### Server version

0.3.6 (verified still present, unchanged, on the current release 0.3.7 — the 0.3.7 release did not touch `open-meteo-service.ts`)

### mcp-ts-core version

0.12.8

### Runtime

Bun

### Runtime version

Bun 1.4.0

### Transport

stdio

### OS

macOS 26.1

### Description

When Open-Meteo answers with HTTP 429 (free-tier call-rate limit), `isRetryable()` in `src/services/open-meteo/open-meteo-service.ts` classifies `JsonRpcErrorCode.RateLimited` as transient alongside…

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

### bug(errors): coverage-gap recovery tells marine and flood callers to switch a models parameter neither tool has

### Server version

0.3.4

### mcp-ts-core version

0.11.0

### Runtime

Bun

### Runtime version

Bun 1.3.x

### Transport

http

### Description

Related: #33

`COVERAGE_GAP_RECOVERY` (`src/services/open-meteo/open-meteo-service.ts`) tells the caller to change a parameter that most tools do not expose:

> Switch to a model whose domain includes this coordinate (any global model does), or omit the model to use the default blend. Retrying returns the same response.

It is raised from…

[Read the thread](https://github.com/cyanheads/open-meteo-mcp-server/issues/45) · 2026-08-18 · closed · 1 comment

### feat(current): expose current weather and air-quality conditions

## Use case

A caller asking “what is the temperature, wind, and precipitation right now?” or “what is the AQI now?” must request an hourly time series and then infer which row corresponds to the current instant. That is more work and less precise than the upstream current-condition capability, which is based on 15-minute model data.

Both workflows belong on existing tools:

- `openmeteo_get_forecast` already owns current and forecast weather for coordinates.
- `openmeteo_get_air_quality`…

[Read the thread](https://github.com/cyanheads/open-meteo-mcp-server/issues/42) · 2026-08-11 · open · 1 comment

### bug(spill): metadata sits outside the inline payload budget

### Server version

0.3.6

### mcp-ts-core version

0.12.8

### Runtime

Bun

### Runtime version

Bun 1.4.0

### Transport

HTTP (Streamable HTTP)

### OS

macOS 26.1

### Description

Spill eligibility and preview selection apply the 80,000-character `PREVIEW_CHARS` budget only to serialized row objects. Wide unit maps, the `canvas_id`/`table_name`/`record_count`/`model` fields, and the formatted `content[]` header are added afterward, so an honestly truncated result can still exceed the…

[Read the thread](https://github.com/cyanheads/open-meteo-mcp-server/issues/41) · 2026-08-11 · closed · 1 comment

### bug(results): valid-unit all-null windows lack coverage signals

### Server version

0.3.6

### mcp-ts-core version

0.12.8

### Runtime

Bun

### Runtime version

Bun 1.3.14

### Transport

HTTP (Streamable HTTP)

### OS

macOS 26.1

### Description

Time-series results can be wholly or partly outside the selected dataset's coverage while retaining normal unit metadata. Those rows are returned as ordinary success with no coverage or partial-result notice. The existing unserved-variable notice (`undefinedUnitColumns()` in…

[Read the thread](https://github.com/cyanheads/open-meteo-mcp-server/issues/40) · 2026-08-11 · closed · 1 comment

## Most recent

### enhancement(tools): declare a rate_limited error contract on tools that call OpenMeteoService

`OpenMeteoService`'s `openMeteoFetch()` throws `rateLimited(...)` (`JsonRpcErrorCode.RateLimited`, -32003) on HTTP 429 (`src/services/open-meteo/open-meteo-service.ts:154-169`, thrown at `:211-213`), and every tool that calls the service can hit it — `search-locations`, `get-forecast`, `get-historical`, `get-marine`, `get-air-quality`, `get-elevation`, `get-ensemble`, `get-flood`, and `get-climate` all route through `withOpenMeteoRetry` → `openMeteoFetch`, which checks `response.status === 429`…

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

### bug(date ranges): marine and air quality misclassify reversed dates

### Server version

0.3.4

### mcp-ts-core version

0.11.0

### Runtime

Bun

### Runtime version

Bun 1.3.14

### Transport

HTTP (Streamable HTTP)

### OS

macOS 26.1

### Description

`openmeteo_get_marine` and `openmeteo_get_air_quality` validate date pairing and forecast-window conflicts locally, but do not validate that `end_date` is on or after `start_date`. The reversed pair reaches upstream and is framed as an invalid variable, sending the caller toward unrelated variable-name…

[Read the thread](https://github.com/cyanheads/open-meteo-mcp-server/issues/39) · 2026-08-11 · closed · 1 comment

### bug(timezone): blank and invalid values surface the wrong semantics

### Server version

0.3.5

### mcp-ts-core version

0.12.3

### Runtime

Bun

### Runtime version

Bun 1.4.0

### Transport

HTTP (Streamable HTTP)

### OS

macOS 26.1

### Description

Weather-tool `timezone` inputs accept any string. A blank string is silently dropped by URL construction, changing the documented default from `auto` to the upstream default GMT. A non-empty invalid time zone fails upstream, but the server reports it as an invalid variable with variable-name recovery instead of…

[Read the thread](https://github.com/cyanheads/open-meteo-mcp-server/issues/38) · 2026-08-11 · closed · 1 comment

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