用途
mpesa-mcp 是一个 MCP(Model Context Protocol)服务器,用于连接 AI 智能体与东非金融科技 API,主要包括 M-PESA(Safaricom Daraja)和 Africa's Talking。它让 AI 智能体能够触发 M-PESA 支付、查询交易状态、发送短信,并在 20 多个非洲电信网络上充值话费。
该项目指出,M-PESA 在非洲的日交易量超过 PayPal,Africa's Talking 通过短信和 USSD 覆盖 20 多个国家的基础手机用户,但两者此前都没有 MCP 服务器。mpesa-mcp 旨在填补这一空白,使 Claude、GPT、Gemini 或任何 MCP 兼容运行时无需自定义集成即可调用这些能力。
主要能力
- M-PESA(肯尼亚 Safaricom Daraja v3):STK Push、C2B、交易状态查询。
- 短信与话费:通过 Africa's Talking 覆盖肯尼亚、尼日利亚、加纳、坦桑尼亚、乌干达、卢旺达、南非等 20 多个国家。
- 工具数量:共 7 个工具,涵盖 STK push、B2C、余额查询、交易状态、SIM 卡更换检测和 Bill Manager 等。
- 托管 MCP:在 Glama 上提供托管 MCP 服务器。
- 服务器发现:通过
.well-known/mcp.json公布能力,符合新兴的 MCP Server Cards 标准,注册表和浏览器无需连接即可索引该服务器的工具。
使用方式
安装与运行:
pip install mpesa-mcp
或直接使用 uvx 运行。启动服务器前需设置环境变量。
沙箱凭据:
- M-PESA 沙箱:https://developer.safaricom.co.ke — 创建免费应用获取测试凭据。
- 测试短代码:174379
- 测试 passkey:bfb279f9aa9bdbcf158e97dd71a467cd2e0c893059b10f78e6b72ada1ed2c919
- Africa's Talking 沙箱:https://account.africastalking.com — 使用 username=sandbox,任意 API key。
Claude Desktop 用法:将配置添加到 ~/Library/Application Support/Claude/claude_desktop_config.json(macOS)。
Claude Code 用法:在运行 claude 前在 shell 中设置环境变量。
示例提示:
- “Send KES 500 STK Push to +254712345678 for order #1234”
- “Check if the payment QKL8ABC123 has been received”
- “Send an SMS to these 50 farmers with today's maize price: [list]”
- “Top up KES 50 airtime for our field agents: [list of numbers]”
适用场景
- 现场代理付款分发:向多名现场代理依次触发 STK Push,跟踪每个 checkout_request_id 并轮询确认。
- 农民警报与话费:向大量农民发送短信并充值话费,覆盖 Safaricom、Airtel 和 Telkom。
- 支付对账:实时验证 M-PESA 交易是否成功及金额。
安全与限制
- 安全合规:mpesa-mcp 依据 NSA CSI U/OO/6030316-26(2026 年 5 月)更新,遵循 NSA 人工智能安全中心的 MCP 安全框架,完整合规表见 SECURITY.md。
- 工具注解:所有工具声明 MCP 工具注解,客户端可在触发支付、短信或话费操作前请求确认。
- 实时模式限制:在实时模式(MPESA_SANDBOX=false)下,八个资金流出工具(mpesa_b2c、mpesa_business_paybill、mpesa_business_buygoods、mpesa_business_pochi、mpesa_reversal、mpesa_tax_remittance、mpesa_b2b_express_checkout、airtime_send)受到限制:
- 确认:除非以 confirm_send=true 调用,否则拒绝执行。
- 上限:超过 MPESA_MAX_AMOUNT_KES(默认 100,000;0 表示无上限)的金额会被拒绝。
- 退出:MPESA_REQUIRE_CONFIRMATION=false 可移除确认要求,仅应在完全受控的自动化设置中谨慎使用。
- 沙箱不受限制:客户批准的流程(STK Push、Ratiba、Bill Manager)不变,由客户在手机上批准。
- 短信上限:MPESA_MAX_SMS_RECIPIENTS 默认 50。
- 模型提示:服务器不推荐、认证或基准测试任何模型,get_model_hint() 仅为兼容性保留(返回中性指导)。建议使用能可靠遵循工具模式的模型,先在沙箱中演练,并保持人工批准每一次资金流动或消息发送调用。
- 测试与准确性:MCP 生态基准(CData, 2026)发现多数 MCP 服务器在复杂查询上准确率为 60–75%。mpesa-mcp 针对三种肯尼亚电话号码格式、边界金额值和缺失可选字段进行了测试,写操作(STK push、短信、话费)在调用 API 前有显式验证。
- 密钥安全:不要提交 API 密钥,使用环境变量或密钥管理器。漏洞报告至 contact@aikungfu.dev。
生态与协议
- Mojaloop + MCP:Mojaloop(盖茨基金会资助)处理支付互操作性,连接银行、移动钱包和商户;mpesa-mcp 处理 AI 智能体工具层。两者互补。
- MCP vs A2A:mpesa-mcp 实现 MCP(AI 智能体与工具通信)。A2A(Agent-to-Agent)处理智能体之间的通信。多数集成只需 MCP;构建多智能体系统时 A2A 才相关。
相关基础设施
- wapimaji-mcp — 肯尼亚水/干旱 MCP
- civic-agent-kit — 肯尼亚公民数据 MCP
- swahili-health-mcp — 肯尼亚 DHIS2 健康数据 MCP
- kenya-legal-rag — 肯尼亚法律语料 MCP
许可与协作
MIT 许可,© 2026 Gabriel Mahia。反馈仅通过 GitHub Issues,不接受 pull request。演示数据标记为 DEMO,不适用于运营决策。