---
summary: "worldbank_get_data adds mrnev for each country's latest non-empty values, frequency for quarterly and monthly series, and lastUpdated. Latest values are selected locally from date reads checked against the API's response cache, and a transient HTTP 400 is retried."
breaking: false
security: false
---

# 0.5.1 — 2026-09-25

## Added

- **`mrnev` on `worldbank_get_data`** ([#43](https://github.com/cyanheads/worldbank-mcp-server/issues/43)): each requested country's own N most recent non-null values (1–100); a country with none returns no rows. `mrnev: 1` on `BR;ER;SS;VE` / `NY.GDP.PCAP.CD` returns BR 2025, ER 2011, SS 2015, VE 2025.
- **`frequency` on `worldbank_get_data`** ([#51](https://github.com/cyanheads/worldbank-mcp-server/issues/51)): `annual`, `quarterly`, or `monthly`, the period form `mrv` and `mrnev` select within, or with neither, the whole series at that form. Omitted, a selection is annual, or the series' own form when it has no annual periods. A form a single-form series lacks returns an empty result with a notice naming the form it publishes; Global Economic Monitor null-fills a form a series lacks, so `mrv` and `mrnev` there return an empty result with a notice, and a whole-series read returns null rows whose all-null page carries a notice.
- **`lastUpdated` enrichment on `worldbank_get_data`** ([#43](https://github.com/cyanheads/worldbank-mcp-server/issues/43)): the serving source's last update date from the envelope's `lastupdated`, on the standard and source-scoped paths; omitted when the envelope carries none.
- **`upstream_inconsistent` error reason** ([#66](https://github.com/cyanheads/worldbank-mcp-server/issues/66)) (`ServiceUnavailable`, retryable): a data read and its one re-read both looked like another query's cached answer and did not match, so nothing was served.

## Changed

- **`invalid_params` covers the new inputs**: at most one of `date_range`, `mrv`, and `mrnev`, and `frequency` never with `date_range`, whose own form picks a window's periods; all rejected before any request.
- **`mrv` and `mrnev` are selected locally** ([#43](https://github.com/cyanheads/worldbank-mcp-server/issues/43), [#66](https://github.com/cyanheads/worldbank-mcp-server/issues/66)) from a `date` window (`2016:2100` in 2026; ten years of quarters or three calendar years of months), widened to the whole series only for countries short of N values. When upstream rejects a short country's legacy code, the widen reads the window's own list instead.
- **Every `date_range`, `mrv`, and `mrnev` read takes the whole scope, pages locally, and is checked for another request's cached body** ([#66](https://github.com/cyanheads/worldbank-mcp-server/issues/66)), with one re-read at another `per_page` when it looks suspect. Entities are keyed by code and name, so entities that share a code (Doing Business's `CHN`) or have none are told apart.
- **A call with no `date_range`, `mrv`, or `mrnev` reads one upstream page** ([#66](https://github.com/cyanheads/worldbank-mcp-server/issues/66)), now at `date=1900:2100`, with upstream's paging.
- **Standard-path reads of listed countries time out at 15 s**, reads of `all` at 60 s ([#66](https://github.com/cyanheads/worldbank-mcp-server/issues/66)).
- **Empty-result notices** suggest `mrnev` rather than `mrv=5`, and say when `mrv`/`mrnev` found no value anywhere in the series.
- **Error `data` no longer carries `originalStack` or `causeChain`** (mcp-ts-core 0.13.7); both stay in the log record.
- **Server `instructions`, README, and `docs/design.md`** describe `mrnev`, `frequency`, `lastUpdated`, and the response cache; README capability entries are cut to two or three bullets each.

## Fixed

- **`mrv` and date-less `worldbank_get_data` calls no longer return another request's rows** from the Indicators API's response cache ([#66](https://github.com/cyanheads/worldbank-mcp-server/issues/66)): no data request carries `mrv`, `mrnev`, or `frequency`, and every standard-endpoint data request carries `date`.
- **Mixed-frequency series answer at the period form asked** ([#51](https://github.com/cyanheads/worldbank-mcp-server/issues/51)): `date_range` documents that its form picks the periods (`2024` the annual value, `2024Q1:2024Q4` the quarters), and a quarter or month window whose observations are all null carries a notice spelling the same span at the other forms and pointing at `frequency`.
- **A transient HTTP 400 carrying the API's "Request Error" HTML page is retried** and, if it persists, reported as `ServiceUnavailable` rather than `InvalidParams` ([#69](https://github.com/cyanheads/worldbank-mcp-server/issues/69)); any other 400 is unchanged.
- **`worldbank_search_projects` propagates a cancellation** that lands during the country-filter probe instead of answering the search as an empty result.

## Dependencies

- `@cyanheads/mcp-ts-core` ^0.13.6 → ^0.13.7, with the synced `framework-skills/` and `CLAUDE.md`/`AGENTS.md` template edits
- `ignore` ^7.0.9 → ^7.0.10 (dev)
