Thirty-two MCP servers for Kenya's coordination domains.
Water. Health. Agriculture. Insurance. Land. Education. Transport. Tax. Labor. Market prices.
Each one works. None talks to any other.
This is what 32 isolated tools looks like in practice: a CHW in Kisumu flags a cholera cluster. The water quality system doesn't know. The county procurement system doesn't know. The emergency medicine supply chain doesn't know. The tools that need to respond are all present. The coordination between them doesn't exist.
The Model Context Protocol ecosystem is growing fast. For most of the world, it's growing in domains that already have coordination infrastructure: calendar apps, email clients, project management tools. These tools coordinate with each other through years of API integrations, webhooks, Zapier connections, and shared data stores.
African coordination domains don't have that legacy. They're being built now, from scratch, on MCP.
That means the coordination layer has to be built at the same time.
africa-coord-bus defines a
CoordinationEvent
— a standard cross-domain signal schema — and an EventBus
that routes events to the tools that need to respond.The routing table is explicit:
| Trigger | Cascade |
|---|---|
water.drought_alert (Warning+) |
|
| bima-mcp, kilimo-mcp, soko-mcp | |
water.drought_alert (Alert+) |
- afya-mcp, county-mcp |
health.disease_outbreak(cholera) | wapimaji-mcp water quality check |agriculture.price_spike(>30%) | afya-mcp food security watch |water.flood_alert| afya-mcp waterborne watch, county-mcp |
Custom rules take three lines:
from africa_coord_bus import RoutingRule, EventDomain, EventSeverity
bus.routing.add(RoutingRule(
name="locust→emergency_procurement",
trigger_domain=EventDomain.AGRICULTURE,
trigger_event_type="locust_swarm",
trigger_min_severity=EventSeverity.ALERT,
target_actions=["fomu-mcp.emergency_procurement", "county-mcp.agriculture_alert"],
))
The pattern that's emerging for East Africa:
Public domain datasets (HuggingFace)
│ grounding knowledge
▼
32 MCP servers (PyPI) ←── africa-coord-bus
│
▼
A2A + ADK agents
│
▼
Streamlit coordination interfaces
Each layer is replaceable. The models are replaceable. The MCP servers are replaceable. What persists is the coordination architecture.
pip install africa-coord-bus
Source: github.com/gabrielmahia/africa-coord-bus
The coordination gap was the last missing layer. It's now installable.
Source: africa-coord-bus on PyPI