who-gho-mcp-server
Query WHO Global Health Observatory data — 3,059 indicators across 194 member states with country, region, year, and sex filters via MCP. STDIO or Streamable HTTP.
Install / Use
claude mcp add cyanheads -- npx -y github:cyanheads/who-gho-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
Tags
Our assessment of who-gho-mcp-server
who-gho-mcp-server scores 83/100 on our quality scale, 458th of 573 Marketing skills we index.
Its MCP Server is 17 KB long, well organised into 31 sections with 11 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 3 days ago, so who-gho-mcp-server is actively maintained.
- 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.
who-gho-mcp-server compared with similar skills
All 4 of these similar skills score higher than who-gho-mcp-server; compare them before choosing.
| Skill | Score | Stars | Updated | Format |
|---|---|---|---|---|
| who-gho-mcp-server (this skill)by cyanheads | 83 | 3 | 3d ago | MCP Server |
| Agent-Reachby Panniantong | 100 | 106.0k | 4d ago | CLAUDE.md |
| headroomby headroomlabs-ai | 100 | 78.2k | today | CLAUDE.md |
| CowAgentby zhayujie | 100 | 47.7k | today | CLAUDE.md |
| Scraplingby D4Vinci | 100 | 90.3k | today | MCP Server |
Frequently asked questions
- How do I install who-gho-mcp-server?
- Run
claude mcp add cyanheads -- npx -y github:cyanheads/who-gho-mcp-server. The install tabs above show the steps for each supported agent. - Which AI agents does who-gho-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 who-gho-mcp-server safe to use?
- 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 who-gho-mcp-server still maintained?
- The repository was last updated 3 days ago, so who-gho-mcp-server is actively maintained.
Skill content
View source on GitHubPublic Hosted Server: https://who-gho.caseyjhand.com/mcp
</div>Overview
Global health statistics from the WHO Global Health Observatory: 3,102 indicators across 194 member states. Search indicators and query data by country, region, income group, sex, and year.
Tools
| Tool | Description |
|:---|:---|
| who_search_indicators | Search the GHO indicator catalog by keyword in indicator names |
| who_list_indicators | Browse the full indicator catalog with pagination |
| who_get_indicator_metadata | Fetch indicator names and dimension types, processing 10 codes per call with continuation for larger batches |
| who_list_dimensions | List all dimension type codes available in the GHO API |
| who_list_dimension_values | List valid codes and labels for a dimension type (COUNTRY, REGION, SEX, etc.) |
| who_query_indicator_data | Query data rows for an indicator with spatial, temporal, and dimension filters |
Resources
| Resource | Description |
|:---|:---|
| who://indicator/{indicatorCode}/metadata | Indicator name and supported filter dimensions for a single code |
| who://dimension/{dimensionCode}/values | First 100 values for a dimension type |
| who://dimension/{dimensionCode}/values{?limit,offset} | One explicit page of a dimension type's values |
| who://dimension/{dimensionCode}/values{?limit,offset,parentCode} | One explicit page, narrowed to a parent code |
Each mirrors data also reachable via who_get_indicator_metadata and who_list_dimension_values — useful for clients that inject resources as context but don't call tools.
Agent skill
who-gho-guide covers dimension-position discovery, complete country comparisons, and countries versus regional aggregates. It ships with plugin installs, npm, Docker, and the MCPB bundle. MCP clients can discover its SKILL.md through resources/list or the io.modelcontextprotocol/skills extension (skills/list, skills/get, and resources/directory/read); the server also exposes the skill://{+path} resource template.
Capability reference
who_search_indicators <sub>tool</sub>
- Each whitespace-separated word must match a substring in the indicator name, in any order; no stemming or fuzzy expansion. If names have no matches, an exact indicator-code lookup is attempted.
- Returns indicator codes and display names for use with
who_query_indicator_data - Offset-based pagination (
offset, default 0) withlimitdefault 20, max 100; reportstotalCount,hasMore,pageInfo,nextOffset - An offset at or beyond
totalCountreturns an empty page; ano_resultserror is raised only when nothing matches at all
who_list_indicators <sub>tool</sub>
- No keyword required — browse the 3,102-indicator catalog
- Offset-based pagination via
limit(default 50, max 500) andoffset - Returns
totalCountandhasMorefor iteration
who_get_indicator_metadata <sub>tool</sub>
- Accepts up to 1,000 indicator codes and processes the first 10 in parallel; submit returned
unprocessedCodesnext. WithGHO_CLAMP_LIMITS=false, batches over 10 are rejected. - Returns the full indicator name and supported dimension types (e.g.
COUNTRY,SEX,REGION,AGEGROUP) for each resolved code - Indicators with no dimension listing upstream return
dimensions: []plus adimensionsNotepointing at a sample data row's dimension type/value pairs. Metadata does not identify dimension positions. - Codes resolving to neither a catalog entry nor dimension rows land in
notFound; the call fails when no processed code resolves and no unprocessed codes remain
who_list_dimensions <sub>tool</sub>
- No inputs — returns every dimension type code and human-readable title in the GHO catalog
- Common types:
COUNTRY,REGION,SEX,WORLDBANKINCOMEGROUP,AGEGROUP - Use to discover codes before calling
who_list_dimension_values
who_list_dimension_values <sub>tool</sub>
- Returns codes and labels for the dimension's values (e.g. the 234 country entries, the 43 WHO region codes), plus optional parent-hierarchy fields (
parentCode,parentLabel,parentDimension) parent_codenarrows hierarchical dimensions —dimension: "COUNTRY"withparent_code: "EUR"returns the 58 countries in the WHO European Region- Deterministic ordering by
Code; offset-based pagination (offset) withlimitdefault 100, max 500 —GHO(3,103 values) andDHSMICSGEOREGION(4,932) need paging - A
parent_codethat matches nothing returns an empty page for a known dimension; unknown dimensions fail even with a parent filter - An unpaired UTF-16 surrogate in
dimensionfails as a typedmalformed_identifiervalidation error
who_query_indicator_data <sub>tool</sub>
- Spatial filters are mutually exclusive per call:
country_codes(WHO country codes, including historical entries),region_codes(WHO aggregate rows), orincome_group_codes(World Bank aggregate rows) — supplying more than one is a validation error year_from/year_totime range;sex(SEX_BTSX,SEX_FMLE,SEX_MLE) applies only when the indicator's first cross-cutting dimension is SEX.dim1_value,dim2_value, anddim3_valueselect observed positional values; discover positions from returned type/value pairs, not metadata.sexoverridesdim1_valuewith a notice.include_uncertainty(default true) addslow/highbounds;sort(year_descdefault oryear_asc) with a total row ordering so paging never repeats or drops rows- Offset-based pagination with
limitdefault 200, max 1000; reportstotalRows,hasMore,pageInfo,nextOffset - Typed failure reasons:
indicator_not_found,no_data,ambiguous_spatial_filter,invalid_year_range,invalid_query,malformed_identifier
who://indicator/{indicatorCode}/metadata <sub>resource</sub>
- Indicator name and supported filter dimensions as
application/json indicatorCodecomes fromwho_search_indicatorsorwho_list_indicators- Empty
dimensionscarries adimensionsNotewhen the upstream dimension table lists none for the code, rather than reporting a missing indicator - Returns a 404 error only when the code resolves to neither a catalog name nor any dimension rows
who://dimension/{dimensionCode}/values <sub>resource</sub>
- Bare URI returns the first 100 values for the dimension (
dimensionCodefromwho_list_dimensions), asapplication/json - Registered separately from the two paged variants below because the MCP SDK's RFC 6570 matcher treats every URI query variable as required — one template cannot serve both a bare and a paged form
- An unfiltered empty result means the dimension code does not exist
who://dimension/{dimensionCode}/values{?limit,offset} <sub>resource</sub>
limit(1–500) andoffsetmust both be present in the URI — the query variables are required, not optional- Same page fields as the bare URI:
totalCount,hasMore,nextOffset, and an optionalnotice - An offset at or beyond
totalCountreturns an empty page, not an error
who://dimension/{dimensionCode}/values{?limit,offset,parentCode} <sub>resource</sub>
- Adds
parentCodeto narrow to one parent value, e.g.parentCode="EUR"for countries in the WHO European Region;limit,offset, andparentCodemust all be present in the URI - A
parentCodethat matches nothing returns an empty page for a known dimension; unknown dimensions fail even with a parent filter - Same output shape as the bare and paged resources:
dimension,values,totalCount,hasMore,nextOffset,notice
Features
Built on @cyanheads/mcp-ts-core: stdio and Streamable HTTP transports, pluggable auth (none / jwt / oauth), swappable storage (in-memory, filesystem, Supabase, Cloudflare KV/R2/D1), structured logging with optional OpenTelemetry tracing.
WHO GHO-specific:
- Full coverage of the WHO GHO OData API v2 — indicators, dimensions, dimension values, and data queries
- Configurable base URL and service-operation deadline (
GHO_BASE_URL,GHO_REQUEST_TIMEOUT_MS) for custom or mirrored deployments - Parallel metadata fan-out for multi-code indicator lookups
- Deterministic, total row/value ordering — pagination never repeats or drops rows across pages
Agent-friendly output:
- Tool descriptions encode the cross-tool workflow — agents discover the right call order (search → metadata → query) from descriptions alone
- Structured pagination signaling (
hasMore,nextOffset,pageInfo, andtruncatedon the data-query tool) so agents can decide whether to page further - Discriminated, typed error reasons with a
recoveryhint on every failure path - Distinct empty-page vs. not-found semantics — paging past the end, an unmatched filter, and a genuinely missing code each report differently instead of colliding into one generic empty result
Getting started
Public Hosted Instance
A public instance is available at https://who-gho.caseyjhand.com/mcp — no installation required. Point any MCP client at it via Streamable HTTP:
{
"mcpServers": {
"who-gho-mcp-server": {
"type": "streamable-http",
"url": "https://who-gho.caseyjhand.com/mcp"
}
}
}
Self-Hosted / Local
Add the following to your MCP client configuration file.
{
"mcpServers": {
"who-gho-mcp-server": {
"type": "stdio",
"command": "bunx",
"args": ["@cyanheads/who-gho-mcp-server@latest"],
"env": {
"MCP_TRANSPORT_TY
Truncated for display — read the full file on GitHub.
Related Skills
Agent-Reach
106.0kGive your AI agent eyes to see the entire internet. Read & search Twitter, Reddit, YouTube, GitHub, Bilibili, XiaoHongShu — one CLI, zero API fees.
headroom
78.2kCompress 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.
CowAgent
47.7kOpen-source personal 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.
Scrapling
90.3k🕷️ The BEST Web Scraping framework that handles everything from a single request to a full-scale crawl! Don't be shy, join here: https://discord.gg/EMgGbDceNQ and follow here for daily tips and tricks: https://x.com/Scrapling_dev
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.
