Follow-up to: Why M-Pesa, Africa's Talking, and USSD are missing from AI agent tooling
Six weeks ago I published mpesa-mcp — an MCP server that gives AI agents access to M-Pesa Daraja and Africa's Talking. Here's what actually happened.
What landed
Official MCP Registry. mpesa-mcp is now listed at io.github.gabrielmahia/mpesa-mcp on registry.modelcontextprotocol.io. This is Anthropic's official registry — the one Claude uses to discover MCP servers. It's the first African fintech entry.
# Install via the registry
uvx mpesa-mcp
punkpeye opened a PR on my repo. punkpeye is the maintainer of awesome-mcp-servers (82k stars). He submitted a PR to add the Glama card badge to the mpesa-mcp README. That's the maintainer of the most-starred MCP directory directly contributing to the project — a signal I did not expect.
v0.1.2 shipped. Changelog:
- Fixed a unicode character in
glama.jsonthat was causing Glama to reject the file as invalid - Cleaned up the Dockerfile for proper MCP server inspection
- Version aligned across
pyproject.toml,server.json, and GitHub releases
context-hub PR #52 is still open. The reviewer (@Ivanye2509) asked for structural fixes in March. I fixed them within a week. No response since. Andrew Ng's project appears to have a slow review cadence. The PR is structurally correct, mergeable, and sitting there. If you're reading this and use context-hub — go take a look.
What I got wrong in the original post
I said "submitted to punkpeye/awesome-mcp-servers — the first African fintech entry." That was accurate at submission time.
What I underestimated: the friction involved in actually getting listed. The awesome-mcp-servers bot applies a missing-glama label automatically if the Glama directory doesn't recognise your server. Glama's API was returning 503 for several weeks. A single unicode em-dash in glama.json was causing silent rejection. The listing pipeline is fragile for anyone not already inside the Node/TypeScript MCP ecosystem — which is most of it.
The fix: ASCII-only glama.json, a valid Dockerfile, at least one GitHub release. All documented now in the repo.
What's actually being used
GitHub traffic for the past 14 days: 21 direct views, 18 unique visitors, 190 clones.
The clone-to-view ratio (~9:1) is high — developers are cloning to evaluate rather than browsing. The actions and issues pages are being read, which means people are kicking the tyres on CI and checking whether the project is maintained. The signal that matters: mpesa-mcp is being evaluated by developers, not just scraped by bots.
What I'd do differently
Ship a working sandbox demo earlier. The package works, but the barrier to "see it do something real" is still: get Daraja sandbox credentials, set up environment variables, configure Claude Desktop. That's 30 minutes even for a confident developer. A hosted demo that shows an actual STK Push prompt (Daraja sandbox) with zero setup would have converted more evaluators to users.
Document the phone number normalization problem sooner. The most common Daraja integration bug is phone format: 0712345678 vs 254712345678 vs +254712345678. The server handles all three transparently. I buried this in the README. It should be the first thing developers see.
What's next
Three things on the near horizon:
WapiMaji SMS pipeline needs a registered shortcode. The water stress monitoring app for Kenya has complete Africa's Talking SMS integration — but you need a registered shortcode to actually send to arbitrary Kenyan numbers. That's a $10/month infra cost I haven't pulled the trigger on. When it's live, WapiMaji can SMS drought alerts to farmers on basic phones.
The broader civic tools portfolio. mpesa-mcp is one of 5 open-source packages and 13 deployed tools I've built for East Africa. The full portfolio is at gabrielmahia.github.io. I'll write a separate piece on the civic tools — parliamentary accountability, crop prices, remittance transparency — but the audience for that is different from this one.
daraja-mock v2. The local test server for M-Pesa integrations needs a web UI so non-developers can inspect what the simulated STK Push flow looks like without reading JSON.
If you're building on M-Pesa or Africa's Talking and want to talk about the integration patterns — or if you've encountered the context-hub review wall — reach out.
All tools: gabrielmahia.github.io · mpesa-mcp: github.com/gabrielmahia/mpesa-mcp``
Top comments (0)