Why I replaced my Home Assistant MCP server with a dumb relay and smart AI skills (HA NOVA)

Hey guys,

this is my first post here and I hope this kind of stuff is still interesting to some of you.

First of all, I’m Markus from Germany. I’ve always been into tinkering, especially electronics, repairing things, modding stuff, and just figuring out how things work.

But I’m also a HUGE smart home fan and of course a BIG Home Assistant fan. :slight_smile:

When ChatGPT first appeared a few years ago, I was immediately fascinated by the idea of designing automations with AI. I think we all know that this was groundbreaking.

And since then everything has evolved so fast, especially over the last year with MCP servers that allow AI to use tools directly.

That was the moment when I started building an MCP server for Home Assistant, because back then there was basically nothing out there. I even released a preview video about it on my YouTube channel, CanWeFixThat, where I usually repair and mod tech. (It’s linked in the repo.)

But after that video, I never actually released the project, because it never felt ready for the public. My main focus was always to make the whole process as streamlined and safe as possible.

For example, creating an automation should never just mean “generate YAML and write it immediately”.

For me it always had to follow a strict flow:

  1. Discover entities
  2. Check existing automations
  3. Suggest improvements and preview the draft first
  4. Apply it only after confirmation, and then review it again afterwards for mistakes or conflicts

At least that was the idea…

The problem is: this creates a huge amount of complexity. Way too much business logic for what I personally think an MCP server should be.
And on top of that, it also became too much context and too much internal logic for an agent to reliably follow.

But I kept trying for a long time. Way too long :smiley:

Then skills came up for ai agents.

At first I honestly thought it was basically the same thing with a different name. But after digging deeper I realized that this is not true at all.

In the meantime, Home Assistant released its official MCP, and also The Unofficial and Awesome Home Assistant MCP Server came out, and without any doubt those are good projects!

But still, it was not exactly what I was looking for.

What I wanted was not just “AI can call Home Assistant tools”.

What I wanted was a system that really guides the whole process of diagnosing, creating, and updating automations and scripts in a safe and structured way, with checks, previews, and reviews built into the flow.

That was the point where I trashed basically one year of development and started from scratch with everything I had learned during that journey.

So I started thinking about a skill-based approach for Home Assistant that enforces a flow like this:

Research => Preview => Apply & Verify => Review

That changes a lot!

Because now the complexity is not hidden in a giant server anymore.
A big part of the intelligence can live in markdown-based skills that tell the agent how to behave, what to check, how to compare things, and how to stay safe.

But then I asked myself: “what about the things an agent cannot do directly?

For example WebSocket requests, local file access on the HA host, backups, or things the stock Home Assistant API simply does not provide.

That’s where the idea of a relay came in.

So I added a Home Assistant add-on that acts as this relay.

The relay itself is intentionally dumb. It should not contain the intelligence. It should not become another giant backend full of business logic. It should just expose the capabilities that are needed on the Home Assistant host side.

It also gives me a cleaner security model in my opinion:

the long-lived token stays on the Home Assistant side, inside the relay/add-on config, while the client only talks to the relay using a separate token.

So the AI client does not have to pass the long-lived token around directly.

And the nice thing is that this also opens the door for features beyond the stock API.

For example, in my MCP approach last year I already had automation backups, so every update or delete would first create a backup of the affected automation directly on the Home Assistant host.

That means you basically get a simple kind of versioning and can go back if needed. This is not something the standard API really gives you in that form, but with a relay running on the Home Assistant host it becomes possible.

I call the project HA NOVA.

The basic idea is very simple: the relay stays dumb, the skills stay smart. ^^

That keeps the relay code small and focused, while all the interesting logic lives in the skills. For me this feels much more scalable and much more natural than pushing more and more intelligence into server code.

Right now the project is still in an early stage, but it already has a working relay MVP, the skill system and onboarding flow.

At the moment it is macOS only, simply because that is the platform I use myself at home. But Linux and Windows support are definitely among the next things I want to tackle.

I also tried to make the onboarding as easy as possible, because I really do not want this to become one of those projects that only works for the person who built it.

So if this sounds interesting to you, I would really love some feedback!

And if someone actually wants to try it, even better, because so far I have mostly tested it on my own setup, which usually means there are still plenty of rough edges waiting for me. :see_no_evil:

Repo:
https://github.com/markusleben/ha-nova

1 Like

Feel free to have your agent s use this and include with yojr stuff… If can only make things better if we all work together.

Personally imho the current issues with LLMs isn’t the capability it’s thier inability to control themselves… I can’t make people not LLM code, but I can strongly suggest they do it as safe as possible.

Hey Nathan, thanks a lot! I’ll definitely have a closer look!

1 Like

Do you mean proxy instead of relay? Relays are usually things that switch an electrical load on or off.

Hi Rudd, you could also call it proxy, yeah :wink:

1 Like