Skip to main content

Plug Your Broker Into Any MCP Tool

MCP (Model Context Protocol) is an open standard that defines how applications communicate with external tool servers. MCP Routes let your Coreflux broker connect to any MCP-compatible server — file systems, messaging platforms, cloud storage, spreadsheets, and more — and call their tools directly from LoT Actions.
Like adding power tools to a workbench. Each MCP Route plugs a new tool into your broker — a Slack server for sending messages, a filesystem server for reading logs, a Google Drive server for cloud backups. Once connected, any LoT Action can pick up and use that tool.

Integration Architecture

MCP Routes allow the Coreflux Broker to connect to external MCP servers as a client. This enables LoT Actions to call tools provided by any MCP server—file systems, cloud services, communication platforms, and more.

How It Works

  1. Define MCP Routes - Each route connects to an external MCP server
  2. Discover Tools - The broker discovers available tools from each server
  3. Call from Actions - Use CALL MCP in LoT Actions to invoke any tool
  4. Reusable Connections - Multiple actions can share the same MCP route
MCP as a Connection Type. Just like database routes or REST API routes, MCP routes provide a reusable connection that any action can leverage. Define the route once, use it everywhere.

In This Page

SectionDescription
Basic SyntaxDefine an MCP route
ConfigurationServer command, arguments, and client name
Configuration ExamplesFilesystem, custom, and Node.js server setups
MCP Server ExamplesNode.js and Python MCP servers for IoT
Calling MCP ToolsExecute MCP tools from LoT Actions
Tool DiscoveryDiscover available tools via MQTT system topics
Use CasesCommon MCP integration patterns
Best PracticesSecurity, resource management, and error handling

Basic Syntax

The MCP route type connects your Coreflux broker to an external MCP server, making that server’s tools callable from LoT Actions. Each route manages one MCP server connection, and you can define multiple routes to connect to different servers simultaneously.
DEFINE ROUTE MCPFilesystem WITH TYPE MCP
    ADD MCP_CONFIG
        WITH SERVER_COMMAND "npx"
        WITH SERVER_ARGUMENTS "-y, @modelcontextprotocol/server-filesystem, /data"
        WITH CLIENT_NAME "CorefluxFS"
Once connected, any LoT Action can use CALL MCP to invoke the server’s tools — send Slack messages, read and write files, generate spreadsheet reports, or interact with any other MCP-compatible service.

MCP Configuration

MCP_CONFIG Parameters

SERVER_COMMAND
string
MCP server command to execute (e.g., npx, python, node).
SERVER_ARGUMENTS
string
Comma-separated server arguments (e.g., -y, @modelcontextprotocol/server-filesystem).
CLIENT_NAME
string
MCP client identifier. Default: CorefluxBroker.

Configuration Examples

Enable LoT Actions to perform file operations:
DEFINE ROUTE MCPFilesystem WITH TYPE MCP
    ADD MCP_CONFIG
        WITH SERVER_COMMAND "npx"
        WITH SERVER_ARGUMENTS "-y, @modelcontextprotocol/server-filesystem, /data"
        WITH CLIENT_NAME "CorefluxFS"

MCP Server Examples

The MCP ecosystem includes servers for various platforms and services. These examples show how to connect popular MCP servers to your Coreflux broker for IoT integration.
Node.js-based MCP servers can be run directly using npx. These are the most common and include official Anthropic servers.
ServerLoT ConfigurationIoT Use Case
FilesystemSERVER_COMMAND "npx" with SERVER_ARGUMENTS "-y, @modelcontextprotocol/server-filesystem, /data"Read sensor logs, manage config files
Google DriveSERVER_COMMAND "npx" with SERVER_ARGUMENTS "-y, @modelcontextprotocol/server-gdrive"Cloud backup of IoT data
SlackSERVER_COMMAND "npx" with SERVER_ARGUMENTS "-y, @modelcontextprotocol/server-slack"Send alerts to team channels
MemorySERVER_COMMAND "npx" with SERVER_ARGUMENTS "-y, @modelcontextprotocol/server-memory"Persist context across AI sessions
FetchSERVER_COMMAND "npx" with SERVER_ARGUMENTS "-y, @modelcontextprotocol/server-fetch"Access external APIs and web data
Windows ControlSERVER_COMMAND "npx" with SERVER_ARGUMENTS "-y, mcp-control"Automate HMI/SCADA systems
Example: Slack Alerts for IoT Events
DEFINE ROUTE MCPSlack WITH TYPE MCP
    ADD MCP_CONFIG
        WITH SERVER_COMMAND "npx"
        WITH SERVER_ARGUMENTS "-y, @modelcontextprotocol/server-slack"
        WITH CLIENT_NAME "CorefluxSlack"

Calling MCP Tools

Once an MCP route is defined, you can call its tools from within LoT Actions using the CALL MCP syntax. This enables AI-powered automation triggered by MQTT events.

Basic Syntax

The standard syntax to invoke an MCP tool from an Action:
CALL MCP "RouteName.ToolName"
    WITH (arg1 = value1, arg2 = value2)
    RETURN AS {result_variable}
ComponentFormatDescription
Route.Tool"RouteName.ToolName"Route name and tool name separated by a dot
WITHWITH (name = value, ...)Named arguments in parentheses
RETURN ASRETURN AS {varname}Capture the result in a variable

Complete Example

This Action monitors a temperature sensor and uses an MCP tool to send a Slack message when the temperature exceeds a threshold:
DEFINE ACTION TemperatureAlert
ON TOPIC "sensors/+/temperature" DO
    SET "temp" WITH (GET JSON "value" IN PAYLOAD AS DOUBLE)
    SET "sensor_id" WITH TOPIC POSITION 2
    
    IF {temp} > 80 THEN
        CALL MCP "MCPSlack.send-message"
            WITH (channel = "alerts", message = "🔥 Sensor " + {sensor_id} + " at " + {temp} + "°C")
            RETURN AS {result}
        
        PUBLISH TOPIC "alerts/temperature/sent" WITH "Sensor: " + {sensor_id} + " Temp: " + {temp} + " Result: " + {result}
    END IF

Syntax Variations

Some tools don’t require arguments:
CALL MCP "MCPSystem.get-status"
    RETURN AS {status}
Pass multiple named parameters:
CALL MCP "MCPFilesystem.write-file"
    WITH (path = "/data/log.txt", content = {payload}, append = true)
    RETURN AS {write_result}
Build dynamic values using expressions:
CALL MCP "MCPSlack.send-message"
    WITH (message = "Device " + {device_id} + " reported: " + {value} + " at " + TIMESTAMP "UTC")
    RETURN AS {chat_result}

Tool Discovery

When an MCP route connects to a server, Coreflux automatically discovers all available tools and publishes them to MQTT system topics. This allows you to dynamically query what tools are available.

System Topics

TopicDescription
$SYS/Coreflux/Routes/{RouteName}/ToolsSummary of all tools for a route
$SYS/Coreflux/Routes/{RouteName}/Tools/{ToolName}Detailed info for a specific tool

Tools Summary Payload

Subscribe to the summary topic to see all available tools:
{
  "route_name": "MCPSlack",
  "route_type": "MCP",
  "total_tools": 8,
  "tools": ["send-message", "list-channels", "get-channel-history", "add-reaction", ...],
  "timestamp": "2025-12-31T12:00:00.000Z"
}

Individual Tool Payload

Each tool publishes detailed metadata including parameters and usage examples:
{
  "name": "send-message",
  "route_name": "MCPSlack",
  "tool_type": "MCP",
  "description": "Send a message to a Slack channel",
  "parameters": {
    "channel": { "type": "string", "required": true },
    "message": { "type": "string", "required": true }
  },
  "usage_example": "CALL MCP \"MCPSlack.send-message\" WITH (channel = {channel}, message = {message}) RETURN AS {result}",
  "capability": {
    "execution_count": 42,
    "average_latency_ms": 150.25,
    "reliability_percent": 98.5
  },
  "timestamp": "2025-12-31T12:00:00.000Z"
}

Subscribing to Tool Discovery

Use MQTT Explorer or any MQTT client to discover available tools:
What to FindTopic Pattern
All tools for a specific route$SYS/Coreflux/Routes/MCPSlack/Tools
Details for a specific tool$SYS/Coreflux/Routes/MCPSlack/Tools/send-message
All tools across all MCP routes$SYS/Coreflux/Routes/+/Tools/#
Tool discovery topics are retained messages, so the information is immediately available when you subscribe—you don’t need to wait for the next update.

Use Cases

Connect to Slack, email, or other messaging MCP servers to send alerts directly from LoT Actions. When a sensor crosses a threshold, the Action calls the messaging tool — no external middleware needed.
Use filesystem MCP servers to read configuration files, write sensor logs, or manage data exports. LoT Actions can read a config file at startup or append readings to a log file on every event.
Connect to Google Drive, Excel, or other cloud MCP servers to back up IoT data, generate reports from sensor readings, or sync configurations with cloud storage.
Use Windows Control or custom MCP servers to automate HMI/SCADA interfaces, trigger external scripts, or interact with desktop applications as part of your IoT workflow.

Best Practices

  • Limit MCP access to specific topics and actions
  • Use authentication for MCP server connections
  • Monitor MCP tool calls through logging
  • Implement rate limiting for MCP requests
  • Configure appropriate timeouts for MCP operations
  • Limit concurrent MCP connections if needed
  • Monitor memory usage of MCP server processes
  • Implement graceful fallbacks when the MCP server is unavailable
  • Log MCP communication errors for debugging
  • Set up alerts for repeated failures

Troubleshooting

  • Verify SERVER_COMMAND path is correct
  • Check SERVER_ARGUMENTS syntax (comma-separated)
  • Ensure required packages are installed (npx, node, python)
  • Check system PATH includes required executables
  • Verify MCP server is running and responsive
  • Check network/firewall settings
  • Increase timeout values if server startup is slow
  • Check server logs for errors
  • Verify the requested tool is available
  • Check permissions for the operation
  • Review server logs for detailed error messages
  • Ensure broker has required access rights

Next Steps

REST API Routes

Connect to external REST APIs.

Python Integration

Add custom AI/ML logic with Python.