trackmcp
Back to directory
miguelg719

home-assistant-mcp

View on GitHub

An MCP server for Home Assistant

3 stars PythonServers & Infrastructure Updated Oct 21, 2025

Documentation

๐Ÿค Home Assistant MCP Server

A Model Context Protocol (MCP) server project that integrates with Home Assistant to provide smart home control capabilities.

Prompts

The server provides prompts for each domain's set of tools.

Tools

The server implements control for various Home Assistant domains. Currently supports:

  • ๐Ÿ’ก Lights: Turn on/off, brightness control
  • ๐ŸŒก๏ธ Climate: Temperature control, HVAC modes
  • ๐Ÿ”’ Locks: Lock/unlock functionality
  • ๐Ÿšจ Alarm Control Panel: Arm/disarm security systems
  • ๐Ÿ’ง Humidifier: Humidity control

Example tools include:

code
light-turn_on()
climate-turn_off()
alarm_control_panel-disarm()
lock-lock()
humidifier-turn_off()

Configuration

Environment Variables

Create a `.env` file in the root directory with:

code
HOMEASSISTANT_TOKEN=your_long_lived_access_token_here # get it from your Home Assistant instance after onboarding
HOMEASSISTANT_BASE_URL=your_home_assistant_url_here # e.g. http://homeassistant.local:8123

Quickstart

Install

Follow the instructions on how to install Home Assistant and get a long lived access token.

Claude Desktop

On MacOS: `~/Library/Application\ Support/Claude/claude_desktop_config.json`

On Windows: `%APPDATA%/Claude/claude_desktop_config.json`

Development/Unpublished Servers Configuration

code
"mcpServers": {
    "home-assistant-server": {
      "command": "uv",
      "args": [
        "--directory",
        "/path/to/home-assistant-server",
        "run",
        "home-assistant-server"
      ]
    }
  }

Published Servers Configuration

code
"mcpServers": {
    "home-assistant-server": {
      "command": "uvx",
      "args": [
        "home-assistant-server"
      ]
    }
  }

Development

Building and Publishing

To prepare the package for distribution:

1. Sync dependencies and update lockfile:

bash
uv sync

2. Build package distributions:

bash
uv build

This will create source and wheel distributions in the `dist/` directory.

3. Publish to PyPI:

bash
uv publish

Note: You'll need to set PyPI credentials via environment variables or command flags:

  • Token: `--token` or `UV_PUBLISH_TOKEN`
  • Or username/password: `--username`/`UV_PUBLISH_USERNAME` and `--password`/`UV_PUBLISH_PASSWORD`

Debugging

Since MCP servers run over stdio, debugging can be challenging. For the best debugging

experience, we strongly recommend using the MCP Inspector.

You can launch the MCP Inspector via `npm` with this command:

bash
npx @modelcontextprotocol/inspector uv --directory /Users/miguel/Documents/home-assistant-server/home-assistant-server run home-assistant-server

Upon launching, the Inspector will display a URL that you can access in your browser to begin debugging.

Contributing

Thanks for your interest in contributing to this project!

Please see CONTRIBUTING.md for guidelines.

License

MIT License - see LICENSE for details.

Frequently asked questions

What is home-assistant-mcp?

home-assistant-mcp is An MCP server for Home Assistant

How do I install home-assistant-mcp?

Open the GitHub repository and follow its README. Most MCP servers are added to your client's MCP config, then called by your agent.

Is home-assistant-mcp open source?

Yes โ€” it is hosted on GitHub at https://github.com/miguelg719/home-assistant-mcp and has 3 stars.

Related MCP tools

Run your own MCP server? See who uses it and what to fix.

Measure it with TrackMCP