Coreflux MQTT MCP Server
Un servidor MCP que se conecta a un broker Coreflux MQTT, proporcionando acciones de Coreflux y MQTT como herramientas para asistentes de IA.
Documentación
Servidor MCP de Coreflux MQTT
Un servidor de Protocolo de Contexto de Modelo (MCP) de nivel empresarial que proporciona acceso seguro y escalable a los brokers MQTT de Coreflux y capacidades integrales de automatización para Claude y otros asistentes de IA compatibles con MCP.
🚀 Características
Funcionalidad Principal
- 🔌 Integración MQTT: Conexión fluida a los brokers MQTT de Coreflux con soporte completo de TLS
- 🛠️ API Completa de Coreflux: Acceso total a modelos, acciones, reglas y rutas
- 🤖 Generación de Código con IA: Generación de código LOT (Lenguaje de las Cosas) a través de la API de Coreflux Copilot
- 🔍 Descubrimiento Dinámico: Descubrimiento y listado automático de acciones disponibles
- 🏥 Monitoreo de Salud: Verificaciones integrales de salud del sistema y monitoreo
Características Empresariales
- 🔒 Seguridad de Producción: Saneamiento integral de registros, validación de entradas y características de seguridad
- ⚡ Procesamiento Asíncrono: Procesamiento de mensajes sin bloqueo con limitación de velocidad y gestión de colas
- 📝 Registro Mejorado: Registro estructurado con rotación, filtrado y saneamiento de seguridad
- ✅ Validación de Configuración: Sistema integral de validación de entorno y archivos
- 🧪 Marco de Pruebas: Suite completa de pruebas unitarias con simulación y reporte de cobertura
DevOps y Despliegue
- 🐳 Listo para Contenedores: Soporte completo de despliegue con Docker y Kubernetes con verificaciones de salud
- 🔄 Canal de CI/CD: GitHub Actions con pruebas automatizadas, escaneo de seguridad y verificaciones de calidad
- 📦 Herramientas de Desarrollo: Hooks de pre-commit, formato de código, linting y generación de documentación
- ⚙️ Configuración Fácil: Asistente de configuración interactivo con validación y pruebas
- 📚 Documentación Rica: Documentación de API, guías de seguridad e instrucciones de despliegue
Inicio Rápido
Despliegue con Docker (Recomendado)
-
Clonar y configurar:
git clone https://github.com/CorefluxCommunity/Coreflux-MQTT-MCP-Server.git cd Coreflux-MQTT-MCP-Server cp .env.example .env # Edit .env with your configuration -
Desplegar con Docker:
docker-compose up -d
🚀 Inicio Rápido
Requisitos Previos
- Python 3.11 o superior
- Docker (opcional, para despliegue en contenedores)
- Acceso a un broker MQTT de Coreflux
- Clave API de Coreflux Copilot (opcional, para asistencia de IA)
Opción 1: Despliegue con Docker (Recomendado)
-
Clonar y configurar:
git clone https://github.com/CorefluxCommunity/Coreflux-MQTT-MCP-Server.git cd Coreflux-MQTT-MCP-Server cp .env.example .env # Edit .env with your configuration -
Desplegar con Docker:
docker-compose up -d -
Verificar el despliegue:
docker-compose logs -f coreflux-mcp-server
Opción 2: Instalación de Desarrollo
-
Clonar y configurar:
git clone https://github.com/CorefluxCommunity/Coreflux-MQTT-MCP-Server.git cd Coreflux-MQTT-MCP-Server -
Instalar dependencias:
pip install -r requirements.txt # For development pip install -r requirements-dev.txt -
Configurar el entorno:
python setup_assistant.py # Interactive configuration # OR cp .env.example .env && nano .env # Manual configuration -
Validar y probar:
make validate # Validate configuration make test # Run tests -
Iniciar el servidor:
python server.py # OR make run
Para instrucciones detalladas de despliegue, consulte DEPLOYMENT.md.
⚙️ Configuración
Asistente de Configuración Interactivo
El servidor incluye un asistente de configuración integral que lo guía a través de la configuración:
python setup_assistant.py
El asistente ayuda con:
- 🔧 Configuración de conexión al broker MQTT
- 🔐 Configuración de certificados TLS
- 🤖 Integración con la API de Coreflux Copilot
- 📝 Configuración de registro y monitoreo
- ✅ Validación y prueba de configuración
Use el asistente de configuración cuando:
- Cree la configuración inicial
- Actualice configuraciones existentes
- Solucione problemas de conexión
- Configure certificados TLS
- Migre entre entornos
Configuración del Entorno
Copie .env.example a .env y configure:
# MQTT Broker Configuration
MQTT_BROKER=your-broker-host.com
MQTT_PORT=8883
MQTT_USER=your-username
MQTT_PASSWORD=your-password
MQTT_USE_TLS=true
# TLS Configuration (when MQTT_USE_TLS=true)
MQTT_CA_CERT=/path/to/ca.crt
MQTT_CERT_FILE=/path/to/client.crt
MQTT_KEY_FILE=/path/to/client.key
# Coreflux Copilot API
DO_AGENT_API_KEY=your-api-key-here
# Logging Configuration
LOG_LEVEL=INFO
LOG_FILE=/var/log/coreflux-mcp.log
Para opciones de configuración detalladas, consulte la Guía de Configuración.
🔌 Conexión de Claude al Servidor MCP
Usando Claude Desktop
-
Localice el archivo de configuración de Claude Desktop:
- macOS/Linux:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%USERPROFILE%\AppData\Roaming\Claude\claude_desktop_config.json
- macOS/Linux:
-
Agregue la configuración del servidor:
{ "mcpServers": { "coreflux": { "command": "python", "args": ["/path/to/your/server.py"], "env": { "MQTT_BROKER": "your-broker-host.com", "MQTT_PORT": "8883", "MQTT_USER": "your-username", "MQTT_PASSWORD": "your-password", "MQTT_USE_TLS": "true", "DO_AGENT_API_KEY": "your-copilot-api-key" } } } } -
Reinicie Claude Desktop
Nota de Seguridad: Para despliegues de producción, almacene los secretos en variables de entorno seguras o sistemas de gestión de secretos en lugar del archivo de configuración de Claude.
Usando Variables de Entorno
Para mayor seguridad, use variables de entorno en lugar de codificar credenciales:
{
"mcpServers": {
"coreflux": {
"command": "python",
"args": ["/path/to/your/server.py"],
"env": {
"MQTT_BROKER": "${COREFLUX_MQTT_BROKER}",
"MQTT_PORT": "${COREFLUX_MQTT_PORT}",
"MQTT_USER": "${COREFLUX_MQTT_USER}",
"MQTT_PASSWORD": "${COREFLUX_MQTT_PASSWORD}",
"DO_AGENT_API_KEY": "${COREFLUX_API_KEY}"
}
}
}
}
Probando la Conexión
Una vez configurado, pruebe la conexión preguntando a Claude:
Can you check the health of the Coreflux MCP server and show me the broker information?
Claude debería responder con el estado del sistema y detalles del broker si la conexión es exitosa.
🛠️ Herramientas Disponibles
El servidor proporciona las siguientes herramientas a Claude:
Herramientas MQTT Principales
publish_to_coreflux- Publicar mensajes en temas MQTT con opciones de QoS y retenciónget_broker_info- Obtener información detallada sobre la conexión al broker MQTT
Herramientas de Asistencia de IA
copilot_assist- Consultar la IA de Coreflux Copilot para asistencia de automatización y generación de código
Herramientas de Gestión del Sistema
comprehensive_health_check- Realizar verificaciones de salud detalladas de todos los componentes del sistema
Para documentación detallada de la API, consulte API_DOCUMENTATION.md.
🧪 Desarrollo y Pruebas
Configuración de Desarrollo
-
Instalar dependencias de desarrollo:
pip install -r requirements-dev.txt -
Instalar hooks de pre-commit:
pre-commit install -
Ejecutar la configuración completa de desarrollo:
make dev-setup # Complete development environment setup
Pruebas
Ejecute la suite de pruebas integral:
# Run all tests
make test
# Run tests with coverage
make test-coverage
# Run specific test categories
make test-unit # Unit tests only
make test-integration # Integration tests only
Calidad del Código
Mantenga la calidad del código con herramientas automatizadas:
# Format code
make format
# Run linters
make lint
# Security scanning
make security-check
# Type checking
make type-check
# Run all quality checks
make quality-check
Comandos de desarrollo disponibles:
# Development workflow
make dev-setup # Set up complete development environment
make validate # Validate configuration and environment
make run # Start the server with validation
make run-debug # Start server in debug mode
# Testing and validation
make test # Run all tests
make test-coverage # Run tests with coverage report
make test-unit # Run unit tests only
make validate-config # Validate configuration files
# Code quality
make format # Format code with black and isort
make lint # Run all linters (flake8, bandit, mypy)
make security-check # Run security scanning
make type-check # Run type checking with mypy
# Docker operations
make docker-build # Build Docker image
make docker-run # Run in Docker container
make docker-test # Run tests in Docker
# Documentation
make docs # Generate documentation
make docs-serve # Serve documentation locally
🔧 Arquitectura del Sistema
Componentes Principales
server.py- Servidor MCP principal con implementaciones de herramientasconfig_validator.py- Validación de configuración y verificación del entornomessage_processor.py- Procesamiento asíncrono de mensajes MQTT con limitación de velocidadenhanced_logging.py- Registro estructurado con rotación y filtrado de seguridadconfig_schema.py- Esquemas Pydantic para configuración segura de tiposparser.py- Utilidades de saneamiento y análisis
Características de Seguridad
- Saneamiento de Entradas - Todas las entradas se sanean para prevenir ataques de inyección
- Seguridad de Registros - Saneamiento automático de datos sensibles en registros
- Soporte TLS - Cifrado TLS completo para conexiones MQTT
- Validación de Configuración - Validación integral de todos los parámetros de configuración
- Gestión de Secretos - Manejo seguro de credenciales y claves API
Características de Rendimiento
- Procesamiento Asíncrono - Procesamiento de mensajes sin bloqueo
- Agrupación de Conexiones - Gestión eficiente de conexiones MQTT
- Limitación de Velocidad - Límites de velocidad configurables para prevenir abusos
- Monitoreo de Salud - Verificaciones de salud en tiempo real y monitoreo del sistema
📚 Documentación
- Documentación de API - Referencia completa de la API
- Guía de Despliegue - Instrucciones de despliegue en producción
- Gestión de Secretos - Guía de seguridad y gestión de secretos
- Referencia de Configuración - Opciones completas de configuración
🐳 Despliegue con Docker
Inicio Rápido con Docker
# Clone and configure
git clone https://github.com/CorefluxCommunity/Coreflux-MQTT-MCP-Server.git
cd Coreflux-MQTT-MCP-Server
# Copy and edit environment file
cp .env.example .env
nano .env # Configure your settings
# Start with Docker Compose
docker-compose up -d
# Check logs
docker-compose logs -f coreflux-mcp-server
# Health check
docker-compose exec coreflux-mcp-server python -c "
import os
os.system('python server.py --health-check')
"
Despliegue de Producción con Docker
Consulte DEPLOYMENT.md para instrucciones integrales de despliegue en producción, incluyendo:
- Construcciones Docker de múltiples etapas
- Despliegues en Kubernetes
- Verificaciones de salud y monitoreo
- Balanceo de carga y escalado
- Configuraciones de seguridad
🔑 Integración con Coreflux Copilot
El servidor incluye potente asistencia de IA a través de la API de Coreflux Copilot:
Configuración
- Obtenga la Clave API del panel de Coreflux Copilot
- Configure la clave:
# Option 1: Environment file echo "DO_AGENT_API_KEY=your_api_key_here" >> .env # Option 2: Environment variable export DO_AGENT_API_KEY=your_api_key_here
Características
- Generación de Código LOT - Generar código de Lenguaje de las Cosas a partir de lenguaje natural
- Asistencia de Automatización - Obtener ayuda con tareas de automatización de Coreflux
- Mejores Prácticas - Recibir orientación sobre implementaciones óptimas
- Solución de Problemas - Obtener asistencia con depuración y optimización
Ejemplos de Uso
Pida a Claude que ayude con la automatización de Coreflux:
Generate LOT code for a temperature monitoring system that triggers an alert when the temperature exceeds 75°F
Help me create a rule that processes sensor data and stores it in a database
🚀 Características Avanzadas
Procesamiento Asíncrono de Mensajes
El servidor incluye un procesador de mensajes asíncrono robusto que:
- Previene Bloqueos - Maneja mensajes sin bloquear el hilo principal
- Limitación de Velocidad - Límites configurables para prevenir sobrecarga del sistema
- Gestión de Colas - Manejo inteligente de colas con contrapresión
- Estadísticas - Métricas de procesamiento y monitoreo en tiempo real
Sistema de Registro Mejorado
Registro integral con características empresariales:
- Registro Estructurado - Registros en formato JSON para fácil análisis
- Rotación de Registros - Rotación automática de archivos de registro para gestionar espacio en disco
- Filtrado de Seguridad - Saneamiento automático de información sensible
- Múltiples Salidas - Soporte para consola, archivo y syslog
Validación de Configuración
Sistema de validación robusto que verifica:
- Variables de Entorno - Valida toda la configuración requerida
- Permisos de Archivos - Asegura que los archivos de certificados sean accesibles
- Conectividad de Red - Prueba la conectividad del broker MQTT
- Disponibilidad de API - Valida el acceso a la API de Copilot
🛡️ Seguridad y Cumplimiento
Características de Seguridad
- Saneamiento de Entradas - Todas las entradas validadas y saneadas
- Cifrado TLS - Soporte completo de TLS para conexiones MQTT
- Gestión de Secretos - Manejo seguro de credenciales
- Registro de Auditoría - Registro integral de eventos de seguridad
- Ejecución sin Root - Se ejecuta con privilegios mínimos
Soporte de Cumplimiento
El servidor soporta varios requisitos de cumplimiento:
- SOC 2 - Controles de seguridad y monitoreo
- GDPR - Protección de datos y privacidad
- HIPAA - Protección de datos de salud (cuando se configura adecuadamente)
Para información detallada de seguridad, consulte SECRET_MANAGEMENT.md.
📊 Monitoreo y Verificaciones de Salud
Herramienta de Verificación de Salud
Monitoreo integral de salud con la herramienta comprehensive_health_check:
# Manual health check
python server.py --health-check
# Or ask Claude:
# "Please run a comprehensive health check on the Coreflux MCP server"
Métricas de Monitoreo
El servidor proporciona métricas detalladas:
- Estado de Conexión - Conectividad del broker MQTT
- Procesamiento de Mensajes - Tamaño de cola y tasas de procesamiento
- Recursos del Sistema - Uso de memoria y CPU
- Tasas de Error - Operaciones fallidas y estadísticas de errores
- Estado de API - Disponibilidad de la API de Copilot y tiempos de respuesta
Alertas
Configure alertas para:
- Fallos de conexión
- Altas tasas de error
- Agotamiento de recursos
- Eventos de seguridad
🤝 Contribuciones
¡Agradecemos las contribuciones! Consulte nuestras pautas de contribución:
Proceso de Desarrollo
- Haga un fork del repositorio
- Cree una rama de características:
git checkout -b feature/amazing-feature - Instale las dependencias de desarrollo:
pip install -r requirements-dev.txt - Configure los hooks de pre-commit:
pre-commit install - Haga sus cambios con pruebas
- Ejecute las verificaciones de calidad:
make quality-check - Confirme sus cambios:
git commit -am 'Add amazing feature' - Empuje a la rama:
git push origin feature/amazing-feature - Cree una Solicitud de Extracción
Estándares de Código
- Compatibilidad con Python 3.11+
- Anotaciones de tipo para todas las funciones
- Pruebas integrales con cobertura >90%
- Escaneo de seguridad con bandit
- Formato de código con black e isort
- Documentación para todas las APIs públicas
📄 Licencia
Este proyecto está licenciado bajo la Licencia Apache 2.0 - consulte el archivo LICENSE para más detalles.
🆘 Soporte y Solución de Problemas
Problemas Comunes
Conexión Rechazada
Error: MQTT connection failed
- Verifique el hostname y puerto del broker
- Verifique la conectividad de red
- Confirme la configuración de TLS
Autenticación Fallida
Error: Authentication failed
- Verifique el nombre de usuario/contraseña
- Verifique la validez de la clave API
- Confirme los permisos del broker
Fallo de Handshake TLS
Error: TLS handshake failed
- Verifique las rutas de los certificados
- Verifique la validez de los certificados
- Confirme la compatibilidad de la versión TLS
Modo de Depuración
Habilite el registro detallado para solución de problemas:
export LOG_LEVEL=DEBUG
python server.py
Obtener Ayuda
- Problemas de GitHub: Reporte errores y solicite características
- Discussions: Soporte comunitario y preguntas
- Documentación: Documentación completa
- Problemas de seguridad: Reportar a security@coreflux.org
🗺️ Hoja de ruta
Estado actual: v1.0.0 ✅
- ✅ Funcionalidad principal de MQTT
- ✅ Integración con la API de Copilot
- ✅ Funciones de seguridad empresarial
- ✅ Pruebas exhaustivas
- ✅ Soporte de despliegue en producción
Próximas funciones
- v1.1.0 - Monitoreo y métricas mejorados
- v1.2.0 - Puntos finales adicionales de la API de Coreflux
- v1.3.0 - Soporte de WebSocket para datos en tiempo real
- v2.0.0 - Soporte multi-broker y federación
📋 Referencia rápida
Comandos esenciales
# Setup and configuration
python setup_assistant.py # Interactive setup
make validate # Validate configuration
# Development
make dev-setup # Complete dev environment
make test # Run all tests
make quality-check # Run all quality checks
# Deployment
docker-compose up -d # Docker deployment
make docker-build # Build Docker image
# Monitoring
make health-check # System health check
docker-compose logs -f # View logs
Archivos clave
server.py- Servidor MCP principal.env- Archivo de configuraciónrequirements.txt- Dependencias de Pythondocker-compose.yml- Despliegue con DockerMakefile- Comandos de desarrollo
Construido con ❤️ por la Comunidad Coreflux
remove_action: Eliminar un evento/función de acciónrun_action: Ejecutar un evento/función de acciónremove_all_models: Eliminar todos los modelosremove_all_actions: Eliminar todas las accionesremove_all_routes: Eliminar todas las rutaslist_discovered_actions: Listar todas las acciones de Coreflux descubiertasrequest_lot_code: Generar código LOT usando la API de Coreflux Copilot basada en indicaciones de lenguaje natural
Depuración y resolución de problemas
El servidor MCP ahora se inicia incluso si el broker MQTT no está disponible, lo que le permite solucionar problemas y configurar conexiones a través de las herramientas MCP.
Estado de conexión y recuperación
- El servidor se iniciará correctamente incluso si el broker MQTT es inaccesible
- Use la herramienta
get_connection_statuspara verificar el estado de la conexión y obtener orientación para la resolución de problemas - Use la herramienta
setup_mqtt_connectionpara configurar una nueva conexión de broker sin reiniciar - Use las herramientas
check_broker_healthoreconnect_mqttpara probar y reintentar conexiones
Herramientas disponibles para la gestión de conexiones
get_connection_status: Obtener estado detallado de la conexión con orientación para la resolución de problemassetup_mqtt_connection: Configurar una nueva conexión de broker MQTT dinámicamentemqtt_connect: Conectarse a un broker MQTT específico con parámetros personalizadoscheck_broker_health: Probar la conectividad del broker e intentar reconexiónreconnect_mqtt: Forzar la reconexión al broker configurado
Pasos tradicionales de resolución de problemas
Si encuentra problemas:
- Verifique sus credenciales del broker MQTT en su configuración de Claude
- Asegúrese de que el broker sea accesible
- Ejecute el asistente de configuración para verificar o actualizar su configuración:
python setup_assistant.py - Revise los registros de Claude Desktop:
# Check Claude's logs for errors (macOS/Linux) tail -n 20 -f ~/Library/Logs/Claude/mcp*.log # Windows PowerShell Get-Content -Path "$env:USERPROFILE\AppData\Roaming\Claude\Logs\mcp*.log" -Tail 20 -Wait - Ejecute el servidor con registro de depuración:
# Direct execution with debug logging python server.py --mqtt-host localhost --mqtt-port 1883 --log-level DEBUG
Referencias y documentación
- DEPLOYMENT.md - Guía de despliegue en producción
- SECURITY.md - Directrices de seguridad y mejores prácticas
- Documentación de MCP - Documentación oficial de MCP
- Plataforma Coreflux - Plataforma de automatización Coreflux
Contribuciones
¡Las contribuciones son bienvenidas! Por favor, lea nuestras pautas de contribución y envíe solicitudes de extracción a la rama development.
Licencia
Este proyecto está licenciado bajo la Licencia Apache 2.0 - consulte el archivo LICENSE para más detalles.
Soporte
- 📖 Documentación: Consulte los archivos README, DEPLOYMENT.md y SECURITY.md
- 🐛 Problemas: Reporte errores y solicitudes de funciones en GitHub
- 💬 Comunidad: Únase a la comunidad de Coreflux para discusiones