YaVendió Herramientas 🧰
Un sistema de mensajería y notificaciones basado en MCP que permite a los sistemas de IA interactuar con diversas plataformas de mensajería mediante el Protocolo de Contexto de Modelo (MCP). Este proyecto implementa un servidor MCP que expone herramientas de mensajería para el envío de texto, imágenes, documentos, botones y alertas.
Tabla de contenido
- Características
- ¿Qué es MCP?
- Instalación
- Configuración
- Ejecutando con Docker
- Ejecutando localmente
- Desarrollo
- Estructura del proyecto
- Integración MCP
- Pruebas
- Contribuyendo
- Licencia
Características
- Capacidades de mensajería :
- Envía mensajes de texto por WhatsApp y otras plataformas
- Envíe imágenes y medios con el formato adecuado
- Envíe vídeos con metadatos apropiados
- Enviar documentos con nombres de archivo y metadatos
- Cree botones interactivos para la participación del usuario
- Gestión de clientes de WhatsApp :
- Registra y administra varios clientes de WhatsApp con diferentes credenciales
- Almacene tokens de forma segura usando Infisical
- Arquitectura sin estado para la gestión de clientes
- Herramientas dedicadas para cada operación de WhatsApp
- Funciones de notificación :
- Configurar alertas en múltiples canales (WhatsApp, correo electrónico, SMS)
- Soporte para botones de pago y notificaciones de transacciones
- Gestión de conversaciones :
- Seguimiento del estado de entrega de mensajes y metadatos
- Utilidades adicionales :
- Funcionalidad de suspensión/retraso para interacciones temporizadas
- Gestión de configuración para empresas y usuarios
- Entrega de mensajes en tiempo real con seguimiento de estado
¿Qué es MCP?
El Protocolo de Contexto de Modelo (MCP) es un estándar abierto desarrollado por Anthropic que permite una integración fluida entre sistemas de IA y fuentes o herramientas de datos externas. Proporciona un estándar universal y abierto para conectar sistemas de IA con fuentes de datos, reemplazando las integraciones fragmentadas con un único protocolo.
Este proyecto implementa un servidor MCP que expone diversas herramientas de mensajería, haciéndolas accesibles a los sistemas de IA de forma estandarizada. Mediante MCP, los asistentes de IA pueden:
- Envía mensajes de WhatsApp directamente a los usuarios
- Subir y enviar archivos multimedia
- Crea experiencias interactivas con botones
- Gestionar el contexto de la conversación de forma eficiente
- Activar notificaciones multicanal
Instalación
Este proyecto utiliza uv para la gestión de paquetes:
Requisitos
- Python 3.13 o superior
- Docker y Docker Compose (para implementación en contenedores)
Configuración
Cree un archivo .env
en el directorio raíz con su configuración:
Ejecutando con Docker
Ejecutando localmente
Desarrollo
El proyecto incluye varios comandos Makefile para agilizar el desarrollo:
Estructura del proyecto
app/
: Código de la aplicación principalserver.py
: La implementación del servidor MCPlogging.py
: Configuración de registro con structloglifespan.py
: Gestión del ciclo de vida de las aplicaciones
tools/
: Implementaciones de herramientasbase_tool.py
: Clases base abstractas para todas las herramientastext_tool.py
: Herramienta para enviar mensajes de textoimage_tool.py
: Herramienta para enviar imágenesvideo_tool.py
: Herramienta para enviar vídeosdocument_tool.py
: Herramienta para enviar documentosbutton_tool.py
: Herramienta para enviar botones interactivosalert_tool.py
: Herramienta para enviar alertas multicanalsleep_tool.py
: Herramienta para agregar retrasos en la ejecución de la herramienta
services/
: Implementaciones de serviciosinterfaces.py
: Interfaces de servicio que definen contratosmessage_service.py
: Servicio para el almacenamiento y recuperación de mensajesmessage_service_mock.py
: Implementación simulada para pruebaswhatsapp_service.py
: Servicio para la gestión de clientes de WhatsAppwhatsapp_service_mock.py
: Servicio de WhatsApp simulado para pruebas
tests/
: Implementaciones de pruebasapp/
: Pruebas para la estructura de la aplicacióntools/
: Pruebas para herramientas individualesservices/
: Pruebas para serviciosserver/
: Pruebas para la integración del servidor MCP
Integración MCP
Este servicio se puede integrar con aplicaciones LLM a través del Protocolo de Contexto de Modelo:
Herramientas MCP disponibles
send_text
Envía un mensaje de texto a un número de WhatsApp.
Parámetros:
company_id
: Identificador de la empresaphone_number
: Número de teléfono del destinatariomessage
: Texto para enviar
Ejemplo:
send_image
Envía una o más imágenes a un número de WhatsApp.
Parámetros:
company_id
: Identificador de la empresaphone_number
: Número de teléfono del destinatarioimage_urls
: Lista de URL de imágenes para enviar
Ejemplo:
send_video
Envía uno o más videos a un número de WhatsApp.
Parámetros:
company_id
: Identificador de la empresaphone_number
: Número de teléfono del destinatariovideo_urls
: Lista de URL de videos para enviar
Ejemplo:
send_document
Envía archivos de documentos a un número de WhatsApp.
Parámetros:
company_id
: Identificador de la empresaphone_number
: Número de teléfono del destinatariofiles
: Lista de archivos de documentos como{"url": "...", "filename": "..."}
Ejemplo:
send_alert
Envía alertas a través de múltiples canales (WhatsApp, Email, SMS).
Parámetros:
company_id
: Identificador de la empresaphone_number
: Número de teléfono del destinatariomessage
: Mensaje de alertawhatsapp
: Si desea enviar un mensaje de WhatsAppemail
: Configuración de correo electrónico{"subject": "..."}
sms
: configuración de SMS{"type": "...", "recipients": ["..."]}
pause_number
: Si se debe pausar la conversacióntrack_sale
: Si se debe rastrear esto como una venta
Ejemplo:
sleep
Pausa la ejecución durante segundos especificados.
Parámetros:
company_id
: Identificador de la empresaphone_number
: Número de teléfono del destinatarioseconds
: Número de segundos para dormir
Ejemplo:
send_button
Envía botones interactivos.
Parámetros:
company_id
: Identificador de la empresaphone_number
: Número de teléfono del destinatariobody_text
: Cuerpo del mensaje del botónbuttons
: Lista de configuraciones de botones[{"id": "...", "title": "..."}]
button_type
: "responder" o "pago"header
: configuración de encabezado opcionalfooter_text
: Texto de pie de página opcionalpayment_data
: Datos de pago para los botones de pago
Ejemplo (botones de respuesta):
Ejemplo (Botón de pago):
get_config
Obtiene la configuración de la empresa.
Parámetros:
company_id
: Identificador de la empresa
Ejemplo:
update_config
Actualiza la configuración de la empresa.
Parámetros:
company_id
: Identificador de la empresaconfig
: Nueva configuración
Ejemplo:
Pruebas
Para obtener información detallada sobre cómo ejecutar y escribir pruebas, consulte TEST.md.
Comandos de prueba básicos:
Contribuyendo
¡Agradecemos sus contribuciones! Siga estos pasos:
- Bifurcar el repositorio
- Crear una rama de características (
git checkout -b feature/amazing-feature
) - Realiza tus cambios
- Ejecutar pruebas para asegurarse de que pasan (
make test
) - Confirme sus cambios (
git commit -m 'Add amazing feature'
) - Empujar a la rama (
git push origin feature/amazing-feature
) - Abrir una solicitud de extracción
Licencia
Este proyecto está licenciado bajo la licencia MIT: consulte el archivo de LICENCIA para obtener más detalles.
This server cannot be installed
Un sistema de mensajería basado en MCP que permite que los sistemas de IA interactúen con varias plataformas de mensajería a través de herramientas estandarizadas para enviar texto, imágenes, documentos, botones y alertas.