4,500+ servers built on MCP Fusion
Vinkius

Home Assistant MCP. Control every light, climate, and sensor from your chat.

Claude Claude
ChatGPT ChatGPT
Cursor Cursor
Gemini Gemini
Windsurf Windsurf
VS Code VS Code
JetBrains JetBrains
Vercel Vercel
See Vinkius in Action

Works with every AI agent you already use

…and any MCP-compatible client

Home Assistant MCP on Cursor AI Code Editor MCP Client Home Assistant MCP on Claude Desktop App MCP Integration Home Assistant MCP on OpenAI Agents SDK MCP Compatible Home Assistant MCP on Visual Studio Code MCP Extension Client Home Assistant MCP on GitHub Copilot AI Agent MCP Integration Home Assistant MCP on Google Gemini AI MCP Integration Home Assistant MCP on Lovable AI Development MCP Client Home Assistant MCP on Mistral AI Agents MCP Compatible Home Assistant MCP on Amazon AWS Bedrock MCP Support

Just plug in your AI agents and start using Vinkius.

Home Assistant MCP Server gives your AI client direct control over your entire smart home. Use the Home Assistant REST API to manage lights, climate, media players, and read real-time sensor data.

It exposes tools to list all devices, check current states, set temperatures, and trigger complex automations—all from a single API connection.

What your AI agents can do

Call ha service

Executes a specific action (service call) across any HA domain, like turning on a light or setting a thermostat temperature.

Check ha configuration

Validates the overall structural integrity of your Home Assistant setup.

Fire ha event

Triggers a custom, user-defined event in Home Assistant, which can start automations.

+ 12 more capabilities included
Read Device Status

Use list_entity_states and get_entity_state to retrieve the current state (on/off, temperature, etc.) of any known smart home device.

Execute Device Commands

Use call_ha_service to send specific commands, like setting a temperature (climate.set_temperature) or changing light brightness (light.turn_on).

Monitor Event History

Use get_logbook_entries and get_entity_history to query when and how a device's state changed over time.

Trigger Routines

Use call_ha_service with automation.trigger to force a complex, pre-written automation sequence to run.

Discover System Components

Use list_available_services and list_ha_components to see exactly what actions and integrations your smart home system supports.

Supported MCP Clients

Claude Claude
ChatGPT ChatGPT
Cursor Cursor
Gemini Gemini
Windsurf Windsurf
VS Code VS Code
JetBrains JetBrains
Vercel Vercel
+ other MCP clients
Free for Subscribers

Waiting for input…

AI Agent

Home Assistant MCP Server: 15 Tools for Smart Home Control

Use these tools to read device status, trigger routines, and execute specific commands across your entire smart home system.

call019d75b2

call ha service

Executes a specific action (service call) across any HA domain, like turning on a light or setting a thermostat temperature.

check019d75b2

check ha configuration

Validates the overall structural integrity of your Home Assistant setup.

fire019d75b2

fire ha event

Triggers a custom, user-defined event in Home Assistant, which can start automations.

get019d75b2

get api status

Checks if the Home Assistant API connection is active and running.

get019d75b2

get calendar events

Retrieves upcoming events from any calendar linked to Home Assistant.

get019d75b2

get entity history

Fetches a record of how a specific device's state has changed over a given time period.

get019d75b2

get entity state

Gets the immediate, current status (state) of a single, specified smart device entity ID.

get019d75b2

get ha config

Retrieves general configuration details about the Home Assistant system.

get019d75b2

get logbook entries

Queries system logs to see a history of events and state changes across the entire system.

list019d75b2

list available services

Lists all services and actions (like `light.turn_on` or `climate.set_temperature`) that the system can execute.

list019d75b2

list entity states

Lists the current state, attributes, and IDs of every single device connected to Home Assistant.

list019d75b2

list ha calendars

Shows all the calendar sources connected to Home Assistant.

list019d75b2

list ha components

Lists all installed hardware integrations and software components in HA.

list019d75b2

list ha events

Shows all custom event types currently tracked by Home Assistant.

render019d75b2

render ha template

Processes and returns the result of a Jinja2 template, useful for complex state calculations.

Choose How to Get Started

Build a custom MCP for your own tools, or connect a ready-made integration from our catalog.

Build Your Own

Turn any API into an MCP. Import a spec, define Agent Skills, or deploy with MCPFusion.

  • Import from OpenAPI, Swagger, or YAML specs
  • Create Agent Skills with progressive disclosure
  • Deploy to edge with MCPFusion framework
  • Built in DLP, auth, and compliance on every call
  • Real time usage dashboard and cost metering
  • Publish to catalog or keep private
Start building

Make Your AI Do More

Start with Home Assistant, then connect any of our 4,700+ other servers whenever your AI needs more. One click, no limits.

  • Use this MCP plus 4,700+ others, all in one place
  • Add new capabilities to your AI anytime you want
  • Every connection is secured and compliant automatically
  • Track usage and costs across all your servers
  • Works with Claude, ChatGPT, Cursor, and more
  • New servers added to the catalog every week

What you can do with this MCP connector

Your AI client gets direct control over your whole smart home. You're using the Home Assistant REST API through this server, which lets your agent manage lights, climate, media players, and read real-time sensor data. It exposes tools to list every device, check current states, set temperatures, and trigger complex automations—all from one API connection.

Reading Device Status

Use list_entity_states to get the current state, attributes, and IDs for every device connected to Home Assistant. You can then use get_entity_state to check the immediate, live status of a single device. For a full timeline, get_entity_history fetches a record of how a specific device's state changed over time, while get_logbook_entries lets you query system logs for a history of events across the entire system.

Executing Device Commands

Use call_ha_service to send specific commands to any Home Assistant domain, like turning on a light or adjusting a thermostat's temperature. You can also use this service call to trigger pre-written automations, forcing complex routines to run.

Discovering System Components

To see what your system can actually do, you can use list_available_services to list every action the system supports (like light.turn_on or climate.set_temperature). You can also check what integrations and software components are installed with list_ha_components and see all the calendar sources connected with list_ha_calendars.

System Checks and Configuration

get_api_status confirms if the Home Assistant API connection is active and running. You can also check the overall structural integrity of your setup using check_ha_configuration, or grab general system details with get_ha_config. Want to know what custom events the system tracks? list_ha_events shows all custom event types, and list_ha_components lists all installed hardware integrations and software components in HA.

Complex Calculations and Event Handling

render_ha_template processes a Jinja2 template and returns the result, which is useful for complex state calculations. You can also force custom routines to start by triggering a custom, user-defined event with fire_ha_event.

To find upcoming appointments, you've got get_calendar_events which pulls events from any linked calendar. If you need to know what services are available for your system, list_available_services shows you everything. The system can also process a specific service call using call_ha_service to manage various HA domains, like lights, switches, climate, and media players.

How Home Assistant MCP Works

  1. 1 Subscribe to the server and provide your Home Assistant URL and a long-lived Access Token.
  2. 2 Your AI client uses the exposed tools (like list_entity_states) to read the current state of devices.
  3. 3 The server sends the action request to your Home Assistant instance, which executes the command and returns the resulting state.

The bottom line is, your AI client talks to us, and we talk to your smart home system via the official Home Assistant API.

Who Is Home Assistant MCP For?

This is for the smart home enthusiast who treats their house like a complex, interconnected machine. It's for the property manager who needs to monitor and control dozens of units remotely. If your job involves interacting with physical systems—from HVAC to lighting—and you're tired of logging into multiple dashboards, this is for you.

Smart Home Enthusiast

Controls all HA-connected devices from a single interface. Uses the server to adjust lighting, set climate modes, and check sensor data without touching the physical switches.

Property Manager

Monitors and controls devices across multiple properties. Uses the server to check security sensor states or remotely adjust HVAC settings in different units.

Automation Developer

Integrates HA into broader, complex workflows and scripts. Uses tools like list_available_services and render_ha_template to build advanced, multi-step logic.

What Changes When You Connect

  • Control everything with call_ha_service. Instead of hitting the HA UI to adjust a dimmer or switch a fan, your agent sends a direct, targeted service call. This gives you immediate, programmatic control over any device domain (light, switch, climate, etc.).
  • See real-time status with list_entity_states. You don't have to open the dashboard to check if the bedroom light is on or what the current temperature is. The agent pulls the live state of all entities in one call.
  • Audit system changes with get_logbook_entries. When something goes wrong, you can't just guess. You query the logbook to see exactly when a device changed state and what triggered it.
  • Run complex routines with call_ha_service. Instead of manually setting the lights, lowering the blinds, and adjusting the heat, you call a single service to trigger a pre-written automation.
  • Understand dependencies with list_available_services. Before building a complex workflow, you check this tool to know exactly which actions (e.g., cover.open_cover) are possible for your devices.
  • Calculate derived values with render_ha_template. You can't just read a number; sometimes you need to run a template (like combining humidity and temperature) to get a useful metric. This tool handles that calculation.

Real-World Use Cases

01

The Morning Routine Check

A property manager needs to know if the climate control is set correctly before showing a unit. They ask their agent: 'What's the status of the bedroom climate and the living room lights?' The agent uses get_entity_state for both, getting two specific status reports. The manager confirms the temp is 21°C and the lights are off, solving the issue without opening any dashboards.

02

Debugging a Failed Automation

The smart home enthusiast's morning routine failed. Instead of clicking through a confusing series of UI logs, they ask their agent to 'Check the logbook for the failure.' The agent uses get_logbook_entries, narrowing the time window and entity, and instantly identifies the failing service call, allowing for a quick fix.

03

The Remote Guest Welcome

A property manager needs to prepare a guest room for arrival. They tell their agent: 'Set the bedroom temperature to 22 and turn on the accent lights.' The agent uses call_ha_service twice—once for climate.set_temperature and once for light.turn_on—ensuring the room is ready before the guest arrives.

04

System Audit and Discovery

A developer setting up a new integration needs to know what actions are available. They ask their agent to 'List all possible services.' The agent uses list_available_services, giving the developer a complete manifest of every function they can call, saving hours of manual API documentation reading.

The Tradeoffs

Asking for a simple state check

The user asks, 'Is the bedroom light on?' and the agent mistakenly tries to run list_entity_states first. This is overkill and returns 40+ devices, burying the simple answer in noise.

Always use get_entity_state and specify the exact entity ID (e.g., light.bedroom). This is fast, precise, and only returns the single piece of data you need.

Running broad system checks

The user wants to know if a specific automation ran correctly. They run get_logbook_entries without specifying an entity or time range. The agent returns thousands of log entries, making the useful data impossible to find.

Filter immediately. Use get_logbook_entries and provide both the target entity ID and a limited time range. This pinpoints the exact event history you need.

Guessing service parameters

The user wants to brighten the light but only says, 'Make it brighter.' The agent guesses parameters, resulting in an incorrect service call that fails or changes the wrong device.

Use list_available_services first. Review the available services for the light domain to confirm required parameters (like brightness or color_temp) before calling call_ha_service.

When It Fits, When It Doesn't

Use this if your task requires controlling or querying a physical system based on defined rules. You need to know the current state of a device (e.g., 'Is the door closed?') or you need to execute a known action (e.g., 'Set the temperature to 20').

Don't use this if you are simply tracking general data or need to search unstructured text logs. For that, you might need a dedicated search tool. If you are unsure what services exist, run list_available_services first. If you only need the current state of one thing, get_entity_state is the fastest option. If you need to see a trend over days, use get_entity_history instead.

Independent Platform Disclaimer: Vinkius is an independent platform and is not affiliated with, endorsed by, sponsored by, verified by, or otherwise authorized by Home Assistant. All third-party trademarks, logos, and brand names are the property of their respective owners. Their use on this website is strictly for informational purposes to identify service compatibility and interoperability.

VINKIUS INFRASTRUCTURE

Cloud Hosted

Managed infra

V8 Isolated

Sandboxed per request

Zero-Trust Proxy

No stored credentials

DLP Enforced

Policy on every call

GDPR Compliant

EU data residency

Token Compression

~60% cost reduction

How we secure it →

Works with Claude, ChatGPT, Cursor, and more

The Model Context Protocol standardizes how applications expose capabilities to LLMs. Instead of operating in isolation, your AI gains direct access to external platforms, live data, and real-world actions through secure, standardized connections.

This server provides 15 capabilities that interface natively with Claude, ChatGPT, Cursor, and any MCP client. No middleware. No custom integration required.

Available Capabilities

call_ha_service check_ha_configuration fire_ha_event get_api_status get_calendar_events get_entity_history get_entity_state get_ha_config get_logbook_entries list_available_services list_entity_states list_ha_calendars list_ha_components list_ha_events render_ha_template

Debugging smart home failures shouldn't mean digging through endless UI logs.

Today, when the lights flicker or the thermostat acts up, you open the app and click through status pages, diving into logs. You manually scroll, copy timestamps, and cross-reference different sections just to find out *why* the automation failed and *what* the last known state was. It’s a nightmare of clicks and guesswork.

With this MCP server, you ask your agent to check the logbook. It uses `get_logbook_entries` to instantly pull the relevant historical data. You don't scroll through pages of unrelated data; you get a clean, queryable record of the event and the state change that caused the problem.

Home Assistant MCP Server: Control every device state directly.

Manual control means opening the app, finding the light, tapping the toggle, and then adjusting the brightness slider. It's a multi-step process for a single outcome. You have to remember which device ID corresponds to which physical switch.

Now, you tell your agent, 'Turn on the living room light and set it to 50%.' The agent uses `call_ha_service` with the specific domain and service data. It handles the complexity of the API call, and the light simply obeys. The process is direct, immediate, and requires zero manual clicks.

Common Questions About Home Assistant MCP

How do I use the `get_entity_state` tool with Home Assistant MCP Server? +

You provide the exact entity ID (e.g., light.living_room). This tool returns the current state, attributes, and last changed time for that single device, making it fast and targeted.

Can I use `call_ha_service` to run an automation? +

Yes. You call the automation.trigger service, specifying the automation's entity ID. This forces the automation to run, regardless of its usual trigger conditions.

What is the difference between `get_entity_state` and `get_entity_history`? +

get_entity_state gives the immediate, current state. get_entity_history gives a record of how the state changed over time, useful for identifying patterns or failures.

How do I find out what services I can call with `list_available_services`? +

Simply run list_available_services. It returns a list of all domains and services (like light: turn_on) that are available to your agent, acting as a full API manifest.

Does Home Assistant MCP Server work with local or cloud instances? +

It works with both local instances (via IP) and Nabu Casa cloud instances, giving you flexible control over your smart home setup.

How do I check the API connection status using `get_api_status`? +

Use get_api_status to confirm the Home Assistant API is running. This is the first step before making any other calls, ensuring connectivity before you attempt device control.

What is the best way to list all available devices using `list_entity_states`? +

Running list_entity_states provides a list of every entity ID and its current state. You can then filter this list to find specific types, like lights or sensors, to narrow down your targets.

How do I query past changes using `get_entity_history`? +

You must specify the entity ID and a time range when calling get_entity_history. This returns a log of state changes, allowing you to analyze trends and past device behavior.

What Home Assistant URL should I use? +

For local instances, use your Home Assistant's local network URL: http://YOUR_IP:8123 (or http://homeassistant.local:8123). For cloud access via Nabu Casa, use your remote URL: https://YOUR_INSTANCE.ui.nabu.casa. The API is accessible at the same base URL as your Home Assistant frontend.

How do I get a Long-Lived Access Token? +

Log in to your Home Assistant web interface, go to your user profile (click your name in the sidebar, then Profile), scroll down to Long-Lived Access Tokens, click Create Token, give it a name (e.g., 'MCP Server'), and copy the generated token. This token never expires unless manually revoked.

What devices and integrations are supported? +

All Home Assistant integrations are supported since the API works at the service/state level. This includes lights (Philips Hue, LIFX, etc.), thermostats (Nest, Ecobee, etc.), covers/blinds, switches, media players (Sonos, Chromecast, etc.), sensors, cameras, locks, vacuums, and 1000+ other integrations. Use list_entity_states to discover all available entities.

Can I trigger Home Assistant automations from the API? +

Yes! You can trigger automations in multiple ways: 1) Call the automation.trigger service directly, 2) Fire a custom event using fire_ha_event that matches an event trigger in your automation, 3) Call the script.turn_on service to run scripts. You can also control devices directly which will trigger related automations.

More in this category

You might also like

Built & Managed by Vinkius 30s setup 15 tools

We've already built the connector for Home Assistant. Just plug in your AI agents and start using Vinkius.

No hosting. No infrastructure. No complex setup.
All 15 tools are live and waiting. You're up and running in seconds.

Claude Claude
ChatGPT ChatGPT
Cursor Cursor
Gemini Gemini
Windsurf Windsurf
VS Code VS Code
JetBrains JetBrains
Vercel Vercel
+ other MCP clients

Vinkius gives your AI agents access to the full catalog of app connectors, all fully managed, secure, and enterprise-ready. One subscription, every tool you need.

Zero hosting required Full MCP catalog included Enterprise-grade security Auto-updated by Vinkius

Built, hosted, and secured by Vinkius. You just connect and go.