Loxone
STDIOMCP server for Loxone home automation control with 17 tools and comprehensive device management
MCP server for Loxone home automation control with 17 tools and comprehensive device management
Bridging Loxone home automation with the Model Context Protocol ecosystem through high-performance Rust implementation
A Model Context Protocol (MCP) server that enables programmatic control of Loxone home automation systems. This implementation provides comprehensive device control through 17 specialized tools and 25+ resources, supporting both stdio (for Claude Desktop) and HTTP transports.
git clone https://github.com/avrabe/mcp-loxone cd mcp-loxone cargo build --release
Quick Setup with Credential ID:
# Interactive setup with ID generation cargo run --bin loxone-mcp-setup --generate-id --name "Main House" # Store credentials manually cargo run --bin loxone-mcp-auth store \ --name "Office" \ --host 192.168.1.100 \ --username admin \ --password secure123
Manage Multiple Servers:
# List stored credentials cargo run --bin loxone-mcp-auth list # Test connections cargo run --bin loxone-mcp-auth test <credential-id>
Basic Setup:
cargo run --bin loxone-mcp-setup
Environment variables:
export LOXONE_HOST="http://192.168.1.100" export LOXONE_USER="your-username" export LOXONE_PASS="your-password"
Production with Infisical (optional):
export INFISICAL_PROJECT_ID="your-project-id" export INFISICAL_CLIENT_ID="your-client-id" export INFISICAL_CLIENT_SECRET="your-client-secret" export INFISICAL_ENVIRONMENT="production"
If you're currently using environment variables, see the Credential Migration Guide for step-by-step instructions to migrate to the new Credential ID system.
{ "mcpServers": { "loxone": { "command": "/path/to/loxone-mcp-server", "args": ["stdio", "--credential-id", "abc123def-456-789"] } } }
{ "mcpServers": { "loxone": { "command": "/path/to/loxone-mcp-server", "args": ["stdio"], "env": { "LOXONE_HOST": "192.168.1.100", "LOXONE_USER": "admin", "LOXONE_PASS": "password" } } } }
cargo run --bin loxone-mcp-server http --port 3001 --credential-id abc123def-456-789
cargo run --bin loxone-mcp-server http --port 3001
# Test with credential ID cargo run --bin loxone-mcp-auth test <credential-id> # Or list available credentials cargo run --bin loxone-mcp-auth list
The server implements 17 tools for actions and 25+ resources for data access:
control_device, control_multiple_devicescontrol_lights_unified, control_all_lights, control_room_lightscontrol_rolladen_unified, control_all_rolladen, control_room_rolladen, discover_rolladen_capabilitiesset_room_temperature, set_room_modecontrol_audio_zone, set_audio_volumearm_alarm, disarm_alarmcreate_workflow, execute_workflow_demoloxone://rooms, loxone://rooms/{room}/devices, loxone://rooms/{room}/overviewloxone://devices/all, loxone://devices/category/{category}, loxone://devices/type/{type}loxone://system/status, loxone://system/capabilities, loxone://system/categoriesloxone://sensors/door-window, loxone://sensors/temperature, loxone://sensors/motionloxone://audio/zones, loxone://audio/sourcesFull tool documentation → | Resource documentation →
The server uses an async Rust architecture with:
# Development build with debug symbols cargo build # Run tests cargo test # Format and lint cargo fmt && cargo clippy
src/
├── server/          # MCP protocol implementation
├── tools/           # Tool implementations
├── client/          # Loxone client
├── security/        # Auth and validation
└── main.rs          # Entry point
Contributions are welcome! Please see contributing.md for guidelines.
Licensed under either of:
at your option.
Built on the PulseEngine MCP framework. Special thanks to the Loxone community for protocol documentation.