MCP server exposing Zambian fintech utilities: BOZ exchange rates, ZESCO units calculator, and mobile money fee calculators.
Zambia-fintech-mcp has clear, domain-specific tool names (zesco_calculate_units, momo_quote_fee, paye_gross_to_net) that follow verb_noun convention. All 10 tools have descriptions (avg ~140 chars, within 10-1024 range). Input schemas are present and use Zod validation with type constraints (enums for provider, regex for dates, positive/nonnegative for amounts). However, parameter descriptions are minimal (often just 1-2 sentences), output schemas are not documented, and error handling is absent, tools throw raw errors without recovery guidance. No tool annotations (readOnlyHint, destructiveHint). All tools are READ_ONLY by design, which is appropriate, but this should be explicitly declared in descriptions or via annotations.
Get an indicative ZMW exchange rate against a quote currency. v0.1 returns stub data — wire to BOZ daily rate sheet for production.
List the quote currencies supported by the boz_exchange_rate tool.
List the operations defined in the active fee schedule for a provider (e.g. send_same_network, send_cross_network, send_to_bank, withdraw_at_agent).
List the mobile money providers with at least one fee schedule loaded.
Quote the fee for a Zambian mobile money operation in ZMW. Returns operator fee and government levy as separate components, plus the schedule's effective date and source URL. Use momo_list_operations to discover what operations a given provider supports.
Return the PAYE bands the calculator is using, so callers can audit assumptions or compare against the current ZRA schedule.
No output schemas documented. Tools return JSON via text content, but LLMs cannot infer field structure, types, or required fields. Downstream tool chaining is blind.
No error handling or recovery guidance. Tools throw raw errors (e.g. 'No stub rate for ZMW/XXX') without actionable next steps. LLMs cannot self-correct.
Parameter descriptions lack format/constraint details. E.g., 'asOf' accepts YYYY-MM-DD but description does not state this; 'operation' is free-form string with no enum or discovery hint.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 68 | 2026-07-28+ | v2 |
Build a payslip from a basic-plus-allowances structure (basic + housing + transport + other taxable). Returns the same PAYE/NAPSA breakdown plus component totals.
Calculate Zambian monthly net pay from gross. Returns PAYE, NAPSA, and per-band tax breakdown. Uses 2024 ZRA bands — verify against latest budget.
Reverse-solve the gross monthly pay required to land at a desired net (after PAYE + NAPSA). Useful for offer negotiation and take-home targeting.
Calculate kWh units received for a ZESCO prepaid purchase amount in ZMW. Applies the residential T1/T2/T3 tariff bands.
No tool annotations. All tools are READ_ONLY, but this is not declared via readOnlyHint. Agents cannot infer safety/idempotency from tool metadata.
Stub data and hardcoded schedules. boz_exchange_rate returns stub rates; momo fee schedules are loaded from local JSON files. Production readiness unclear, no versioning, no refresh mechanism, no data freshness indicator.