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
- Instalar el administrador de paquetes uvPara Mac/Linux:Para Windows (PowerShell):CopyCopy
- Clonar el repositorioCopy
- Crear y activar un entorno virtual✅ Resultado esperado: El indicador de su terminal debería cambiar, indicando que el entorno virtual está activado.Copy
- Instalar dependenciasCopy
Paso 2: Configuración de variables de entorno
- Copie el archivo de entorno de ejemplo:Copy
- 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
- Instalar Claude Desktop
- Descargue e instale la última versión de Claude Desktop
- Asegúrese de estar ejecutando la última versión
- Configurar Claude Desktop
- Abra el archivo de configuración de Claude Desktop:Copy
- Crea el archivo si no existe
- Abra el archivo de configuración de Claude Desktop:
- Agregar configuración de servidor Elija una de las siguientes configuraciones:
Formato recomendado por Anthropic
Configuración de trabajo (probada)
Nota:
- Reemplace
/ABSOLUTE/PATH/TO/PARENT
con su ruta real- Para encontrar la ruta completa a
uv
, ejecute:
- 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 pagarphone_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-Pesatransaction_reference_no
(str): Número de referencia de la transacciónamount
(int): El importe total de la venta/transaccióntransaction_type
(Literal["BG", "WA", "PB", "SM", "SB"]): Tipo de transaccióncredit_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 clienteamount
(int): El importe a pagarpurpose
(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/negocioamount
(int): Cantidad a pagartransaction_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 crearsource_id
(str): El ID del conector de origendestination_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:
Recursos
Actualmente no hay recursos disponibles.
Licencia
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.
This server cannot be installed
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.