
Home Assistant Server
home-assistant-mcp-server
概述
Home Assistant MCP 服务器
一个用于与 Home Assistant 集成的 模型上下文协议 (MCP) 服务器,允许大型语言模型 (LLMs) 控制和查询您的智能家庭。
特性
- 通过自然语言查询和控制 Home Assistant 实体
- 支持任何 MCP 兼容客户端(例如 Claude Desktop)
- 提供状态管理、服务调用、历史记录等功能工具
- 使用 Home Assistant 长期访问令牌进行安全认证
- 多种传输选项(stdio 用于本地进程,SSE 用于远程客户端)
- 在没有 Home Assistant 时启用模拟数据模式以供测试和演示
安装
bash
# 使用 bun 全局安装
bun install -g home-assistant-mcp-server
# 或者从源代码安装
git clone https://github.com/oleander/home-assistant-mcp-server.git
cd home-assistant-mcp-server
bun install
bun run build
bun link
配置
在当前目录下创建一个 .env
文件,并包含以下变量:
# 必需的配置
HASS_URL=http://your-home-assistant:8123 # 您的 Home Assistant 实例的 URL
HASS_TOKEN=your_long_lived_access_token # 认证用的长期访问令牌
# 可选配置
PORT=3000 # HTTP 服务器端口(默认:3000)
HASS_MOCK=false # 当 Home Assistant 不可用时启用模拟数据模式(默认:false)
环境变量
变量名 | 是否必需 | 默认值 | 描述 |
---|---|---|---|
HASS_URL |
是 | - | 您的 Home Assistant 实例的 URL(例如:http://homeassistant.local:8123) |
HASS_TOKEN |
是 | - | 用于与 Home Assistant 进行身份验证的长期访问令牌 |
PORT |
否 | 3000 | 使用 HTTP/SSE 传输时的 HTTP 服务器端口号 |
HASS_MOCK |
否 | false | 设置为 "true" 时,启用无 Home Assistant 连接时的模拟数据模式,用于测试 |
获取长期访问令牌的步骤:
- 登录到您的 Home Assistant 实例
- 点击您的个人资料(左下角)
- 向下滚动到“长期访问令牌”
- 创建一个带有描述性名称的新令牌
- 复制令牌值(您不会再看到它)
使用
作为独立服务器运行
bash
# 标准模式(需要运行中的 Home Assistant 实例)
home-assistant-mcp-server # 使用 HTTP/SSE 传输启动
home-assistant-mcp-server --stdio # 使用 stdio 传输启动以直接进程通信
# 模拟模式(当 Home Assistant 不可用时使用模拟数据)
home-assistant-mcp-server --mock # 使用 HTTP/SSE 传输和模拟数据启动
home-assistant-mcp-server --stdio --mock # 使用 stdio 传输和模拟数据启动
与 Claude Desktop 集成
要与 Claude Desktop 集成:
-
编辑您的 Claude Desktop 配置文件:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json
- Windows:
%APPDATA%\Claude\claude_desktop_config.json
- macOS:
-
添加服务器配置:
json
{
"mcpServers": {
"homeassistant": {
"command": "home-assistant-mcp-server"
"env": {
"HASS_URL": "http://your-home-assistant:8123",
"HASS_TOKEN": "your_token_here",
"HASS_MOCK": "true"
}
}
}
}
如果您的 Home Assistant 正在运行,请移除 --mock
标志并将 HASS_MOCK
设置为 false
。
- 重启 Claude Desktop
可用工具
服务器提供了多个工具来与 Home Assistant 交互:
states
- 查询实体状态lights
- 列出灯光light
- 控制灯光service
- 调用 Home Assistant 服务history
- 获取历史实体数据services
- 列出可用的服务config
- 获取 Home Assistant 配置domains
- 列出可用的域error_log
- 获取 Home Assistant 错误日志devices
- 获取 Home Assistant 中的所有设备
有关详细用法示例,请参阅 docs/hass-mcp.md。
安全性
此服务器需要具有完全访问权限的 Home Assistant 访问令牌。请考虑以下安全建议:
- 仅在受信任的网络上运行服务器
- 如果远程暴露服务器,请使用 HTTPS
- 保持
.env
文件的安全,不要将其提交到源代码控制中 - 尽可能使用权限受限的令牌
许可证
该项目基于 MIT 许可证 - 详见 LICENSE 文件。