Daraja MCP

by jameskanyiri
Verified

remote-capable server

The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.

Integrations

  • Used for storing sensitive M-Pesa API credentials and configuration through environment variables.

  • Provides containerized deployment option for running the Daraja MCP server.

  • Required runtime environment for the MCP server and used for direct module execution.

Daraja MCP

Un servidor de Protocolo de Contexto de Modelo (MCP) diseñado para integrar aplicaciones de IA con la API Daraja de Safaricom, lo que permite una interacción fluida con los servicios de M-Pesa.

⚠️ Advertencia: No está listo para producción

Este proyecto está actualmente en desarrollo y no se recomienda su uso en producción. Está diseñado para:

  • Aprendizaje y experimentación
  • Entornos de desarrollo y pruebas
  • Implementaciones de prueba de concepto

Para uso en producción, asegúrese de:

  • Pruebas de seguridad exhaustivas
  • Manejo adecuado de errores
  • Implementación completa de todas las funciones planificadas
  • Cumplimiento de los requisitos de producción de Safaricom

¿Qué es un servidor MCP?

Los servidores MCP (Protocolo de Contexto de Modelo) permiten a los LLM interactuar con sistemas externos. Los servidores MCP pueden ofrecer tres tipos principales de capacidades:

  • Recursos : datos similares a archivos que los clientes pueden leer (como respuestas de API)
  • Herramientas : Funciones que puede llamar el LLM (con aprobación del usuario)
  • Indicaciones : Plantillas preescritas que ayudan a los usuarios a realizar tareas específicas

Daraja MCP aprovecha específicamente esta arquitectura para conectar sistemas de IA con la API Daraja M-Pesa de Safaricom.

Descripción general

Daraja MCP conecta la IA, las tecnologías financieras y M-Pesa, haciendo que la automatización financiera basada en IA sea accesible y eficiente. Al estandarizar la conexión entre los LLM (Large Language Models) y las transacciones financieras, Daraja MCP permite que las aplicaciones basadas en IA procesen pagos, recuperen datos de transacciones y automaticen los flujos de trabajo financieros sin esfuerzo.

Capacidades clave

  • Transacciones M-Pesa impulsadas por IA : permite que los LLM gestionen pagos B2C, C2B y B2B
  • Integración estandarizada : MCP garantiza la compatibilidad con múltiples herramientas de IA
  • Seguro y escalable : implementa la autenticación OAuth y admite el manejo de transacciones de nivel empresarial
  • Automatización flexible : los agentes de IA pueden consultar saldos de cuentas, generar facturas y automatizar la conciliación.

Requisitos

  • Python 3.12
  • Credenciales de la API de Safaricom Daraja (clave de consumidor y secreto)

Instalación

Paso 1: Configuración de su entorno

  1. Instalar el administrador de paquetes uvPara Mac/Linux:
    curl -LsSf https://astral.sh/uv/install.sh | sh
    Para Windows (PowerShell):
    powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
  2. Clonar el repositorio
    git clone https://github.com/jameskanyiri/DarajaMCP.git cd DarajaMCP
  3. Crear y activar un entorno virtual
    uv venv source .venv/bin/activate # On Windows: .venv\Scripts\activate
    ✅ Resultado esperado: El indicador de su terminal debería cambiar, indicando que el entorno virtual está activado.
  4. Instalar dependencias
    uv sync

Paso 2: Configuración de variables de entorno

  1. Copie el archivo de entorno de ejemplo:
    cp .env.example .env
  2. Actualice el archivo .env con sus credenciales y valores de configuración reales.

Nota: Para el desarrollo, utilice el entorno de pruebas. Cambie a la URL de producción cuando esté listo.

Uso

Pruebas con Claude Desktop

  1. Instalar Claude Desktop
    • Descargue e instale la última versión de Claude Desktop
    • Asegúrese de estar ejecutando la última versión
  2. Configurar Claude Desktop
    • Abra el archivo de configuración de Claude Desktop:
      # On MacOS/Linux code ~/Library/Application\ Support/Claude/claude_desktop_config.json # On Windows code %APPDATA%\Claude\claude_desktop_config.json
    • Crea el archivo si no existe
  3. Agregar configuración de servidor Elija una de las siguientes configuraciones:

Formato recomendado por Anthropic

{ "mcpServers": { "daraja": { "command": "uv", "args": [ "--directory", "/ABSOLUTE/PATH/TO/PARENT/FOLDER/DarajaMCP", "run", "main.py" ] } } }

Configuración de trabajo (probada)

{ "mcpServers": { "DarajaMCP": { "command": "/ABSOLUTE/PATH/TO/PARENT/.local/bin/uv", "args": [ "--directory", "/ABSOLUTE/PATH/TO/PARENT/FOLDER/DarajaMCP", "run", "main.py" ] } } }

Nota:

  • Reemplace /ABSOLUTE/PATH/TO/PARENT con su ruta real
  • Para encontrar la ruta completa a uv , ejecute:
# On MacOS/Linux which uv # On Windows where uv
  1. Verificar configuración
    • Guardar el archivo de configuración
    • Reiniciar Claude Desktop
    • Busca el ícono del martillo 🔨 en la interfaz
    • Haga clic aquí para ver las herramientas disponibles:
      • generar_token_de_acceso
      • stk_push (Implementación futura)
      • query_transaction_status (Implementación futura)
      • b2c_payment (Implementación futura)
      • account_balance (Implementación futura)

Herramientas y avisos

Herramientas de pago

stk_push

Inicie una solicitud push STK de M-Pesa para solicitarle al cliente que autorice un pago en su dispositivo móvil.

Entradas:

  • amount (int): El importe a pagar
  • phone_number (int): El número de teléfono del cliente

Devoluciones: Respuesta de la API de M-PESA con formato JSON

generar_código_qr

Genere un código QR para una solicitud de pago que los clientes puedan escanear para realizar pagos.

Entradas:

  • merchant_name (str): Nombre de la empresa/Nombre del comerciante de M-Pesa
  • transaction_reference_no (str): Número de referencia de la transacción
  • amount (int): El importe total de la venta/transacción
  • transaction_type (Literal["BG", "WA", "PB", "SM", "SB"]): Tipo de transacción
  • credit_party_identifier (str): Identificador de la entidad crediticia (número de teléfono móvil, número de empresa, caja del agente, Paybill o comerciante que compra bienes)

Devoluciones: Respuesta de la API de M-PESA con formato JSON que contiene los datos del código QR

Avisos de pago

Aviso de inserción de stk

Genere un aviso para iniciar una solicitud de pago push STK de M-Pesa.

Entradas:

  • phone_number (str): El número de teléfono del cliente
  • amount (int): El importe a pagar
  • purpose (str): El propósito del pago

Devoluciones: cadena de solicitud formateada para la solicitud push de STK

generar_aviso_de_código_QR

Genere un mensaje para crear una solicitud de pago con código QR de M-Pesa.

Entradas:

  • merchant_name (str): Nombre del comerciante/negocio
  • amount (int): Cantidad a pagar
  • transaction_type (str): Tipo de transacción (BG para comprar bienes, WA para billetera, PB para pagar facturas, SM para enviar dinero, SB para enviar a empresas)
  • identifier (str): El identificador del destinatario (número de caja, factura, número de teléfono)
  • reference (str, opcional): Número de referencia de la transacción. Si no se proporciona, se utilizará el valor predeterminado.

Devuelve: cadena de solicitud formateada para la generación de código QR

Herramientas de procesamiento de documentos

crear_fuente

Cree un conector desde la fuente de datos al servidor no estructurado para su procesamiento.

Entradas:

  • connector_name (str): El nombre del conector de origen a crear

Devuelve: Detalles del conector de origen, incluidos nombre e ID

crear_destino

Cree un conector desde un servidor no estructurado hasta un destino para el almacenamiento de datos.

Entradas:

  • connector_name (str): El nombre del conector de destino a crear

Devoluciones: Detalles del conector de destino, incluidos nombre e ID

crear_flujo_de_trabajo

Cree un flujo de trabajo para procesar datos desde el conector de origen hasta el conector de destino.

Entradas:

  • workflow_name (str): El nombre del flujo de trabajo a crear
  • source_id (str): El ID del conector de origen
  • destination_id (str): El ID del conector de destino

Devoluciones: Detalles del flujo de trabajo que incluyen nombre, ID, estado, tipo, orígenes, destinos y programación.

ejecutar_flujo_de_trabajo

Ejecutar un flujo de trabajo.

Entradas:

  • workflow_id (str): El ID del flujo de trabajo a ejecutar

Devuelve: Estado de ejecución del flujo de trabajo

obtener_detalles_del_flujo_de_trabajo

Obtenga información detallada sobre un flujo de trabajo.

Entradas:

  • workflow_id (str): El ID del flujo de trabajo para obtener detalles

Devoluciones: Detalles del flujo de trabajo, incluidos nombre, ID y estado.

obtener_documentos

Obtener documentos analizados durante la ejecución del flujo de trabajo.

Entradas: Ninguna

Devoluciones: Lista de documentos analizados

Indicaciones

crear_y_ejecutar_indicador_de_flujo_de_trabajo

Genere un mensaje para crear y ejecutar un flujo de trabajo para el procesamiento de documentos.

Entradas:

  • user_input (str): Los requisitos de procesamiento del usuario

Devoluciones: mensaje formateado para la creación y ejecución del flujo de trabajo

Ejemplo:

# Example usage prompt = await create_and_run_workflow_prompt( user_input="Process all PDF invoices from the invoices folder and store them in the processed folder" ) # Returns: "The user wants to achieve Process all PDF invoices from the invoices folder and store them in the processed folder. Assist them by creating a source connector and a destination connector, then setting up the workflow and executing it."

Recursos

Actualmente no hay recursos disponibles.

Licencia

Licencia MIT

Expresiones de gratitud

  • Safaricom por proporcionar la API de Daraja
  • Antrópico para el marco MCP
  • Contribuyentes al proyecto

Contacto

Para cualquier consulta, abra un problema en el repositorio de GitHub.

-
security - not tested
F
license - not found
-
quality - not tested

Un servidor de protocolo de contexto de modelo que integra aplicaciones de IA con la API de Daraja de Safaricom, lo que permite transacciones financieras impulsadas por IA y automatización a través de los servicios de M-Pesa.

  1. What is an MCP Server?
    1. Overview
      1. Key Capabilities
    2. Requirements
      1. Installation
        1. Step 1: Setting Up Your Environment
        2. Step 2: Setting up Environment Variables
      2. Usage
        1. Testing with Claude Desktop
      3. Tools and Prompts
        1. Payment Tools
        2. Payment Prompts
        3. Document Processing Tools
        4. Prompts
        5. Resources
      4. License
        1. Acknowledgments
          1. Contact
            ID: ffit7efo74