Back to Directory/Developer Tools

io.github.daedalus/mcp-homeassistant

MCP server exposing Home Assistant REST API functionality

Developer ToolsPythonv0.1.0

mcp-homeassistant

MCP server exposing Home Assistant 2026.4.1 REST API functionality.

PyPI Python Ruff

mcp-name: io.github.daedalus/mcp-homeassistant

Install

pip install mcp-homeassistant

Configuration

Set the following environment variables:

  • HA_URL: Home Assistant URL (default: http://localhost:8123)
  • HA_TOKEN: Long-Lived Access Token (required)

Usage

export HA_URL="http://homeassistant:8123"
export HA_TOKEN="your_long_lived_access_token"
mcp-homeassistant

Tools

The MCP server exposes the following tools:

  • get_api_status - Check if the API is running
  • get_config - Get HA configuration
  • get_components - List loaded components
  • get_events - List event types and listener counts
  • get_services - List available services by domain
  • get_states - Get all entity states
  • get_state - Get a specific entity state
  • set_state - Update or create an entity state
  • delete_state - Delete an entity state
  • fire_event - Fire a custom event
  • call_service - Call a Home Assistant service
  • render_template - Render a Jinja template
  • get_history - Get historical state changes
  • get_logbook - Get logbook entries
  • check_config - Validate configuration.yaml
  • handle_intent - Handle an intent
  • get_error_log - Get error log
  • get_calendars - List calendar entities
  • get_calendar_events - Get calendar events

Resources

  • homeassistant://config - Current config
  • homeassistant://states - All entity states
  • homeassistant://services - Available services
  • homeassistant://components - Loaded components

Development

git clone https://github.com/daedalus/mcp-homeassistant.git
cd mcp-homeassistant
pip install -e ".[test]"

# run tests
pytest

# format
ruff format src/ tests/

# lint
ruff check src/ tests/

# type check
mypy src/

Installation

Source-derived launch command. Check the maintainer’s required arguments and credentials before running:

bash
uvx mcp-homeassistant

Set up in your AI client

Merge this template into ~/Library/Application Support/Claude/claude_desktop_config.json. Keep existing servers. Add any arguments, credentials, and permissions required by the maintainer; this template has not been install-tested.

json
{
  "mcpServers": {
    "io-github-daedalus-mcp-homeassistant": {
      "command": "uvx",
      "args": [
        "mcp-homeassistant"
      ]
    }
  }
}

Restart Claude Desktop completely for changes to take effect. Confirm the server appears connected in the client’s tool list, then try a read-only example from its documentation.

Claude Desktop setup reference

Package

mcp-homeassistantpypi

Compatible MCP Clients

io.github.daedalus/mcp-homeassistant works with any MCP-compatible client. Copy the config snippet from the Configuration section above and add it to the file shown for your client, then restart the application.

  • Claude Desktop~/Library/Application Support/Claude/claude_desktop_config.jsonRestart Claude Desktop completely for changes to take effect.
  • Cursor~/.cursor/mcp.jsonRestart Cursor for changes to take effect.
  • VS Code.vscode/mcp.jsonReload VS Code window for changes to take effect.
  • Windsurf~/.codeium/windsurf/mcp_config.jsonRestart Windsurf for changes to take effect.
  • Claude Code.mcp.jsonSave at the project root, then start Claude Code in that project and review the MCP server approval prompt. Keep real credentials out of shared files.

Learn More