MCP server for Kenya diaspora remittance optimization. Compares remittance corridor costs, finds optimal timing windows, and estimates fees across providers using World Bank RPW database and public exchange rate APIs.
Three tools with clear naming (verb_noun pattern) and documented descriptions. All tools have input schemas with type definitions and parameter descriptions. However, output schemas are not formally documented, responses are inferred from code inspection. Parameter descriptions are adequate but lack constraint details (ranges, enums, format specs). Error handling is minimal; tools return error dicts but do not guide recovery. Tool annotations present (readOnlyHint, idempotentHint) but not leveraged for error classification. Average tool score: 62/100.
Compare all providers for a remittance corridor. Returns fees, exchange rate premium, total cost, and World Bank benchmark. Data: DEMO — synthetic representative of World Bank RPW Kenya corridors (2024-2026).
Calculate annual savings if switching to cheapest available provider.
List all supported remittance corridors.
Output schemas not documented. Tools return dicts but LLMs cannot see field types, required fields, or structure. Downstream tool chaining and field extraction are error-prone.
Parameter 'corridor' accepts free-form strings with no enum constraint. Description lists valid values (US_KE, UK_KE, CA_KE) but LLMs may hallucinate invalid corridors. Should declare enum in schema.
Error handling returns bare error dicts without recovery guidance. E.g. 'Corridor not found' does not suggest calling list_corridors() first. Errors should guide next steps.
Parameter 'current_provider' in estimate_savings accepts partial match but no validation or enum. LLMs may pass invalid provider names; tool silently fails or returns wrong result.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 53 | <=2025-11-25 | v2 |
list_corridors has no parameters but description is vague (60 chars). Does not explain what structure is returned or when to call it relative to other tools.