MCP servers for African markets: M-Pesa (Daraja), mobile-money reconciliation, county data, and more. Agent-first tooling.
This server is a skeleton with no functional implementation. The source code shows only a tool registry (SERVERS object) with names and descriptions, but NO input schemas, NO output schemas, NO parameter definitions, and NO actual tool implementations. Tools are declared as plain objects with 'name' and 'description' fields only, no JSON Schema, no parameter types, no validation. The code explicitly states 'Transport wiring (stdio MCP) lands in v0.1 with the official SDK,' confirming this is pre-alpha. Descriptions are present but generic (10-60 chars), meeting minimum bar but not LLM-optimized. No error handling, no composition guidance, no security patterns. This is a proof-of-concept, not a production tool.
Initiate a B2C payout (sandbox only in v0)
Surface unmatched/amount-mismatched rows
Lookup structured county public data (planned)
Fuzzy-match statement rows against ledger CSV
Parse an M-Pesa statement export into structured rows
Query the status of a Daraja transaction
Validate and normalize a Kenyan phone number
No input schemas defined for any tool. All 8 tools lack JSON Schema with parameter types, descriptions, and constraints.
No output schemas documented. LLMs cannot infer what fields to expect from tool responses, breaking downstream composition and chaining.
No tool implementations present. Code is a registry skeleton only. Tools cannot be invoked; no actual business logic exists.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 18 | 2026-07-28+ | v2 |
KRA PIN format validation (planned)
Descriptions are generic and under 50 chars for most tools (e.g., 'Lookup structured county public data (planned)' = 45 chars). Insufficient context for LLM tool selection.
No error handling, validation, or recovery guidance. No permission gates, audit trails, or security patterns despite write operations (b2c_payout).