ghed-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| GHED_MCP_CACHE_DIR | No | Directory to store the GHED cache (default: ~/.cache/ghed-mcp) |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| refresh_cacheA | Download or re-download the public GHED workbook and rebuild SQLite. |
| cache_statusA | Return cache status and WHO source-document details; initializes an empty cache. The first call may take minutes. Run ghed-mcp --warm-cache in a terminal first if the MCP client has a short tool timeout. Use check_for_updates to check for newer WHO data without downloading the workbook. |
| check_for_updatesA | Compare the local cache source document with the current GHED all-data file. |
| versionA | Return workbook version lines and cache provenance. |
| methodology_guideA | Explain how GHED variables are organized and how to choose the right series. |
| topics_indexA | Curated GHED topic index mapping common user requests to variable codes. |
| research_use_casesB | Research patterns seen in GHED-using literature, with recommended variables. |
| suggest_variables_for_research_questionA | Map a natural-language research question to likely GHED variables and cautions. |
| list_variable_categoriesA | List GHED variable category counts from the Codebook. |
| list_indicatorsB | List headline GHED indicators only (category_1 = INDICATORS). |
| list_variablesC | List all GHED Codebook variables, optionally filtered by category. |
| search_indicatorsA | Search headline indicators; use search_variables for detailed SHA series. This is substring search, not semantic search. Use a short fragment such as 'out-of-pocket', 'GGE' or 'che_gdp', not a full research question. If no match, shorten the query or use topics_index. category_1=None searches all variables. |
| search_variablesA | Search all Codebook variables; use search_indicators for headline measures. This is substring search. Use a short code/name fragment, not a full question. An empty result can mean the wording did not match; shorten the query or use topics_index before concluding that a variable is unavailable. |
| list_countriesA | List countries and territories available in GHED, optionally by group.
|
| list_country_groupsB | List GHED country grouping values by region and World Bank income class. |
| list_curated_country_groupsA | List Decilion's curated country groupings (WB regions, LDCs, OECD). Returns groups beyond GHED's built-in WHO regions and World Bank income
classes — World Bank geographic regions, the UN Least Developed Countries
list, and OECD membership. Use the returned |
| resolve_country_group_membershipA | Resolve a curated group code to its ISO3 member list. Accepts canonical codes (LAC, SSA, LDC, OECD, …), official WB region codes (LCN, SSF, …), and common spellings ("Latin America and Caribbean", "Sub-Saharan Africa", "Least Developed Countries"). |
| find_country_codeC | Find ISO3 country codes by name, alias, or code fragment. |
| get_indicator_metadataB | Return Codebook metadata for one GHED indicator. |
| get_country_metadataA | Return source, data-type and estimation notes from the Metadata sheet. If no indicator-specific notes exist, query country alone for broader notes. Country notes are context, not proof of the selected indicator's data type or the cause of a trend. Empty metadata does not establish data quality. |
| data_availabilityA | Summarize availability for indicators before building a research panel. |
| additive_hierarchyB | Return known additive child relationships for a GHED variable. |
| explain_indicator_relationshipB | Explain whether a variable is a total, component, ratio/share, or context series. |
| build_additive_breakdownB | Check a current-NCU accounting total for one country-year. Use additive_hierarchy to choose a relationship. If complete is false, the identity cannot be validated even when observed components nearly sum to the total. Missing components are not zero or implicitly included elsewhere. |
| build_research_panelA | Build a tidy long panel for multiple GHED variables across countries and years.
|
| build_research_packageB | Build export-ready CSV data, codebook, and README text for a research extract. |
| get_indicator_dataA | Fetch one GHED indicator with optional country and year filters. Spatial filters compose: |
| compare_countriesA | One GHED indicator across countries, returned as tidy rows or CSV. Pass either an explicit |
| compare_country_groupA | Compare one GHED indicator across a country group (curated, regional, or income-based). Pass at least one of |
| summarize_country_groupB | Summarize an indicator within a country group (curated, regional, or income). Pass at least one of |
| indicator_trendA | Compute first/latest trends for one indicator; use compare_trends for several. percent_change and cagr are fractions (0.10 = 10%). absolute_change is in the indicator's units, or percentage points for shares. Inspect actual first/latest years and change_units before interpreting or ranking results. |
| compare_trendsA | Compute first/latest summaries for several indicators; use indicator_trend for one. percent_change and cagr are fractions (0.10 = 10%); absolute changes in shares are percentage points. Check each item's years, warnings and limits. |
| rank_country_changesA | Rank countries by change; use indicator_trend for unranked summaries. metric='percent_change' and 'cagr' use fractions (0.10 = 10%), not percentage units. 'absolute_change' uses percentage points for shares, otherwise the indicator's original units. Compare actual first/latest years and change_units. |
| assess_data_qualityC | Summarize metadata, availability, and cautions for an indicator/filter. |
| country_profileB | Latest headline health-expenditure values for one country. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| compare_health_expenditure | Guided prompt for comparative health-expenditure analysis. |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| methodology_resource | Readable methodology guide for GHED variable selection. |
TDQS
Scored across 35 tools
Multiple tools have heavily overlapping boundaries: compare_countries, compare_country_group, summarize_country_group, and get_indicator_data all retrieve one indicator across country sets, and compare_countries also accepts country_group, making the distinction unclear. Search and list tools similarly overlap across indicators vs. variables, and data quality/metadata tools are hard to separate without deep inspection.
The set mostly uses verb_noun names like list_variables, get_indicator_data, and build_research_panel, but a substantial minority are noun-only commands such as country_profile, version, methodology_guide, topics_index, indicator_trend, and cache_status. The conventions are mixed but still readable and not chaotic.
At 35 tools, the server is well beyond the 25+ threshold and feels over-granular for its domain. Several tools could be consolidated, especially the country-comparison trio and the search/list variants, without losing real capability.
The tool surface is unusually complete for the GHED domain: it covers discovery, metadata, data availability, country and group resolution, single-indicator retrieval, cross-country comparison, trend analysis, research panel construction, export packaging, and cache/version management. There are no obvious dead ends or missing operations for a read-only database server.