MCP server implementation for PilotSuite, exposing Home Assistant automation, mood engine, brain graph queries, behavioral patterns, energy optimization, and conversation memory as MCP tools.
Server has 8 well-defined read-only tools with reasonable naming conventions (all start with 'get_' or 'search_'), and most have descriptions between 50-150 characters. Input schemas are present with type definitions and descriptions for parameters. However, there are significant gaps: output schemas are completely undocumented (no visibility into what these tools return), parameter descriptions lack detail about expected formats and constraints, and error handling guidance is absent. The tools are query-focused with low risk, but lack the comprehensive documentation expected for production agent integration. No tool annotations (readOnlyHint) are present despite all tools being read-only operations.
Get calendar events from Home Assistant
Execute a device action
Get detected anomalies
Get detected behavior patterns
Activate a Home Assistant scene
Call a Home Assistant service to control devices
Fire a custom event in Home Assistant
Get Home Assistant configuration information
Output schemas completely undocumented. LLMs cannot plan downstream operations or extract specific fields from responses without knowing the return structure.
Parameter descriptions lack constraint information. E.g., 'limit' parameters lack numeric bounds (1 - 100?), 'min_confidence' lacks range clarification (0.0 - 1.0 is stated in description but not with examples of valid values), 'zone' lacks enum of valid zone names.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 14 | 2026-07-28+ | v2 |
| 2026-03-09 | C | 62 | 2025-03-26+ | v1 |
Get historical data for entities
Get list of available Home Assistant services
Get the current state of Home Assistant entities
Create a Home Assistant automation. Use this when the user asks to set up a rule like 'when X happens, do Y'. You MUST parse the user's intent into structured trigger and action data. Supports state, time, sun, and numeric_state triggers with turn_on/turn_off/scene/notify actions. Use numeric_state for sensor thresholds (e.g. humidity > 70%). Conditions can restrict when the automation fires.
Query the Brain Graph for entity relationships and co-occurrence patterns.
Get current energy statistics (consumption, solar, battery if available).
Get discovered behavioral patterns (association rules). Shows A->B patterns with support, confidence, and lift.
Get household profile (members, roles, preferences).
Get current mood scores (Comfort, Joy, Frugality) for all zones or a specific zone.
Get summary from the Neural Pipeline (mood, energy, weather, presence context).
Get learned user preferences from conversation memory (lifelong learning).
Search conversation memory for relevant past interactions by topic.
Query long-term memory
Query the RAG system for information
Get weather forecast
No error handling documentation. Tools have no guidance on when they fail, what errors mean, or how the LLM should recover (e.g., if a zone name is invalid, should the agent list available zones or retry with a different name?).
No tool annotations despite all tools being read-only. Adding readOnlyHint=true to all 8 tools would signal to agents these are safe to call without side effects and can be freely cached.
Empty input schemas for tools with no parameters (get_neuron_summary, get_household, get_energy_stats). These should either be removed from input schema or explicitly documented as 'No parameters required.'