Local MCP server for LoxBerry and Loxone home automation systems
Server has 7 tools with complete schemas and descriptions. Naming follows verb_noun pattern (loxone_get_*, loxone_send_*, loxberry_*). Descriptions are present and substantive (50-150 chars typical). However, parameter descriptions are sparse or missing for several tools (e.g., loxone_get_event_history lacks descriptions for start_time, end_time, limit). Output schemas are not documented in the visible code. Error handling is minimal, no recovery guidance or error categorization visible. Tool composition is reasonable but loxberry_operate is overly generic (accepts arbitrary operation strings), violating single-responsibility principle.
Get LoxBerry system diagnostics and health information
Execute operations on LoxBerry system
Get detailed information about a specific Loxone control including capabilities and metadata
Retrieve historical event data for Loxone controls
Get current state values for specified Loxone controls
Retrieve the complete Loxone system structure including rooms, categories, and controls
Send a command to a Loxone control
loxberry_operate violates single-responsibility principle: accepts arbitrary 'operation' strings with generic 'parameters' object. This is a catch-all tool that prevents LLMs from understanding what operations are valid. Should be split into specific tools (e.g., loxberry_restart, loxberry_update_config).
Parameter descriptions missing or incomplete for loxone_get_event_history (start_time, end_time, limit lack descriptions). LLMs cannot infer whether timestamps are Unix seconds, milliseconds, or ISO 8601 strings, or what limit bounds are.
Output schemas not documented in visible code. Tools return structured data (ControlSummaryData, StateReferenceData, etc. defined in tools.py) but LLMs have no way to know what fields to expect without reading implementation. Response structure must be documented in tool definitions.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 55 | <=2025-11-25 | v2 |
No error handling guidance visible. Tools do not document what errors are retryable, user-fixable, or fatal. No recovery hints (e.g., 'If UUID not found, call loxone_get_structure first'). Agents cannot self-correct on failures.
loxone_send_command (WRITE operation) lacks confirmation/dry-run pattern. Agents can send arbitrary commands to Loxone controls without preview or confirmation, risking unintended state changes.