Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, email [email protected] and we’ll put it right.

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.

+4 this week 69 Trust /100
Trust breakdown (6 categories)

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
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
Install

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

# add to Claude Code
claude mcp add --transport http cyanheads-worldbank-mcp-server https://worldbank.caseyjhand.com/mcp
# ~/.codex/config.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
    }
  }
}
# add to OpenClaw
openclaw mcp add cyanheads-worldbank-mcp-server --url https://worldbank.caseyjhand.com/mcp --transport streamable-http
# ~/.hermes/config.yaml
mcp_servers:
  cyanheads-worldbank-mcp-server:
    url: "https://worldbank.caseyjhand.com/mcp"
// mcp.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 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.

Diagnostics

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
MCP tools — 7 exposed · ~1,211 tokens

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.

Tool Tokens
worldbank_get_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).

NameTypeReqDescription
country_codestringyesCountry code. Accepts ISO2 (US), ISO3 (USA), or aggregate code (EAS, HIC, WLD). Use worldbank_list_countries to browse valid codes.
NameTypeReqDescription
capitalCitystringyesCapital city name (empty for aggregates).
idstringyesCountry or aggregate ID.
incomeLevelobjectyesWorld Bank income classification.
isAggregatebooleanyesTrue when this entry is a regional or income-group aggregate.
iso2stringyesISO2 country code.
latitudestringyesCapital latitude (empty for aggregates).
lendingTypestringyesWorld Bank lending type classification.
longitudestringyesCapital longitude (empty for aggregates).
namestringyesCountry or aggregate name.
regionobjectyesWorld Bank region this country belongs to.

No examples provided.

worldbank_get_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.

NameTypeReqDescription
countriesyesCountry 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_rangestringYear or year range in YYYY or YYYY:YYYY format (e.g. "2020" or "2010:2023"). Mutually exclusive with mrv.
indicator_idstringyesIndicator code to query (e.g. NY.GDP.PCAP.CD, SP.POP.TOTL). Use worldbank_search_indicators to find valid IDs.
mrvintegerReturn the N most recent available values (1–10). Mutually exclusive with date_range.
pageintegerPagination page number (1-based).
per_pageintegerResults per page (default: server default, max: 1000). Use higher values for "all" country queries.
NameTypeReqDescription
currentPagenumberyesCurrent page number.
dataarrayyesIndicator observations for this page. Null values are common for sparse series.
indicatorobjectyesIndicator metadata echoed from the response.
noticestringRecovery hint for sparse or empty result sets — suggests how to broaden the query.
nullCountnumberyesCount of null values on this page — indicates data sparsity for the requested filter.
totalCountnumberyesTotal observations before pagination.
totalPagesnumberyesTotal number of pages.

No examples provided.

worldbank_get_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.

NameTypeReqDescription
indicator_idstringyesIndicator code (e.g. NY.GDP.PCAP.CD, SP.POP.TOTL). Use worldbank_search_indicators to find valid IDs.
NameTypeReqDescription
idstringyesIndicator ID.
namestringyesIndicator name.
sourceIdstringyesSource dataset ID.
sourceNamestringyesSource dataset name.
sourceNotestringyesDetailed indicator description from the source.
sourceOrganizationstringyesOrganization that collects or publishes this data.
topicsarrayyesThematic topics this indicator belongs to.
unitstringyesUnit of measurement (empty when not specified).

No examples provided.

worldbank_list_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.

NameTypeReqDescription
include_aggregatesbooleanWhen true, includes regional, income-group, and world aggregate entries alongside individual countries. Default false (individual countries only).
income_levelstringFilter by income group code: LIC (Low income), LMC (Lower middle income), UMC (Upper middle income), HIC (High income).
pageintegerPagination page number (1-based).
per_pageintegerResults per page (default: server default, max: 300).
regionstringFilter 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…
NameTypeReqDescription
countriesarrayyesCountries (and optionally aggregates) matching the filters.
currentPagenumberyesCurrent page number.
totalCountnumberyesTotal matching entries before pagination (includes aggregates if include_aggregates=true).
totalPagesnumberyesTotal number of pages.

No examples provided.

worldbank_list_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.

NameTypeReqDescription
pageintegerPagination page number (1-based).
per_pageintegerResults per page (default: server default, max: 100).
NameTypeReqDescription
currentPagenumberyesCurrent page number.
sourcesarrayyesWorld Bank data sources for this page.
totalCountnumberyesTotal number of sources.
totalPagesnumberyesTotal number of pages.

No examples provided.

worldbank_list_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.

NameTypeReqDescription
topicsarrayyesAll 21 World Bank thematic topics.

No examples provided.

worldbank_search_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.

NameTypeReqDescription
pageintegerPagination page number (1-based).
per_pageintegerResults per page (default: server default, max: 100).
querystringKeyword search terms. At least one of query, topic_id, or source_id must be provided.
source_idstringFilter by data source ID (e.g. "2" for World Development Indicators). Use worldbank_list_sources to browse valid IDs.
topic_idstringFilter by topic ID (e.g. "1" for Agriculture, "3" for Economy & Growth). Use worldbank_list_topics to browse valid IDs.
NameTypeReqDescription
currentPagenumberyesCurrent page number.
effectiveQuerystringActive filters echoed: keyword, topic ID, and/or source ID that were applied.
indicatorsarrayyesMatching indicators for this page.
noticestringRecovery hint when no indicators matched — suggests how to broaden the search.
totalCountnumberyesTotal matching indicators before pagination.
totalPagesnumberyesTotal number of pages.

No examples provided.