Integrations
Provides a flexible interface for Home Assistant device management and automation through a REST API and WebSocket/SSE connections, enabling basic device control, state updates, and automation rule management.
Enables GPU-accelerated speech processing capabilities when using NVIDIA GPUs with CUDA support, improving performance for wake word detection and speech-to-text features.
家庭助理模型上下文协议 (MCP)
人工智能助手与家庭助理交互的标准化协议,为控制智能家居设备提供安全、类型化和可扩展的接口。
概述
模型上下文协议 (MCP) 服务器充当 AI 模型(如 Claude、GPT 等)和 Home Assistant 之间的桥梁,使 AI 助手能够:
- 在 Home Assistant 设备上执行命令
- 检索有关智能家居的信息
- 长时间运行操作的流响应
- 验证参数和输入
- 提供一致的错误处理
特征
- 模块化架构——传输、中间件和工具之间的清晰分离
- 类型化接口- 完全 TypeScript 类型化,以获得更好的开发人员体验
- 多种传输方式:
- 用于 CLI 集成的标准 I/O (stdin/stdout)
- 支持服务器发送事件的**HTTP/REST API,**用于流式传输
- 中间件系统- 验证、日志记录、超时和错误处理
- 内置工具:
- 灯光控制(亮度、颜色等)
- 气候控制(恒温器、暖通空调)
- 更多内容即将推出...
- 可扩展插件系统——轻松添加新工具和功能
- 流响应——支持长时间运行的操作
- 参数验证- 使用 Zod 模式
- Claude 和 Cursor Integration - 为 AI 助手提供的现成实用程序
入门
先决条件
- Node.js 16+
- Home Assistant 实例(或者您可以使用模拟实现进行测试)
安装
运行服务器
配置
使用环境变量或.env
文件配置服务器:
建筑学
MCP 服务器采用分层架构构建:
- 传输层-处理通信协议(stdio,HTTP)
- 中间件层- 通过管道处理请求
- 工具层——实现特定功能
- 资源层- 管理有状态资源
工具
工具是向 MCP 服务器添加功能的主要方式。每个工具都具备以下功能:
- 有一个独特的名字
- 接受类型参数
- 返回输入的结果
- 可以流式传输部分结果
- 验证输入和输出
工具注册示例:
API
当使用 HTTP 传输运行时,服务器提供 JSON-RPC 2.0 API:
POST /api/mcp/jsonrpc
- 执行工具GET /api/mcp/stream
- 连接到 SSE 流以获取实时更新GET /api/mcp/info
- 获取服务器信息GET /health
- 健康检查端点
与人工智能模型的集成
克劳德积分
光标集成
要将 Home Assistant MCP 服务器与 Cursor 一起使用,请将以下内容添加到您的.cursor/config/config.json
文件中:
此配置:
- 使用 stdio 传输运行 MCP 服务器
- 将所有 stderr 输出重定向到 /dev/null
- 使用 grep 过滤 stdout 中包含
{"jsonrpc":"2.0"
的行,确保输出干净的 JSON-RPC 输出
光标集成故障排除
如果您在使用带有 Cursor 的 MCP 服务器时遇到“无法创建客户端”错误:
- 确保在 Cursor 配置中使用正确的命令和参数
- Bash 脚本方法确保只有有效的 JSON-RPC 消息到达 Cursor
- 在尝试连接之前,通过运行
bun run build
确保服务器已构建
- 确保服务器正确地将 JSON-RPC 消息输出到标准输出:然后检查 json_only.txt 以验证它仅包含有效的 JSON-RPC 消息。Copy
- 确保你的系统上安装了 grep(大多数系统上默认安装它)
- 尝试使用以下命令重建服务器:Copy
- 通过在环境变量中设置
DEBUG_STDIO=true
来启用调试模式
如果问题仍然存在,您可以尝试:
- 重启游标
- 清除光标的缓存(帮助 > 开发者 > 清除缓存并重新加载)
- 使用与 Node.js 类似的方法:Copy
执照
麻省理工学院
贡献
欢迎贡献代码!欢迎提交 Pull 请求。
家庭助理的 MCP 服务器 🏠🤖
概述🌐
MCP(模型上下文协议)服务器是我为 Home Assistant 开发的轻量级集成工具,提供灵活的设备管理和自动化接口。它旨在快速、安全且易于使用。采用 Bun 构建,以实现最佳性能。
核心功能✨
- 🔌 通过 REST API 进行基本设备控制
- 📡 WebSocket/服务器发送事件(SSE)用于状态更新
- 🤖 简单的自动化规则管理
- 🔐 基于 JWT 的身份验证
- 🔄 标准 I/O(stdio)传输,用于与 Claude 和其他 AI 助手集成
为什么是 Bun?🚀
我选择 Bun 作为运行时有几个主要好处:
- ⚡超快的性能
- 比 Node.js 快 4 倍
- 内置 TypeScript 支持
- 优化文件系统操作
- 🎯一体化解决方案
- 包管理器(比 npm/yarn 更快)
- Bundler(不需要 webpack)
- 测试运行器(内置测试)
- TypeScript 转译器
- 🔋内置功能
- SQLite3 驱动程序
- .env 文件加载
- WebSocket 客户端/服务器
- 文件观察器
- 测试运行器
- 💾资源高效
- 降低内存使用率
- 更快的冷启动
- 更好的 CPU 利用率
- 🔄 Node.js 兼容性
- 运行大多数 npm 包
- 兼容 Express/Fastify
- 原生 Node.js API
先决条件📋
- 🚀 Bun 运行时(v1.0.26+)
- 🏡家庭助理实例
- 🐳 Docker(可选,建议部署)
- 🖥️ Node.js 18+(可选,用于语音功能)
- 🎮 支持 CUDA 的 NVIDIA GPU(可选,用于更快的语音处理)
快速入门🚀
- 克隆我的存储库:
- 设置环境:
- 配置您的设置:
- 使用你的 Home Assistant 详细信息编辑
.env
文件 - 必需:添加您的
HASS_TOKEN
(长期访问令牌)
- 使用 Docker 构建并启动:
Docker 构建选项🐳
我的 Docker 构建脚本( docker-build.sh
)支持不同的配置:
1. 标准构造
- 基本 MCP 服务器功能
- REST API 和 WebSocket 支持
- 无语音功能
2. 语音构建
- 包括唤醒词检测
- 语音转文本功能
- 拉取所需的图像:
onerahmet/openai-whisper-asr-webservice
rhasspy/wyoming-openwakeword
3. GPU加速构建
- 所有语音功能
- CUDA GPU加速
- 经过优化,处理速度更快
- Float16 计算类型可实现更佳性能
构建功能
- 🔄 自动资源分配
- 💾 记忆感知构建
- 📊 CPU 配额管理
- 🧹 自动清理
- 📝 详细的构建日志
- 📊 构建摘要和状态
环境配置
我已经实现了一个分层配置系统:
文件结构📁
.env.example
- 我的模板包含所有选项.env
- 您的配置(从 .env.example 复制)- 环境覆盖:
.env.dev
- 开发设置.env.prod
- 生产设置.env.test
- 测试设置
加载优先级⚡
文件按以下顺序加载:
.env
(基本配置)- 环境特定文件:
NODE_ENV=development
→.env.dev
NODE_ENV=production
→.env.prod
NODE_ENV=test
→.env.test
后面的文件会覆盖前面的文件。
发展💻
性能比较📊
手术 | 包子 | Node.js |
---|---|---|
安装依赖项 | ~2秒 | ~15秒 |
冷启动 | 300毫秒 | 1000毫秒 |
构建时间 | 150毫秒 | 4000毫秒 |
内存使用情况 | 约150MB | 约400MB |
文档📚
核心文档
高级功能
客户端集成
光标集成🖱️
添加到.cursor/config/config.json
:
克劳德桌面💬
添加到您的 Claude 配置:
命令行💻
Windows 用户可以使用提供的脚本:
- 进入
scripts
目录 - 运行
start_mcp.cmd
附加功能
语音功能🎤
MCP 服务器可选地支持语音处理功能:
- 🗣️ 唤醒词检测(“嘿贾维斯”,“ok google”,“alexa”)
- 🎯 使用快速耳语进行语音转文本
- 🌍 多语言支持
- 🚀 GPU 加速支持
语音功能设置
先决条件
- 🐳 Docker 安装并运行
- 🎮 带有 CUDA 的 NVIDIA GPU(可选)
- 💾 4GB+ RAM(建议 8GB+)
配置
- 在
.env
中启用语音:
- 选择您的 STT 引擎:
可用型号🤖
根据您的需求选择:
tiny.en
:最快,基本准确base.en
:良好的平衡(推荐)small.en
:准确度更高,但速度较慢medium.en
:高精度,资源密集型large-v2
:准确率最高,但耗费资源
使用语音功能启动
额外工具🛠️
我在extra/
目录中包含了几个强大的工具来增强您的 Home Assistant 体验:
- 家庭助理分析器 CLI (
ha-analyzer-cli.ts
)- 使用 AI 模型进行深度自动化分析
- 安全漏洞扫描
- 性能优化建议
- 系统健康指标
- 语音转文本示例(
speech-to-text-example.ts
)- 唤醒词检测
- 语音到文本的转录
- 多语言支持
- GPU加速支持
- Claude 桌面设置(
claude-desktop-macos-setup.sh
)- 适用于 macOS 的 Claude Desktop 自动安装
- 环境配置
- MCP 集成设置
请参阅Extras 文档以了解详细的使用说明和示例。
许可证📄
MIT 许可证。详情请参阅许可证。
作者👨💻
使用标准 I/O 传输运行
MCP 服务器支持 JSON-RPC 2.0 stdio 传输模式,可与 Claude 等 AI 助手直接集成:
MCP Stdio 功能
✅ JSON-RPC 2.0 兼容性:完全支持 MCP 协议标准
✅ NPX 支持:使用npx homeassistant-mcp
直接运行,无需安装
✅自动配置:创建必要的目录和默认配置
✅跨平台:适用于 macOS、Linux 和 Windows
✅ Claude Desktop 集成:可与 Claude Desktop 一起使用
✅参数验证:工具参数的自动验证
✅错误处理:标准化错误代码和处理
✅详细日志记录:记录到文件而不会污染 stdio
选项 1:使用 NPX(最简单)
使用 npx 直接运行 MCP 服务器,无需安装:
这将:
- 临时安装包
- 使用 JSON-RPC 2.0 传输自动在 stdio 模式下运行
- 创建用于日志记录的日志目录
- 如果不存在,则创建默认的 .env 文件
非常适合与 Claude Desktop 或其他 MCP 客户端集成。
与 Claude Desktop 集成
要将 MCP 与 Claude Desktop 结合使用:
- 打开 Claude 桌面设置
- 转到“高级”选项卡
- 在“MCP 服务器”下,选择“自定义”
- 输入命令:
npx homeassistant-mcp
- 点击“保存”
Claude 现在将使用 MCP 服务器进行 Home Assistant 集成,让您可以直接通过 Claude 控制您的智能家居。
选项 2:本地安装
- 更新您的
.env
文件以启用 stdio 传输:Copy - 使用 stdio-start 脚本运行服务器:可用选项:CopyCopy
在 stdio 模式下运行时:
- 服务器使用 JSON-RPC 2.0 格式通过 stdin/stdout 进行通信
- 未启动 HTTP 服务器
- 禁用控制台日志记录以避免污染 stdio 流
- 所有日志都写入
logs/
目录中的日志文件
JSON-RPC 2.0 消息格式
请求格式
响应格式
错误响应格式
通知格式(服务器到客户端)
支持的错误代码
代码 | 描述 | 意义 |
---|---|---|
-32700 | 解析错误 | 收到了无效的 JSON |
-32600 | 无效请求 | JSON 不是有效的请求对象 |
-32601 | 未找到方法 | 方法不存在或不可用 |
-32602 | 无效参数 | 方法参数无效 |
-32603 | 内部错误 | 内部 JSON-RPC 错误 |
-32000 | 工具执行 | 执行工具时出错 |
-32001 | 验证错误 | 参数验证失败 |
与 Claude Desktop 集成
要将此 MCP 服务器与 Claude Desktop 一起使用:
- 创建或编辑您的 Claude Desktop 配置:Copy
- 添加 MCP 服务器配置:Copy
- 重新启动 Claude Desktop。
- 在 Claude 中,您现在可以使用 Home Assistant MCP 工具。
JSON-RPC 2.0 消息格式
用法
使用 NPX(最简单)
使用 Home Assistant MCP 服务器最简单的方法是通过 NPX:
这将自动:
- 以 stdio 模式启动服务器
- 将 JSON-RPC 消息输出到 stdout
- 将日志消息发送到 stderr
- 如果日志目录不存在,则创建一个
您可以重定向 stderr 来隐藏日志并仅查看 JSON-RPC 输出:
手动安装
如果您希望全局或本地安装该软件包:
或者本地安装:
高级用法
This server cannot be installed
hybrid server
The server is able to function both locally and remotely, depending on the configuration or use case.
智能设备控制🎮💡灯光:亮度、颜色、RGB🌡️气候:温度、暖通空调、湿度🚪盖子:位置和倾斜度🔌开关:开/关🚨传感器:状态监控
智能组织🏠通过情境感知进行分组。
强大的架构🛠️错误处理、状态验证...