worldbank-mcp-server
Query 29,500+ World Bank development indicators for 200+ countries across 60+ years via MCP. STDIO or Streamable HTTP.
Install / Use
claude mcp add cyanheads -- npx -y github:cyanheads/worldbank-mcp-serverIf the server publishes to npm under a different name, use that package instead — check the repo README.
MCP Server
Model Context Protocol server
Quality Score
Category
MarketingSupported Platforms
Our assessment of worldbank-mcp-server
worldbank-mcp-server scores 80/100 on our quality scale, 138th of 176 Marketing skills we index.
Its MCP Server is 18 KB long, well organised into 24 sections with 7 code examples: a thorough specification that gives an agent plenty to work with.
It has 3 GitHub stars, so there is little community track record yet; judge it on its content.
Maintenance, license and trust
- The repository was last updated today, so worldbank-mcp-server is actively maintained.
- Our last check on 2026-09-12 found the source still online.
- It is released under the Apache-2.0 license, a permissive license that allows use, modification and commercial use with attribution.
- Its trust signals score 92/100, with 1 caution from licensing, adoption, age or documentation. These come from repository metadata, not a code audit — read the skill file before letting an agent act on it.
Safety scan
No issues foundOur scan of the first 100 KB of the file found no instruction hijacking, hidden characters, credential access, data exfiltration or destructive commands. An AI review of the same text found nothing harmful.
AI review by kimi-k2.7-code on 2026-09-25. Automated pattern scan on 2026-09-25. It catches known dangerous patterns, not every risk — read a skill before letting an agent act on it.
worldbank-mcp-server compared with similar skills
All 4 of these similar skills score higher than worldbank-mcp-server; compare them before choosing.
| Skill | Score | Stars | Updated | Format |
|---|---|---|---|---|
| worldbank-mcp-server (this skill)by cyanheads | 80 | 3 | today | MCP Server |
| Agent-Reachby Panniantong | 100 | 85.5k | 10d ago | CLAUDE.md |
| headroomby headroomlabs-ai | 100 | 73.8k | today | CLAUDE.md |
| rufloby ruvnet | 100 | 73.3k | 1d ago | CLAUDE.md |
| CowAgentby zhayujie | 100 | 47.1k | today | CLAUDE.md |
Frequently asked questions
- How do I install worldbank-mcp-server?
- Run
claude mcp add cyanheads -- npx -y github:cyanheads/worldbank-mcp-server. The install tabs above show the steps for each supported agent. - Which AI agents does worldbank-mcp-server work with?
- It is written for Claude Code and Claude Desktop, as a MCP Server file. Other agents that read the same format can often use it too.
- Is worldbank-mcp-server safe to use?
- Our scan of the first 100 KB of the file found no instruction hijacking, hidden characters, credential access, data exfiltration or destructive commands. An AI review of the same text found nothing harmful. It is Apache-2.0-licensed and scores 92/100 on trust signals. Skills are instructions an agent will follow, so read the file before installing it and do not approve commands you do not understand.
- Is worldbank-mcp-server still maintained?
- The repository was last updated today, so worldbank-mcp-server is actively maintained.
Skill content
View source on GitHubPublic Hosted Server: https://worldbank.caseyjhand.com/mcp
</div>Tools
9 tools for browsing and querying the World Bank Open Data API:
| Tool | Description |
|:---|:---|
| worldbank_list_topics | List all 21 World Bank thematic topics with descriptions |
| worldbank_list_sources | List 70+ World Bank data sources (datasets) with pagination |
| worldbank_list_countries | List countries and regional aggregates with ISO codes, region, income level, and coordinates |
| worldbank_get_country | Fetch full metadata for a specific country or aggregate by ISO2, ISO3, or aggregate code |
| worldbank_search_indicators | Search the 29,500+ indicator catalog by keyword, topic, or source |
| worldbank_get_indicator | Fetch complete metadata for a single indicator: name, description, source, unit, and topics |
| worldbank_get_data | Query indicator values for one or more countries across a time range or most-recent N values |
| worldbank_get_poverty | Poverty headcount, gap, and severity at any poverty line, plus the Gini coefficient and decile shares, from the Poverty and Inequality Platform |
| worldbank_search_projects | Search the World Bank lending portfolio by text, country, region, status, and board approval date |
worldbank_list_topics
List all 21 World Bank thematic topic categories.
- No input required — returns the complete fixed taxonomy
- Topics include Agriculture, Economy & Growth, Education, Energy & Mining, Environment, Financial Sector, Health, Infrastructure, Poverty, Private Sector, Public Sector, Science & Technology, Social Development, Social Protection & Labor, Trade, Urban Development, and more
- Returns topic IDs used to filter
worldbank_search_indicators
worldbank_list_sources
List the 70+ World Bank data sources (datasets).
- Paginated with configurable page size (up to 100 per page)
- Each source includes ID, name, short code, last-updated date, and data/metadata availability status
- Source IDs used to filter
worldbank_search_indicatorsby dataset origin (e.g. "2" for World Development Indicators, "6" for IDS)
worldbank_list_countries
List countries and regional aggregates with metadata.
- Returns ISO codes, World Bank region, income level, capital city, and coordinates
- Filterable by region code (EAS, ECS, LCN, MEA, NAC, SAS, SSF) and income level (LIC, LMC, UMC, HIC)
- By default returns individual countries only; set
include_aggregates=trueto include regional, income-group, and world aggregate entities - Paginated with up to 300 entries per page
worldbank_get_country
Fetch full metadata for a single country or aggregate entity.
- Accepts ISO2 (US), ISO3 (USA), or World Bank aggregate codes (EAS, HIC, WLD)
- Returns region, income level, lending type, capital city, and coordinates
- Structured error with recovery hint when code is not found
worldbank_search_indicators
Search the 29,500+ World Bank indicator catalog.
- Keyword search, topic filter, source filter — at least one required
- The upstream
searchtermparameter does not filter, so keyword matching runs locally over the full catalog (or the full selected topic/source): every term must appear in the indicator ID, name, or description, in any word order, with punctuation ignored - Exact ID or name matches rank first, then whole-phrase matches, then other ID/name matches, then description-only matches — so pasting an indicator name (
GDP (current US$)) or ID (NY.GDP.MKTP.CD) returns it as the top hit - Returns indicator IDs, names, source dataset, and thematic topics
- One row per indicator ID — the 43 indicators published under both a live source and an archived copy collapse to the live row, and
worldbank_get_indicatorresolves to the same one - Indicator IDs (e.g.
NY.GDP.PCAP.CD,SP.POP.TOTL) feed directly intoworldbank_get_data - Echoes the filters it applied (
query,topic_id,source_id) alongside the results - Paginated with up to 100 results per page
worldbank_get_indicator
Fetch complete metadata for a known indicator ID.
- Returns full description, unit of measurement, source dataset, source organization, and thematic topics
- Structured error with recovery hint when ID is not found
worldbank_get_data
Query indicator values for countries across time. The primary data-access tool.
- Single country, array of countries, regional codes (EAS, LCN, …), income codes (HIC, LMC, …), world code (WLD), or
"all"for every entry. At least one code is required — an empty value is rejected rather than read as"all" - Time filtering:
date_rangefor a period or range — annual (2020,2010:2023), quarterly (2020Q1:2021Q4), or monthly (2020M01:2020M06) — ormrvfor the N most recent available values (1–100). Mutually exclusive. - A
date_rangethe API can't apply is enforced locally over the whole series, so observations outside the requested window are never returned as matches - Returns observations with
nullvalues when data is not available for a country×year cell — common for sparse series - Includes
nullCountper page to surface data sparsity - Output grouped by country for readability;
isAggregateflag distinguishes all 78 regional, income-group, and lending-group aggregates from individual countries - Echoes the parameters it sent upstream — indicator, normalized country codes, date range or
mrv, page and page size - Paginated with up to 1000 entries per page
worldbank_get_poverty
Poverty and inequality estimates from the World Bank Poverty and Inequality Platform (PIP) — a separate dataset from the WDI series the other tools read.
- Poverty headcount ratio, poverty gap, poverty severity, and the Watts index at any poverty line, not only the published thresholds. Omit
poverty_lineto use the international line of the PIP release currently served, which is echoed back on every row - The same row carries the inequality and distribution block: Gini coefficient, mean log deviation, Wolfson polarization, and the ten decile income/consumption shares. One tool, because PIP returns poverty and inequality together and the poverty line does not affect the distribution
- Every row states how it was produced.
estimationType: "survey"rows carry the full inequality block;"interpolation","extrapolation", and"CMD estimation"rows are gap-filled estimates for years no survey covers, and theirgini,mld,polarization, anddecileSharesarenull— a gap in the source data, not an error.surveyYear,surveyAcronym, andisInterpolatedsit alongside them fill_gapsdefaults totrue, so years the surveys don't reach come back as PIP's own estimate rather than as an empty result or a hole in the series. Survey rows win wherever one exists, so a single-year batch can carry real distributions for some economies and labelled estimates for others, and a full-history query returns a row per year with the real distribution on the survey years. Setfill_gaps=falsefor survey-derived rows only- Welfare is measured in PPP dollars per person per day.
welfare_typepins results to income or consumption surveys, which are not directly comparable; thirty-five economies publish both and return a row for each - Ten economies publish an urban/rural split and return an extra row per year for it — China alone reports all three levels, the rest pair national with either urban or rural.
reporting_levelnarrows to one, and every row states its own yearaccepts a four-digit year,"all"for the full history, or"MRV"for the most recent available. Coverage starts in 1963- Individual economies only, by ISO3 code — PIP does not serve regional, income-group, or world aggregate codes through this endpoint, and a structured error says so
- Paginated locally with up to 1000 entries per page, since PIP itself has no pagination
worldbank_search_projects
The World Bank lending portfolio — the individual loans, credits, and grants the Bank finances — rather than the statistics the other tools read. A third upstream API, on its own host, with its own envelope and conventions.
- Free-text
queryacross project names, abstracts, and objectives, combined with exact filters oncountries,region,status, and a board-approval date window. Every filter is an AND, and every multi-value filter is an OR within itself - Returns the project ID, name, borrowing country and region, status, board approval and closing dates, total commitment in USD, financing windows (IBRD, IDA, Grants), major sectors, and a link to the project page
- Countries are ISO2 here (
BR,IN,ZA) — the one place this server departs from the ISO3 codes its other tools take, because the Projects API keys on ISO2. Multi-country operations carry a World Bank regional code instead (3A,4E), two characters like the rest. An ISO3 code is rejected at the schema with a message naming the difference, rather than being passed upstream where it would come back as a silent zero-hit.worldbank_get_countryreports a country'siso2field for either form statusis a closed set (Active,Closed,Dropped,Pipeline) andregionis the nine World Bank operational regions, both enforced by the schema — a typo in either can't reach upstream and read back as "no results"- An empty result says which filter emptied it. When a country filter was in force, the search re-runs it on its own: either no project carries those codes at all, or they match as a set and the remaining filters are what narrowed the result to nothing, and the notice names them
include_abstractis off by default. Abstracts run to a median of roughly 1,200 characters and are published for about half the portfolio, so a full page of them roughly doubles the response — turn it on once the r
Truncated for display — read the full file on GitHub.
Related Skills
Agent-Reach
85.5kGive your AI agent eyes to see the entire internet. Read & search Twitter, Reddit, YouTube, GitHub, Bilibili, XiaoHongShu — one CLI, zero API fees.
headroom
73.8kCompress tool outputs, logs, files, and RAG chunks before they reach the LLM. 20% fewer tokens for coding agents, 60-95% fewer tokens for JSON, same answers. Library, proxy, MCP server.
ruflo
73.3k🌊 The original agent harness. Deploy intelligent multi-player swarms, coordinate autonomous workflows, and build conversational AI systems. Features adaptive memory, self-learning intelligence, federation, vector RAG integration, and native Claude Code / Codex / Hermes and many more Integrated
CowAgent
47.1kOpen-source super AI assistant & Agent Harness. Plans tasks, runs tools and skills, self-evolves with memory and knowledge. Multi-agent, multi-model, multi-channel. Lightweight, extensible, one-line install.
Languages
Trust signals
From repository metadata: license, adoption, age and documentation. Not a code audit — see the Safety scan above for what the skill file itself contains.
