Coreflux MCP Server logo

Coreflux MCP Server

by CorefluxCommunity

The Coreflux MCP Server connects to a Coreflux MQTT broker, providing tools for Claude and other MCP-compatible AI assistants to interact with Coreflux actions. It leverages the Model Context Protocol (MCP) to enable seamless integration and control of Coreflux commands.

View on GitHub

Last updated: N/A

Coreflux MCP Server

This is a Model Context Protocol (MCP) server that connects to a Coreflux MQTT broker and makes Coreflux actions available as tools for Claude and other MCP-compatible AI assistants.

Features

  • Connects to Coreflux MQTT broker
  • Provides tools for all Coreflux commands (models, actions, rules, routes)
  • Discovers and lists available actions
  • Includes LOT language documentation as resources
  • Built with the official MCP SDK for seamless Claude integration
  • Interactive setup assistant for first-time configuration

Setup Assistant

The server includes an interactive setup assistant that runs automatically on first launch. This assistant helps you:

  • Create or update the .env file with your configuration
  • Configure MQTT broker settings (host, port, credentials)
  • Set up TLS configuration if needed
  • Configure logging options

The setup assistant can be disabled by setting ENABLE_SETUP_ASSISTANT = False in the server.py file.

Connecting Claude to the MCP Server

Using Claude Desktop Config

  1. Create or edit ~/Library/Application Support/Claude/claude_desktop_config.json (macOS/Linux) or %USERPROFILE%\AppData\Roaming\Claude\claude_desktop_config.json (Windows)
  2. Add the following configuration (adjust the paths accordingly):
    {
      "mcpServers": {
        "coreflux": {
          "command": "python",
          "args": [
            "/PATH/TO/server.py",
            "--mqtt-host", "localhost", 
            "--mqtt-port", "1883",
            "--mqtt-user", "root",
            "--mqtt-password", "coreflux",
            "--mqtt-client-id", "claude-coreflux-client"
          ],
          "description": "Coreflux MQTT Broker Control",
          "icon": "🔄",
          "env": {}
        }
      }
    }
    
  3. Restart Claude Desktop

Command-Line Arguments

The server accepts the following command-line arguments. These settings can also be configured via the .env file using the setup assistant:

| Argument | Description | Default | |----------|-------------|---------| | --mqtt-host | MQTT broker address | localhost | | --mqtt-port | MQTT broker port | 1883 | | --mqtt-user | MQTT username | - | | --mqtt-password | MQTT password | - | | --mqtt-client-id | MQTT client ID | claude-mcp-client | | --mqtt-use-tls | Enable TLS for MQTT connection | false | | --mqtt-ca-cert | Path to CA certificate file | - | | --mqtt-client-cert | Path to client certificate file | - | | --mqtt-client-key | Path to client key file | - | | --log-level | Logging level (DEBUG/INFO/WARNING/ERROR/CRITICAL) | INFO |

Available Tools

The server provides tools for common Coreflux commands:

  • add_rule: Add a new permission rule
  • remove_rule: Remove a permission rule
  • add_route: Add a new route connection
  • remove_route: Remove a route connection
  • add_model: Add a new model structure
  • remove_model: Remove a model structure
  • add_action: Add a new action event/function
  • remove_action: Remove an action event/function
  • run_action: Run an action event/function
  • remove_all_models: Remove all models
  • remove_all_actions: Remove all actions
  • remove_all_routes: Remove all routes
  • list_discovered_actions: List all discovered Coreflux actions
  • request_lot_code: Generate LOT code based on natural language prompts

Debugging and Troubleshooting

If you encounter issues:

  1. Verify your MQTT broker credentials in your Claude configuration
  2. Ensure the broker is accessible
  3. Run the server again with the setup assistant to verify or update your configuration
  4. Check Claude Desktop logs:
    # 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
    
  5. Run the server with debug logging:
    # Direct execution with debug logging
    python server.py --mqtt-host localhost --mqtt-port 1883 --log-level DEBUG
    

References