Agent for interacting with Home Assistant REST API
Project description
Home Assistant Agent - A2A | AG-UI | MCP
Version: 0.8.1
Overview
Home Assistant Agent MCP Server + A2A Agent
Agent for interacting with Home Assistant REST API
This repository is actively maintained - Contributions are welcome!
MCP
Using as an MCP Server
The MCP Server can be run in two modes: stdio (for local testing) or http (for networked access).
Environment Variables
HOME_ASSISTANT_URL: The URL of the target service.HOME_ASSISTANT_TOKEN: The API token or access token.
Run in stdio mode (default):
export HOME_ASSISTANT_URL="http://localhost:8080"
export HOME_ASSISTANT_TOKEN="your_token"
home-assistant-mcp --transport "stdio"
Run in HTTP mode:
export HOME_ASSISTANT_URL="http://localhost:8080"
export HOME_ASSISTANT_TOKEN="your_token"
home-assistant-mcp --transport "http" --host "0.0.0.0" --port "8000"
A2A Agent
Run A2A Server
export HOME_ASSISTANT_URL="http://localhost:8080"
export HOME_ASSISTANT_TOKEN="your_token"
home-assistant-agent --provider openai --model-id gpt-4o --api-key sk-...
Docker
Build
docker build -t home-assistant-agent .
Run MCP Server
docker run -d \
--name home-assistant-agent \
-p 8000:8000 \
-e TRANSPORT=http \
-e HOME_ASSISTANT_URL="http://your-service:8080" \
-e HOME_ASSISTANT_TOKEN="your_token" \
knucklessg1/home-assistant-agent:latest
Deploy with Docker Compose
services:
home-assistant-agent:
image: knucklessg1/home-assistant-agent:latest
environment:
- HOST=0.0.0.0
- PORT=8000
- TRANSPORT=http
- HOME_ASSISTANT_URL=http://your-service:8080
- HOME_ASSISTANT_TOKEN=your_token
ports:
- 8000:8000
Configure mcp.json for AI Integration (e.g. Claude Desktop)
{
"mcpServers": {
"home-assistant": {
"command": "uv",
"args": [
"run",
"--with",
"home-assistant-agent",
"home-assistant-mcp"
],
"env": {
"HOME_ASSISTANT_URL": "http://your-service:8080",
"HOME_ASSISTANT_TOKEN": "your_token"
}
}
}
}
Install Python Package
python -m pip install home-assistant-agent
uv pip install home-assistant-agent
Repository Owners
MCP Configuration Examples
1. Standard IO (stdio) Deployment
{
"mcpServers": {
"home-assistant-agent": {
"command": "uv",
"args": [
"run",
"home-assistant-mcp"
],
"env": {
"AGENT_DESCRIPTION": "<YOUR_AGENT_DESCRIPTION>",
"AGENT_SYSTEM_PROMPT": "<YOUR_AGENT_SYSTEM_PROMPT>",
"DEFAULT_AGENT_NAME": "<YOUR_DEFAULT_AGENT_NAME>",
"HOME_ASSISTANT_AGENT_VERIFY": "<YOUR_HOME_ASSISTANT_AGENT_VERIFY>",
"HOME_ASSISTANT_TOKEN": "<YOUR_HOME_ASSISTANT_TOKEN>",
"HOME_ASSISTANT_URL": "<YOUR_HOME_ASSISTANT_URL>"
}
}
}
}
2. Streamable HTTP (SSE) Deployment
{
"mcpServers": {
"home-assistant-agent": {
"command": "uv",
"args": [
"run",
"home-assistant-mcp",
"--transport",
"http",
"--host",
"0.0.0.0",
"--port",
"8000"
],
"env": {
"AGENT_DESCRIPTION": "<YOUR_AGENT_DESCRIPTION>",
"AGENT_SYSTEM_PROMPT": "<YOUR_AGENT_SYSTEM_PROMPT>",
"DEFAULT_AGENT_NAME": "<YOUR_DEFAULT_AGENT_NAME>",
"HOME_ASSISTANT_AGENT_VERIFY": "<YOUR_HOME_ASSISTANT_AGENT_VERIFY>",
"HOME_ASSISTANT_TOKEN": "<YOUR_HOME_ASSISTANT_TOKEN>",
"HOME_ASSISTANT_URL": "<YOUR_HOME_ASSISTANT_URL>"
}
}
}
}
Project details
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 home_assistant_agent-0.8.1.tar.gz.
File metadata
- Download URL: home_assistant_agent-0.8.1.tar.gz
- Upload date:
- Size: 16.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2cc71fba3ce20bcfef5c5b80435cae8dd01538d15b4dcee6c1a228d7d3ab2111
|
|
| MD5 |
796b15eb787d8276ba9b92f803ce3cbf
|
|
| BLAKE2b-256 |
a9028b887d39677e90ece454165a48fff4820fb53de8604eb1060cbd23b10e2c
|
File details
Details for the file home_assistant_agent-0.8.1-py3-none-any.whl.
File metadata
- Download URL: home_assistant_agent-0.8.1-py3-none-any.whl
- Upload date:
- Size: 19.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
17f727c5e424910fa547ad0936f3a63c547bc679563cbe40328741bc2514535c
|
|
| MD5 |
daab9f7b9a9d252232e04211c1b05351
|
|
| BLAKE2b-256 |
c8db0b33facd8fe2799c0e732316a5f00496aa3cbe54239a18f518d284890701
|