mpesa-mcp

Servidor MCP para APIs do M-Pesa (Safaricom Daraja) e Africa's Talking. Dá a assistentes de codificação com IA — Claude Code, Cursor, GitHub Copilot — acesso direto à infraestrutura de pagamentos e SMS da África Oriental a partir de um único servidor. O que faz: pagamentos STK Push via Safaricom Daraja (aciona o prompt do M-Pesa no telefone do usuário) Consultas de status de transações SMS para mais de 20 redes de telecomunicações africanas via Africa's Talking Recarga de crédito telefônico na África Oriental e Ocidental Segurança: Todas as 5 ferramentas são anotadas conforme a especificação MCP 2025-03-26 — ferramentas de pagamento e SMS declaram destructiveHint: true, então o Claude Desktop e outros clientes mostram diálogos de confirmação antes de executar. Ferramentas de consulta declaram readOnlyHint: true para aprovação

Documentação

mpesa-mcp

Servidor MCP para APIs fintech da África Oriental — M-Pesa (Safaricom Daraja) e Africa's Talking

Dê ao seu agente de IA a capacidade de acionar pagamentos M-Pesa, verificar o status de transações, enviar SMS e recarregar créditos em mais de 20 redes de telecomunicações africanas.

Tests PyPI License: MIT Glama Score smithery badge Glama NSA MCP Compliant

mpesa-mcp MCP server

Testado com

claude-sonnet-5  (recommended — call get_model_hint() for guidance)
claude-opus-4-8  (for highest-accuracy compliance reasoning)

Claude Sonnet 5 (lançado em 30 de junho de 2026) conclui fluxos de trabalho M-PESA de várias etapas sem parar no meio e autocorrige erros de chamada de ferramenta sem solicitação. Pontuação Terminal-Bench 80,4% vs 67,0% do Sonnet 4.6 — o benchmark mais análogo ao trabalho de agentes de pagamento.

Por que isso existe

O M-Pesa processa mais transações por dia do que o PayPal na África. A Africa's Talking alcança usuários em mais de 20 países em telefones básicos via SMS e USSD. Nenhum deles tem um servidor MCP.

Isso significa que todo agente de IA construído hoje — Claude, GPT, Gemini ou qualquer runtime compatível com MCP — não pode acionar um pagamento M-Pesa ou enviar um SMS em suaíli sem trabalho de integração personalizado.

mpesa-mcp fecha essa lacuna em um pip install.

Ferramentas

FerramentaDescrição
mpesa_stk_pushAciona o prompt de pagamento STK Push no telefone M-Pesa do cliente
mpesa_stk_queryVerifica o status de uma solicitação STK Push
mpesa_transaction_statusConsulta qualquer transação M-Pesa pelo número do recibo
sms_sendEnvia SMS para 1–1.000 destinatários em redes africanas
airtime_sendEnvia recarga de crédito para qualquer assinante (KES, NGN, GHS, UGX, etc.)

Cobertura

  • M-Pesa: Quênia (Safaricom Daraja v3) — STK Push, C2B, status de transação
  • SMS/Crédito: Quênia, Nigéria, Gana, Tanzânia, Uganda, Ruanda, África do Sul e mais 15+ via Africa's Talking

Glama (MCP hospedado)

O mpesa-mcp está disponível como um servidor MCP hospedado no Glama:

mpesa-mcp MCP server mpesa-mcp score

Segurança — Conformidade com as Diretrizes MCP da NSA

mpesa-mcp foi atualizado em resposta à NSA CSI U/OO/6030316-26 (maio de 2026) — a Folha de Informações de Segurança Cibernética do Centro de Segurança de IA da NSA sobre segurança do Model Context Protocol.

A implementação abaixo documenta a conformidade com a estrutura de segurança MCP da NSA, controle por controle.

Controle da NSAImplementação
Validação de parâmetrosRegex de telefone queniano ^254[17]\d{8}$ + limites de valor [1–150.000 KES]
Registro de auditoriaRegistro estruturado por chamada de ferramenta; números de telefone com hash SHA-256
Ciclo de vida do tokenToken OAuth armazenado em cache com expiração; renovação automática
Contenção de errosDicionários de erro estruturados; sem propagação de exceções brutas
Imposição de HTTPSTodas as chamadas à API Daraja somente via HTTPS
Sem segredos codificadosTodas as credenciais via variáveis de ambiente

Consulte SECURITY.md para a tabela completa de conformidade.

Referência: NSA CSI_MCP_SECURITY.pdf — maio de 2026, SEM CLASSIFICAÇÃO

Instalação

pip install mpesa-mcp

Ou execute diretamente com uvx:

uvx mpesa-mcp

Configuração

Defina estas variáveis de ambiente antes de iniciar o servidor:

# M-Pesa (Safaricom Daraja)
MPESA_CONSUMER_KEY=your_consumer_key
MPESA_CONSUMER_SECRET=your_consumer_secret
MPESA_SHORTCODE=174379               # sandbox test shortcode
MPESA_PASSKEY=your_passkey
MPESA_CALLBACK_URL=https://yourdomain.com/mpesa/callback
MPESA_SANDBOX=true                   # set false for production

# Africa's Talking
AT_USERNAME=sandbox                  # your AT username (sandbox for testing)
AT_API_KEY=your_at_api_key

Credenciais de sandbox

Sandbox M-Pesa: https://developer.safaricom.co.ke — crie um aplicativo gratuito para obter credenciais de teste.

  • Shortcode de teste: 174379
  • Passkey de teste: bfb279f9aa9bdbcf158e97dd71a467cd2e0c893059b10f78e6b72ada1ed2c919

Sandbox Africa's Talking: https://account.africastalking.com — use username=sandbox, qualquer chave de API.

Uso com Claude Desktop

Adicione ao ~/Library/Application Support/Claude/claude_desktop_config.json (macOS):

{
  "mcpServers": {
    "mpesa": {
      "command": "uvx",
      "args": ["mpesa-mcp"],
      "env": {
        "MPESA_CONSUMER_KEY": "your_key",
        "MPESA_CONSUMER_SECRET": "your_secret",
        "MPESA_SHORTCODE": "174379",
        "MPESA_PASSKEY": "your_passkey",
        "MPESA_CALLBACK_URL": "https://yourdomain.com/mpesa/callback",
        "MPESA_SANDBOX": "true",
        "AT_USERNAME": "sandbox",
        "AT_API_KEY": "your_at_key"
      }
    }
  }
}

Uso com Claude Code

claude mcp add mpesa -- uvx mpesa-mcp

Defina as variáveis de ambiente no seu shell antes de executar claude.

Exemplos de prompts

Depois de conectado, você pode pedir ao seu agente de IA:

"Envie STK Push de KES 500 para +254712345678 para o pedido #1234"

"Verifique se o pagamento QKL8ABC123 foi recebido"

"Envie um SMS para estes 50 agricultores com o preço do milho de hoje: [lista]"

"Recarregue KES 50 de crédito para nossos agentes de campo: [lista de números]"

Cenários do mundo real

Envio de pagamento para agentes de campo

"Envie STK Push de KES 300 para cada um destes 12 agentes de campo para a coleta de dados de hoje: [lista]"

O agente aciona 12 pushes STK sequenciais, rastreia cada checkout_request_id e verifica a confirmação — sem nenhum código seu.

Alerta para agricultores + crédito

"Envie SMS para estes 200 agricultores de Garissa que o rio está subindo. Depois, recarregue KES 20 de crédito para cada um para que possam ligar e reportar."

Um prompt → 200 mensagens SMS e 200 recargas de crédito em Safaricom, Airtel e Telkom.

Conciliação de pagamentos

"Verifique se o recibo OKL8M3B2HF foi um pagamento bem-sucedido e qual foi o valor"

Útil para agentes de suporte que usam o Claude para verificar transações M-Pesa em tempo real.

Anotações de ferramentas

Todas as ferramentas declaram anotações de ferramentas MCP para que os clientes possam controlar as chamadas adequadamente:

FerramentareadOnlydestrutivaidempotente
mpesa_stk_push
mpesa_stk_query
mpesa_transaction_status
sms_send
airtime_send

O Claude Desktop e outros clientes MCP solicitarão confirmação antes de acionar operações de pagamento, SMS ou crédito.

Descoberta de servidor

Os recursos são anunciados via .well-known/mcp.json — o padrão emergente de Cartões de Servidor MCP. Registros e navegadores podem indexar as ferramentas deste servidor sem se conectar a ele.

# Check capabilities
curl https://raw.githubusercontent.com/gabrielmahia/mpesa-mcp/main/.well-known/mcp.json

Testes e precisão

O benchmark do ecossistema MCP (CData, 2026) descobriu que a maioria dos servidores MCP é precisa em 60–75% das vezes em consultas complexas — particularmente falhas silenciosas em operações de escrita e aplicação parcial de parâmetros.

O mpesa-mcp é testado contra os três formatos de número de telefone queniano, valores de limite e campos opcionais ausentes:

pytest tests/ -v  # run full suite
pytest tests/test_phone_formats.py  # format normalization
pytest tests/test_boundary_amounts.py  # min/max amount edge cases

Operações de escrita (STK push, SMS, crédito) têm validação explícita antes de qualquer chamada de API ser feita.

Contexto do ecossistema — Mojaloop + MCP

Mojaloop (financiado pela Fundação Gates) lida com interoperabilidade de pagamentos — conectando bancos, carteiras de dinheiro móvel e comerciantes entre DFSPs na África Oriental e além.

mpesa-mcp lida com a camada de ferramentas de agente de IA — permitindo que assistentes de codificação de IA acionem e consultem pagamentos M-Pesa programaticamente.

Estes são complementares:

  • Mojaloop: os trilhos de interoperabilidade entre provedores financeiros
  • mpesa-mcp: a camada de interface MCP que conecta agentes de IA a esses trilhos

Consulte a contribuição de documentação do Mojaloop para mais sobre esse padrão.

MCP vs A2A — dois protocolos diferentes

O mpesa-mcp implementa MCP (Model Context Protocol) — como um agente de IA conversa com ferramentas.

Existe um protocolo complementar, A2A (Agent-to-Agent), que lida com como os agentes conversam entre si. Eles resolvem problemas diferentes e trabalham juntos:

  • MCP: Seu agente de IA → mpesa-mcp → API Daraja / Africa's Talking
  • A2A: Agente orquestrador ↔ subagente de pagamento ↔ subagente de notificação

Para a maioria das integrações, você só precisa de MCP. A2A se torna relevante quando você está construindo sistemas multiagentes onde um fluxo de trabalho de pagamento coordena com outros agentes especializados.


Desenvolvimento

git clone https://github.com/gabrielmahia/mpesa-mcp
cd mpesa-mcp
pip install -e ".[dev]"
pytest tests/ -v

Segurança

Não faça commit de chaves de API. Use variáveis de ambiente ou um gerenciador de segredos.
Reporte vulnerabilidades para: contact@aikungfu.dev

Contexto de pesquisa

Benchmark do ecossistema MCP (CData, 2026): A maioria dos servidores MCP atinge 60-75% de precisão em consultas complexas. O mpesa-mcp inclui validação explícita e verificação de limites para superar essa linha de base.

Precisão de IA em suaíli (arXiv:2509.04516, 2025): Modelos de IA produzem 4× mais erros em suaíli do que em inglês. As descrições de ferramentas nativas em suaíli do mpesa-mcp são projetadas para minimizar essa lacuna para usuários que falam suaíli, eliminando a etapa de tradução na seleção de ferramentas.

Pesquisa de segurança MCP (arXiv:2603.18063, arXiv:2603.21642, 2026): Injeção de prompt via descrições de ferramentas é o principal vetor de ataque MCP. O mpesa-mcp mitiga isso por meio de descrições de ferramentas estáticas e versionadas e validação rigorosa de entrada.

Infraestrutura relacionada:

Licença

MIT — © 2026 Gabriel Mahia

Mantenha-se atualizado

Receba notificações de novos lançamentos e desenvolvimentos de APIs da África Oriental: Inscreva-se para atualizações →

Ou acompanhe este repositório no GitHub para notificações de lançamentos.

Pacotes irmãos

PacoteInstalaçãoDescrição
wapimaji-mcppip install wapimaji-mcpServidor MCP de inteligência de seca do Quênia
civic-agent-kitpip install civic-agent-kitSDK de IA cívica da África Oriental

Pacotes relacionados

Todos MIT · Todos parte da pilha de IA cívica da África Oriental

PacoteInstalaçãoDescrição
wapimaji-mcppip install wapimaji-mcpServidor MCP de inteligência de seca do Quênia
kenya-health-mcppip install kenya-health-mcpMCP de dados de saúde do Quênia — NHIF, instalações, saúde materna, direitos
civic-agent-kitpip install civic-agent-kitSDK de IA cívica da África Oriental

Portfólio completo: gabrielmahia.github.io

Parte da Pilha de Coordenação da África Oriental

Este servidor MCP é uma das 32 ferramentas na infraestrutura de coordenação do Quênia. Conecte-o ao africa-coord-bus — o barramento de eventos de coordenação que roteia sinais entre domínios automaticamente.

pip install africa-coord-bus

Todos os 32 servidores: pypi.org/user/gmahia Demonstração ao vivo: coord-cascade-demo

IP e Colaboração

Licenciado sob MIT. Feedback apenas via Issues do GitHub — pull requests não são aceitos. Os dados de demonstração são rotulados como DEMO e não são adequados para decisões operacionais. Política completa: docs/architecture/IP_POLICY.md. Relatórios de segurança: consulte SECURITY.md.

Parte da pilha de coordenação da África Oriental

Agnóstico de modelo por design: APIs fechadas, modelos de peso aberto e pequenos modelos destilados são todos cidadãos de primeira classe.