Introduction
What Home Assistant MCP is, who it's for, and how it fits into your smart-home stack.
Home Assistant MCP is a Model Context Protocol (MCP) server that lets AI assistants like Claude, GPT, and Cursor control your Home Assistant instance. It exposes 40+ tools for lights, climate, scenes, automations, media, and a handful of higher-level helpers like maintenance checks and energy monitoring.
If you’ve ever asked an LLM to “turn off the living-room lights” and watched it hallucinate an API call, this is the fix: a typed, validated, rate-limited bridge between your assistant and your home.
What you get
- 40+ tools spanning device control, automation, scenes, media, and smart maintenance.
- Three transports so you can wire it into whatever client you already use: HTTP+WebSocket for remote AI hosts, STDIO for local editor integrations, and Smithery for one-click install.
- Three entry points that all build from the same source:
src/index.ts(HTTP+WS, customMCPServeron Express),src/stdio-server.ts(STDIO,fastmcpv3), andsrc/http-server.ts(HTTP,fastmcpv3). - Bun-native in development and testing, with the production artifacts (
.cjsand.mjs) running on plain Node.js >= 18.
When to reach for it
- You want a single MCP server that covers the long tail of HA actions without a per-domain add-on.
- You already run a long-lived HTTP service (LAN-only is fine) and want WebSocket streaming for state changes.
- You prefer typed schemas over docs-by-example — every tool input is Zod-validated at runtime.
- You want to extend the tool set without forking the whole project.
When it might not be a fit
- You need a strictly offline, in-browser MCP client. This server is a Node/Bun process; clients connect over a transport.
- You only need one or two trivial tools. A 40-tool surface is overkill for “turn the porch light on at sunset” — use a direct HA automation instead.
Next
Move on to Installation to set up the prerequisites, then First Connection to wire it to your Home Assistant instance.