<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Gabriel Mahia</title>
    <description>The latest articles on DEV Community by Gabriel Mahia (@gabrielmahia).</description>
    <link>https://dev.to/gabrielmahia</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3816762%2Fa0204949-e28c-4d88-862d-f8723ceddf03.jpeg</url>
      <title>DEV Community: Gabriel Mahia</title>
      <link>https://dev.to/gabrielmahia</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/gabrielmahia"/>
    <language>en</language>
    <item>
      <title>mpesa-mcp Just Joined the awesome-mcp-servers Directory — Here's What That Means</title>
      <dc:creator>Gabriel Mahia</dc:creator>
      <pubDate>Mon, 29 Jun 2026 12:00:00 +0000</pubDate>
      <link>https://dev.to/gabrielmahia/mpesa-mcp-just-joined-the-awesome-mcp-servers-directory-heres-what-that-means-11db</link>
      <guid>https://dev.to/gabrielmahia/mpesa-mcp-just-joined-the-awesome-mcp-servers-directory-heres-what-that-means-11db</guid>
      <description>&lt;h1&gt;
  
  
  mpesa-mcp Just Joined the awesome-mcp-servers Directory
&lt;/h1&gt;

&lt;p&gt;Last week, &lt;a href="https://github.com/punkpeye/awesome-mcp-servers" rel="noopener noreferrer"&gt;awesome-mcp-servers&lt;/a&gt; merged PR #7395. mpesa-mcp is now listed alongside servers from Stripe, GitHub, PostgreSQL, and hundreds of other production tools.&lt;/p&gt;

&lt;p&gt;For context: this repository is the canonical registry of quality MCP servers. Getting merged means the server was reviewed for documentation quality, tool definition clarity, and overall production-readiness.&lt;/p&gt;

&lt;h2&gt;
  
  
  What it took
&lt;/h2&gt;

&lt;p&gt;The original submission was straightforward. What made it complex was the rebase. The upstream main branch had moved while the PR was open, creating what the GitHub UI labeled as a merge conflict.&lt;/p&gt;

&lt;p&gt;The fix wasn't a normal git rebase — it required using the GitHub API directly to rewrite the commit parent to match the current upstream HEAD. The exact commit ancestry had to be verified, not assumed.&lt;/p&gt;

&lt;p&gt;That's a disproportionate amount of engineering for what amounts to adding three lines to a markdown file. But it's also a useful reminder: &lt;strong&gt;getting into the right directories matters&lt;/strong&gt;, and the friction is worth it.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Glama badge
&lt;/h2&gt;

&lt;p&gt;mpesa-mcp has been indexed on Glama with A/A/A scores (license, quality, maintenance). The &lt;a href="https://glama.ai/mcp/servers/gabrielmahia/mpesa-mcp" rel="noopener noreferrer"&gt;has-glama label&lt;/a&gt; was one of the conditions for the awesome-mcp-servers entry.&lt;/p&gt;

&lt;p&gt;Both directories serve different purposes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;awesome-mcp-servers&lt;/strong&gt;: curated community list, discoverable via GitHub&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Glama&lt;/strong&gt;: structured scoring, Docker-based testing, API-queryable metadata&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The practical effect: when someone searches for "Africa" or "fintech" in either directory, mpesa-mcp now appears.&lt;/p&gt;

&lt;h2&gt;
  
  
  Downloads
&lt;/h2&gt;

&lt;p&gt;mpesa-mcp crossed 200 PyPI downloads since v0.2.0 launched. Not viral, but organic — people finding it through the directories and testing it.&lt;/p&gt;

&lt;p&gt;The goal was always proof of concept over download count. The downloads are evidence that the infrastructure narrative is legible to an audience beyond the people who already know why it matters.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/gabrielmahia/mpesa-mcp" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt; | &lt;a href="https://pypi.org/project/mpesa-mcp/" rel="noopener noreferrer"&gt;PyPI&lt;/a&gt; | &lt;a href="https://glama.ai/mcp/servers/gabrielmahia/mpesa-mcp" rel="noopener noreferrer"&gt;Glama&lt;/a&gt;&lt;/p&gt;

</description>
      <category>mcp</category>
      <category>mpesa</category>
      <category>africa</category>
      <category>achievement</category>
    </item>
    <item>
      <title>The 7-Server Stack: How East Africa's Coordination Infrastructure Works Together</title>
      <dc:creator>Gabriel Mahia</dc:creator>
      <pubDate>Thu, 25 Jun 2026 12:00:00 +0000</pubDate>
      <link>https://dev.to/gabrielmahia/the-7-server-stack-how-east-africas-coordination-infrastructure-works-together-1fo0</link>
      <guid>https://dev.to/gabrielmahia/the-7-server-stack-how-east-africas-coordination-infrastructure-works-together-1fo0</guid>
      <description>&lt;h1&gt;
  
  
  The 7-Server Stack: How East Africa's Coordination Infrastructure Works Together
&lt;/h1&gt;

&lt;p&gt;I've been building AI infrastructure for East Africa for the past 18 months. Seven MCP servers. Seven coordination failures. One underlying theory.&lt;/p&gt;

&lt;h2&gt;
  
  
  The theory
&lt;/h2&gt;

&lt;p&gt;Markets fail when participants lack the information to coordinate. In East Africa, the failures are concrete:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A farmer sells maize at harvest when prices are lowest, not knowing Nairobi prices are 40% higher&lt;/li&gt;
&lt;li&gt;A small trader can't access credit because their M-PESA history isn't legible to banks
&lt;/li&gt;
&lt;li&gt;A jua kali welder is paid below market because neither party knows the market rate&lt;/li&gt;
&lt;li&gt;A household goes uninsured against drought because parametric products aren't findable&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Each of these is an information asymmetry problem. The technology to solve them exists. What's missing is the query layer.&lt;/p&gt;

&lt;h2&gt;
  
  
  The stack
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;mpesa-mcp     → payment execution + transaction intelligence
bima-mcp      → insurance products + parametric risk scoring
mkopo-mcp     → alternative credit scoring from M-PESA patterns
soko-mcp      → commodity price intelligence across 8 markets
sifa-mcp      → portable reputation + skills passports
kazi-mcp      → labor market matching + wage benchmarking
wapimaji-mcp  → drought phase data across 47 counties
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  How they compound
&lt;/h2&gt;

&lt;p&gt;The power isn't any single tool — it's the combinations. An AI agent helping a farmer can simultaneously:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Check current maize price in Nairobi vs local market (soko-mcp)&lt;/li&gt;
&lt;li&gt;Assess drought risk for their county (wapimaji-mcp)&lt;/li&gt;
&lt;li&gt;Find parametric crop insurance that pays out automatically (bima-mcp)&lt;/li&gt;
&lt;li&gt;Check if their M-PESA history qualifies them for input loans (mkopo-mcp)&lt;/li&gt;
&lt;li&gt;Verify their reputation score if selling through an aggregator (sifa-mcp)&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;That's five coordination problems solved in a single agent session. Previously, solving any one of them required navigating multiple institutions, phone calls, and days of waiting.&lt;/p&gt;

&lt;h2&gt;
  
  
  What's next
&lt;/h2&gt;

&lt;p&gt;The second layer is execution: tools that don't just provide information but actually trigger actions — STK Push payments, insurance policy enrollment, credit applications. Some of that already exists in mpesa-mcp. The rest is coming.&lt;/p&gt;

&lt;p&gt;The goal isn't an app. It's infrastructure. Apps are built on top; they can be Swahili-native, SMS-delivered, USSD-based, or voice-first. The coordination layer stays constant.&lt;/p&gt;

&lt;p&gt;All seven servers are live on PyPI. All are indexed on the Glama MCP directory. All are MIT-licensed.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;pip &lt;span class="nb"&gt;install &lt;/span&gt;mpesa-mcp bima-mcp mkopo-mcp soko-mcp sifa-mcp kazi-mcp wapimaji-mcp
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



</description>
      <category>mcp</category>
      <category>africa</category>
      <category>coordination</category>
      <category>fintech</category>
    </item>
    <item>
      <title>Introducing kazi-mcp: Labor Market Coordination for Kenya's 15 Million Informal Workers</title>
      <dc:creator>Gabriel Mahia</dc:creator>
      <pubDate>Mon, 22 Jun 2026 12:00:00 +0000</pubDate>
      <link>https://dev.to/gabrielmahia/introducing-kazi-mcp-labor-market-coordination-for-kenyas-15-million-informal-workers-37mm</link>
      <guid>https://dev.to/gabrielmahia/introducing-kazi-mcp-labor-market-coordination-for-kenyas-15-million-informal-workers-37mm</guid>
      <description>&lt;h1&gt;
  
  
  Introducing kazi-mcp: Labor Market Coordination for Kenya's 15 Million Informal Workers
&lt;/h1&gt;

&lt;p&gt;Kenya's informal sector employs roughly 83% of the workforce. Most of those workers — jua kali artisans, boda riders, domestic workers, hawkers — have no formal employment record, no portable skills credential, and no way to benchmark their earnings against market rates.&lt;/p&gt;

&lt;p&gt;That changes today with &lt;strong&gt;kazi-mcp&lt;/strong&gt;, the newest tool in the East Africa coordination infrastructure suite.&lt;/p&gt;

&lt;h2&gt;
  
  
  What kazi-mcp does
&lt;/h2&gt;

&lt;p&gt;kazi-mcp is an MCP server with 6 tools:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;pip &lt;span class="nb"&gt;install &lt;/span&gt;kazi-mcp
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;&lt;code&gt;job_match&lt;/code&gt;&lt;/strong&gt; — Input a list of skills, get ranked job matches with salary ranges in KES.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;code&gt;wage_benchmark&lt;/code&gt;&lt;/strong&gt; — Query monthly gross pay benchmarks (entry/mid/senior) for any job in Kenya.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;code&gt;skills_gap_analysis&lt;/code&gt;&lt;/strong&gt; — Find the gap between your current skills and a target role, with specific Kenyan training providers for each missing skill.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;code&gt;informal_sector_registry&lt;/code&gt;&lt;/strong&gt; — Register or look up jua kali and informal worker profiles.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;code&gt;contract_template&lt;/code&gt;&lt;/strong&gt; — Generate Kenya Employment Act 2007-compliant contract templates.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;code&gt;labor_rights_query&lt;/code&gt;&lt;/strong&gt; — Ask about any Employment Act right: maternity leave, overtime, termination, NSSF/NHIF.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why labor coordination is a structural problem
&lt;/h2&gt;

&lt;p&gt;The core issue isn't wages — it's information asymmetry. An employer in Westlands doesn't know the going rate for a skilled welder in Gikomba. A domestic worker in Karen can't easily document her 10 years of experience when seeking a new placement. A fresh CS graduate doesn't know whether to negotiate for KES 60,000 or KES 120,000.&lt;/p&gt;

&lt;p&gt;kazi-mcp surfaces what was previously opaque: market rates, skill requirements, training pathways, and legal protections — all queryable by any AI agent.&lt;/p&gt;

&lt;h2&gt;
  
  
  The coordination infrastructure suite
&lt;/h2&gt;

&lt;p&gt;kazi-mcp completes the first layer of Kenya's coordination stack:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Domain&lt;/th&gt;
&lt;th&gt;Tool&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Payments&lt;/td&gt;
&lt;td&gt;mpesa-mcp&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Insurance&lt;/td&gt;
&lt;td&gt;bima-mcp&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Credit&lt;/td&gt;
&lt;td&gt;mkopo-mcp&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Markets&lt;/td&gt;
&lt;td&gt;soko-mcp&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Reputation&lt;/td&gt;
&lt;td&gt;sifa-mcp&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Labor&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;kazi-mcp&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Water/Drought&lt;/td&gt;
&lt;td&gt;wapimaji-mcp&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Each tool addresses a market failure where information asymmetry costs Kenyans real money. Together, they represent a queryable layer on top of East Africa's economic reality.&lt;/p&gt;

&lt;h2&gt;
  
  
  Try it
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="c1"&gt;# In Claude Desktop, Cursor, or any MCP client:
# "What jobs match a Python developer in Nairobi?"
# "What's the going rate for a nurse in Mombasa?"
# "What rights does a casual worker have under Kenyan law?"
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Source code: &lt;a href="https://github.com/gabrielmahia/kazi-mcp" rel="noopener noreferrer"&gt;github.com/gabrielmahia/kazi-mcp&lt;/a&gt;&lt;br&gt;
PyPI: &lt;code&gt;pip install kazi-mcp&lt;/code&gt;&lt;/p&gt;




&lt;p&gt;&lt;em&gt;All data is synthetic demo data. This is not legal or financial advice.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>mcp</category>
      <category>kenya</category>
      <category>africa</category>
      <category>ai</category>
    </item>
    <item>
      <title>Africa Is Not Behind. It's Building on Better Rails.</title>
      <dc:creator>Gabriel Mahia</dc:creator>
      <pubDate>Mon, 22 Jun 2026 10:50:39 +0000</pubDate>
      <link>https://dev.to/gabrielmahia/africa-is-not-behind-its-building-on-better-rails-57a7</link>
      <guid>https://dev.to/gabrielmahia/africa-is-not-behind-its-building-on-better-rails-57a7</guid>
      <description>&lt;h1&gt;
  
  
  Africa Is Not Behind. It's Building on Better Rails.
&lt;/h1&gt;

&lt;p&gt;Here is the sentence that reframes everything:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Median age in Africa: 19. Median age in Europe: 45.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This is not a poverty statistic. This is an infrastructure statistic.&lt;/p&gt;

&lt;p&gt;Every AI tool, every financial product, every institutional system built in the West&lt;br&gt;
was designed around a 45-year-old. A person with a credit history, a land title,&lt;br&gt;
an employment record, a bank account, and decades of institutional trust.&lt;/p&gt;

&lt;p&gt;The 19-year-old in Nairobi, Dar es Salaam, or Kampala has none of those things.&lt;br&gt;
And does not need them.&lt;/p&gt;

&lt;p&gt;Because the 19-year-old has a smartphone, a mobile wallet, a WhatsApp group,&lt;br&gt;
and a willingness to use infrastructure that actually works.&lt;/p&gt;

&lt;p&gt;That is not a gap. That is a different starting point. And different starting points&lt;br&gt;
can produce different — sometimes better — endpoints.&lt;/p&gt;




&lt;h2&gt;
  
  
  What Alvin Toffler Would Say
&lt;/h2&gt;

&lt;p&gt;Toffler's Third Wave (1980) predicted: remote work, knowledge workers, electronic&lt;br&gt;
communities, decentralization. In 1980, people thought he was describing science fiction.&lt;br&gt;
By 2026, he had described the present.&lt;/p&gt;

&lt;p&gt;His framework: agriculture → industry → information → (now) intelligence.&lt;/p&gt;

&lt;p&gt;Each wave produced infrastructure that defined the next civilization.&lt;br&gt;
Steam power. Electricity. The internet. Now AI.&lt;/p&gt;

&lt;p&gt;But Toffler also identified the problem: &lt;strong&gt;institutional lag&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Second-wave institutions — schools, bureaucracies, political parties — try to govern&lt;br&gt;
third and fourth-wave realities. The mismatch creates dysfunction.&lt;br&gt;
The dysfunction creates opportunity.&lt;/p&gt;

&lt;p&gt;In Africa, the second-wave institutions were weaker to begin with.&lt;br&gt;
Which means the fourth-wave infrastructure can be built without spending 40 years&lt;br&gt;
trying to dislodge the second-wave incumbents.&lt;/p&gt;

&lt;p&gt;Kenya leapfrogged landline telephony entirely. It went from no phone infrastructure&lt;br&gt;
to M-Pesa — a mobile payment system that is more functional than most Western&lt;br&gt;
alternatives — in a single generation.&lt;/p&gt;

&lt;p&gt;The next leapfrog is underway.&lt;/p&gt;




&lt;h2&gt;
  
  
  What the Rails Look Like
&lt;/h2&gt;

&lt;p&gt;For the past several months I have been building what I'd call the institutional AI layer&lt;br&gt;
for East Africa: 31 MCP servers that give AI agents structured, authenticated,&lt;br&gt;
locally-processed access to the systems that matter.&lt;/p&gt;

&lt;p&gt;Not apps. Not chatbots. Infrastructure.&lt;/p&gt;

&lt;p&gt;The 19-year-old in Nairobi needs:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A way to get a loan without a credit history → &lt;a href="https://github.com/gabrielmahia/mkopo-mcp" rel="noopener noreferrer"&gt;mkopo-mcp&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;A way to understand her land rights → &lt;a href="https://github.com/gabrielmahia/ardhi-mcp" rel="noopener noreferrer"&gt;ardhi-mcp&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;A way to join a SACCO that matches her situation → &lt;a href="https://github.com/gabrielmahia/jumuia-mcp" rel="noopener noreferrer"&gt;jumuia-mcp&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;A way to start a business without a lawyer → &lt;a href="https://github.com/gabrielmahia/fomu-mcp" rel="noopener noreferrer"&gt;fomu-mcp&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;A way to build a professional reputation without a CV → &lt;a href="https://github.com/gabrielmahia/sifa-mcp" rel="noopener noreferrer"&gt;sifa-mcp&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These tools don't require a formal credit history. They don't require a bank account.&lt;br&gt;
They don't require a Western identity infrastructure.&lt;/p&gt;

&lt;p&gt;They require a smartphone and a problem.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Multipolar Reality
&lt;/h2&gt;

&lt;p&gt;There is a second reason this matters beyond demographics.&lt;/p&gt;

&lt;p&gt;The world is becoming genuinely multipolar. US-led institutions are under pressure.&lt;br&gt;
Chinese institutions are expanding. European influence is stabilizing. African&lt;br&gt;
institutions are building.&lt;/p&gt;

&lt;p&gt;In this environment, "where does your AI come from?" becomes a geopolitical question.&lt;/p&gt;

&lt;p&gt;The &lt;a href="https://github.com/gabrielmahia/sii-stack" rel="noopener noreferrer"&gt;SII Stack&lt;/a&gt; was built for exactly this:&lt;br&gt;
a tri-polar routing layer (Western → Eastern → Sovereign/Local) where a single&lt;br&gt;
environment variable determines which inference path runs.&lt;/p&gt;

&lt;p&gt;The sovereign tier runs entirely on-device — Llama 3.2 on a Raspberry Pi,&lt;br&gt;
no external API call, no data leaving the machine. This matters for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Clinics where patient data must stay within the facility&lt;/li&gt;
&lt;li&gt;Offline environments where connectivity is intermittent&lt;/li&gt;
&lt;li&gt;Cost-sensitive deployments where cloud inference is prohibitive&lt;/li&gt;
&lt;li&gt;Any context where the data is more valuable than the compute&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Switch tiers by changing one line. No application code changes required.&lt;/p&gt;




&lt;h2&gt;
  
  
  Tanzania Is Next
&lt;/h2&gt;

&lt;p&gt;East Africa is not a monolith.&lt;/p&gt;

&lt;p&gt;Kenya gets most of the attention. But Tanzania — 60 million people, Swahili&lt;br&gt;
as national language, fewer legacy constraints, quieter governance — is building&lt;br&gt;
steadily. The same leapfrogging conditions that made Kenya interesting in 2010&lt;br&gt;
describe Tanzania in 2026.&lt;/p&gt;

&lt;p&gt;Zero coverage in the current portfolio. That is the next rail to build.&lt;/p&gt;




&lt;h2&gt;
  
  
  The One Thing
&lt;/h2&gt;

&lt;p&gt;The demographic argument, the Toffler argument, the multipolar argument — they all&lt;br&gt;
point to the same conclusion:&lt;/p&gt;

&lt;p&gt;The people who will matter most in the next two decades are not the ones who&lt;br&gt;
built the best apps for the 45-year-old with a credit score.&lt;/p&gt;

&lt;p&gt;They are the ones who built the rails for the 19-year-old who has a smartphone,&lt;br&gt;
a chama, and a problem to solve.&lt;/p&gt;

&lt;p&gt;The work is to build those rails before someone else decides to build them&lt;br&gt;
with conditions attached.&lt;/p&gt;




&lt;p&gt;→ &lt;a href="https://gabrielmahia.github.io/nairobi-stack" rel="noopener noreferrer"&gt;Full portfolio&lt;/a&gt; · 31 MCP servers · MIT licensed · PyPI&lt;/p&gt;

</description>
      <category>africa</category>
      <category>ai</category>
      <category>mcp</category>
      <category>geopolitics</category>
    </item>
    <item>
      <title>Build Rails, Not Trains: A Framework for AI Infrastructure in the Global South</title>
      <dc:creator>Gabriel Mahia</dc:creator>
      <pubDate>Sun, 21 Jun 2026 01:35:35 +0000</pubDate>
      <link>https://dev.to/gabrielmahia/build-rails-not-trains-a-framework-for-ai-infrastructure-in-the-global-south-3nk2</link>
      <guid>https://dev.to/gabrielmahia/build-rails-not-trains-a-framework-for-ai-infrastructure-in-the-global-south-3nk2</guid>
      <description>&lt;h1&gt;
  
  
  Build Rails, Not Trains: A Framework for AI Infrastructure in the Global South
&lt;/h1&gt;

&lt;p&gt;There's a question I ask before building anything:&lt;/p&gt;

&lt;p&gt;&lt;em&gt;"What is missing?"&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Not: "How do I compete with what already exists?"&lt;/p&gt;

&lt;p&gt;The answer to the second question leads you toward incremental improvement.&lt;br&gt;
The answer to the first question leads you toward infrastructure.&lt;/p&gt;


&lt;h2&gt;
  
  
  The Rail vs. The Train
&lt;/h2&gt;

&lt;p&gt;TCP/IP didn't control the internet. It enabled it.&lt;br&gt;
Railroads didn't control freight. They enabled an economy.&lt;br&gt;
M-Pesa didn't control mobile money. It enabled 50 million transactions a month.&lt;/p&gt;

&lt;p&gt;Rails created ecosystems. The trains came later — built by thousands of people&lt;br&gt;
who didn't need to understand the rails to use them.&lt;/p&gt;

&lt;p&gt;For the past several months I've been building rails.&lt;/p&gt;

&lt;p&gt;Not apps. Not chatbots. Not wrappers.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;31 MCP servers&lt;/strong&gt; that give AI agents structured, authenticated, locally-processed access to:&lt;br&gt;
the M-PESA API, Kenya's 47-county government layer, NDMA drought classifications across all counties,&lt;br&gt;
land title systems, health infrastructure, education records, SACCO finance, matatu routes, and more.&lt;/p&gt;

&lt;p&gt;Any developer — anywhere — can now do this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;pip &lt;span class="nb"&gt;install &lt;/span&gt;mpesa-mcp county-mcp wapimaji-mcp kilimo-mcp
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;And give an AI agent the ability to trigger a mobile payment, query county budget data,&lt;br&gt;
check drought severity by county, or assess agricultural market prices.&lt;br&gt;
In under 120 seconds. On any LLM. No API key required beyond Daraja credentials.&lt;/p&gt;

&lt;p&gt;That's the rail. You build the train.&lt;/p&gt;




&lt;h2&gt;
  
  
  Diagnose Structural Absences
&lt;/h2&gt;

&lt;p&gt;The standard move in tech is competitive analysis.&lt;br&gt;
You look at what exists, identify what's better or cheaper, and build that.&lt;/p&gt;

&lt;p&gt;That's fine for markets with existing demand.&lt;/p&gt;

&lt;p&gt;For East Africa's institutional AI layer, the problem wasn't competition. It was absence.&lt;/p&gt;

&lt;p&gt;M-Pesa wasn't missing from the MCP ecosystem because engineers hadn't tried.&lt;br&gt;
It was missing because the engineer who understood how it works — its callbacks, its STK Push flow,&lt;br&gt;
its B2C timing, its idempotency requirements — wasn't building there.&lt;/p&gt;

&lt;p&gt;Every MCP server in this stack was born from the same question:&lt;/p&gt;

&lt;p&gt;&lt;em&gt;"What does an AI agent need to be genuinely useful in this context — and what doesn't exist yet?"&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;The answers:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A way to trigger payments (mpesa-mcp)&lt;/li&gt;
&lt;li&gt;A way to query drought severity before a farming decision (wapimaji-mcp)&lt;/li&gt;
&lt;li&gt;A way to check what documents a government process requires (fomu-mcp)&lt;/li&gt;
&lt;li&gt;A way to run inference with no internet and no API key (offline-mcp)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;None of these existed. Now they do.&lt;/p&gt;




&lt;h2&gt;
  
  
  Build at Your Intersections
&lt;/h2&gt;

&lt;p&gt;The technical knowledge to build MCP servers isn't rare.&lt;br&gt;
The knowledge of how M-Pesa works from the inside isn't rare either.&lt;br&gt;
The knowledge of Kenya's 47-county government structure is widely shared.&lt;/p&gt;

&lt;p&gt;What's rare is the intersection.&lt;/p&gt;

&lt;p&gt;Kenyan + diaspora + AI infrastructure fluency.&lt;/p&gt;

&lt;p&gt;That intersection doesn't have a lot of occupants.&lt;br&gt;
It doesn't need many. It just needs someone to start building.&lt;/p&gt;

&lt;p&gt;Every person has an intersection like this.&lt;br&gt;
The place where what you know uniquely, what the world needs, and what the moment makes possible all overlap.&lt;/p&gt;

&lt;p&gt;That's not a motivational statement. It's a resource allocation principle.&lt;br&gt;
Build where others can't easily replicate you.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Timing Layer
&lt;/h2&gt;

&lt;p&gt;Not all periods are equal.&lt;/p&gt;

&lt;p&gt;In 2003, you couldn't have built a mobile payment layer in Kenya — the infrastructure didn't exist.&lt;br&gt;
In 2013, you could, but you'd have needed to build the whole stack.&lt;br&gt;
In 2023, M-Pesa had a mature API, Africa's Talking existed, and the missing piece was AI coordination.&lt;/p&gt;

&lt;p&gt;The AI infrastructure window is open right now.&lt;br&gt;
The MCP protocol exists. The LLM APIs exist. The institutional data exists.&lt;br&gt;
What's missing is the coordination layer for contexts that aren't Silicon Valley.&lt;/p&gt;

&lt;p&gt;Windows close.&lt;/p&gt;

&lt;p&gt;I'm not claiming certainty about when. But the pattern from previous infrastructure cycles&lt;br&gt;
(telecom, mobile, cloud) is clear: the window for foundational protocol-level work is short.&lt;br&gt;
Execution matters more than perfection during that window.&lt;/p&gt;




&lt;h2&gt;
  
  
  Stewardship, Not Ownership
&lt;/h2&gt;

&lt;p&gt;There's a version of this work that looks like ownership.&lt;br&gt;
Build the M-Pesa MCP server, gate access behind a subscription, own the coordination layer.&lt;/p&gt;

&lt;p&gt;That's a train, not a rail.&lt;/p&gt;

&lt;p&gt;The entire portfolio is MIT licensed.&lt;br&gt;
The &lt;a href="https://github.com/gabrielmahia/sii-stack" rel="noopener noreferrer"&gt;SII Stack&lt;/a&gt; has a sovereign inference tier&lt;br&gt;
(Ollama, local, free) so communities can run AI without any data leaving their device.&lt;br&gt;
The &lt;a href="https://github.com/gabrielmahia/offline-mcp" rel="noopener noreferrer"&gt;offline-mcp&lt;/a&gt; server runs Llama 3.2&lt;br&gt;
on a Raspberry Pi with no internet and no API key.&lt;/p&gt;

&lt;p&gt;Why? Because the deepest principle in this work isn't efficiency or scale.&lt;/p&gt;

&lt;p&gt;It's stewardship.&lt;/p&gt;

&lt;p&gt;Across the Global South, communities are increasingly pressured to hand over health data,&lt;br&gt;
land records, and civic information as conditions for receiving services or funding.&lt;br&gt;
The architecture of this infrastructure was designed so communities can deliver&lt;br&gt;
AI-powered services without surrendering that data.&lt;/p&gt;

&lt;p&gt;You don't own infrastructure. You steward it.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Decay Function
&lt;/h2&gt;

&lt;p&gt;Not everything compounds.&lt;/p&gt;

&lt;p&gt;Skills decay. Platforms decay. Relevance decays.&lt;br&gt;
Character decays slowly. Judgment decays slowly. Intersectional expertise decays slowly.&lt;/p&gt;

&lt;p&gt;The 31 MCP servers aren't apps. Apps decay fast — a new framework, a changed API,&lt;br&gt;
a shifting platform, and months of work can become worthless.&lt;/p&gt;

&lt;p&gt;Infrastructure decays slowly. TCP/IP is 50 years old. M-Pesa is 17 years old.&lt;br&gt;
The MCP protocol is new, but the pattern is established: protocols outlive implementations.&lt;/p&gt;

&lt;p&gt;When choosing what to build, ask: what's the decay rate?&lt;/p&gt;




&lt;h2&gt;
  
  
  What the Stack Looks Like Now
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;31 MCP servers  →  pip install {server-name}
SII Stack       →  n8n + LiteLLM (tri-polar) + Ollama + Postgres
                   Western / Eastern / Sovereign routing
                   72-hour offline test: must work without internet
5 HF datasets   →  246 total downloads
15 Dev.to articles → 257 total views
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The rail exists. The trains are next.&lt;/p&gt;

&lt;p&gt;If you're building AI tools for contexts outside the default infrastructure assumptions —&lt;br&gt;
Global South, rural, offline-first, sovereignty-constrained, institutional rather than consumer —&lt;br&gt;
these servers are available to use, fork, extend, or build on.&lt;/p&gt;

&lt;p&gt;MIT licensed. No conditions.&lt;/p&gt;




&lt;p&gt;→ &lt;a href="https://gabrielmahia.github.io/nairobi-stack" rel="noopener noreferrer"&gt;Full portfolio&lt;/a&gt;&lt;br&gt;
→ &lt;a href="https://github.com/gabrielmahia" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;&lt;br&gt;
→ &lt;a href="https://pypi.org/user/gmahia" rel="noopener noreferrer"&gt;PyPI&lt;/a&gt;&lt;br&gt;
→ &lt;a href="https://glama.ai/mcp/servers?query=author%3Agabrielmahia" rel="noopener noreferrer"&gt;Glama&lt;/a&gt;&lt;/p&gt;

</description>
      <category>mcp</category>
      <category>ai</category>
      <category>africa</category>
      <category>architecture</category>
    </item>
    <item>
      <title>Why 'Offline-First AI' Is No Longer Optional for the Global South</title>
      <dc:creator>Gabriel Mahia</dc:creator>
      <pubDate>Fri, 19 Jun 2026 23:10:34 +0000</pubDate>
      <link>https://dev.to/gabrielmahia/why-offline-first-ai-is-no-longer-optional-for-the-global-south-4f46</link>
      <guid>https://dev.to/gabrielmahia/why-offline-first-ai-is-no-longer-optional-for-the-global-south-4f46</guid>
      <description>&lt;h1&gt;
  
  
  Why "Offline-First AI" Is No Longer Optional for the Global South
&lt;/h1&gt;

&lt;p&gt;There's a quiet assumption embedded in most AI development: that the people using your tools have reliable internet, stable electricity, and data that's safe to send to foreign servers.&lt;/p&gt;

&lt;p&gt;That assumption is wrong for most of the world.&lt;/p&gt;




&lt;h2&gt;
  
  
  The infrastructure reality
&lt;/h2&gt;

&lt;p&gt;In Kenya, Tanzania, and Uganda, mobile internet penetration is high — but reliability isn't. A clinic in Kisumu might have strong Safaricom signal one hour and none the next. A county office in Turkana operates on intermittent power. A smallholder farmer in Nakuru checks agricultural prices at dawn before the day's data bundle runs out.&lt;/p&gt;

&lt;p&gt;The AI tools being built for these contexts need to survive when the internet doesn't. Not degrade gracefully — survive.&lt;/p&gt;

&lt;p&gt;That's what &lt;a href="https://github.com/gabrielmahia/offline-mcp" rel="noopener noreferrer"&gt;offline-mcp&lt;/a&gt; was built for.&lt;/p&gt;

&lt;h2&gt;
  
  
  What offline-first actually means
&lt;/h2&gt;

&lt;p&gt;The default MCP server calls an external LLM API on every request. If the internet is down, the tool fails. If the API is rate-limited, the tool fails. If the user can't afford the data, the tool fails.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;offline-mcp&lt;/code&gt; wraps &lt;a href="https://ollama.ai" rel="noopener noreferrer"&gt;Ollama&lt;/a&gt; — a local inference runtime that runs open-weight models (Llama 3.2, Qwen 2.5, Gemma 3) directly on device. No API key. No internet required. No data leaving the machine.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;pip &lt;span class="nb"&gt;install &lt;/span&gt;offline-mcp
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The server exposes three tools:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;run_local_inference&lt;/code&gt; — send a prompt to any installed Ollama model&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;list_local_models&lt;/code&gt; — see what's available on the local machine&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;check_ollama_status&lt;/code&gt; — verify the inference runtime is running&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Why this matters beyond connectivity
&lt;/h2&gt;

&lt;p&gt;There's a second reason offline-first matters, and it's not about internet reliability.&lt;/p&gt;

&lt;p&gt;It's about who controls the data.&lt;/p&gt;

&lt;p&gt;Across the Global South, there's increasing pressure on governments to provide foreign access to citizen health records, land registries, and civic data as conditions for receiving aid or services. When AI tools send every query to a foreign server, they create a stream of inference data that can be analyzed, stored, and mined.&lt;/p&gt;

&lt;p&gt;When inference runs locally, that stream doesn't exist.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;offline-mcp&lt;/code&gt; combined with the &lt;a href="https://github.com/gabrielmahia/sii-stack" rel="noopener noreferrer"&gt;SII Stack&lt;/a&gt;'s sovereign tier means:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Queries run on local Llama/Qwen models&lt;/li&gt;
&lt;li&gt;No payload sent to OpenAI, Anthropic, or any foreign provider&lt;/li&gt;
&lt;li&gt;No inference log on a foreign server&lt;/li&gt;
&lt;li&gt;No indirect behavioral data collection&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is the architecture of genuine digital independence.&lt;/p&gt;

&lt;h2&gt;
  
  
  The hardware reality
&lt;/h2&gt;

&lt;p&gt;A Raspberry Pi 4 (8GB RAM, ~$75) running Ollama with Llama 3.2 3B handles:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Medical symptom triage in Swahili&lt;/li&gt;
&lt;li&gt;Land record lookups&lt;/li&gt;
&lt;li&gt;Agricultural price queries&lt;/li&gt;
&lt;li&gt;Government form checklists&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;At 1-3 tokens/second — slow by cloud standards, but fast enough for the use case.&lt;/p&gt;

&lt;p&gt;A solar panel. A battery. A Pi. That's a sovereign AI node.&lt;/p&gt;

&lt;h2&gt;
  
  
  Integration with the broader stack
&lt;/h2&gt;

&lt;p&gt;&lt;code&gt;offline-mcp&lt;/code&gt; is one of 31 MCP servers in the East Africa coordination stack. The full architecture:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Tier 3 (Sovereign) → offline-mcp + Ollama
Tier 2 (Eastern)   → DeepSeek/Qwen via SiliconFlow (&amp;lt;$0.14/M tokens)
Tier 1 (Western)   → Claude/Gemini (fallback for complex reasoning)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;LiteLLM routes between tiers. The default is Tier 3 — local. Only escalates when needed.&lt;/p&gt;

&lt;p&gt;The 72-hour offline test: if you pull all internet cables, the system must still work. That's not a feature. That's the baseline.&lt;/p&gt;




&lt;h2&gt;
  
  
  What to build next
&lt;/h2&gt;

&lt;p&gt;The combination of offline-first inference + MCP tools creates a class of AI applications that didn't exist before:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A clinic in rural Kenya where the triage assistant runs locally, logs to SQLite, and syncs to the national health system when connectivity returns&lt;/li&gt;
&lt;li&gt;A land office where the title search assistant operates offline and pushes confirmed records to the county registry on reconnect&lt;/li&gt;
&lt;li&gt;A matatu cooperative where route optimization runs on the driver's phone, no cloud required&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These aren't hypothetical. They're buildable today with open-source tools and ~$100 of hardware.&lt;/p&gt;

&lt;p&gt;The question isn't whether offline-first AI is technically possible. It is.&lt;/p&gt;

&lt;p&gt;The question is whether the AI ecosystem will build for the majority of the world — or just the part with reliable cloud access.&lt;/p&gt;




&lt;p&gt;&lt;code&gt;offline-mcp&lt;/code&gt; is MIT licensed, on PyPI, and indexed on Glama and Smithery.&lt;/p&gt;

&lt;p&gt;→ &lt;a href="https://gabrielmahia.github.io/nairobi-stack" rel="noopener noreferrer"&gt;Full portfolio&lt;/a&gt; · &lt;a href="https://github.com/gabrielmahia/offline-mcp" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt; · &lt;a href="https://pypi.org/project/offline-mcp" rel="noopener noreferrer"&gt;PyPI&lt;/a&gt;&lt;/p&gt;

</description>
      <category>mcp</category>
      <category>ai</category>
      <category>opensource</category>
      <category>africa</category>
    </item>
    <item>
      <title>31 MCP Servers for Africa — and Why the Rest of the World Should Care</title>
      <dc:creator>Gabriel Mahia</dc:creator>
      <pubDate>Wed, 17 Jun 2026 12:40:05 +0000</pubDate>
      <link>https://dev.to/gabrielmahia/31-mcp-servers-for-east-africa-and-why-the-rest-of-the-world-should-care-2jl4</link>
      <guid>https://dev.to/gabrielmahia/31-mcp-servers-for-east-africa-and-why-the-rest-of-the-world-should-care-2jl4</guid>
      <description>&lt;p&gt;&lt;em&gt;31 MCP servers are live. This article is about what they enable — not about the count.&lt;/em&gt;&lt;/p&gt;




&lt;h1&gt;
  
  
  31 MCP Servers for East Africa — and Why the Rest of the World Should Care
&lt;/h1&gt;

&lt;p&gt;Most MCP server catalogs look the same: GitHub tools, code generators, productivity wrappers.&lt;/p&gt;

&lt;p&gt;Ours doesn't.&lt;/p&gt;

&lt;p&gt;Over the past three weeks, I published 31 MCP servers covering Kenya's complete institutional stack — from M-PESA payments to county government data, from land title searches to mental health resources, from diaspora property management to offline AI inference that runs on a Raspberry Pi with no internet.&lt;/p&gt;

&lt;p&gt;Here's why developers outside Africa should pay attention.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Architecture Problem They Don't Teach You
&lt;/h2&gt;

&lt;p&gt;When you build AI tools for the Global South, the first constraint isn't intelligence. It's infrastructure.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Connectivity is intermittent and metered&lt;/li&gt;
&lt;li&gt;Most citizens don't have bank accounts but do have mobile wallets&lt;/li&gt;
&lt;li&gt;Institutional knowledge is locked in bureaucratic processes, not APIs&lt;/li&gt;
&lt;li&gt;Personal data — health records, land titles, financial history — is increasingly a geopolitical asset&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The standard AI stack (cloud LLM + REST API + React dashboard) fails all four constraints.&lt;/p&gt;

&lt;p&gt;The 31-server MCP stack was designed for a different world.&lt;/p&gt;




&lt;h2&gt;
  
  
  What Each Layer Does
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Economic Layer (10 servers):&lt;/strong&gt; mpesa-mcp handles M-PESA STK Push, B2C, B2B, standing orders, and Africa's Talking SMS across 20+ African networks. mkopo-mcp builds a 300–850 credit score from M-PESA behavioral signals for 1.4 billion unbanked adults. faida-mcp handles savings, sacco finance, and HELB student loans.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Physical Layer (4 servers):&lt;/strong&gt; wapimaji-mcp exposes Kenya NDMA drought phase data across 47 counties. nishati-mcp covers KPLC tariffs, off-grid solar, and rural electrification. ardhi-mcp handles land title search, subdivision, and dispute processes.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Social Layer (9 servers):&lt;/strong&gt; afya-mcp covers the SHA/NHIF health system and maternal health. kilimo-mcp handles crop disease, weather-adjusted guidance, and cooperative inventory. tafsiri-mcp translates civic terminology across Swahili, Kikuyu, and Luo.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Civic Layer (5 servers):&lt;/strong&gt; county-mcp exposes all 47 counties' demographics, budgets, and services. habari-mcp covers the Kenya Gazette, government tenders, and parliament tracker. historia-mcp provides East African historical archives from 3000 BCE.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Foundation Layer:&lt;/strong&gt; civic-agent-kit is the unified SDK. offline-mcp wraps Ollama for completely local inference — no internet, no API key, community data never leaves the device.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Sovereignty Problem
&lt;/h2&gt;

&lt;p&gt;Governments across the Global South are being pressured to share citizen health data — including EMR systems and lab data — as conditions for receiving international aid.&lt;/p&gt;

&lt;p&gt;The institutions that can push back are the ones with their own data infrastructure. The communities that can say no are the ones that don't need foreign server logins to deliver healthcare.&lt;/p&gt;

&lt;p&gt;That's what the sovereign stack is for.&lt;/p&gt;

&lt;p&gt;When offline-mcp runs on local hardware:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Health queries stay in the clinic&lt;/li&gt;
&lt;li&gt;Land records stay in the land office&lt;/li&gt;
&lt;li&gt;No API call to a foreign server&lt;/li&gt;
&lt;li&gt;No data leaving the community&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;No API key. No cloud dependency. No data becoming someone else's AI training set.&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  The Parallels for Every Developer
&lt;/h2&gt;

&lt;p&gt;Every problem in this stack has a Western equivalent that the AI community has already solved. The question is whether those solutions are available in Nairobi, Kampala, Lagos, Jakarta, or Bogotá.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;East Africa Problem&lt;/th&gt;
&lt;th&gt;Western Equivalent&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;mpesa-mcp STK Push&lt;/td&gt;
&lt;td&gt;Stripe Checkout&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;mkopo-mcp credit score&lt;/td&gt;
&lt;td&gt;FICO from transactional data&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;sifa-mcp skills passport&lt;/td&gt;
&lt;td&gt;LinkedIn + Upwork verification&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;fomu-mcp form checklists&lt;/td&gt;
&lt;td&gt;LegalZoom guided process&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;offline-mcp local inference&lt;/td&gt;
&lt;td&gt;Private LLM deployment&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;county-mcp government data&lt;/td&gt;
&lt;td&gt;data.gov APIs&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;The gap is not technology. The gap is deployment.&lt;/p&gt;




&lt;h2&gt;
  
  
  Install and Try
&lt;/h2&gt;

&lt;p&gt;The entire stack is MIT-licensed and on PyPI:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;pip &lt;span class="nb"&gt;install &lt;/span&gt;mpesa-mcp wapimaji-mcp county-mcp kilimo-mcp afya-mcp &lt;span class="se"&gt;\&lt;/span&gt;
            kra-mcp faida-mcp familia-mcp diaspora-mcp civic-agent-kit
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Or browse all 31 at: &lt;a href="https://gabrielmahia.github.io/nairobi-stack" rel="noopener noreferrer"&gt;gabrielmahia.github.io/nairobi-stack&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The offline-first Sovereign stack — n8n + LiteLLM + Ollama — is at &lt;a href="https://github.com/gabrielmahia/sii-stack" rel="noopener noreferrer"&gt;github.com/gabrielmahia/sii-stack&lt;/a&gt;.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;The point isn't that East Africa is different.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The point is that 8 billion people live in systems that the default AI stack wasn't built for — and fixing that requires infrastructure, not just models.&lt;/p&gt;

</description>
      <category>africa</category>
      <category>mcp</category>
      <category>infrastructure</category>
      <category>coordination</category>
    </item>
    <item>
      <title>kra-mcp: Kenya Revenue Authority Tax Compliance via MCP</title>
      <dc:creator>Gabriel Mahia</dc:creator>
      <pubDate>Wed, 17 Jun 2026 04:00:00 +0000</pubDate>
      <link>https://dev.to/gabrielmahia/kra-mcp-kenya-revenue-authority-tax-compliance-via-mcp-3h1p</link>
      <guid>https://dev.to/gabrielmahia/kra-mcp-kenya-revenue-authority-tax-compliance-via-mcp-3h1p</guid>
      <description>&lt;h2&gt;
  
  
  PAYE, VAT, PIN registration — now accessible via AI agents
&lt;/h2&gt;

&lt;p&gt;&lt;code&gt;pip install kra-mcp&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Server #20 in the AI-KungFU East Africa Coordination Infrastructure.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/gabrielmahia/kra-mcp" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;&lt;/p&gt;

</description>
      <category>mcp</category>
      <category>kenya</category>
      <category>tax</category>
      <category>africa</category>
    </item>
    <item>
      <title>What MCP, A2A, and Google ADK Actually Unlock for African Coordination Infrastructure</title>
      <dc:creator>Gabriel Mahia</dc:creator>
      <pubDate>Wed, 17 Jun 2026 00:30:35 +0000</pubDate>
      <link>https://dev.to/gabrielmahia/what-mcp-a2a-and-google-adk-actually-unlock-for-african-coordination-infrastructure-eoh</link>
      <guid>https://dev.to/gabrielmahia/what-mcp-a2a-and-google-adk-actually-unlock-for-african-coordination-infrastructure-eoh</guid>
      <description>&lt;p&gt;What MCP, A2A, and Google ADK Actually Unlock for African Coordination Infrastructure&lt;/p&gt;

&lt;p&gt;Three protocols have matured enough to be meaningfully combined for African coordination work.&lt;/p&gt;

&lt;p&gt;MCP (Model Context Protocol) — standard interface for AI agents to call external tools. A2A — agents coordinating with each other. ADK (Agent Development Kit) — building multi-agent systems.&lt;/p&gt;

&lt;p&gt;Together they solve three distinct coordination problems.&lt;/p&gt;

&lt;h2&gt;
  
  
  The MCP problem
&lt;/h2&gt;

&lt;p&gt;Most AI tools built for Africa are isolated. A model knows about M-PESA in general but cannot call the Daraja API. Knows about Kenya's counties but cannot query actual government data. Knows about drought patterns but cannot pull current satellite data.&lt;/p&gt;

&lt;p&gt;MCP closes that gap with a standard interface between an AI assistant and an external service. There are now 31 MCP servers for East Africa on PyPI covering M-PESA, land records, agriculture, health, water, insurance, translation, county services.&lt;/p&gt;

&lt;h2&gt;
  
  
  The A2A problem
&lt;/h2&gt;

&lt;p&gt;A single agent cannot handle all dimensions of an African coordination problem simultaneously. An agricultural advisor needs weather data, land records, market prices, credit history, and insurance eligibility — at once, from different systems.&lt;/p&gt;

&lt;p&gt;A2A defines how agents communicate with each other. A coordinator delegates to specialists. The agricultural advisor delegates weather queries to a climate agent, land checks to an ardhi agent, market prices to a soko agent. Each does one thing well. The coordinator assembles the answer.&lt;/p&gt;

&lt;h2&gt;
  
  
  The ADK problem
&lt;/h2&gt;

&lt;p&gt;The Agent Development Kit provides the application framework: agent lifecycles, tool registration, conversation management, deployment. Combined with MCP servers (real African services) and A2A (coordination protocol), ADK is the application layer that ties the stack together.&lt;/p&gt;

&lt;h2&gt;
  
  
  What this enables
&lt;/h2&gt;

&lt;p&gt;A farmer in Murang'a asks about planting sorghum given the current water situation. The system checks NDVI drought indicators (wapimaji-mcp), queries historical planting calendars (kilimo-mcp), checks current market prices (soko-mcp), verifies water access rights (ardhi-mcp), checks parametric insurance products (bima-mcp), and synthesizes a recommendation in Swahili.&lt;/p&gt;

&lt;p&gt;That coordination — across five systems, in real time, in the farmer's language — is what the combination of these protocols makes possible.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;pip &lt;span class="nb"&gt;install &lt;/span&gt;mpesa-mcp wapimaji-mcp kilimo-mcp soko-mcp ardhi-mcp bima-mcp
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The structural problem: African coordination requires combining multiple information sources simultaneously. These protocols exist for exactly that. The MCP servers for African services exist. The combination is infrastructure.&lt;/p&gt;

</description>
      <category>mcp</category>
      <category>ai</category>
      <category>africa</category>
      <category>python</category>
    </item>
    <item>
      <title>faida-mcp: Kenya Capital Markets via AI Agents</title>
      <dc:creator>Gabriel Mahia</dc:creator>
      <pubDate>Mon, 15 Jun 2026 04:00:00 +0000</pubDate>
      <link>https://dev.to/gabrielmahia/faida-mcp-kenya-capital-markets-via-ai-agents-gaa</link>
      <guid>https://dev.to/gabrielmahia/faida-mcp-kenya-capital-markets-via-ai-agents-gaa</guid>
      <description>&lt;h2&gt;
  
  
  NSE, Treasury Bonds, Unit Trusts, Diaspora Investment
&lt;/h2&gt;

&lt;p&gt;&lt;code&gt;pip install faida-mcp&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Server #21 in the AI-KungFU East Africa Coordination Infrastructure.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/gabrielmahia/faida-mcp" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;&lt;/p&gt;

</description>
      <category>mcp</category>
      <category>kenya</category>
      <category>investing</category>
      <category>africa</category>
    </item>
    <item>
      <title>The Loop That Creates Civilization Infrastructure</title>
      <dc:creator>Gabriel Mahia</dc:creator>
      <pubDate>Sat, 13 Jun 2026 18:43:50 +0000</pubDate>
      <link>https://dev.to/gabrielmahia/the-loop-that-creates-civilization-infrastructure-46bf</link>
      <guid>https://dev.to/gabrielmahia/the-loop-that-creates-civilization-infrastructure-46bf</guid>
      <description>&lt;h1&gt;
  
  
  The Loop That Creates Civilization Infrastructure
&lt;/h1&gt;

&lt;p&gt;There's a precise sentence in a system architecture document for East Africa that stops you:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;"Technology alone rarely creates civilization. Civilization creates technology. So: Build with communities, not merely for communities."&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That's the constraint that makes everything else in the document worth reading.&lt;/p&gt;




&lt;h2&gt;
  
  
  Two Architecture Documents, One Stack
&lt;/h2&gt;

&lt;p&gt;The first document is an engineer's schematic: 7 agent types, 4 product modules, a 15-table data model, a 3-month MVP plan. It frames the whole thing as a "reusable coordination system" — not an app, not a chatbot.&lt;/p&gt;

&lt;p&gt;The core loop:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Input → Structure → Retrieve → Reason → Verify → Act → Record → Improve
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The second document is a sovereignty blueprint. It argues that designing AI infrastructure for the Global South requires rejecting three assumptions:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Stable 1Gbps fiber&lt;/li&gt;
&lt;li&gt;Corporate credit cards billed in USD
&lt;/li&gt;
&lt;li&gt;Uninterrupted access to Western cloud infrastructure&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Its answer: &lt;strong&gt;Technological non-alignment&lt;/strong&gt;. A 4-tier decoupled architecture that fails gracefully down to a purely local, offline state without data corruption.&lt;/p&gt;

&lt;p&gt;Together they answer the question the 30-server MCP stack didn't fully address: &lt;em&gt;how does this run in production, cheaply, reliably, when OpenAI goes down, when Anthropic applies export controls, when the power goes out in Marsabit?&lt;/em&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  The Tri-Polar Model Router
&lt;/h2&gt;

&lt;p&gt;The most important technical contribution of the second document is the routing strategy.&lt;/p&gt;

&lt;p&gt;One LiteLLM proxy. Three independent geopolitical infrastructure paths:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="na"&gt;Western&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;    &lt;span class="s"&gt;Claude Haiku / Gemini Flash      → complex reasoning&lt;/span&gt;
&lt;span class="na"&gt;Eastern&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;    &lt;span class="s"&gt;DeepSeek / Qwen (SiliconFlow)    → bulk, Swahili, &amp;lt;$0.14/M tokens&lt;/span&gt;  
&lt;span class="na"&gt;Sovereign&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;  &lt;span class="s"&gt;Llama 3.2 / Qwen (Ollama local)  → offline, sensitive data, free&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Switch the entire model stack by changing one environment variable. No OpenAI SDK, no Anthropic SDK, no Google SDK in core application code. If a provider goes dark, recovery requires changing a single string in &lt;code&gt;litellm.yaml&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;The budget constraint is hard: &lt;strong&gt;&amp;lt; $1.00/M tokens for all production tasks&lt;/strong&gt;. High-cost frontier models are ring-fenced for rare auditing tasks only.&lt;/p&gt;

&lt;p&gt;This is not idealism. It's engineering for a continent where export controls are a realistic risk, where mobile data costs money, and where a failed API call cannot mean a failed health navigation query.&lt;/p&gt;




&lt;h2&gt;
  
  
  The 7 Agent Types, Mapped
&lt;/h2&gt;

&lt;p&gt;The first document identifies 7 agent types. Each one now maps to specific MCP servers in the stack:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Agent&lt;/th&gt;
&lt;th&gt;Model Tier&lt;/th&gt;
&lt;th&gt;MCP Tools&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Research&lt;/td&gt;
&lt;td&gt;Eastern (cheap)&lt;/td&gt;
&lt;td&gt;habari-mcp · historia-mcp · soko-mcp · county-mcp&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Form&lt;/td&gt;
&lt;td&gt;Eastern&lt;/td&gt;
&lt;td&gt;fomu-mcp · kra-mcp · diaspora-mcp · familia-mcp&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Verification&lt;/td&gt;
&lt;td&gt;Western (high stakes)&lt;/td&gt;
&lt;td&gt;sifa-mcp · mkopo-mcp · fomu-mcp&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Translation&lt;/td&gt;
&lt;td&gt;Sovereign (free)&lt;/td&gt;
&lt;td&gt;tafsiri-mcp&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Financial&lt;/td&gt;
&lt;td&gt;Eastern&lt;/td&gt;
&lt;td&gt;mpesa-mcp · faida-mcp · kra-mcp · jumuia-mcp&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Market&lt;/td&gt;
&lt;td&gt;Eastern&lt;/td&gt;
&lt;td&gt;soko-mcp · kilimo-mcp · sifa-mcp&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Escalation&lt;/td&gt;
&lt;td&gt;Human (always HITL)&lt;/td&gt;
&lt;td&gt;church-mcp · haki-ya-kazi-mcp · afya-mcp&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;The Escalation Agent is the one that never gets automated. Legal advice, medical advice, land disputes, loan decisions — AI prepares, humans certify. The n8n workflow pauses and pings the operator via WhatsApp before any high-stakes action fires.&lt;/p&gt;




&lt;h2&gt;
  
  
  What "fomu-mcp" Does
&lt;/h2&gt;

&lt;p&gt;One of the agent types produced a new MCP server: the Form Agent.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;"Turns messy user answers into applications, checklists, letters."&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;code&gt;pip install fomu-mcp&lt;/code&gt; — 6 tools:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;form_checklist&lt;/code&gt;: complete requirements for any Kenya government process&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;form_draft_letter&lt;/code&gt;: generates introduction letters, reference letters, complaints, land inquiries&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;form_requirements_check&lt;/code&gt;: tells you what you have and what's missing&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;ecitizen_guide&lt;/code&gt;: eCitizen portal service directory&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;huduma_centre_guide&lt;/code&gt;: Huduma Centre locations by county&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;form_timeline_planner&lt;/code&gt;: sequences multiple processes with completion dates&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is the Form Agent made concrete. Every Kenya citizen filing for a business permit, a KRA PIN, an NHIF card, or a Certificate of Good Conduct needs exactly this: a structured checklist, a draft document, and a timeline. Previously this knowledge cost money or time to get.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Real Moat
&lt;/h2&gt;

&lt;p&gt;Both documents are explicit that the moat is not the model.&lt;/p&gt;

&lt;p&gt;It's:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Local workflows&lt;/strong&gt; — n8n DAGs hardcoded for Kenya processes (business permits, land searches, tax filing)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Trusted data&lt;/strong&gt; — 32 MCPs encoding institutional knowledge Anthropic doesn't have&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Community relationships&lt;/strong&gt; — embedding in SACCOs, churches, county governments&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Multilingual context&lt;/strong&gt; — Swahili, Kikuyu, Luo via tafsiri-mcp&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Institutional memory&lt;/strong&gt; — audit_logs storing source, confidence, human_review_status for every output&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Feedback from real users&lt;/strong&gt; — the compounding loop that frontier labs cannot build from abroad&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The &lt;code&gt;audit_logs&lt;/code&gt; table in the database schema enforces this at the infrastructure level. Every AI output stores: source, confidence, date, agent_used, human_review_status, next_action. This prevents hallucination from becoming policy.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Invariant That Matters Most
&lt;/h2&gt;

&lt;p&gt;Both documents share one invariant that isn't technical:&lt;/p&gt;

&lt;p&gt;&lt;em&gt;"Build with communities, not merely for communities."&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;The catholicparishsteward app, the jumuia-mcp SACCO tools, the church-mcp religious institution layer — these aren't feature additions. They're the answer to the question: who maintains this after you deploy it?&lt;/p&gt;

&lt;p&gt;Communities with existing institutional trust networks do. You build the infrastructure. They run it.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Stack:&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
&lt;code&gt;sii-stack&lt;/code&gt;: github.com/gabrielmahia/sii-stack — Docker Compose: n8n + LiteLLM + Ollama + 32 MCPs&lt;br&gt;&lt;br&gt;
&lt;code&gt;fomu-mcp&lt;/code&gt;: &lt;code&gt;pip install fomu-mcp&lt;/code&gt;&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Nairobi Stack:&lt;/strong&gt; gabrielmahia.github.io/nairobi-stack&lt;/p&gt;

</description>
      <category>architecture</category>
      <category>africa</category>
      <category>ai</category>
      <category>mcp</category>
    </item>
    <item>
      <title>300 AI Agents Just Showed Up for East Africa. The Tool Layer Was Already Ready.</title>
      <dc:creator>Gabriel Mahia</dc:creator>
      <pubDate>Sat, 13 Jun 2026 17:01:29 +0000</pubDate>
      <link>https://dev.to/gabrielmahia/300-ai-agents-just-showed-up-for-east-africa-the-tool-layer-was-already-ready-22l6</link>
      <guid>https://dev.to/gabrielmahia/300-ai-agents-just-showed-up-for-east-africa-the-tool-layer-was-already-ready-22l6</guid>
      <description>&lt;h1&gt;
  
  
  300 AI Agents Just Showed Up for East Africa. The Tool Layer Was Already Ready.
&lt;/h1&gt;

&lt;p&gt;On April 20, 2026, Moonshot AI shipped Kimi Agent Swarm K2.6: &lt;strong&gt;300 parallel sub-agents&lt;/strong&gt;, 4,000 coordinated steps per run, and the ability to turn a single prompt into a 104-page, fully-cited, ready-to-export document.&lt;/p&gt;

&lt;p&gt;The comparison that circulated immediately:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;"ChatGPT is one smart person at a desk. Claude Cowork is one smart person who can open your folders. Kimi Agent Swarm is a temporary company of 300 specialists."&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Here's what nobody said next: &lt;strong&gt;300 specialists are useless without domain knowledge and tool APIs to call.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;That's where the East Africa coordination infrastructure stack changes the calculation.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Problem Agent Swarms Hit Without Domain APIs
&lt;/h2&gt;

&lt;p&gt;Imagine launching a 100-agent Kimi Swarm to answer: &lt;em&gt;"What are the top 5 priority counties in Kenya for water infrastructure investment, and what are the current NDMA drought phases for each?"&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Without domain tools, the swarm browses general web results, hits outdated government portals, gets inconsistent data, and hallucinates the parts it can't find. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;With the MCP stack:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;pip &lt;span class="nb"&gt;install &lt;/span&gt;wapimaji-mcp county-mcp kilimo-mcp
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Each sub-agent has structured, reliable tool calls:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="c1"&gt;# Sub-agent 1: county_information("Turkana") → {pop: 926976, water_pct: 18, area_km2: 77000}
# Sub-agent 2: drought_phase_query("Turkana") → {phase: 3, label: "Emergency"}
# Sub-agent 3: crop_calendar("maize", "lowland") → {plant: "Mar-Apr", yield: "15-25 bags/acre"}
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The swarm doesn't need to browse. It calls tools. It gets structured data. It synthesizes 47 counties in parallel.&lt;/p&gt;




&lt;h2&gt;
  
  
  The 5 Swarm Use Cases, Mapped to East Africa MCPs
&lt;/h2&gt;

&lt;p&gt;Kimi's documentation identifies 5 swarm archetypes. Each one maps directly to the coordination infrastructure stack.&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Discovery at Scale → &lt;code&gt;county-mcp&lt;/code&gt; + &lt;code&gt;wapimaji-mcp&lt;/code&gt; + &lt;code&gt;soko-mcp&lt;/code&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;Prompt pattern: "For each of N items, find [field 1, 2, 3]. Output as spreadsheet."&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;East Africa application:&lt;/strong&gt; Spawn 47 sub-agents, one per Kenya county. Each agent calls &lt;code&gt;county_information()&lt;/code&gt;, &lt;code&gt;drought_phase_query()&lt;/code&gt;, and &lt;code&gt;market_timing_guide()&lt;/code&gt;. Output: a priority matrix for infrastructure investment, structured, in parallel.&lt;/p&gt;

&lt;p&gt;Previously this required a data analyst and 3 weeks. With the swarm + MCP layer: one prompt.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Output at Scale → &lt;code&gt;historia-mcp&lt;/code&gt; + &lt;code&gt;habari-mcp&lt;/code&gt; + &lt;code&gt;county-mcp&lt;/code&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;Prompt pattern: "Produce a [N]-page [report] with full citations."&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;East Africa application:&lt;/strong&gt; "Write a 50-page Kenya devolution impact report. For each of the 47 counties, synthesize budget allocation, service delivery gaps, and historical context." The swarm assigns sub-agents per county, each calling the MCP stack for structured data, and synthesizes the full report.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Perspective at Scale → &lt;code&gt;kra-mcp&lt;/code&gt; + &lt;code&gt;haki-ya-kazi-mcp&lt;/code&gt; + &lt;code&gt;faida-mcp&lt;/code&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;Prompt pattern: "Review this plan from [role 1, 2, 3, 4] simultaneously."&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;East Africa application:&lt;/strong&gt; "Evaluate this informal business proposal from the perspective of: KRA tax compliance officer, a labour rights advocate, an NSE investment analyst, and a SACCO loan officer." Each sub-agent uses its respective MCP tools and produces domain-specific concerns. Synthesis in one run.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Processing at Scale → &lt;code&gt;afya-mcp&lt;/code&gt; + &lt;code&gt;familia-mcp&lt;/code&gt; + &lt;code&gt;diaspora-mcp&lt;/code&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;Prompt pattern: "For each of N inputs, do [task]. Output indexed by input."&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;East Africa application:&lt;/strong&gt; "Process these 200 remittance scenarios. For each, determine: NHIF eligibility at home, applicable KRA withholding, and diaspora investment options." Each scenario calls three MCP servers. 200 scenarios in parallel.&lt;/p&gt;

&lt;h3&gt;
  
  
  5. Long-Horizon Execution → Full stack coordination
&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;Prompt pattern: Deep, multi-phase build running 13+ hours.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;East Africa application:&lt;/strong&gt; "Over the next 8 hours, audit Kenya's digital public goods landscape, identify the top 10 gaps, research comparable solutions in comparable countries, and produce a 200-page strategic report with implementation recommendations." The swarm coordinates historia, habari, wapimaji, county, kilimo, afya — all the layers — across the full execution window.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Competitive Positioning That Matters
&lt;/h2&gt;

&lt;p&gt;The Kimi article says Claude Cowork is "one smart person at a desk who can open your folders." That's accurate for general use.&lt;/p&gt;

&lt;p&gt;But the model shifts when MCP servers are domain-specific institutional knowledge APIs. That's a different category entirely.&lt;/p&gt;

&lt;p&gt;The East Africa coordination stack is 30 MCP servers covering:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Economic (10):&lt;/strong&gt; mpesa · mkopo · bima · soko · sifa · remit · kra · faida · familia · diaspora&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Physical (4):&lt;/strong&gt; wapimaji · nishati · usafiri · ardhi&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Social (9):&lt;/strong&gt; afya · afya-ya-akili · elimu · kazi · haki-ya-kazi · kilimo · jumuia · church · tafsiri&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Civic (5):&lt;/strong&gt; nyumba · habari · mazingira · county · historia&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Foundation (2):&lt;/strong&gt; civic-agent-kit · offline  &lt;/p&gt;

&lt;p&gt;Each one is a structured tool call. Each one gives agent swarms reliable, domain-specific information that general web search cannot.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;When 300 Kimi agents show up in Nairobi, the tool layer is already ready.&lt;/strong&gt;&lt;/p&gt;


&lt;h2&gt;
  
  
  The Offline Dimension
&lt;/h2&gt;

&lt;p&gt;The Kimi article glosses over one assumption: &lt;em&gt;reliable cloud connectivity&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;The thesis document for East Africa infrastructure notes: "Never assume OpenAI survives. Never assume Anthropic stays accessible. Never assume export controls disappear."&lt;/p&gt;

&lt;p&gt;That's why &lt;code&gt;offline-mcp&lt;/code&gt; was the hardest layer to build but the most important. It wraps Ollama for local inference, runs on a Raspberry Pi on a 50W solar panel, and gives rural clinics, schools, and community offices AI capability without depending on any cloud provider.&lt;/p&gt;

&lt;p&gt;300-agent cloud swarms are the ceiling. Local offline inference is the floor. The East Africa stack is built for both ends of that range.&lt;/p&gt;


&lt;h2&gt;
  
  
  The Practical Entry Point
&lt;/h2&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Try one MCP now — any MCP-compatible client (Claude, Cursor, LibreChat)&lt;/span&gt;
pip &lt;span class="nb"&gt;install &lt;/span&gt;mpesa-mcp          &lt;span class="c"&gt;# M-PESA mobile payments&lt;/span&gt;
pip &lt;span class="nb"&gt;install &lt;/span&gt;wapimaji-mcp       &lt;span class="c"&gt;# Drought and water access&lt;/span&gt;
pip &lt;span class="nb"&gt;install &lt;/span&gt;county-mcp         &lt;span class="c"&gt;# Kenya 47 counties&lt;/span&gt;
pip &lt;span class="nb"&gt;install &lt;/span&gt;kilimo-mcp         &lt;span class="c"&gt;# Precision agriculture&lt;/span&gt;
pip &lt;span class="nb"&gt;install &lt;/span&gt;familia-mcp        &lt;span class="c"&gt;# Family law and inheritance&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;And the swarm prompt that will work once you have it:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Swarm task: Research all 47 Kenya counties. For each:
- Infrastructure coverage (water, health, education, energy)
- Current NDMA drought phase
- Top agricultural crop timing window for next 90 days
- CDF budget allocation

Output as a sortable spreadsheet with a final priority ranking by
(gap score × population). Export as Excel.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That's a 47-agent discovery swarm with structured MCP tool calls. One prompt. One file.&lt;/p&gt;




&lt;h2&gt;
  
  
  What Comes Next
&lt;/h2&gt;

&lt;p&gt;The 5 swarm archetypes are a capability framework. The 30 MCP servers are a tool library.&lt;/p&gt;

&lt;p&gt;The gap between "agent swarm that searches the web" and "agent swarm with domain APIs" is the same gap as the difference between a research assistant and a subject-matter expert. The MCP stack encodes the expertise. The swarm scales the execution.&lt;/p&gt;

&lt;p&gt;Six months from now, this combination will be how policy analysts, development economists, county planners, and diaspora investors engage with East Africa's institutional data. Not one tab at a time.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The rails were built before the trains arrived.&lt;/strong&gt;&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Stack:&lt;/strong&gt; 30 MCP servers · All MIT · All on PyPI · All Glama-listed&lt;br&gt;&lt;br&gt;
&lt;strong&gt;GitHub:&lt;/strong&gt; &lt;a href="https://github.com/gabrielmahia" rel="noopener noreferrer"&gt;github.com/gabrielmahia&lt;/a&gt;&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Nairobi Stack:&lt;/strong&gt; &lt;a href="https://gabrielmahia.github.io/nairobi-stack" rel="noopener noreferrer"&gt;gabrielmahia.github.io/nairobi-stack&lt;/a&gt;&lt;/p&gt;

</description>
      <category>mcp</category>
      <category>africa</category>
      <category>ai</category>
      <category>infrastructure</category>
    </item>
  </channel>
</rss>
