# io.github.cyanheads/worldbank-mcp-server (remote · worldbank.caseyjhand.com)

Query 29,500+ World Bank development indicators for 200+ countries across 60+ years.

- Trust score: 70/100 (medium)
- Change this week: +5
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-08-04

## Components

- remote · `worldbank.caseyjhand.com`: 70/100 (this document), [markdown](https://verifymcp.io/servers/cyanheads-worldbank-mcp-server/worldbank.md), [page](https://verifymcp.io/servers/cyanheads-worldbank-mcp-server/worldbank)
- npm · `@cyanheads/worldbank-mcp-server`: 35/100, [markdown](https://verifymcp.io/servers/cyanheads-worldbank-mcp-server/cyanheads-worldbank-mcp-server.md), [page](https://verifymcp.io/servers/cyanheads-worldbank-mcp-server/cyanheads-worldbank-mcp-server)

## Channel facts

- Endpoint: `https://worldbank.caseyjhand.com/mcp`
- Transports: `streamable-http`
- Auth: `none`
- Version: `0.1.14`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-08-04.

- **Endpoint Security**: 66/100
  - The endpoint's TLS certificate is valid, in date, and uses a strong key.
  - Authorisation not fully verified: no authorisation is required to call this server, and 7 tool(s) never declared a destructiveHint. The MCP spec treats an absent hint as destructive by default, so we cannot call this surface safe.
  - HTTPS is enforced; there's no plaintext access path.
  - The HSTS (Strict-Transport-Security) header is present.
  - DNSSEC is configured correctly; the domain's records validate against the full chain to the root.
- **Transport & Reachability**: 100/100
  - Verified streamable-http transport via a live MCP handshake.
- **Schema Quality & AI Usability**: 70/100
  - AI-judged instruction clarity (excellent).
  - Context-footprint check failed: tool/resource definitions use about 1342 tokens (~191/item across 7 items; 7 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 30/100
  - Stability observed for 9 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 100% of tool parameters carry a description.
  - Structured output schemas are declared (100% of tools); any adoption earns full credit.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

## Install

### Claude

```bash
claude mcp add --transport http cyanheads-worldbank-mcp-server https://worldbank.caseyjhand.com/mcp
```

### Codex

```toml
[mcp_servers.cyanheads-worldbank-mcp-server]
url = "https://worldbank.caseyjhand.com/mcp"
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "cyanheads-worldbank-mcp-server": {
      "type": "remote",
      "url": "https://worldbank.caseyjhand.com/mcp",
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add cyanheads-worldbank-mcp-server --url https://worldbank.caseyjhand.com/mcp --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  cyanheads-worldbank-mcp-server:
    url: "https://worldbank.caseyjhand.com/mcp"
```

### Other

```json
{
  "mcpServers": {
    "cyanheads-worldbank-mcp-server": {
      "type": "http",
      "url": "https://worldbank.caseyjhand.com/mcp"
    }
  }
}
```

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-08-04 (score 70, +1)

No change was recorded against any check on this day. Stability & Change Management went from 27 to 30. That category is still filling its 30-day observation window: 8 days of observed history at the previous scan, 9 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-08-02 (score 69, +1)

No change was recorded against any check on this day. Stability & Change Management went from 20 to 23. That category is still filling its 30-day observation window: 6 days of observed history at the previous scan, 7 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-07-31 (score 68, +1)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-30 (score 67, +1)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-29 (score 66, +1)

No change was recorded against any check on this day. Stability & Change Management went from 7 to 10. That category is still filling its 30-day observation window: 2 days of observed history at the previous scan, 3 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-07-27 (score 65, +1)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-26 (score 64)

First indexed and scored.

## MCP tools (7)

### `worldbank_list_topics` (~51 tokens)

List World Bank Topics

Lists all 21 World Bank thematic topics (Economy & Growth, Health, Education, etc.) with descriptions. Use to browse the indicator space or find a topic_id for worldbank_search_indicators.

Output parameters:

- `topics` (array): All 21 World Bank thematic topics.

### `worldbank_list_sources` (~88 tokens)

List World Bank Data Sources

Lists the 70+ World Bank data sources (datasets) such as World Development Indicators, IDS, and Doing Business. Returns source IDs and names for use as source_id in worldbank_search_indicators. Supports pagination.

Input parameters:

- `page` (integer): Pagination page number (1-based).
- `per_page` (integer): Results per page (default: server default, max: 100).

Output parameters:

- `currentPage` (number): Current page number.
- `sources` (array): World Bank data sources for this page.
- `totalCount` (number): Total number of sources.
- `totalPages` (number): Total number of pages.

### `worldbank_list_countries` (~270 tokens)

List World Bank Countries

Lists countries and regional aggregates with metadata: ISO codes, region, income level, capital, and coordinates. Filterable by region code (e.g. EAS, SSF, NAC) and income level (LIC, LMC, UMC, HIC). By default, excludes regional/income-group aggregate entries and returns individual countries only. Set include_aggregates=true to also see region, income group, and world aggregate entities.

Input parameters:

- `include_aggregates` (boolean): When true, includes regional, income-group, and world aggregate entries alongside individual countries. Default false (individual countries only).
- `income_level` (string): Filter by income group code: LIC (Low income), LMC (Lower middle income), UMC (Upper middle income), HIC (High income).
- `page` (integer): Pagination page number (1-based).
- `per_page` (integer): Results per page (default: server default, max: 300).
- `region` (string): Filter by World Bank region code. Valid codes: EAS (East Asia & Pacific), ECS (Europe & Central Asia), LCN (Latin America & Caribbean), MEA (Middle East & North Africa), NAC (North America), SAS (Sou…

Output parameters:

- `countries` (array): Countries (and optionally aggregates) matching the filters.
- `currentPage` (number): Current page number.
- `totalCount` (number): Total matching entries before pagination (includes aggregates if include_aggregates=true).
- `totalPages` (number): Total number of pages.

### `worldbank_get_country` (~115 tokens)

Get World Bank Country

Fetches full metadata for a specific country or aggregate entity: region, income level, capital, coordinates, and lending type. Accepts ISO2 codes (US, DE), ISO3 codes (USA, DEU), or World Bank aggregate codes (EAS, HIC, WLD).

Input parameters:

- `country_code` (string, required): Country code. Accepts ISO2 (US), ISO3 (USA), or aggregate code (EAS, HIC, WLD). Use worldbank_list_countries to browse valid codes.

Output parameters:

- `capitalCity` (string): Capital city name (empty for aggregates).
- `id` (string): Country or aggregate ID.
- `incomeLevel` (object): World Bank income classification.
- `isAggregate` (boolean): True when this entry is a regional or income-group aggregate.
- `iso2` (string): ISO2 country code.
- `latitude` (string): Capital latitude (empty for aggregates).
- `lendingType` (string): World Bank lending type classification.
- `longitude` (string): Capital longitude (empty for aggregates).
- `name` (string): Country or aggregate name.
- `region` (object): World Bank region this country belongs to.

### `worldbank_search_indicators` (~230 tokens)

Search World Bank Indicators

Searches the 29,500+ World Bank indicator catalog by keyword, topic, or source. Returns indicator IDs and metadata for chaining into worldbank_get_data. At least one of query, topic_id, or source_id must be provided. When combined with topic_id or source_id, keyword filtering applies across all results in that topic or source. Use worldbank_list_topics for topic IDs, worldbank_list_sources for source IDs.

Input parameters:

- `page` (integer): Pagination page number (1-based).
- `per_page` (integer): Results per page (default: server default, max: 100).
- `query` (string): Keyword search terms. At least one of query, topic_id, or source_id must be provided.
- `source_id` (string): Filter by data source ID (e.g. "2" for World Development Indicators). Use worldbank_list_sources to browse valid IDs.
- `topic_id` (string): Filter by topic ID (e.g. "1" for Agriculture, "3" for Economy & Growth). Use worldbank_list_topics to browse valid IDs.

Output parameters:

- `currentPage` (number): Current page number.
- `effectiveQuery` (string): Active filters echoed: keyword, topic ID, and/or source ID that were applied.
- `indicators` (array): Matching indicators for this page.
- `notice` (string): Recovery hint when no indicators matched — suggests how to broaden the search.
- `totalCount` (number): Total matching indicators before pagination.
- `totalPages` (number): Total number of pages.

### `worldbank_get_indicator` (~96 tokens)

Get World Bank Indicator

Fetches complete metadata for a single World Bank indicator by its ID: name, description, source dataset, source organization, unit, and thematic topics. Use worldbank_search_indicators to discover indicator IDs if you only know the concept.

Input parameters:

- `indicator_id` (string, required): Indicator code (e.g. NY.GDP.PCAP.CD, SP.POP.TOTL). Use worldbank_search_indicators to find valid IDs.

Output parameters:

- `id` (string): Indicator ID.
- `name` (string): Indicator name.
- `sourceId` (string): Source dataset ID.
- `sourceName` (string): Source dataset name.
- `sourceNote` (string): Detailed indicator description from the source.
- `sourceOrganization` (string): Organization that collects or publishes this data.
- `topics` (array): Thematic topics this indicator belongs to.
- `unit` (string): Unit of measurement (empty when not specified).

### `worldbank_get_data` (~361 tokens)

Get World Bank Indicator Data

Queries World Bank indicator values for one or more countries across a time range. The primary data-access tool — use worldbank_search_indicators to find indicator_id values. Returns observations with null values when data is not available for a country×year cell (common for sparse series). Specify either date_range (historical analysis) or mrv (most recent N values), not both. For "all" countries, use pagination (per_page up to 1000) since the API returns ~266 entries per indicator.

Input parameters:

- `countries` (required): Country codes. Accepts: ISO2 (US, CN), ISO3 (USA, CHN), regional aggregate codes (EAS, LCN, MEA, SAS, SSF, ECS, NAC), income group codes (HIC, UMC, LMC, LIC), world code (WLD), or "all" for all 266 e…
- `date_range` (string): Year or year range in YYYY or YYYY:YYYY format (e.g. "2020" or "2010:2023"). Mutually exclusive with mrv.
- `indicator_id` (string, required): Indicator code to query (e.g. NY.GDP.PCAP.CD, SP.POP.TOTL). Use worldbank_search_indicators to find valid IDs.
- `mrv` (integer): Return the N most recent available values (1–10). Mutually exclusive with date_range.
- `page` (integer): Pagination page number (1-based).
- `per_page` (integer): Results per page (default: server default, max: 1000). Use higher values for "all" country queries.

Output parameters:

- `currentPage` (number): Current page number.
- `data` (array): Indicator observations for this page. Null values are common for sparse series.
- `indicator` (object): Indicator metadata echoed from the response.
- `notice` (string): Recovery hint for sparse or empty result sets — suggests how to broaden the query.
- `nullCount` (number): Count of null values on this page — indicates data sparsity for the requested filter.
- `totalCount` (number): Total observations before pagination.
- `totalPages` (number): Total number of pages.

## Diagnostics

Captured diagnostic sections: TLS, DNSSEC, Authorisation, Transports. The full working is on the page: https://verifymcp.io/servers/cyanheads-worldbank-mcp-server/worldbank#diagnostics

## Score history

- 2026-08-04: 70
- 2026-08-03: 69
- 2026-08-02: 69
- 2026-08-01: 68
- 2026-07-31: 68
- 2026-07-30: 67
- 2026-07-29: 66
- 2026-07-28: 65
- 2026-07-27: 65
- 2026-07-26: 64

## Links

- Remote endpoint: https://worldbank.caseyjhand.com/mcp
- Repository: https://github.com/cyanheads/worldbank-mcp-server
- Changelog RSS feed: https://verifymcp.io/servers/cyanheads-worldbank-mcp-server/worldbank/changelog.xml
- Changelog JSON feed: https://verifymcp.io/servers/cyanheads-worldbank-mcp-server/worldbank/changelog.json
- HTML version of this page: https://verifymcp.io/servers/cyanheads-worldbank-mcp-server/worldbank
