When a drought early warning fires in Turkana County, six systems should respond.
The insurance contract covering 40,000 smallholder farmers has a parametric clause: when the Standardized Precipitation Index drops below -1.5 for three consecutive months, payouts trigger automatically. No claims adjuster. No farm visit. The satellite confirms it.
The agricultural extension system should send drought-resistant variety advisories to registered farmers. Planting decisions made now — six weeks before harvest failure is visible — still matter.
The community health worker network should activate malnutrition surveillance. Drought becomes malnutrition in six to ten weeks. If the surveillance begins then, it's too late.
The county health office should begin procurement of therapeutic foods. Lead time on procurement is four to six weeks.
None of this happens.
The drought early warning fires into silence. The signal exists. The tools exist. The data exists. The coordination does not.
The isolation problem
East Africa's AI coordination stack now includes 31 MCP (Model Context Protocol) servers — tools for payments, water monitoring, agricultural coordination, health services, land records, education, tax compliance, labor rights, insurance, and more. Every one of these tools is deployed. Every one operates in isolation.
wapimaji-mcp generates drought alerts from NASA NDVI and NOAA CHIRPS data. It knows what's coming. It knows which counties are at risk. It knows the severity and the timeline.
bima-mcp manages parametric insurance contracts. It can evaluate triggers. It can initiate payouts. It does not receive signals from wapimaji-mcp.
afya-mcp coordinates community health workers. It can activate surveillance protocols. It can route CHW household visits. It does not know a drought is coming.
kilimo-mcp connects farmers to agricultural advisory services. It can send SMS advisories through Africa's Talking. It does not receive drought signals.
The tools exist. The coordination layer does not.
What the missing layer looks like
africa-coord-bus is the coordination event bus that connects these tools.
When wapimaji-mcp detects a drought signal:
from africa_coord_bus import EventBus, CoordinationEvent, DomainCascade
from africa_coord_bus import EventDomain, EventSeverity, KenyaLocation
bus = EventBus(queue_path="/var/coord-bus/events.jsonl")
cascade = DomainCascade(bus)
cascade.wire_all()
bus.publish(CoordinationEvent(
domain=EventDomain.WATER,
event_type="drought_alert",
source="wapimaji-mcp",
severity=EventSeverity.ALERT,
location=KenyaLocation(county="Turkana", county_code=23),
data={"ndvi_anomaly": -0.28, "spi_3month": -1.8},
))
The cascade fires automatically:
-
bima-mcp.evaluate_parametric_payout— insurance evaluation begins -
kilimo-mcp.issue_drought_advisory— farmers receive SMS -
afya-mcp.activate_malnutrition_watch— CHW surveillance activates -
county-mcp.alert_county_health— county health office notified -
soko-mcp.price_alert— market price monitoring intensified
Six weeks earlier than the current state. Before the damage is visible.
Offline-first by design
Rural Kenya does not have reliable internet. The coordination bus writes every event to a local JSONL queue before dispatch. If connectivity fails, events persist. When connectivity restores, the queue replays.
The coordination layer works at the edge. It does not require a data center.
Install
pip install africa-coord-bus
The full demonstration shows the cascade across all Kenya domains. All 31 MCP servers are available at pypi.org/user/gmahia.
The coordination gap is real. The tools to close it now exist.
Top comments (0)