afya-mcp
This MCP server (afya-mcp) helps users navigate Kenya's health system, providing 6 tools using demo data — not suitable for clinical or operational decisions.
NHIF/SHA Coverage Lookup (
nhif_coverage_query): Query coverage for a procedure or condition, with optional member tier specification.Health Facility Finder (
health_facility_finder): Locate accredited facilities by Kenya county/sub-county, filterable by facility level and NHIF accreditation.CHW Service Lookup (
chw_service_lookup): Find Community Health Worker services available in a specific Kenya sub-county.Maternal Health Guide (
maternal_health_guide): Access ANC milestones, danger signs, and delivery guidance, with support for specific concerns.Essential Medicines Query (
essential_medicines): Look up drugs or conditions on the Kenya Essential Medicines List.Health Rights Query (
health_rights_query): Retrieve patient rights information under the Kenya Health Act 2017.
⚠️ All tools use demo data and are not intended for diagnosis, prescription, or clinical decision-making.
afya-mcp
Compatible with claude-sonnet-5 (released 2026-06-30) — Anthropic's most agentic
Sonnet yet. Runs multi-step tool chains end-to-end without stopping short.
Install: pip install afya-mcp · Use with any MCP client.
MCP server for Kenya health system navigation — NHIF coverage, facility finder, maternal health, CHW support, and essential medicines. 6 tools.
Part of the East Africa Coordination Stack
This MCP server is one of 32 tools in the Kenya coordination infrastructure.
It connects to africa-coord-bus — the coordination
event bus that routes signals between domains automatically.
When this server detects a threshold condition, the bus notifies:
bima-mcp— parametric insurance evaluationkilimo-mcp— agricultural advisoryafya-mcp— health surveillance activationcounty-mcp— county office alert
pip install africa-coord-busAll servers: pypi.org/user/gmahia
Related MCP server: bima-mcp
AI Architecture: Health Domain RAG
Medical AI requires grounding — ungrounded responses in health contexts cause real harm. Use this server as a RAG entry point, not a standalone health oracle.
Research basis:
RAG Best Practices for Medical Domain (2026): RAG outperforms chain-of-thought on complex medical reasoning and is more interpretable — critical in clinical contexts.
AfricaNLP 2025/2026: Only 4 African languages (incl. Swahili) have consistent NLP support. Healthcare is identified as the highest-priority domain needing accurate, grounded AI — and the one with the most critical data gaps.
Multilingual NLP for African Healthcare (AfricaNLP 2025): Bias and translation errors persist specifically in African health AI contexts.
Appropriate use:
✅ Health facility navigation, NHIF coverage lookup, community health worker support
✅ Health information grounded in verified Kenya health system data
✅ Triage to appropriate care level
❌ Diagnosis, prescription, or clinical decision-making (human-in-the-loop required)
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
6 toolschw_service_lookupC
Lookup CHW services in a Kenya sub-county. DEMO.
| Name | Required | Description | Default |
|---|---|---|---|
| sub_county | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It indicates a read operation ('lookup') but adds no details about response format, pagination, or limitations. 'DEMO' hints at restricted functionality but is vague.
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 very short (one sentence, 7 words), which is concise but includes the unnecessary 'DEMO' tag. It is not structured with bullet points or sections, but the brevity is acceptable for a simple tool.
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?
Despite having only one parameter and an output schema, the description lacks details about what CHW services are, the scope (e.g., which sub-counties are supported), and the output structure. The 'DEMO' label suggests limitations not explained.
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 coverage is 0%. Description does not explain the 'sub_county' parameter, such as expected format (e.g., exact name, code) or examples. This leaves the agent with no guidance on how to populate the parameter.
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?
Description clearly states the tool 'Lookup CHW services in a Kenya sub-county', specifying the action (lookup), resource (CHW services), and location (Kenya sub-county). The mention of 'DEMO' slightly detracts. Does not explicitly distinguish from siblings, but the resource is unique enough.
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?
No guidance on when to use this tool versus alternatives like health_facility_finder. No mention of when-not-to-use or prerequisites. The description is a single statement with no contextual hints.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
essential_medicinesC
Query Kenya Essential Medicines List. DEMO.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided. The description only says 'Query' and 'DEMO,' offering no details on side effects, permissions, rate limits, or return values. The 'DEMO' tag is ambiguous.
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?
Extremely short but at the cost of missing critical information. Not concise in a helpful way.
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?
Despite having an output schema, the description omits all behavioral and parameter details, making it insufficient for correct tool 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?
Schema description coverage is 0%. The description does not mention the single 'query' parameter or its expected format, leaving agents without guidance on how to construct the input.
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 tool queries the Kenya Essential Medicines List, a specific resource. This distinguishes it from sibling tools which cover other health topics like facilities, rights, or insurance.
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?
No guidance on when to use this tool vs siblings. No when-not or alternative recommendations are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
health_facility_finderC
Find accredited health facilities in a Kenya county/sub-county. DEMO.
| Name | Required | Description | Default |
|---|---|---|---|
| level | No | ||
| county | Yes | ||
| nhif_only | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It merely states 'Find accredited health facilities' and includes 'DEMO', but fails to describe behavior such as data freshness, output format, or any limits. The 'DEMO' hint suggests incomplete functionality but is not explicit.
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 sentence, efficiently stating the tool's purpose. However, the inclusion of 'DEMO' is somewhat extraneous and may mislead as to the tool's reliability, slightly reducing conciseness.
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?
Given three parameters (one required) and no annotations or schema documentation coverage, the description is insufficient. It fails to explain all parameters, expected input format, or return value structure, despite an output schema existing. An agent would lack critical details for correct 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?
Schema description coverage is 0%, so the description must compensate. It only vaguely implies the 'county' parameter ('in a Kenya county/sub-county') and provides no explanation for 'level' or 'nhif_only'. Default values and types are left entirely to 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 tool name and description clearly specify the action ('Find'), resource ('accredited health facilities'), and scope ('in a Kenya county/sub-county'). The description distinguishes it from sibling tools which focus on different health topics.
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?
No guidance is provided on when to use this tool versus its siblings (e.g., chw_service_lookup, essential_medicines). The description does not mention prerequisites, optimal use cases, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
health_rights_queryC
Patient rights under Kenya Health Act 2017. DEMO.
| Name | Required | Description | Default |
|---|---|---|---|
| topic | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits. It only states the subject matter and 'DEMO', implying possible incompleteness or test status. It does not confirm read-only nature, required permissions, or other behaviors such as rate limits or data freshness.
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 brief (one sentence plus 'DEMO'), which is concise but loses informational value. It is front-loaded with the core purpose, but fails to provide essential details. Conciseness is not an excuse for under-specification.
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?
Given the tool's simplicity (1 param, no annotations, output schema present but not described), the description is incomplete. It lacks parameter explanation, usage examples, and behavioral context. The presence of an output schema does not absolve the need for a richer description.
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 0%. The description does not explain the 'topic' parameter at all—what values are valid, format, or examples. The parameter is a required string, but the tool adds no semantic value beyond the schema. This is a critical gap for agent understanding.
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 specifies the tool's function: querying patient rights under Kenya Health Act 2017. It provides a clear verb+resource combination. However, the 'DEMO' suffix introduces ambiguity about its operational status, and it does not differentiate from sibling tools, though the context suggests uniqueness.
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?
No guidance is provided on when to use this tool versus alternatives. The description does not indicate appropriate topics for the 'topic' parameter, nor does it mention any prerequisites or limitations. Users must infer usage from the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
maternal_health_guideC
ANC milestones, danger signs, and delivery guidance for Kenya. DEMO.
| Name | Required | Description | Default |
|---|---|---|---|
| trimester | Yes | ||
| specific_concern | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden but only mentions 'DEMO', implying limitations. It does not disclose input handling, return format, or any behavioral traits.
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?
Extremely concise but at the cost of informativeness. A single line without structure or detail is under-specified, not conciseness.
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?
Given no annotations, 2 params, and an output schema, the description lacks prerequisites, output details, and context for a healthcare information tool.
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 has 0% description coverage, and the description provides no explanation for 'trimester' or 'specific_concern'. The agent has no guidance on valid values or usage.
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 tool provides ANC milestones, danger signs, and delivery guidance for Kenya. However, it does not differentiate from sibling tools like health_facility_finder or essential_medicines.
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?
No guidance on when to use this tool versus alternatives or any prerequisites. The description is too brief to inform decision-making.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
nhif_coverage_queryB
Query NHIF/SHA coverage for a procedure or condition. DEMO.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | ||
| member_tier | No | standard |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description only adds 'DEMO' to indicate a demonstration version. It fails to disclose important behavioral traits like read-only nature, data freshness, or limitations of the demo environment.
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 (two sentences) and front-loaded with the core functionality. However, the 'DEMO' tag could be integrated into the first sentence, and important details are omitted, so it is not maximally efficient.
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?
Despite having an output schema, the description gives no hint about the response format or key fields. With 2 parameters lacking guidance and a set of sibling tools without differentiation, the description is incomplete for an AI agent to use effectively.
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 has 0% description coverage, and the description adds no meaning for parameters: 'query' (what format?) and 'member_tier' (what are valid values?). The description does not compensate for the missing schema documentation.
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 'Query' and the resource 'NHIF/SHA coverage' for a procedure or condition, distinguishing it from sibling tools like health_facility_finder or essential_medicines.
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 implies usage for checking coverage but provides no explicit guidance on when to use this tool versus alternatives, nor any prerequisites or exclusion criteria.
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. Dates show when Glama detected each change.
6 tool updates
v0.1.1- First observed
chw_service_lookup - First observed
essential_medicines - First observed
health_facility_finder - First observed
health_rights_query - First observed
maternal_health_guide - First observed
nhif_coverage_query
TDQS
Each tool addresses a distinct domain within Kenya healthcare (CHW services, medicines, facilities, rights, maternal health, NHIF coverage). No two tools overlap in purpose, ensuring clear selection.
All names use lowercase with underscores and follow a 'domain_operation' pattern, but the operation terms vary: 'lookup', 'finder', 'query', 'guide'. This minor inconsistency prevents a perfect score.
Six tools is appropriate for a focused healthcare demo. The set covers key information areas without being overwhelming or too sparse.
The tools cover essential health information queries for Kenya. While additional tools like immunization schedules or disease-specific guides could be added, the current set covers major user needs with minor gaps.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
MCP server for medicare-coverage
MCP server for US nursing facility search and ownership lookup (NursingHomeDatabase).
MCP tools for Malawian food search, clinical nutrition calculators, and RAG-backed guidance.
Hosted MCP server for the Healthie EHR & telehealth API: patients, appointments, charting, tasks.
Related MCP Servers
- AlicenseNot gradedqualityAmaintenanceOfficial Medplum MCP server for healthcare automation3,6072,653Apache 2.0
- AlicenseAqualityAmaintenanceMCP server for Kenya insurance intelligence, providing tools to query insurance products, NHIF coverage, and parametric crop risk scoring.6MIT
- AlicenseCqualityAmaintenanceMCP server for Kenya environment — NEMA permits, climate data, conservation areas, environmental rights, climate adaptation.5MIT
- AlicenseBqualityAmaintenanceMCP server for Kenya land administration — title search, land rates, subdivision process, dispute resolution, land rights.5MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/gabrielmahia/afya-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server