本帖最后由 shay 于 2025-5-21 09:23 编辑
老规矩,先上演示:
前几天发了好消息,小智Ai支持MCP了,和ha的联动一步之遥的水贴,结果坛子一片寂静,波澜不惊。不过,这仍然“炸”出了几位技术大咖,实现了官方对接,甚至自部署版本也支持了 MCP。经过我几天的研究,我找到了目前最理想的对接方案:利用小智官方服务器的 MCP 接入点与 HA 官方的 mcp_server 集成。
不同于其他方案,我并没有尝试实现 mcp_server ,而是选择将 HA 官方的 mcp_server 适配给小智官方的 MCP 接入点使用。这种方法有显著的优势:它完美支持 HA 语音助手的实体公开设置,并提供目前最全面的可用工具(官方实现多达数十个,远超其他方案的 3 个)。更重要的是,未来 HA 官方更新 MCP 能力时,我们的接入方案无需任何改动即可持续兼容。最后就是只需要一个主文件,代码还都是抄的小智官方的 。
目前提供三种安装方式:冬瓜加载项仓库安装、Docker 安装、脚本安装,推荐冬瓜仓库加载项安装。
环境准备及参数获取
在开始安装之前,你需要获取以下几个关键参数:
- 小智 MCP 接入点:
XIAOZHI_MCP_ENDPOINT 登录小智官方服务器即可获取。
- HA MCP SERVER接入点 :
HA_MCP_ENDPOINT 通过 HA 官方的 mcp_server 集成获取。
- 长效 API 令牌:
API_ACCESS_TOKEN 用于授权访问你的 Home Assistant 实例。
冬瓜甄选加载项仓库安装方式
在HA的加载项里面添加冬瓜的仓库,从里面直接安装即可,推荐此方式,而且里面还有很多好玩的加载项。
- 在 Home Assistant 中,前往 设置 > 加载项 >右下角“加载项商店” >右上角“仓库”。
- 输入
https://gitcode.com/waxgourd/addons ,添加冬瓜加载项仓库。
- 添加仓库后,再加载项商店安装小智 Mcp Server即可。
- 配置好上面获取到的三个参数,启用小智 Mcp Server加载项即可。
Docker 安装方式
无论你的 Docker 环境是什么,只要它能访问到本地的 Home Assistant 实例即可。这里以群晖为例,我的 HA 运行在树莓派上。
在 Docker 镜像仓库中搜索 shawn68/mcp_ha_xiaozhi 。你需要填写上面获取到的 3 个参数:
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 镜像。
注意事项
- 提示词很重要,在小智后台的角色介绍里面添加。我目前在用的提示词
可以帮助管理和控制家里的智能设备,智能设备是基于home assistant的mcp server接入的,找不到设备的时候,可以先获取下设备信息 。我对提示词这块不熟,希望大家集思广益,写出更好的提示词。
- 根据反馈已知控制设备可能存在问题,小智提示成功了,但设备没响应。大家可以把大模型切换成deepseek模型试试,我测试确实可以解决不能控制的问题(另外上面的提示词好像也有效)。
- 对接成功后,交流使用问题时,最好把历史对话里面的控制部分一起贴出,方便大家分析原因。
希望这篇指南能帮助你更好地实现小智 AI 与 Home Assistant 的集成!如果你在配置过程中遇到任何问题,欢迎随时交流。
Github: https://github.com/shawn996/mcp_ha_xiaozhi/
|