MCP server for Home Assistant config management (integrations, config flows, Lovelace dashboards)
Project description
ha-config-mcp
CLI & MCP server for Home Assistant configuration management via WebSocket API.
Manage integrations, config flows, and Lovelace dashboards without touching the HA web UI.
Note: This project is fully developed and maintained by Claude (Anthropic). Don't expect it to work out of the box, though it probably will.
Install
# Nix (recommended)
nix run github:aster-void/ha-config-mcp -- --help
nix profile install github:aster-void/ha-config-mcp
# uvx / pipx
uvx ha-config-mcp --help
pipx install ha-config-mcp
Authentication
Set a Long-Lived Access Token:
export HA_TOKEN="your-token"
# Or place it in ~/.config/ha-assist-token
CLI Usage
# List integrations
ha-config entries list
ha-config entries list -d music_assistant
# Add a new integration (interactive config flow)
ha-config flow start hue
# → returns flow_id and data_schema
ha-config flow step <flow_id> '{"host": "192.168.1.100"}'
# Edit an existing integration's settings
ha-config options start <entry_id>
ha-config options step <flow_id> '{"option": "value"}'
# Delete an integration
ha-config entries delete <entry_id>
# Lovelace dashboards
ha-config lovelace list
ha-config lovelace get
ha-config lovelace get my-dashboard
ha-config lovelace save dashboard.yaml my-dashboard
Output is YAML by default. Use --json for JSON output.
MCP Server
# Start MCP server (stdio)
ha-config mcp
# Add to Claude Code
claude mcp add ha-config -- ha-config mcp
# or with nix
claude mcp add ha-config -- nix run github:aster-void/ha-config-mcp -- mcp
MCP Tools
| Tool | Description |
|---|---|
config_entries_list(domain?) |
List installed integrations |
config_entries_get(entry_id) |
Get a single config entry |
config_entries_update(entry_id, ...) |
Update entry title/preferences |
config_entries_delete(entry_id) |
Delete an integration |
config_flow_start(domain) |
Start setup wizard |
config_flow_step(flow_id, user_input) |
Advance a setup step |
config_flow_abort(flow_id) |
Cancel a setup flow |
options_flow_start(entry_id) |
Start options editor |
options_flow_step(flow_id, user_input) |
Advance an options step |
lovelace_dashboards_list() |
List all dashboards |
lovelace_config_get(url_path?) |
Get dashboard config |
lovelace_config_save(config, url_path?) |
Save dashboard config (full overwrite) |
Environment Variables
| Variable | Default | Description |
|---|---|---|
HA_URL |
ws://localhost:8123/api/websocket |
HA WebSocket URL |
HA_TOKEN |
— | Long-Lived Access Token |
HA_OUTPUT |
yaml |
Output format: yaml or json |
License
MIT
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file ha_config_mcp-0.1.1.tar.gz.
File metadata
- Download URL: ha_config_mcp-0.1.1.tar.gz
- Upload date:
- Size: 56.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
54acf5b7ea6354448c31b134567c483c48cc9b9d96184e33b0dc77b47e63ddc0
|
|
| MD5 |
5e4c71b85b53716c0c7bb94a50faed2e
|
|
| BLAKE2b-256 |
1bd546933957cdb5108ed28f1213dba29232d42f852b59e1984c4e81ba05f04a
|
Provenance
The following attestation bundles were made for ha_config_mcp-0.1.1.tar.gz:
Publisher:
pypi-publish.yaml on aster-void/ha-config-mcp
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
ha_config_mcp-0.1.1.tar.gz -
Subject digest:
54acf5b7ea6354448c31b134567c483c48cc9b9d96184e33b0dc77b47e63ddc0 - Sigstore transparency entry: 1161724251
- Sigstore integration time:
-
Permalink:
aster-void/ha-config-mcp@ed37fa8c5ac508ef8322ae0ee3b248961d82aa4f -
Branch / Tag:
refs/tags/v0.1.1 - Owner: https://github.com/aster-void
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
pypi-publish.yaml@ed37fa8c5ac508ef8322ae0ee3b248961d82aa4f -
Trigger Event:
release
-
Statement type:
File details
Details for the file ha_config_mcp-0.1.1-py3-none-any.whl.
File metadata
- Download URL: ha_config_mcp-0.1.1-py3-none-any.whl
- Upload date:
- Size: 6.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
40059174fce63d86490fc97a0ab4f0a8cecfbddc219211d20d2bcad14aa0f060
|
|
| MD5 |
4153e8ce747804d069168f0665c12dbe
|
|
| BLAKE2b-256 |
345554b21f32ad4d462ab05e2129af221de6ed41f7f03fdafa8280c782bc8ca2
|
Provenance
The following attestation bundles were made for ha_config_mcp-0.1.1-py3-none-any.whl:
Publisher:
pypi-publish.yaml on aster-void/ha-config-mcp
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
ha_config_mcp-0.1.1-py3-none-any.whl -
Subject digest:
40059174fce63d86490fc97a0ab4f0a8cecfbddc219211d20d2bcad14aa0f060 - Sigstore transparency entry: 1161724315
- Sigstore integration time:
-
Permalink:
aster-void/ha-config-mcp@ed37fa8c5ac508ef8322ae0ee3b248961d82aa4f -
Branch / Tag:
refs/tags/v0.1.1 - Owner: https://github.com/aster-void
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
pypi-publish.yaml@ed37fa8c5ac508ef8322ae0ee3b248961d82aa4f -
Trigger Event:
release
-
Statement type: