mrkeyoor.com_
Tue 27 Oct 06:36 UTC
Self-Hostedevaluationupdated 27 Oct 2026

ha-mcp review

HA MCP is an unofficial Model Context Protocol server that lets AI assistants inspect and change a Home Assistant installation. Its documented tools cover device control and configuration work such as editing automations and dashboards, giving an assistant access beyond answering questions about your home.

Verdict

HA MCP installed in 31 seconds and built in 11 seconds in our sandbox, but pytest stopped with 200 collection/setup errors before any test passed. Consider it for supervised Home Assistant configuration work when the built-in MCP integration doesn't cover your task. Match the documentation to the release and verify tool restrictions with a disposable change before granting an assistant access to your working home.

We ran it

Lab card: what happened when we ran ha-mcpScreenshot of ha-mcp (homeassistant-ai.github.io/ha-mcp)
Install✓ · 31s97 packages · 112 MB
Build✓ · 11s
Tests✗ · 40s0 passed · 0 failed · 2 skipped · 200 errors of 200 (pytest)
Known vulns0(pip-audit)
Repo2320 files~763,917 lines of source · 52.6 MB · 45 CI workflows · Dockerfile · tests dir

Answers from our run

Does ha-mcp build from source?

Dependencies installed in 31 seconds (97 packages), and the build succeeded in 11 seconds. We cloned commit 9f5460e into a clean Debian container with 3 CPUs and no project-specific setup.

Do ha-mcp's tests pass?

No. The project's own test command finished in 40 seconds and reported 0 passed, 0 failed, 2 skipped, 200 collection errors (pytest).

Does ha-mcp have known vulnerabilities in its dependencies?

pip-audit found none in the dependency tree at the time of our run.

Who should not use ha-mcp?

Users who only need device control and home-state queries: Home Assistant's own MCP integration already documents those functions. Evaluate it before adding another server.

What are the alternatives to ha-mcp?

Home Assistant's built-in MCP Server, Node-RED. HA MCP installed in 31 seconds and built in 11 seconds in our sandbox, but pytest stopped with 200 collection/setup errors before any test passed.

SetupN/ASource installation and build succeeded, but no supported Home Assistant deployment, authenticated client connection, or real configuration change was reproduced.
Docs3/5Under the review's coverage rubric, installation routes and access limits are actionable, but the current quick start targets a version beyond the latest release returned by GitHub.
CommunityN/ARecent repository pushes and issue updates were inspected. They do not establish response times, adoption, or the capacity to support a household deployment.
MaturityN/ACollection/setup errors prevented a passing test run, and no device workload, backup restoration, or permission enforcement was exercised.

Who it’s for

Home Assistant administrators who want an AI assistant to help inspect and maintain automations or dashboards.
Operators willing to choose an installation method, manage its credentials, and restrict the tools exposed to clients.
Python contributors who can reproduce and investigate our pytest collection/setup errors before relying on the source checks.

Who it’s NOT for

Users who only need device control and home-state queries: Home Assistant's own MCP integration already documents those functions. Evaluate it before adding another server.
Operators treating a /readonly URL as a separate restricted credential: the README says the same credentials still work at the normal endpoint.
Users who need stable file and YAML editing without opt-ins: those tools require the custom component and beta feature flags.
Anyone expecting the current main-branch setup guide to describe every released package: its quick start explicitly targets v9.0.0 and later, while the latest-release endpoint returned v8.7.0.

Setup reality

Our October 26, 2026 sandbox run at 9f5460e installed dependencies in 31 seconds and built in 11 seconds, both successfully. The record lists 97 dependencies and 112 MB on disk. The test command exited 4 after 40 seconds: pytest recorded zero passed, zero failed, 2 skipped, and 200 collection/setup errors. pip-audit reported zero known vulnerabilities, without establishing complete audit coverage.

You need a working Home Assistant instance and an MCP client. External Docker or HTTP package deployments use the Home Assistant URL and a long-lived access token. The README also documents an embedded custom component and an app route, with different credential handling. Our run did not connect any of them to a home.

The recorded configuration lists 3 CPUs, 8 GB RAM, and image ghcr.io/astral-sh/uv:python3.12-bookworm, which doesn't prove runtime versions. The errors say the asyncio marker wasn't found in pytest configuration, without proving why. The current quick start targets v9.0.0 dated October 28, 2026; the latest-release endpoint returned v8.7.0. Match instructions to your selected release.

HA MCP gives assistants configuration tools for Home Assistant

HA MCP's README lists tools for editing automations and dashboards as well as controlling devices. That makes the adoption question concrete: do you want an assistant to help maintain the system that runs your home? Someone who only wants to ask whether a light is on has a different requirement from someone asking an agent to rewrite its automation.

The project is unofficial. Its documented scope includes traces, history, and configuration management, but we haven't exercised those functions against a Home Assistant instance. Our evidence supports describing an administrative interface worth evaluating, with access controls to investigate before adoption.

What happened when we ran it

Our sandbox installed HA MCP's dependencies in 31 seconds and built the source in 11 seconds at commit 9f5460e on October 26, 2026. Both steps succeeded. The record lists 97 dependencies and 112 MB on disk, alongside a 52.6 MB checkout with 2,320 files and approximately 763,917 lines of source.

The test command exited 4 after 40 seconds. The recorded pytest summary gives zero passed, zero failed, 2 skipped, and 200 collection/setup errors. Those errors aren't successful tests or assertion failures. They prevented this command from establishing that the tested behavior works.

The tail repeatedly says 'asyncio' not found in markers configuration option, including entries for REST client retry, scenes, scripts, and state modules. It reports stopping after 200 errors. The excerpt establishes the marker-configuration complaint, but doesn't establish why the marker was unavailable. We can't diagnose a missing plugin or prescribe a package change from this tail alone.

Pytest's own summary reports 27.14 seconds and 6,208 collected items alongside the errors and skips. Its internal duration differs from the outer command's 40 seconds. The collected-item count does not mean those items ran. Our run provides no passing behavioral result to attach to the successful build.

The configuration recorded 3 CPUs, 8 GB RAM, and image ghcr.io/astral-sh/uv:python3.12-bookworm. That label doesn't establish the executing Python or operating-system version. The scan found a tests directory, Dockerfile, Compose file, and 45 CI workflow files. Their presence doesn't override the failed command.

The supplied pip-audit result reports zero known vulnerabilities. It doesn't establish the number of packages audited or certify the server's access controls. We did not connect a model, operate a device, or validate a backup restoration.

Choose release-matched instructions before entering credentials

The current README recommends an embedded custom component, while also documenting an app and external Docker or package routes. External HTTP deployments need the Home Assistant URL and a long-lived access token. Each route changes which service you must operate and where credentials are handled.

There is a dated mismatch to resolve. The quick start says its administrator-account setup applies to v9.0.0, dated October 28, 2026, and later. The latest-release endpoint returned v8.7.0, published October 14. Don't assume the current main-branch instructions describe the package you're about to deploy. Check that release's documentation and configuration form first.

The README warns against configuring multiple installation methods for the same server in one client because it can cause connection hangs. Pick one deployment for the evaluation. That makes a connection failure easier to investigate without guessing which copy of the server the client reached.

A read-only endpoint does not create restricted credentials

The README documents appending /readonly to the HTTP endpoint. It says that connection hides write tools and blocks write calls, including cached calls. It also states that the same credentials still work at the normal endpoint. This is a useful connection mode, with a specific security boundary you must understand.

If a client can use those credentials with the normal URL, the suffix alone isn't evidence that its authority has been reduced. For a trial, review enabled tools and the global Read Only Mode, then check the behavior of your selected connection. These are recommended checks. We haven't verified enforcement or attempted a bypass.

File and YAML tools add another boundary: the README requires a custom component entry and beta flags for them. Leave those opt-ins out of an initial device-state evaluation. An assistant answering questions about entities doesn't need a file-editing experiment attached to the same trial.

Home Assistant's own MCP integration may cover the task

Home Assistant's built-in MCP Server connects agents to device control and home-state information. Its current documentation also describes configurable LLM APIs and administrator-account requirements. Avoid relying on a blanket claim that the official integration can only ever expose a small fixed device set.

Start there if its APIs cover your request. HA MCP earns a separate evaluation when a specific configuration or diagnostic tool is the reason you need it. Node-RED offers a different choice: low-code programming for event-driven applications. Consider it if you want to author flows yourself. We haven't compared these approaches on task success or operating effort.

Recent activity leaves support capacity unmeasured

GitHub records a last push on October 27, 2026. Recent issues include a filesystem request updated that day and an automation-tool report updated October 26. Those observations show current activity, without establishing either report's cause or a support response guarantee.

Documentation earns 3/5 on a coverage rubric: 1 means a basic description, 3 means an actionable route with material caveats, and 5 requires independently verified instructions across assessed paths. The release mismatch is a material caveat. Setup ease, community support, and operational maturity remain unassessed. Before an assistant changes a working automation, use a disposable example and confirm exactly which account and tools it can use.

Alternatives

ProjectWhat it isPick it when
Home Assistant's built-in MCP Server gh↗Home Assistant's own integration connects MCP agents to device control and home-state information.Choose the built-in integration when its exposed APIs cover your task. Inspect its API selection and administrator-account settings rather than assuming its default is narrowly scoped.
Node-RED gh↗A low-code system for event-driven applications.Evaluate Node-RED when you'd rather author event-driven flows than give an AI assistant configuration tools. It is a different automation approach, not a drop-in MCP server replacement.

What people are saying

  1. [github-trending] homeassistant-ai/ha-mcp

Sources

  1. HA MCP README
  2. Home Assistant MCP Server integration
  3. Node-RED README
  4. HA MCP latest-release metadata
  5. HA MCP repository metadata
  6. HA MCP recent issue activity

More self-hosted reviews

umami · mathua · redlib · logto · bloom · Mailu · the whole board →