家庭助理的模型上下文协议服务器
服务器使用 MCP 协议与 LLM 应用程序共享对本地 Home Assistant 实例的访问权限。
您的 Home Assistant 实例与语言学习模型 (LLM) 之间的强大桥梁,通过模型上下文协议 (MCP) 实现对智能家居设备的自然语言控制和监控。该服务器提供全面的 API,用于管理您的整个 Home Assistant 生态系统,涵盖从设备控制到系统管理的各个方面。
特征
- 🎮设备控制:通过自然语言控制任何家庭助理设备
- 🔄实时更新:通过服务器发送事件(SSE)获取即时更新
- 🤖自动化管理:创建、更新和管理自动化
- 📊状态监控:跟踪和查询设备状态
- 🔐安全:基于令牌的身份验证和速率限制
- 📱移动就绪:可与任何支持 HTTP 的客户端配合使用
使用 SSE 进行实时更新
该服务器包含一个强大的服务器发送事件 (SSE) 系统,可从您的 Home Assistant 实例提供实时更新。这允许您:
- 🔄 获取任何设备的即时状态变化
- 📡 监控自动化触发器和执行
- 🎯 订阅特定域或实体
- 📊 跟踪服务调用和脚本执行
快速 SSE 示例
有关 SSE 系统的完整文档,请参阅SSE_API.md 。
目录
主要特点
核心功能🎮
- 智能设备控制
- 💡灯光:亮度、色温、RGB 颜色
- 🌡️气候:温度、暖通空调模式、风扇模式、湿度
- 🚪封面:位置和倾斜控制
- 🔌开关:开/关控制
- 🚨传感器和接触器:状态监控
- 🎵媒体播放器:播放控制、音量、源选择
- 🌪️风扇:速度、摆动、方向
- 🔒锁:锁定/解锁控制
- 🧹吸尘器:启动、停止、返回基座
- 📹相机:运动检测、快照
系统管理🛠️
- 附加组件管理
- 浏览可用的附加组件
- 安装/卸载附加组件
- 启动/停止/重启附加组件
- 版本管理
- 配置访问
- 包裹管理(HACS)
- 与 Home Assistant Community Store 集成
- 多种封装类型支持:
- 自定义集成
- 前端主题
- Python 脚本
- AppDaemon 应用程序
- NetDaemon 应用程序
- 版本控制和更新
- 存储库管理
- 自动化管理
- 创建和编辑自动化
- 高级配置选项:
- 多种触发类型
- 复杂条件
- 动作序列
- 执行模式
- 复制并修改现有的自动化
- 启用/禁用自动化规则
- 手动触发自动化
架构特点🏗️
- 智能组织
- 基于区域和楼层的设备分组
- 状态监控与查询
- 智能情境感知
- 历史数据访问
- 稳健的架构
- 全面的错误处理
- 状态验证
- 安全 API 集成
- TypeScript 类型安全
- 广泛的测试覆盖范围
先决条件
- Node.js 20.10.0 或更高版本
- NPM包管理器
- Docker Compose用于容器化
- 运行Home Assistant实例
- Home Assistant 长期访问令牌(如何获取令牌)
- 安装HACS以实现包裹管理功能
- 附加组件管理的主管访问权限
安装
通过 Smithery 安装
要通过Smithery自动为 Claude Desktop 安装 Home Assistant MCP 服务器:
基本设置
Docker 设置(推荐)
该项目包括 Docker 支持,以便在不同平台之间轻松部署和保持一致的环境。
- 克隆存储库:
- 配置环境:使用您的 Home Assistant 配置编辑
.env
文件: - 使用 Docker Compose 构建并运行:
- **验证安装:**服务器现在应该在
http://localhost:3000
上运行。您可以在http://localhost:3000/health
检查健康端点。 - 更新应用程序:
Docker 配置
Docker 设置包括:
- 多阶段构建以获得最佳图像尺寸
- 容器监控的健康检查
- 环境配置的卷安装
- 失败时自动重启容器
- 暴露 3000 端口用于 API 访问
Docker Compose 环境变量
所有环境变量都可以在.env
文件中配置。支持以下变量:
HASS_HOST
:您的 Home Assistant 实例 URLHASS_TOKEN
:Home Assistant 的长期访问令牌HASS_SOCKET_URL
:家庭助理的 WebSocket URLPORT
:服务器端口(默认值:3000)NODE_ENV
:环境(生产/开发)DEBUG
:启用调试模式(true/false)
配置
环境变量
配置文件
- 开发:将
.env.example
复制到.env.development
- 生产:将
.env.example
复制到.env.production
- 测试:将
.env.example
复制到.env.test
添加到 Claude Desktop(或其他客户端)
要使用新的 Home Assistant MCP 服务器,您可以添加 Claude Desktop 作为客户端。将以下内容添加到配置中。请注意,这将在 Claude 中运行 MCP,并且不支持 Docker 方法。
API 参考
设备控制
常见实体控制
灯光控制
附加组件管理
列出可用的附加组件
安装附加组件
管理附加组件状态
包管理
列出 HACS 包
安装包
自动化管理
创建自动化
重复自动化
核心功能
状态管理
管理系统的当前状态。
示例请求:
上下文更新
使用新信息更新当前上下文。
示例请求:
行动端点
执行操作
使用给定的参数执行指定的动作。
示例请求:
批量操作
按顺序执行多个操作。
示例请求:
查询函数
获取可用操作
返回所有可用操作的列表。
响应示例:
上下文查询
检索上下文信息。
响应示例:
WebSocket 事件
服务器支持通过 WebSocket 连接进行实时更新。
支持的事件
state_change
:系统状态改变时发出context_update
:上下文更新时发出action_executed
:操作完成时发出error
:发生错误时发出
事件数据示例:
错误处理
所有端点都返回标准 HTTP 状态代码:
- 200:成功
- 400:错误请求
- 401:未授权
- 403:禁止访问
- 404:未找到
- 500:内部服务器错误
错误响应格式:
速率限制
API 实施速率限制以防止滥用:
- 对于常规端点,每个 IP 每分钟 100 个请求
- 每个 IP 每分钟 1000 个 WebSocket 连接请求
当超出速率限制时,服务器返回:
示例用法
使用 curl
使用 JavaScript
发展
故障排除
常见问题
- Node.js 版本(
toSorted is not a function
)- **解决方案:**更新至 Node.js 20.10.0+ GXP39
- 连接问题
- 验证 Home Assistant 是否正在运行
- 检查
HASS_HOST
可访问性 - 验证令牌权限
- 确保 WebSocket 连接以实现实时更新
- 附加组件管理问题
- 验证主管访问权限
- 检查附加组件兼容性
- 验证系统资源
- HACS集成问题
- 验证 HACS 安装
- 检查 HACS 集成状态
- 验证存储库访问权限
- 自动化问题
- 验证实体可用性
- 检查触发条件
- 验证服务调用
- 监控执行日志
项目状态
✅完成
- 实体、楼层和区域访问
- 设备控制(灯光、气候、盖子、开关、触点)
- 附加组件管理系统
- 通过 HACS 进行包裹管理
- 高级自动化配置
- 基本状态管理
- 错误处理和验证
- Docker 容器化
- Jest 测试设置
- TypeScript 集成
- 环境变量管理
- 家庭助理 API 集成
- 项目文档
🚧进行中
- 用于实时更新的 WebSocket 实现
- 增强的安全功能
- 刀具组织优化
- 性能优化
- 资源上下文整合
- API文档生成
- 多平台桌面集成
- 高级错误恢复
- 自定义提示测试
- 增强的 macOS 集成
- 类型安全改进
- 测试覆盖范围扩展
贡献
- 分叉存储库
- 创建功能分支
- 实施您的更改
- 添加新功能测试
- 确保所有测试通过
- 提交拉取请求
资源
执照
MIT 许可证 - 请参阅许可证文件
Related MCP Servers
- -securityAlicense-qualityA Model Context Protocol server that integrates with Home Assistant to provide smart home control capabilities through natural language, supporting devices like lights, climate systems, locks, alarms, and humidifiers.Last updated -PythonMIT License
- -securityAlicense-qualityA Model Context Protocol (MCP) integration that allows AI assistants to control Home Assistant devices by searching for entities and controlling devices through natural language commands.Last updated -10PythonMIT License
- -securityAlicense-qualityA Model Context Protocol server that enables AI assistants like Claude to interact directly with Home Assistant, allowing them to query device states, control smart home entities, and perform automation tasks.Last updated -104PythonMIT License
- -securityAlicense-qualityProvides tools for AI assistants to interact with smart home devices through Home Assistant, allowing operations like checking entity states and calling services.Last updated -TypeScriptMIT License