Loxone MCP Server
An MCP server for Loxone home automation systems, allowing AI assistants to control lights, blinds, sensors, and weather.
π Loxone MCP Server
Control your Loxone smart home through the Model Context Protocol
Β
Β
An async Rust MCP server that connects AI assistants to Loxone Miniservers. Control lights, blinds, climate, security, audio, and more β all through standardized MCP tools and resources.
[!NOTE] Built on the PulseEngine MCP framework v0.17.0 for standardized protocol handling, authentication, and transport layers.
Features
- π 17 MCP Tools β Control lights, blinds, HVAC, security, audio, door locks, intercoms, and scenes β all wired to real Miniserver commands
- π 25+ MCP Resources β Read-only access to rooms, devices, sensors, energy, weather, and system status with live state
- π Three Transports β stdio (Claude Desktop), HTTP/SSE (n8n, web clients), and Streamable HTTP
- π Security by Default β SSL verification on, UUID validation, rate limiting, input sanitization, dev-mode restricted to localhost
- β‘ Async Rust β Connection pooling, intelligent caching, batch operations
- π§ Nix Flake β Reproducible builds with OpenClaw plugin integration
- π Credential Management β Credential ID system, environment variables, or Infisical vault
Quick Start
# Build
cargo build --release
# Setup credentials
cargo run --bin loxone-mcp-setup -- --generate-id --name "My Home"
# Run with Claude Desktop
cargo run --bin loxone-mcp-server -- stdio --credential-id <your-id>
Installation
From Source
git clone https://github.com/avrabe/mcp-loxone
cd mcp-loxone
cargo build --release
Nix Flake
nix build github:avrabe/mcp-loxone
# Or run directly
nix run github:avrabe/mcp-loxone
Docker
docker build -t loxone-mcp .
docker run -e LOXONE_HOST=192.168.1.100 \
-e LOXONE_USER=admin \
-e LOXONE_PASS=secret \
-p 3001:3001 loxone-mcp
Configuration
Credential ID (Recommended)
# Interactive setup β generates a unique credential ID
cargo run --bin loxone-mcp-setup -- --generate-id --name "Main House"
# Or store manually
cargo run --bin loxone-mcp-auth -- store \
--name "Office" --host 192.168.1.100 \
--username admin --password secure123
# Manage credentials
cargo run --bin loxone-mcp-auth -- list
cargo run --bin loxone-mcp-auth -- test <credential-id>
Environment Variables
export LOXONE_HOST="192.168.1.100"
export LOXONE_USER="admin"
export LOXONE_PASS="password"
Infisical Vault (Production)
export INFISICAL_PROJECT_ID="your-project-id"
export INFISICAL_CLIENT_ID="your-client-id"
export INFISICAL_CLIENT_SECRET="your-client-secret"
[!TIP] Migrating from environment variables? See the Credential Migration Guide.
Usage
Claude Desktop
Add to your claude_desktop_config.json:
{
"mcpServers": {
"loxone": {
"command": "loxone-mcp-server",
"args": ["stdio", "--credential-id", "abc123def-456-789"]
}
}
}
HTTP Server (n8n, MCP Inspector)
# Standard HTTP/SSE
loxone-mcp-server http --port 3001 --credential-id <id>
# Streamable HTTP (new MCP Inspector)
loxone-mcp-server streamable-http --port 3001 --credential-id <id>
OpenClaw Integration
The flake exports an openclawPlugin for nix-openclaw:
customPlugins = [
{
source = "github:avrabe/mcp-loxone";
config.env = {
LOXONE_HOST = "/path/to/secrets/loxone-host";
LOXONE_USER = "/path/to/secrets/loxone-user";
LOXONE_PASS = "/path/to/secrets/loxone-pass";
};
}
];
Tools & Resources
Tools (Actions)
| Category | Tools | Description |
|---|---|---|
| Lighting | control_light | On/off, dim 0-100% |
| Blinds | control_blind | Up/down/stop, position 0-100% |
| Climate | set_temperature | Target temperature with safe range validation |
| Security | set_security_mode | Arm, disarm, night, away modes |
| Doors | control_door_lock | Lock, unlock, open |
| Intercom | control_intercom | Answer, decline, open door |
| Audio | control_audio | Play, pause, volume per zone |
| Scenes | activate_scene | Trigger named scenes |
| General | control_device, get_*_status | Direct device control, live status queries |
Resources (Read-Only)
| URI Pattern | Data |
|---|---|
loxone://rooms | Room listing with device counts |
loxone://rooms/{room}/devices | Devices in a specific room |
loxone://devices/all | Full device inventory |
loxone://devices/category/{cat} | Devices by category |
loxone://sensors/* | Door/window, temperature, motion |
loxone://audio/zones | Audio zone configuration |
loxone://system/status | Miniserver status and capabilities |
loxone://energy/* | Power monitoring and consumption |
Architecture
AI Assistant (Claude, n8n, OpenClaw)
β
MCP Protocol (stdio / HTTP / Streamable HTTP)
β
ββββββΌββββββββββββββββββββββββββ
β loxone-mcp-server β
β βββββββββββββββββββββββββββ β
β β Security Layer β β
β β Auth Β· Rate Limit Β· TLS β β
β βββββββββββββββββββββββββββ€ β
β β Tool Handlers β β
β β 17 tools β send_command β β
β βββββββββββββββββββββββββββ€ β
β β Loxone Client β β
β β HTTP Β· WebSocket Β· Cacheβ β
β βββββββββββββββββββββββββββ β
ββββββ¬ββββββββββββββββββββββββββ
β
HTTP /jdev/sps/io/{uuid}/{cmd}
β
Loxone Miniserver
β
Physical Devices
Development
Requirements
- Rust 1.85+ (2024 edition)
- Loxone Miniserver (Gen 1 or Gen 2)
Building & Testing
cargo build # Dev build
cargo test --lib # Unit tests
cargo fmt && cargo clippy -- -D warnings # Format + lint
cargo audit # Security audit
Live Miniserver Testing
# Requires network access to Miniserver
LOXONE_LIVE_TEST=1 cargo test \
--test live_miniserver_tests \
--features test-utils -- --nocapture
Project Structure
src/
βββ server/ # MCP protocol, tool handlers (macro_backend.rs)
βββ client/ # HTTP/WebSocket clients with UUID validation
βββ config/ # Credentials, master key auto-persistence
βββ security/ # Input sanitization, rate limiting, CORS
βββ monitoring/ # Metrics, dashboards, InfluxDB
βββ history/ # Time-series data storage
βββ discovery/ # mDNS network discovery
βββ main.rs # CLI, transport selection, startup
Binaries
| Binary | Purpose |
|---|---|
loxone-mcp-server | Main MCP server (stdio/HTTP/streamable-http) |
loxone-mcp-auth | Credential management (store, list, test, delete) |
loxone-mcp-setup | Interactive setup with credential ID generation |
loxone-mcp-test-endpoints | API endpoint testing (development) |
License
Licensed under either of:
at your option.
Β
Built on PulseEngine MCP framework β async Rust for the Model Context Protocol
Related Servers
Crypto Fear & Greed Index
Provides real-time and historical Crypto Fear & Greed Index data from the Alternative.me API.
Bazi Calculation
A professional Bazi (Chinese astrology) calculation server providing full analysis including four pillars, five elements, zodiac, and lunar dates with timezone support.
ScanMalware.com URL Scanner
MCP server for ScanMalware.com URL scanning, malware detection, and analysis
MCP GameBoy Server
Allows Large Language Models to interact with a GameBoy emulator via the serverboy MCP server.
SO-ARM100 Robot Control with MCP
Control SO-ARM100 and LeKiwi robot arms using LLM-based AI agents.
ζΈ ιζ΄ε―ζε‘
Provides sales channel analysis, including distribution, dealer networks, and coverage, to help understand enterprise channel layouts.
Euroleague Live
Provides club information and advanced player statistics for Euroleague and Eurocup basketball from the Euroleague API.
Fonparam MCP
FonParam API ΓΌzerinden fonlarΔ±n gΓΌncel verilerini, performans istatistiklerini ve karΕΔ±laΕtΔ±rmalarΔ±nΔ± alabilirsiniz.
Windows Screenshots
A Model Context Protocol (MCP) server that provides screenshot capture functionality on Windows systems.
QGold
A server for natural language processing of asset prices and financial modeling for withdrawal rate impact analysis.