Getting Started

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, custom MCPServer on Express), src/stdio-server.ts (STDIO, fastmcp v3), and src/http-server.ts (HTTP, fastmcp v3).
  • Bun-native in development and testing, with the production artifacts (.cjs and .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.