本帖最后由 shay 于 2025-5-20 15:33 编辑
老规矩,先上演示:
前几天发了好消息,小智Ai支持MCP了,和ha的联动一步之遥的水贴,结果坛子一片寂静,波澜不惊。不过,这仍然“炸”出了几位技术大咖,实现了官方对接,甚至自部署版本也支持了 MCP。经过我几天的研究,我找到了目前最理想的对接方案:利用小智官方服务器的 MCP 接入点与 HA 官方的 mcp_server 集成。
不同于其他方案,我并没有尝试实现 mcp_server ,而是选择将 HA 官方的 mcp_server 适配给小智官方的 MCP 接入点使用。这种方法有显著的优势:它完美支持 HA 语音助手的实体公开设置,并提供目前最全面的可用工具(官方实现多达数十个,远超其他方案的 3 个)。更重要的是,未来 HA 官方更新 MCP 能力时,我们的接入方案无需任何改动即可持续兼容。最后就是只需要一个主文件,代码还都是抄的小智官方的 。
目前提供两种安装方式:Docker 安装和脚本安装。这里只是抛砖引议,期待 @冬瓜 等大佬能提供更便捷的安装方式。
环境准备及参数获取
在开始安装之前,你需要获取以下几个关键参数:
- 小智 MCP 接入点: 登录小智官方服务器即可获取。
- HA MCP SERVER接入点: 通过 HA 官方的
mcp_server 集成获取。
- 长效 API 令牌: 用于授权访问你的 Home Assistant 实例。
Docker 安装方式
无论你的 Docker 环境是什么,只要它能访问到本地的 Home Assistant 实例即可。这里以群晖为例,我的 HA 运行在树莓派上。
在 Docker 镜像仓库中搜索 shawn68/mcp_ha_xiaozhi 。你需要填写以下 3 个参数:
XIAOZHI_MCP_ENDPOINT :你的小智 MCP 接入点
HA_MCP_ENDPOINT :你的 HA MCP SERVER 接入点
API_ACCESS_TOKEN :你的长效 API 令牌
Docker 命令行版本:
docker run -d --name mcp_ha_xiaozhi \
-e XIAOZHI_MCP_ENDPOINT="你的小智MCP接入点" \
-e HA_MCP_ENDPOINT="你的HA MCP SERVER接入点" \
-e API_ACCESS_TOKEN="你的长时效API令牌" \
shawn68/mcp_ha_xiaozhi
命令行安装方式
由于此实现仅调用了两个 Python 库并执行一个 Python 文件,所以只要有 Python 3 环境且网络可以访问到 HA,就可以部署。
-
下载并解压包含相关文件的压缩包。
-
进入解压后的目录,安装依赖:
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple -r requirements.txt
-
安装依赖后,执行以下 Shell 脚本:
#!/bin/bash
# 设置环境变量
export XIAOZHI_MCP_ENDPOINT="你的小智MCP接入点"
export HA_MCP_ENDPOINT="你的HA MCP SERVER接入点"
export API_ACCESS_TOKEN="你的长时效API令牌"
# 运行 Python 脚本
python3 mcp_pipe.py
另外,压缩包中也包含了 dockerfile 文件,大家可以自行编译 Docker 镜像。
希望这篇指南能帮助你更好地实现小智 AI 与 Home Assistant 的集成!如果你在配置过程中遇到任何问题,欢迎随时交流。
Github: https://github.com/shawn996/mcp_ha_xiaozhi/
|