Swahili Health MCP
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Swahili Health MCPlist health facilities in Nairobi county"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
๐ฅ Swahili Health MCP
Model Context Protocol (MCP) server for Kenya health data. Provides AI agents with tools to query Kenya health facilities, maternal health indicators, immunization coverage, and disease surveillance data via the DHIS2 public API.
Tools
Tool | Description |
| Get details of a Kenya health facility by name or code |
| List health facilities in a county with level and services |
| Maternal health indicators โ ANC visits, skilled birth attendance |
| Child immunization coverage by vaccine and county |
| Weekly disease surveillance data (malaria, diarrhea, pneumonia) |
| Health worker density by county |
Related MCP server: KenyaMCPServer
Usage with Claude
# Install
pip install swahili-health-mcp
# Add to Claude Code
claude mcp add swahili-health -- swahili-health-mcp
# Or with uvx
claude mcp add swahili-health -- uvx swahili-health-mcpData Sources
Kenya DHIS2 (dhis.moh.go.ke) โ Ministry of Health open data
Kenya Health Facility Registry (kenyaemr.org)
Kenya Health Information System (KHIS)
All data is publicly available via Kenya's open government data policy.
Part of the East Africa Civic Tech Portfolio
See also: mpesa-mcp | wapimaji-mcp
IP & Collaboration
MIT licensed. Feedback via GitHub Issues only โ pull requests are not accepted. Demo data is labeled DEMO and is not suitable for operational decisions. Full policy: docs/architecture/IP_POLICY.md. Security reports: see SECURITY.md.
Part of the East Africa coordination stack
Install & run:
pip install reli-cli && reli listโ 33 MCP servers on the official MCP Registry underio.github.gabrielmahiaEvaluate any model on Swahili agent tasks: kipimo ยท dataset ยท leaderboard
Coordinate across servers: africa-coord-bus โ offline-first event bus with a built-in Kenya routing table
Datasets: huggingface.co/gmahia ยท Docs hub: nairobi-stack
Model-agnostic by design: closed APIs, open-weight models, and small distilled models are all first-class citizens.
Available Tools
3 toolsget_immunization_coverageB
Pata kiwango cha chanjo / Get immunization coverage for a county and vaccine
| Name | Required | Description | Default |
|---|---|---|---|
| county | Yes | County name | |
| vaccine | No | Vaccine name (BCG, DPT3, Measles, etc.) | DPT3 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose any behavioral traits beyond the basic 'get' operation. It does not mention read-only status, potential side effects, rate limits, or output format, which is a significant gap given the lack of annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence with bilingual phrasing, containing no unnecessary words. It is front-loaded with the action and resource, making it quickly scannable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple with two parameters and no output schema, so the description gives the essential purpose and inputs. However, it does not describe the return value or any usage context, which could be useful. It meets the minimum viability but lacks depth.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description explicitly mentions 'county and vaccine', which aligns with the schema parameters, but it does not add any extra meaning or clarify formats beyond what is already in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'get' and the resource 'immunization coverage' with the specific scope 'county and vaccine'. This directly distinguishes it from sibling tools like search_health_facilities and get_maternal_health_indicators.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives. The description simply states what it does without any contextual clues or exclusions, leaving the agent to infer usage from the name and parameters.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_maternal_health_indicatorsB
Pata takwimu za afya ya uzazi / Get maternal health indicators for a county
| Name | Required | Description | Default |
|---|---|---|---|
| county | Yes | County name |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must convey behavioral context. It only says 'get', implying a read operation, but does not disclose what the returned indicators are, the data format, or any limitations. This is minimal disclosure beyond the tool's name.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is brief and front-loaded, consisting of two short sentences. The Swahili translation is redundant but does not add significant length. It is appropriately concise, though the duplication could be considered unnecessary.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter tool, the description covers the core function but lacks detail on what maternal health indicators are included, data sources, or how this relates to sibling tools. It is minimally viable but leaves contextual gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already provides 100% coverage for the 'county' parameter with 'County name'. The description adds only the context that the tool is for a county, which is marginal. Since schema coverage is high, the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Get maternal health indicators for a county' with a specific verb and resource. It distinguishes from sibling tools like search_health_facilities and get_immunization_coverage by focusing on maternal health indicators at the county level.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus the sibling health data tools. It implies usage for county-level maternal health data but does not mention alternatives or exclusions, leaving the decision to the agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_health_facilitiesB
Tafuta vituo vya afya Kenya / Search Kenya health facilities
| Name | Required | Description | Default |
|---|---|---|---|
| level | No | Facility level (1-6) | |
| county | No | County name (e.g., Nairobi, Kiambu) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It merely says 'Search Kenya health facilities' without disclosing what the tool returns (e.g., a list of facilities, details), whether it supports filtering, pagination, authentication requirements, or any rate limits. This is a significant gap for a search tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short, consisting of a Swahili and English equivalent phrase. It is front-loaded and wastes no words, though the translation is redundant for the same content. It earns a high score for brevity, but the duplication reduces it slightly from a perfect 5.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Considering the tool has 2 parameters, no output schema, and no annotations, the description should explain what the search returns or any limitations. It only states the general purpose, leaving the agent to infer the result format. The description is minimally viable but not complete enough for effective invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already provides 100% coverage for both parameters ('level' and 'county') with descriptions. The description adds no additional semantic value beyond the schema, such as explaining how filters combine or expected input formats. Per calibration, baseline 3 is appropriate when schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states the tool searches for health facilities in Kenya with both English and Swahili text. It uses a specific verb ('search'), a clear resource ('health facilities'), and a geographic scope ('Kenya'), distinguishing it from the sibling tools which focus on maternal health and immunization indicators.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like get_maternal_health_indicators or get_immunization_coverage. There is no mention of when to use it, prerequisites, or exclusions. The intended usage is only implied by the tool's name and purpose.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
3 tool updates
v0.1.2- First observed
get_immunization_coverage - First observed
get_maternal_health_indicators - First observed
search_health_facilities
TDQS
Scored across 3 tools
Each tool targets a distinct domain: facility search, maternal health, and immunization. There is no overlap in purpose, making it easy for an agent to select the correct tool.
All tools follow a consistent verb_noun pattern: search_health_facilities, get_maternal_health_indicators, get_immunization_coverage. The naming is predictable and uniform.
With only 3 tools, the server is minimal but appropriately scoped for a focused Kenyan health data provider. It sits at the lower boundary of the ideal 3-15 range, so slightly thin but still reasonable.
The tool surface covers facility search, maternal health, and immunization, but lacks other common health indicators (e.g., HIV/AIDS, malaria, child health) that would be expected from a general 'health' MCP. This leaves notable gaps for broader health queries.
Maintenance
Related MCP Connectors
Public Data Ukraine Mcp connects AI agents to real public APIs via MCP. Tools include
US healthcare data for AI agents: CMS, FDA adverse events, CDC, NPPES NPI. Keyless, real samples.
Real-world data for agents: air quality, geocoding, quakes, holidays, web search
Provides access to Civic Plus - See Click Fix, allowing you to interact with your data via an LLM.โฆ
Related MCP Servers
- AlicenseBqualityDmaintenanceProvides access to the World Health Organization's Global Health Observatory data, enabling AI assistants to search, retrieve, and analyze comprehensive health indicators, country statistics, disease burden data, and regional health trends through WHO's OData API.1MIT
- AlicenseAqualityBmaintenanceProvides access to Kenya's civic datasets including parliament records, county budgets, SACCO registry, and drought data through MCP tools. Enables AI agents to analyze and query Kenyan public data for civic applications.1061MIT
- AlicenseNot gradedqualityAmaintenanceMCP server for Kenya health facility and epidemiological data via KHIS/DHIS2.MIT
- AlicenseNot gradedqualityCmaintenanceProvides access to UNICEF data on global statistics about child health, enabling AI agents to query child health indicators.5MIT