io.github.cyanheads/worldbank-mcp-server
REMOTE · WORLDBANK.CASEYJHAND.COM · 2 COMPONENTS · SCANNED AUG 3
Query 29,500+ World Bank development indicators for 200+ countries across 60+ years.
Available components
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. How we score →
Endpoint Security66
- The endpoint's TLS certificate is valid, in date, and uses a strong key. View diagnostics → Pass
- 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. See how to fix → View diagnostics → Unverified
- HTTPS is enforced; there's no plaintext access path. View diagnostics → Pass
- The HSTS (Strict-Transport-Security) header is present. View diagnostics → Pass
- DNSSEC is configured correctly; the domain's records validate against the full chain to the root. View diagnostics → Pass
Transport & Reachability100
- Verified streamable-http transport via a live MCP handshake. View diagnostics → Pass
Schema Quality & AI Usability70
- AI-judged instruction clarity (excellent).Pass
- 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. See how to fix → Fail
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management27
- Stability observed for 8 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage100
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 100% of tool parameters carry a description.Pass
- Structured output schemas are declared (100% of tools); any adoption earns full credit.Pass
Capabilities100
- Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Add this component to your MCP client. Where a client-specific snippet is available, pick your client below and copy it straight into your config; otherwise use the connection detail shown.
remote · worldbank.caseyjhand.com
claude mcp add --transport http cyanheads-worldbank-mcp-server https://worldbank.caseyjhand.com/mcp
[mcp_servers.cyanheads-worldbank-mcp-server] url = "https://worldbank.caseyjhand.com/mcp"
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"cyanheads-worldbank-mcp-server": {
"type": "remote",
"url": "https://worldbank.caseyjhand.com/mcp",
"enabled": true
}
}
} openclaw mcp add cyanheads-worldbank-mcp-server --url https://worldbank.caseyjhand.com/mcp --transport streamable-http
mcp_servers:
cyanheads-worldbank-mcp-server:
url: "https://worldbank.caseyjhand.com/mcp" {
"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.
Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 2 Aug 26 +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.
- 31 Jul 26 +1
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 30 Jul 26 +1
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 29 Jul 26 +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.
- 27 Jul 26 +1
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 26 Jul 26 64
First indexed and scored.
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 3 Aug 2026 · Probed https://worldbank.caseyjhand.com/mcp
TLS valid
Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .
| Subject | Issuer | Valid from | Valid until | Key | Signature | Serial |
|---|---|---|---|---|---|---|
| CN=caseyjhand.com | CN=WE1,O=Google Trust Services,C=US | 7 Jul 2026 | 5 Oct 2026 | ECDSA 256 | ECDSA-SHA256 | 5aad900eb2055a0b0ea55912ec19680c |
| SANs: caseyjhand.com, *.caseyjhand.com | ||||||
| CN=WE1,O=Google Trust Services,C=US (CA) | CN=GTS Root R4,O=Google Trust Services LLC,C=US | 13 Dec 2023 | 20 Feb 2029 | ECDSA 256 | ECDSA-SHA384 | 7ff31977972c224a76155d13b6d685e3 |
| CN=GTS Root R4,O=Google Trust Services LLC,C=US (CA) | CN=GlobalSign Root CA,OU=Root CA,O=GlobalSign nv-sa,C=BE | 15 Nov 2023 | 28 Jan 2028 | ECDSA 384 | SHA256-RSA | 7fe530bf331343bedd821610493d8a1b |
DNSSEC secure
Validation of worldbank.caseyjhand.com. — Secure
| Zone | DS | Keys | Algorithms | Outcome |
|---|---|---|---|---|
| . | trust_anchor | 20326, 38696 | 8, 8 | Verified |
| com. | present | 19718 | 13 | Verified |
| caseyjhand.com. | present | 2371 | 13 | Verified |
| worldbank.caseyjhand.com. | Verified address RRset verified with the apex keys |
Authentication No authorisation required
The endpoint answered without asking for a token. Anyone who knows the URL can reach it.
| Result | No authorisation required |
|---|---|
| HTTP status | 200 |
| Header | Value |
|---|---|
| strict-transport-security | max-age=63072000; includeSubDomains; preload |
| x-content-type-options | nosniff |
Transports 2 probes
| Transport | URL | Outcome | Status | Location |
|---|---|---|---|---|
| streamable-http | https://worldbank.caseyjhand.com/mcp | Verified | 200 | |
| http (plaintext) | http://worldbank.caseyjhand.com/mcp | HTTPS enforced | 301 | https://worldbank.caseyjhand.com/mcp |
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability.
worldbank_get_country Get World Bank Country ~115
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).
| Name | Type | Req | Description |
|---|---|---|---|
| country_code | string | yes | Country code. Accepts ISO2 (US), ISO3 (USA), or aggregate code (EAS, HIC, WLD). Use worldbank_list_countries to browse valid codes. |
| Name | Type | Req | Description |
|---|---|---|---|
| capitalCity | string | yes | Capital city name (empty for aggregates). |
| id | string | yes | Country or aggregate ID. |
| incomeLevel | object | yes | World Bank income classification. |
| isAggregate | boolean | yes | True when this entry is a regional or income-group aggregate. |
| iso2 | string | yes | ISO2 country code. |
| latitude | string | yes | Capital latitude (empty for aggregates). |
| lendingType | string | yes | World Bank lending type classification. |
| longitude | string | yes | Capital longitude (empty for aggregates). |
| name | string | yes | Country or aggregate name. |
| region | object | yes | World Bank region this country belongs to. |
No examples provided.
worldbank_get_data Get World Bank Indicator Data ~361
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.
| Name | Type | Req | Description |
|---|---|---|---|
| countries | — | yes | 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 | yes | 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. |
| Name | Type | Req | Description |
|---|---|---|---|
| currentPage | number | yes | Current page number. |
| data | array | yes | Indicator observations for this page. Null values are common for sparse series. |
| indicator | object | yes | Indicator metadata echoed from the response. |
| notice | string | — | Recovery hint for sparse or empty result sets — suggests how to broaden the query. |
| nullCount | number | yes | Count of null values on this page — indicates data sparsity for the requested filter. |
| totalCount | number | yes | Total observations before pagination. |
| totalPages | number | yes | Total number of pages. |
No examples provided.
worldbank_get_indicator Get World Bank Indicator ~96
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.
| Name | Type | Req | Description |
|---|---|---|---|
| indicator_id | string | yes | Indicator code (e.g. NY.GDP.PCAP.CD, SP.POP.TOTL). Use worldbank_search_indicators to find valid IDs. |
| Name | Type | Req | Description |
|---|---|---|---|
| id | string | yes | Indicator ID. |
| name | string | yes | Indicator name. |
| sourceId | string | yes | Source dataset ID. |
| sourceName | string | yes | Source dataset name. |
| sourceNote | string | yes | Detailed indicator description from the source. |
| sourceOrganization | string | yes | Organization that collects or publishes this data. |
| topics | array | yes | Thematic topics this indicator belongs to. |
| unit | string | yes | Unit of measurement (empty when not specified). |
No examples provided.
worldbank_list_countries List World Bank Countries ~270
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.
| Name | Type | Req | Description |
|---|---|---|---|
| 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… |
| Name | Type | Req | Description |
|---|---|---|---|
| countries | array | yes | Countries (and optionally aggregates) matching the filters. |
| currentPage | number | yes | Current page number. |
| totalCount | number | yes | Total matching entries before pagination (includes aggregates if include_aggregates=true). |
| totalPages | number | yes | Total number of pages. |
No examples provided.
worldbank_list_sources List World Bank Data Sources ~88
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.
| Name | Type | Req | Description |
|---|---|---|---|
| page | integer | — | Pagination page number (1-based). |
| per_page | integer | — | Results per page (default: server default, max: 100). |
| Name | Type | Req | Description |
|---|---|---|---|
| currentPage | number | yes | Current page number. |
| sources | array | yes | World Bank data sources for this page. |
| totalCount | number | yes | Total number of sources. |
| totalPages | number | yes | Total number of pages. |
No examples provided.
worldbank_list_topics List World Bank Topics ~51
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.
Input schema present but exposes no named parameters.
| Name | Type | Req | Description |
|---|---|---|---|
| topics | array | yes | All 21 World Bank thematic topics. |
No examples provided.
worldbank_search_indicators Search World Bank Indicators ~230
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.
| Name | Type | Req | Description |
|---|---|---|---|
| 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. |
| Name | Type | Req | Description |
|---|---|---|---|
| currentPage | number | yes | Current page number. |
| effectiveQuery | string | — | Active filters echoed: keyword, topic ID, and/or source ID that were applied. |
| indicators | array | yes | Matching indicators for this page. |
| notice | string | — | Recovery hint when no indicators matched — suggests how to broaden the search. |
| totalCount | number | yes | Total matching indicators before pagination. |
| totalPages | number | yes | Total number of pages. |
No examples provided.