Brand New Claude.ai & ChatGPT integration (ha-mcp)

, ,

Control and Manage Home Assistant with Natural Language

minidemo

Face it, we all need help managing our HA setups. There’s always that gap between what you have in mind and the time it takes to actually implement it.

I built a bridge that lets your favorite LLM tool control Home Assistant directly… not just to turn lights on and off, but to modify your automations.

It’s called an MCP Server - Model Context Protocol

You tell it:

  • “Pause the evening music automation for 3 days” → it disables the automation and adds an automation to turn it back on later.
  • “The automation when I come home doesn’t work anymore, check what’s going on” → it finds the bug and proposes a fix with improved edge case handling.
  • “Reduce backyard sprinkler time when humidity is high” → it modifies that weird formula you came up with last spring.

Next for me: Convert it to an HA addon and try to integrate it with Assist.

Try it now (10 min setup): GitHub - homeassistant-ai/ha-mcp: The Unofficial and Awesome Home Assistant MCP Server

Looking for feedback, feature requests, and contributors.

:star: Star the repo if you find it useful!

7 Likes

What’s the advantage over the native MCP server?

1 Like

Great question.

I tested all available MCP servers for Home Assistant and noticed they aren’t quite optimized for daily use with language models. I wanted to push the limits of what an AI agent can do. For example, there was no tool for “fuzzy search” of entities — with this one, you don’t need the exact word to find entities, which gives much better results in everyday use.

For the same goal, I optimized several tool descriptions to “nudge” the LLM agent to use the right tools in the right sequence.

Also, the coverage of the native MCP server is still limited — for example, it doesn’t yet allow managing automations. My current goal is to build a fully independent MCP server, but in the future, once the native one becomes more mature, I plan to make them work together: the native MCP will host the basic and stable tools, while mine will focus on edge and advanced tools with this opinionated nudging.

I’ll update my roadmap (see the GitHub wiki) to make this clearer.

Thanks for the feedback!

These all sound like potentially great contributions to the native MCP server integrations. What’s the motivation to develop them as a standalone custom integration?

Why don’t you help bring this future to life? :slight_smile:

For now, I like it as a separate project. There is a learning curve to Core development that I’m not willing to invest in as this is a weekend project.

I kind of tried, but just cloning the Core repo took 1h on my laptop

Beside, as I said, I want to push the limits and that’s not in line with Core.

I published under MIT licence if someone wants to copy some parts or ideas to Core or elsewhere.

Thanks for the comment.

Update: I published the MCP as an Home Assistant Addon and I got several new features in. Check the GitHub repo for more information (see first post).

1 Like

I’ve been using this extensively since you made it available, its added real value to me and how I use Home Assistant. Its also saved me a significant amount of time. I just wanted to say a massive thank you.

3 Likes

Trying to get it up and running, but have some issues:
Installed as add on into my HA VM. Installation seems to complete ok, however I do not see add-on in the list of installed ones.
Accessing once again add-on installation screen I can get to add-on configuration screen though and there I see it being installed already and running. After checking log I can see that it should be available under http://0.0.0.0:9583/private_redacted. So it is not showing HA address, where I’d expect it to be exposed.
However after changing the URL to HA IP it seems to respond, though with error:

{
    "jsonrpc": "2.0",
    "id": "server-error",
    "error": {
        "code": -32600,
        "message": "Not Acceptable: Client must accept text/event-stream"
    }
}

It might be due to attempt of connecting from the web browser, though, so I assume it is working OK.
As instructed I added mcp-proxy (how to verify installation is properly concluded?).
I tried to configure Claude Desktop to connect adding to its configuration file (claude_desktop_config.json on Mac):

{
  "preferences": {
      "quickEntryShortcut": "off"
  },
  "mcpServers": {
    "home-assistant": {
      "command": "mcp-proxy",
      "args": ["http://192.168.52.53:9583/private_redacted"]
    }
  }
}

After restarting Claude I get error in application:

What is wrong here?

I fixed the instructions. There was an error in the docs. See [ISSUE] Home Assistant MCP Connection Error · Issue #93 · homeassistant-ai/ha-mcp · GitHub

Does this help?

New feature: Added support for dashboard editing.

:tada: HA-MCP v4.0.0 - Major Feature Release!

Excited to share HA-MCP v4.0.0 - a big update to the Home Assistant MCP Server for AI assistants.

New Capabilities

  • System Management - Restart, reload, health checks, config validation
  • Areas, Floors & Zones - Full CRUD operations
  • Labels - Create labels and assign them to entities
  • Calendar & Todo - Manage events and shopping lists
  • Blueprints - List and import from the community
  • Service Discovery - Explore available services by domain
  • Updates & Integrations - Check for updates, manage config entries

Available on github: GitHub - homeassistant-ai/ha-mcp: The Unofficial and Awesome Home Assistant MCP Server

1 Like

@jld very nice MCP! Someone in my Linux User Group shared with me. Wondering if you plan to break the MCP away from the Claude config stuff?

I would love to just run this locally to connect something free and open source like Open WebUI or connect to my dev env in Continue IDE plugin.

Which I can do now just have to pick apart the repo etc to remove all things claude. :slight_smile:

Thank you for the feedback. This is not Claude-specific. There was instructions in the README for other client.

Just released this with Open WebUI instructions included:

Let me know if it works for you.

1 Like

Oh wow this is a very slick interface! Not sure how I missed it but ty for sharing it with me. Quick look over instructions seem reasonable. Will give it a try this weekend.

1 Like

You did not missed it. Made it today.

I’m waiting to fix a bit more bugs before publicizing it on the Github page.

I started to use this add-on some time ago in different configurations (locally with LMstudio on Mac, with ChatGPT desktop app on Mac and Windows, though never succeeded to configure it to work with Claude desktop). AWESOME!
There are few things that bothers me at this stage, that I found to be limiting factor somehow; firstly it seems that getting configuration for helpers is limited to those configured via UI. If configured via YAML these are not visible to MCP. Secondly seems ha_config_list_automations is missing, that also prohibits AI from properly judging current system configuration. I know it is growing rapidly (hard to keep with every update, as there are several per day :+1:), so I hope to see these soon!
Anyhow, this is excellent work, @Jid !

EDIT: Just noticed new guides for configuration for specific environment. So I tried again Claude and it it does not work even for demo config. I get errors:

So seems something wrong with. my Mac setup?

1 Like

UI-only for now. I’m looking of ways to edit yaml files, but it’s not ready yet.

I made the choice to not have list_automation tool since there is a search entity tool that can be used with the automation domain. maybe it`s not working with your setup. let me know.

to debug your problem on Claude Desktop, I would need the logs.
Clear the folder ~/Library/Application Support/Claude/Logs
Restart Claude Desktop
Make a copy of the Logs folder and ~/Library/Application Support/Claude/claude_desktop_config.json
you can remove any sensitive information.
zip and send to [email protected]

I really wish I had found this before I hit my Claude limit this evening. Looking forward to testing it out!

Just curious, are there any best practices or quick reverting steps for managing changes made by Claude that don’t go as expected?

e.g. run a backup first, do some sort of version control saving for automations created or adjusted.

I’m thinking along the lines of revising and testing existing automations that could be improved…but avoiding a situation where it’s difficult to revert without significant data loss.

You can ask for a backup since I implement a tool for that (it uses the one that is fast, without the sensor history).

However, I find that I never use the backup feature. Claude or Gemini read automations before they modify… So they call rollback by using the old definition… Just ask to rollback what they did.

An other reason I don’t use it… I have my daily backups to save me as a last resort.

For you use case, I would just ask to create new versions and disable the old one.

You could also keep a copy of your last backup as reference. If you need to get back the old vets on, you can ask Claude (or ideally Claude Code) to extract your automation from the backup.

Version control would be nice, but maybe as a general feature for Home Assistant… Not specific to this MCP server.

1 Like

First off, this integration is INCREDIBLE.

With that said, I’ve encountered a potential issue with the ha_assign_label tool where it replaces all existing labels instead of adding new ones. After multiple correction attempts, it corrupted my entity registry and caused the label UI to completely disappear from affected automations.

I’ve filed a detailed bug report with environment diagnostics here:

GitHub Issue: ha_assign_label replaces labels and corrupts entity registry

Key points:

  • ha_assign_label replaces all labels rather than adding to existing ones
  • Repeated API calls (5+) on same entities can corrupt the entity registry
  • Label UI disappears but sorting by labels still works (backend vs frontend issue)
  • Recovery requires duplicating and recreating entities

Question about ha_bug_report tool:
I noticed that the ha_bug_report tool returns a different template format than what’s shown in the GitHub issue template. The tool generates sections like “Bug Summary”, “What happened”, “What you expected”, while the GitHub template uses “Bug Type”, “Bug Description”, “Expected vs Actual Behavior”. Should the tool template be updated to match the GitHub format, or is there a reason for the difference?

Also, is this the right place to report this issue, or is it really an API issue? Please let me know if you need anything else for troubleshooting.

Thanks for this excellent MCP integration!