home / mcp / loxone mcp server

Loxone MCP Server

MCP server enabling AI assistants and IDEs to control Loxone devices, scenes, and climate with real-time updates.

Installation
Add the following to your MCP client configuration file.

Configuration

View docs
{
  "mcpServers": {
    "bernhardrode-loxone-mcp-server": {
      "url": "http://127.0.0.1:8000/mcp",
      "headers": {
        "MCP_HOST": "127.0.0.1",
        "MCP_PORT": "8000",
        "LOG_LEVEL": "INFO",
        "MCP_TRANSPORT": "http"
      }
    }
  }
}

You can connect your Loxone smart home to AI assistants and IDEs using this MCP server. It lets you control devices, trigger scenes, receive real-time updates, and secure sensitive commands with PINs. This makes it easier to automate, script, and chat your home actions with confidence and speed.

How to use

You interact with the MCP server from compatible MCP clients. Start the server locally and connect via stdio for desktop assistants, or run it in HTTP mode to reach it over the web. Once connected, you can list devices, check current states, turn switches on or off, adjust dimmers and climate, manage blinds, trigger scenes, and send raw or secured commands. Credentials for your Miniserver are supplied as part of each tool call.

How to install

Prerequisites: Python 3.10 or newer and a Loxone Miniserver (Gen 1/2, firmware 10.0+). Ensure your computer can reach the Miniserver over the network with valid credentials.

# Install uv (Python package manager)
# macOS/Linux
curl -LsSf https://astral.sh/uv/install.sh | sh

# Windows (PowerShell)
powershell -c "irm https://astral.sh/uv/install.ps1 | iex"

Clone the MCP server repository, set up the environment, and install dependencies. Then run the server with the default stdio transport (no extra config needed):

# Clone and setup
git clone <repository-url>
cd loxone-mcp-server

# Install dependencies
uv venv
source .venv/bin/activate  # Windows: .venv\Scripts\activate
uv pip install -e ".[dev]"

# Run the server (stdio mode by default)
uv run loxone-mcp-server

Configuration and runtime modes

The server is stateless and does not require environment credentials. Each MCP client provides credentials when calling tools. You can customize runtime settings with optional environment variables.

# Optional server settings
MCP_TRANSPORT=http    # Set to 'http' for HTTP mode (default: 'stdio')
MCP_HOST=127.0.0.1      # HTTP host (default: '127.0.0.1')
MCP_PORT=8000           # HTTP port (default: 8000)
LOG_LEVEL=INFO          # Logging level

Running the MCP Server

You can run in two transport modes. For local clients (stdio): start the server with stdio transport. For web-based clients (HTTP): start the server with HTTP transport.

# 1) Stdio Mode (Default)
uv run loxone-mcp-server

To use HTTP transport, set MCP_TRANSPORT to http and run the HTTP server, or run the dedicated HTTP entry point. The server will be available at the MCP endpoint.

# 2) HTTP Mode
MCP_TRANSPORT=http uv run loxone-mcp-server

# Or use the dedicated HTTP command
uv run loxone-mcp-server-http

# Server will be available at: http://127.0.0.1:8000/mcp

Available tools

loxone_list_devices

List all Miniserver devices with their identifiers and basic metadata (requires host, username, password)

loxone_get_device_state

Query the current state of a specific device by UUID (requires host, username, password, uuid)

loxone_set_switch

Turn a switch on or off (requires host, username, password, uuid, state)

loxone_set_dimmer

Set a dimmer level for a light (requires host, username, password, uuid, brightness)

loxone_set_cover_position

Control blinds or covers by position (requires host, username, password, uuid, position)

loxone_set_temperature

Set targeted climate temperature (requires host, username, password, uuid, temperature)

loxone_list_scenes

List available scenes (requires host, username, password)

loxone_trigger_scene

Activate a scene by UUID (requires host, username, password, uuid)

loxone_send_command

Send a raw command to a device (requires host, username, password, uuid, value)

loxone_send_secured_command

Send a PIN-protected command (requires host, username, password, uuid, value, code)