MCP (Model Context Protocol) server for Homebridge — control smart home accessories, manage plugins, and monitor your Homebridge server from AI assistants.
The Homebridge MCP server has 22 well-organized tools with consistent naming, descriptions, and structured schemas. Naming follows verb_noun conventions (get_, list_, set_, search_, etc.). All tools have non-empty descriptions (range: 70 - 220 chars, within the 10 - 1024 baseline). Parameters use Zod schemas with type declarations and descriptions. However, several critical gaps prevent a higher score: (1) Output schemas are not documented, tools return JSON.stringify() without declaring expected fields, which forces LLMs to reason about unstructured responses; (2) No error handling guidance, error responses are plain text strings without categorization (retryable, user-fixable, fatal) or actionable recovery hints; (3) Destructive/irreversible operations lack confirmation or dry-run patterns (e.g., reset_cached_accessories, update_config, restart_homebridge should warn and guide recovery); (4) Response limiting is absent for list operations, list_accessories and list_plugins have no pagination, offset, limit, or total_count; (5) Tool annotation hints (readOnlyHint, destructiveHint, idempotentHint) are missing despite risk labels in the spec; (6) Parameter relationships underdocumented, set_accessory requires knowing available characteristicTypes (dependencies on list_accessories output), but this is not formalized in descriptions. Strengths: all 22 tools are well-named and described; parameter constraints (e.g., regex pattern, min/max for search_logs limits 1 - 2000) are explicit; composition is clean, tools chain logically (list_accessories → get_accessory → set_accessory). Baselines: average tool description 110 chars (well within range); all parameters have type+description; 0 tools lack descriptions.
Get detailed information about a specific accessory by its uniqueId. Use list_accessories first to find the uniqueId.
Get the accessories room layout as configured in the Homebridge UI.
List all cached accessories stored by Homebridge. These persist across restarts.
Read the current Homebridge config.json file content. Returns the full configuration including bridge settings, accessories, and platforms.
Check if Homebridge is running and get its current status (up/down, version, plugins status).
Get the HomeKit pairing information (setup code, QR code URL) for this Homebridge instance.
Output schemas are not documented. All tools return text/JSON responses without declared field schemas, forcing LLMs to parse unstructured output and reason about expected fields.
Destructive operations lack confirmation or dry-run patterns. reset_cached_accessories, update_config, and restart_homebridge can cause data loss or service interruption but have no confirmation step or undo mechanism.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | D | 56 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 46 | - | v1 |
Get the CHANGELOG.md content for an installed Homebridge plugin.
Get the config.schema.json for a plugin, which describes how to configure it in Homebridge.
Get available versions and dist-tags for a specific Homebridge plugin.
Return the most recent lines from the Homebridge log (ANSI-stripped). Requires an hb-service based Homebridge install.
Get Homebridge server information including version, Node.js version, uptime, OS details, and Homebridge instance ID.
Get system information for the machine running Homebridge (CPU, memory, OS, network interfaces, uptime).
List all Homebridge accessories with their current state (on/off, brightness, temperature, etc.)
List all currently installed Homebridge plugins with their versions and update status.
Get detailed information about a specific Homebridge plugin from the npm registry.
Remove a specific cached accessory by its UUID. Useful for cleaning up stale accessories.
Reset ALL cached accessories. WARNING: This removes all cached accessories and requires a Homebridge restart.
Restart the Homebridge service. This will temporarily make all accessories unavailable.
Search the Homebridge log for matching lines. Returns up to `limit` most recent matches (ANSI-stripped). Useful for finding errors, warnings, or events involving a specific device.
Search the npm registry for Homebridge plugins matching a query.
Control a Homebridge accessory — turn it on/off, set brightness, color temperature, etc. Use list_accessories first to find the uniqueId and available characteristicTypes.
Update the Homebridge config.json file. You must provide the FULL config object — it replaces the entire file. Use get_config first to read the current config, then modify and pass back the complete object.
Error responses lack recovery guidance. All errors return plain text without categorizing them as retryable, user-fixable, or fatal, and without actionable next steps (e.g., 'try search_plugins() with a keyword first').
Missing tool annotations. No tools use destructiveHint or readOnlyHint despite risk labels in the spec. Marks like WRITE, IRREVERSIBLE, DESTRUCTIVE should map to tool registration metadata.
List operations have no pagination. list_accessories and list_plugins return unbounded results without limit, offset, total_count, or next_cursor, risking context window overflow.
Parameter dependencies undocumented. set_accessory requires characteristicType from list_accessories output, but this relationship is not formalized in descriptions.