Home, Orchestrated: Wiring Nest, Home Assistant, and Claude Into an MCP-Driven House
Most of my day job is convincing marketing teams that the right architecture is a hub-and-spoke model: one system of record, clean integrations radiating out, nothing talking directly to anything else. So when I finally got serious about home automation, I built it the same way. Not because it was the easiest path, but because it's the only one that scales past "cool demo" into something I trust to run unattended.
1. The Physical Layout: A Mac Mini and a VM With a Job to Do
The stack sits on hardware I already had lying around. A Mac mini is the always-on host. It's silent, sips power, and has been reliable enough that I never think about it, which is exactly the bar for infrastructure you don't want to babysit. Rather than run automations directly on the host OS, I carved out a VM dedicated entirely to the automation layer: Home Assistant, the scripts, the MCP servers, all of it isolated from the Mac mini's own filesystem and from anything else running on that machine.
That separation isn't paranoia for its own sake. It's the same instinct behind Iterable's tiered MCP permissions I've written about before. If a script misbehaves, or a future automation needs broader shell access than I'm comfortable granting long-term, the blast radius stops at the VM boundary. The host stays untouched.
2. Home Assistant as the Hub, Nest as a Spoke
Home Assistant is the system of record for the house. Every device, sensor, and integration reports through it, including Google Nest for thermostats and cameras. I didn't want Claude reasoning directly against the raw Nest API; I wanted it reasoning against the house's actual state, the same way I'd never want an AI assistant querying a production database directly when there's a well-modeled API in front of it.
That's where Home Assistant's MCP server earns its keep. It exposes the entities, states, and services Home Assistant already knows about as tools Claude can call directly, no custom wrapper needed and no bespoke integration code to maintain. Nest slots in as just one more integration underneath, which means if I swap thermostat vendors next year, the MCP surface Claude sees doesn't change at all. The abstraction layer absorbs the churn, exactly like a good warehouse schema absorbs a source system swap.
3. What Actually Runs: Climate and Camera Automations
The bulk of the day-to-day automation lives in two categories:
- Climate control: temperature scheduling that adjusts based on time of day and presence, rather than a static setpoint that ignores whether anyone's actually home.
- Camera and security events: motion-triggered routines off the Nest cameras, feeding into Home Assistant's automation engine for anything from notifications to downstream actions.
The scripts that used to hardcode this logic still exist, but increasingly they're the fallback path rather than the primary one. The interesting shift is asking Claude, conversationally, to check or adjust the house the same way I'd ask it to check a campaign in Iterable: "is the living room thermostat still on the away schedule," "did the front camera flag anything overnight," instead of opening an app and navigating to the right screen.
4. The Permission Boundary Is the Feature
I keep coming back to this point across every MCP integration I set up, professional or personal: the value isn't just that an AI can act on a system, it's that you get to decide exactly how much. The VM running Home Assistant has no reason to see anything outside its own scope, and the MCP tools Claude gets access to are scoped to what Home Assistant chooses to expose, not a blanket shell into the house.
That's a small-scale version of the same architecture conversation I have with security teams evaluating Iterable's MCP server: staged, explicit permissions aren't friction, they're what makes it safe to say yes to automation in the first place. A house is a lower-stakes environment than a production marketing platform, but the discipline transfers directly, and it's good practice for the muscle you actually need at work.
Conclusion: The House Is Just Another Integration Problem
What surprised me most about this project wasn't the smart-home part. Nest and Home Assistant have been mature for years. It's how directly the architecture patterns I use professionally mapped onto a weekend project: a system of record in the middle, an isolated compute boundary around anything automated, and Claude sitting on top as the layer that reasons across all of it instead of being wired into any one piece.
If you're already running Home Assistant, its MCP server is worth wiring up regardless of what's downstream: Nest, Hue, Sonos, whatever you've accumulated. The house doesn't need a smarter thermostat. It needs the same architecture discipline you'd bring to any other integration, applied somewhere the stakes are low enough to experiment freely.