Kenya Payments MCP — let AI agents accept payments in Kenya
Use it in 60 seconds
Paste this into your MCP client config (Claude Desktop, Cursor, Windsurf, or any MCP-capable agent):
{
"mcpServers": {
"kenya-payments": {
"type": "http",
"url": "https://mcp-ke.wishpool.app/mcp"
}
}
}
Nothing to install. Credentials, when you need them, travel as HTTP headers on each request and are never stored — see the threat model.
Or run it yourself
Would you rather not send production credentials to a server you do not control? Deploy this identical code to your own account and point your agent at your own URL:
git clone https://github.com/junter1989k-ai/kenya-payments-mcp && cd kenya-payments-mcp && npx vercel --prod
MIT-licensed. Self-hosting removes us from the picture entirely, at no cost and with no loss of function.
Live · MCP endpoint:
https://mcp-ke.wishpool.app/mcp· Listed on the official MCP Registry asapp.wishpool/kenya-payments-mcp· Part of a 30-country family — hub: mcp.wishpool.app
A remote MCP server that lets any AI agent (Claude, ChatGPT, Cursor…) accept payments in Kenya: M-Pesa (the rail Kenya actually uses), cards, bank transfer — via Flutterwave's hosted checkout.
⚖️ Stateless translation layer: funds always flow buyer → Flutterwave → merchant directly. Never holds funds or stores credentials — no database at all.
Quick start
MCP endpoint: https://mcp-ke.wishpool.app/mcp (Streamable HTTP, stateless JSON-RPC)
| Header | Value |
|---|---|
x-flutterwave-secret-key | your Flutterwave secret key (FLWSECK_TEST- = test mode from dashboard.flutterwave.com, FLWSECK- = production) |
Tools
| Tool | What it does |
|---|---|
create_payment_link | Create a KES hosted-checkout link. |
query_payment_status | Pull-based status check; paid=true when PAID. |
Develop
node test/serve.js # local server (http://localhost:3234/mcp)
node test/e2e.js # protocol + validation suite (probes real Flutterwave auth errors)
Zero runtime dependencies; Node ≥ 18. MIT license.