Coreflux CommunityCoreflux-MQTT-MCP-Server
Built by Metorial, the integration platform for agentic AI.
Coreflux CommunityCoreflux-MQTT-MCP-Server
Server Summary
Connect to Coreflux MQTT broker
Execute Coreflux commands
List available actions
Access LOT language documentation
Configuration setup through a standalone assistant
An enterprise-grade Model Context Protocol (MCP) server that provides secure, scalable access to Coreflux MQTT brokers and comprehensive automation capabilities for Claude and other MCP-compatible AI assistants.
Clone and configure:
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
Deploy with Docker:
docker-compose up -d
Clone and configure:
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
Deploy with Docker:
docker-compose up -d
Verify deployment:
docker-compose logs -f coreflux-mcp-server
Clone and setup:
git clone https://github.com/CorefluxCommunity/Coreflux-MQTT-MCP-Server.git
cd Coreflux-MQTT-MCP-Server
Install dependencies:
pip install -r requirements.txt
# For development
pip install -r requirements-dev.txt
Configure environment:
python setup_assistant.py # Interactive configuration
# OR
cp .env.example .env && nano .env # Manual configuration
Validate and test:
make validate # Validate configuration
make test # Run tests
Start the server:
python server.py
# OR
make run
For detailed deployment instructions, see DEPLOYMENT.md.
The server includes a comprehensive setup assistant that guides you through configuration:
python setup_assistant.py
The assistant helps with:
Use the setup assistant when:
Copy .env.example
to .env
and 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
For detailed configuration options, see the Configuration Guide.
Locate Claude Desktop config file:
~/Library/Application Support/Claude/claude_desktop_config.json
%USERPROFILE%\AppData\Roaming\Claude\claude_desktop_config.json
Add server configuration:
{
"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"
}
}
}
}
Restart Claude Desktop
Security Note: For production deployments, store secrets in secure environment variables or secret management systems rather than the Claude config file.
For better security, use environment variables instead of hardcoding credentials:
{
"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}"
}
}
}
}
Once configured, test the connection by asking Claude:
Can you check the health of the Coreflux MCP server and show me the broker information?
Claude should respond with system status and broker details if the connection is successful.
The server provides the following tools to Claude:
publish_to_coreflux
- Publish messages to MQTT topics with QoS and retention optionsget_broker_info
- Get detailed information about the MQTT broker connectioncopilot_assist
- Query the Coreflux Copilot AI for automation assistance and code generationcomprehensive_health_check
- Perform detailed health checks of all system componentsFor detailed API documentation, see API_DOCUMENTATION.md.
Install development dependencies:
pip install -r requirements-dev.txt
Install pre-commit hooks:
pre-commit install
Run the full development setup:
make dev-setup # Complete development environment setup
Run the comprehensive test suite:
# 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
Maintain code quality with automated tools:
# 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
Available development commands:
# 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
server.py
- Main MCP server with tool implementationsconfig_validator.py
- Configuration validation and environment checkingmessage_processor.py
- Asynchronous MQTT message processing with rate limitingenhanced_logging.py
- Structured logging with rotation and security filteringconfig_schema.py
- Pydantic schemas for type-safe configurationparser.py
- Sanitization and parsing utilities# 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')
"
See DEPLOYMENT.md for comprehensive production deployment instructions including:
The server includes powerful AI assistance through the Coreflux Copilot API:
# 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
Ask Claude to help with Coreflux automation:
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
The server includes a robust async message processor that:
Comprehensive logging with enterprise features:
Robust validation system that checks:
The server supports various compliance requirements:
For detailed security information, see SECRET_MANAGEMENT.md.
Comprehensive health monitoring with the comprehensive_health_check
tool:
# Manual health check
python server.py --health-check
# Or ask Claude:
# "Please run a comprehensive health check on the Coreflux MCP server"
The server provides detailed metrics:
Configure alerts for:
We welcome contributions! Please see our contribution guidelines:
git checkout -b feature/amazing-feature
pip install -r requirements-dev.txt
pre-commit install
make quality-check
git commit -am 'Add amazing feature'
git push origin feature/amazing-feature
This project is licensed under the Apache License 2.0 - see the LICENSE file for details.
Connection Refused
Error: MQTT connection failed
Authentication Failed
Error: Authentication failed
TLS Handshake Failed
Error: TLS handshake failed
Enable detailed logging for troubleshooting:
export LOG_LEVEL=DEBUG
python server.py
# 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
server.py
- Main MCP server.env
- Configuration filerequirements.txt
- Python dependenciesdocker-compose.yml
- Docker deploymentMakefile
- Development commandsBuilt with β€οΈ by the Coreflux Community
remove_action
: Remove an action event/functionrun_action
: Run an action event/functionremove_all_models
: Remove all modelsremove_all_actions
: Remove all actionsremove_all_routes
: Remove all routeslist_discovered_actions
: List all discovered Coreflux actionsrequest_lot_code
: Generate LOT code using Coreflux Copilot API based on natural language promptsThe MCP server now starts even if the MQTT broker is not available, allowing you to troubleshoot and configure connections through the MCP tools.
get_connection_status
tool to check connection health and get troubleshooting guidancesetup_mqtt_connection
tool to configure a new broker connection without restartingcheck_broker_health
or reconnect_mqtt
tools to test and retry connectionsget_connection_status
: Get detailed connection status with troubleshooting guidancesetup_mqtt_connection
: Configure a new MQTT broker connection dynamicallymqtt_connect
: Connect to a specific MQTT broker with custom parameterscheck_broker_health
: Test broker connectivity and attempt reconnectionreconnect_mqtt
: Force reconnection to the configured brokerIf you encounter issues:
python setup_assistant.py
# 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
# Direct execution with debug logging
python server.py --mqtt-host localhost --mqtt-port 1883 --log-level DEBUG
Contributions are welcome! Please read our contributing guidelines and submit pull requests to the development
branch.
This project is licensed under the Apache License 2.0 - see the LICENSE file for details.