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:
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:
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.
Interactive Setup AssistantThe 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.
๐ Connecting Claude to the MCP ServerLocate 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.
Using Environment VariablesFor 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:
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') "Production Docker Deployment
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
Asynchronous Message Processing
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.
๐ Monitoring & Health ChecksComprehensive 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.
๐ Support & TroubleshootingConnection 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.
Connection Status and Recoveryget_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.
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4