Lets agents query and control Home Assistant, including entity management and automations.
Setup
Choose your client, copy the config, then fill in any required environment variables.
claude mcp add hass --env HA_URL='<HA_URL>' --env HA_TOKEN='<HA_TOKEN>' -- docker run -i --rm -e HA_URL -e HA_TOKEN voska/hass-mcp~/.codex/config.toml
[mcp_servers.hass]
command = "docker"
args = ["run", "-i", "--rm", "-e", "HA_URL", "-e", "HA_TOKEN", "voska/hass-mcp"]
env = { HA_URL = "<HA_URL>", HA_TOKEN = "<HA_TOKEN>" }
# codex mcp add hass --env HA_URL='<HA_URL>' --env HA_TOKEN='<HA_TOKEN>' -- docker run -i --rm -e HA_URL -e HA_TOKEN voska/hass-mcp~/.cursor/mcp.json
{
"mcpServers": {
"hass": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"HA_URL",
"-e",
"HA_TOKEN",
"voska/hass-mcp"
],
"env": {
"HA_URL": "<HA_URL>",
"HA_TOKEN": "<HA_TOKEN>"
}
}
}
}.vscode/mcp.json
{
"servers": {
"hass": {
"type": "stdio",
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"HA_URL",
"-e",
"HA_TOKEN",
"voska/hass-mcp"
],
"env": {
"HA_URL": "<HA_URL>",
"HA_TOKEN": "<HA_TOKEN>"
}
}
}
}~/.gemini/settings.json
{
"mcpServers": {
"hass": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"HA_URL",
"-e",
"HA_TOKEN",
"voska/hass-mcp"
],
"env": {
"HA_URL": "<HA_URL>",
"HA_TOKEN": "<HA_TOKEN>"
}
}
}
}claude_desktop_config.json
{
"mcpServers": {
"hass": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"HA_URL",
"-e",
"HA_TOKEN",
"voska/hass-mcp"
],
"env": {
"HA_URL": "<HA_URL>",
"HA_TOKEN": "<HA_TOKEN>"
}
}
}
}.trae/mcp.json
{
"mcpServers": {
"hass": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"HA_URL",
"-e",
"HA_TOKEN",
"voska/hass-mcp"
],
"env": {
"HA_URL": "<HA_URL>",
"HA_TOKEN": "<HA_TOKEN>"
}
}
}
}Environment variables
HA_URLHA_TOKEN
Replace the placeholders with your own credentials and keep them out of version control.