---
summary: "worldbank_search_projects takes ISO3 country codes and a financing-window filter, reports the project page's commitment amount, and keeps newest-approval order under a query; worldbank_list_countries filters by lending type."
breaking: false
security: false
---

# 0.4.1 — 2026-09-25

## Added

- **`lending_type` on `worldbank_list_countries`** ([#46](https://github.com/cyanheads/worldbank-mcp-server/issues/46)): `IDX` (IDA), `IBD` (IBRD), `IDB` (Blend), or `LNX` (Not classified), combined with `region` and `income_level` by AND. Each country is listed once and counted once in `totalCount`/`totalPages`, although upstream sends every `IDX`, `IBD`, and `IDB` entry twice.
- **`financial_type` on `worldbank_search_projects`** ([#46](https://github.com/cyanheads/worldbank-mcp-server/issues/46)): financing windows `IBRD`, `IDA`, `Grants`, `Other`, combined as OR and echoed as `appliedFilters.financialType`. A project that publishes no financing window never matches.
- **ISO3 country codes on `worldbank_search_projects`** ([#45](https://github.com/cyanheads/worldbank-mcp-server/issues/45)) resolve through the World Bank country index to the code the portfolio keys on (`BRA` → `BR`); the index is read only when a three-character code is present. A WDI aggregate (`SSF`, `WLD`, `SAS`) or an unknown code is `invalid_country_code`, with a recovery pointing at `region`.
- **`ibrdCommitment`, `idaCommitment`, and `grantAmount`** on each project, beside `totalCommitment` ([#41](https://github.com/cyanheads/worldbank-mcp-server/issues/41)). `grantAmount` can include other agencies' co-financing, so World Bank lending alone is `ibrdCommitment` + `idaCommitment`.

## Changed

- **Yemen, DR Congo, West Bank and Gaza, and Timor-Leste** ([#45](https://github.com/cyanheads/worldbank-mcp-server/issues/45)) are searched under the legacy codes the portfolio files them by (`RY`, `ZR`, `GZ`, `TP`), whether sent as ISO3 or ISO2, and a project's `countryCodes` reports their WDI ISO2 (`YE`, `CD`, `PS`, `TL`) in place of the legacy code. The legacy code is still accepted as input.
- **`worldbank_list_countries` `region` description** names `MEA` as Middle East, North Africa, Afghanistan & Pakistan and lists the membership codes it also accepts (`AFE`, `AFW`, `ARB`, `EUU`, `LDC`).
- **Server instructions, README, and `docs/design.md`** say `worldbank_search_projects` takes ISO3 or ISO2 economy codes but no aggregates, where they said ISO2 only, and document the new filters and commitment fields.

## Fixed

- **`totalCommitment` reads `curr_total_commitment`**, the project page's "Commitment Amount" (IBRD + IDA + grant), instead of `totalamt` ([#41](https://github.com/cyanheads/worldbank-mcp-server/issues/41)). Grant-only operations no longer read `null` and blended ones match the page; the field is null on 35.8% of projects, down from 51.4%.
- **`worldbank_search_projects` results are newest board approval first under `query` too** ([#49](https://github.com/cyanheads/worldbank-mcp-server/issues/49)): every request sends `srt=boardapprovaldate&order=desc`, and projects with no board date come last. Upstream ordered a query search by descending project ID.
- **A query the Projects API cannot parse is `invalid_query`** (`ValidationError`, not retryable) rather than `upstream_unavailable` ([#56](https://github.com/cyanheads/worldbank-mcp-server/issues/56)): an HTTP 400 on a request carrying `query`, or a `query` containing `#`, which is rejected before any request instead of failing output validation.
- **Projects `upstream_unavailable` retries only transient statuses** ([#56](https://github.com/cyanheads/worldbank-mcp-server/issues/56)): 429, 408, and 5xx other than 501 are retried, honoring an upstream `Retry-After`; 403, 404, 501, and a 400 without `query` are not retryable. Previously every status below 500 was marked not retryable and given the query recovery.
- **A country index that fails to load during code resolution** — ISO2 on `worldbank_get_poverty`, ISO3 on `worldbank_search_projects` — is the declared `upstream_unavailable`, naming the Indicators API country listing, with the retry recovery ([#63](https://github.com/cyanheads/worldbank-mcp-server/issues/63)).
