Labsco
avrabe logo

Loxone MCP Server

β˜… 33

from avrabe

An MCP server for Loxone home automation systems, allowing AI assistants to control lights, blinds, sensors, and weather.

πŸ”₯πŸ”₯πŸ”₯βœ“ VerifiedFreeNeeds API keys
<div align="center">

🏠 Loxone MCP Server

<sup>Control your Loxone smart home through the Model Context Protocol</sup>

Β 

Rust MCP Edition CI License

</div>

Β 

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

Tools & Resources

Tools (Actions)

CategoryToolsDescription
Lightingcontrol_lightOn/off, dim 0-100%
Blindscontrol_blindUp/down/stop, position 0-100%
Climateset_temperatureTarget temperature with safe range validation
Securityset_security_modeArm, disarm, night, away modes
Doorscontrol_door_lockLock, unlock, open
Intercomcontrol_intercomAnswer, decline, open door
Audiocontrol_audioPlay, pause, volume per zone
Scenesactivate_sceneTrigger named scenes
Generalcontrol_device, get_*_statusDirect device control, live status queries

Resources (Read-Only)

URI PatternData
loxone://roomsRoom listing with device counts
loxone://rooms/{room}/devicesDevices in a specific room
loxone://devices/allFull device inventory
loxone://devices/category/{cat}Devices by category
loxone://sensors/*Door/window, temperature, motion
loxone://audio/zonesAudio zone configuration
loxone://system/statusMiniserver status and capabilities
loxone://energy/*Power monitoring and consumption

Architecture

Copy & paste β€” that's it
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

Copy & paste β€” that's it
cargo build                                    # Dev build
cargo test --lib                               # Unit tests
cargo fmt && cargo clippy -- -D warnings       # Format + lint
cargo audit                                    # Security audit

Live Miniserver Testing

Copy & paste β€” that's it
# Requires network access to Miniserver
LOXONE_LIVE_TEST=1 cargo test \
  --test live_miniserver_tests \
  --features test-utils -- --nocapture

Project Structure

Copy & paste β€” that's it
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

BinaryPurpose
loxone-mcp-serverMain MCP server (stdio/HTTP/streamable-http)
loxone-mcp-authCredential management (store, list, test, delete)
loxone-mcp-setupInteractive setup with credential ID generation
loxone-mcp-test-endpointsAPI endpoint testing (development)

License

Licensed under either of:

at your option.

<div align="center">

Β 

<sub>Built on <a href="https://github.com/pulseengine">PulseEngine</a> MCP framework β€” async Rust for the Model Context Protocol</sub>

</div>