$git clone https://github.com/homeassistant-ai/ha-mcp> Breaking change (v7.3.0): ha_config_set_yaml has been moved to beta.
| 1 | > **Breaking change (v7.3.0):** `ha_config_set_yaml` has been moved to [beta](docs/beta.md). |
| 2 | |
| 3 | <div align="center"> |
| 4 | <img src="https://raw.githubusercontent.com/homeassistant-ai/ha-mcp/master/docs/img/ha-mcp-logo.png" alt="Home Assistant MCP Server Logo" width="300"/> |
| 5 | |
| 6 | # The Unofficial and Awesome Home Assistant MCP Server |
| 7 | |
| 8 | <!-- mcp-name: io.github.homeassistant-ai/ha-mcp --> |
| 9 | |
| 10 | <p align="center"> |
| 11 | <img src="https://img.shields.io/badge/tools-87-blue" alt="95+ Tools"> |
| 12 | <a href="https://github.com/homeassistant-ai/ha-mcp/releases"><img src="https://img.shields.io/github/v/release/homeassistant-ai/ha-mcp" alt="Release"></a> |
| 13 | <a href="https://github.com/homeassistant-ai/ha-mcp/actions/workflows/e2e-tests.yml"><img src="https://img.shields.io/github/actions/workflow/status/homeassistant-ai/ha-mcp/e2e-tests.yml?branch=master&label=E2E%20Tests" alt="E2E Tests"></a> |
| 14 | <a href="LICENSE.md"><img src="https://img.shields.io/github/license/homeassistant-ai/ha-mcp.svg" alt="License"></a> |
| 15 | <br> |
| 16 | <a href="https://github.com/homeassistant-ai/ha-mcp/commits/master"><img src="https://img.shields.io/github/commit-activity/m/homeassistant-ai/ha-mcp.svg" alt="Activity"></a> |
| 17 | <a href="https://github.com/jlowin/fastmcp"><img src="https://img.shields.io/badge/Built%20with-FastMCP-purple" alt="Built with FastMCP"></a> |
| 18 | <img src="https://img.shields.io/python/required-version-toml?tomlFilePath=https%3A%2F%2Fraw.githubusercontent.com%2Fhomeassistant-ai%2Fha-mcp%2Fmaster%2Fpyproject.toml" alt="Python Version"> |
| 19 | <a href="https://github.com/sponsors/julienld"><img src="https://img.shields.io/badge/GitHub_Sponsors-☕-blueviolet" alt="GitHub Sponsors"></a> |
| 20 | <a href="https://homeassistant-ai.github.io/ha-mcp/"><img src="https://img.shields.io/badge/Website-docs-teal" alt="Website"></a> |
| 21 | </p> |
| 22 | |
| 23 | <p align="center"> |
| 24 | <em>A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with Home Assistant.<br> |
| 25 | Using natural language, control smart home devices, query states, execute services and manage your automations.</em> |
| 26 | </p> |
| 27 | </div> |
| 28 | |
| 29 | --- |
| 30 | |
| 31 |  |
| 32 | |
| 33 | --- |
| 34 | |
| 35 | ## 🚀 Get Started |
| 36 | |
| 37 | The recommended way to run ha-mcp is the **HA-MCP Custom Component**. It installs into Home Assistant through HACS, runs the full server **in-process**, and works on **every** Home Assistant installation type — Home Assistant OS, Supervised, Container, and Core — with full feature parity. It is the easiest setup in every case, with no access token to manage. |
| 38 | |
| 39 | **Add it to Home Assistant via HACS (the preferred install):** |
| 40 | |
| 41 | [](https://my.home-assistant.io/redirect/hacs_repository/?owner=homeassistant-ai&repository=ha-mcp-integration&category=integration) |
| 42 | |
| 43 | **Quick start:** |
| 44 | |
| 45 | 1. Install the **HA-MCP Custom Component** from HACS — click the badge above, or in HACS open **Integrations → ⋮ → Custom repositories**, add `https://github.com/homeassistant-ai/ha-mcp-integration` (category: **Integration**), then **Download**. |
| 46 | 2. **Restart Home Assistant.** |
| 47 | 3. Go to **Settings → Devices & Services → Add Integration**, search for **HA-MCP Custom Component**, choose **HA-MCP Server**, and click **Submit**. Creating the entry starts the server. |
| 48 | 4. Copy the connect URL from the entry's **Configure** screen (**Settings → Devices & Services → HA-MCP Custom Component → HA-MCP Server → Configure**) — it is also printed in the Home Assistant log. A notification confirms the server started and points you there. |
| 49 | 5. Paste that URL into your AI client — done. |
| 50 | |
| 51 | **Connect URL.** The Configure screen gives you a Home Assistant webhook URL for remote clients — `https://<your-ha-domain>/api/webhook/<webhook-id>` through Nabu Casa or any reverse proxy already pointed at Home Assistant (locally, `http://<ha-host>:8123/api/webhook/<webhook-id>`). For clients on the same network, |