MCP 集成:服务端接入与智能家居

MCP 在小智生态里有两个不同的位置:设备端工具(固件内置,音量、屏幕、拍照等,见MCP 使用指南)与服务端接入(让大模型调用外部工具)。本页整理服务端接入的社区路线;协议消息结构只在MCP 协议规范维护。

版本与验证状态(2026-11-08 观察):路线一(Endpoint)已完成本站本地集成演练(见下表验证状态);路线二、三仍为作者声明级、未实测;固定版本锚点取自各仓库当前水位。本地演练不等于与真实设备/服务端的端到端验收。

路线一:MCP Endpoint 注册中心

项内容
项目xinnan-tech/mcp-endpoint-server(MIT,latest v0.0.7 / commit 0f9302f3,2026-06-02)
角色独立注册中心:MCP 服务端向它注册,小智服务端(xinnan 系)从它发现工具
谁连接谁MCP 工具服务 → 注册中心 ← 小智服务端
传输WebSocket 注册与转发(作者声明)
适用后端面向 xinnan 自定义 MCP 注册设计;不是通用 MCP Registry,不支持所有标准传输
部署作者建议 Docker;FastAPI 实现
验证状态本站本地集成演练已通过(2026-11-08,v0.0.7):注册(MCP 端 WebSocket 接入)→ 转发(小智端 tools/list 请求被改写 id 后转发到 MCP 端)→ 回程(按改写 id 应答后小智端收到含 total_servers/responded_servers 的聚合结果)→ 撤销(双侧断开后自动注销)→ 恢复(断开重连注册成功);负例:无效 token 以 close code 1008 拒绝。健康检查 /mcp_endpoint/health?key=… 返回 JSON-RPC ok。未验证:与 xiaozhi 服务端/真实设备的端到端集成

路线二:Home Assistant 作为 MCP 服务端(直连)

项内容
项目c1pher-cn/ha-mcp-for-xiaozhi(MIT,latest v0.2.1 / commit 64cc1507,2026-10-17)
角色HA 集成:HA 自身作为 MCP 服务端,把自己的实体/工具代理给小智
谁连接谁HA → 小智侧 MCP 接入点:HA 通过 WebSocket 主动连接小智 MCP 接入点地址(v0.2.1 README 第 27/67 行),无需中转
传输WebSocket(HA 侧发起),对接小智侧 MCP 接入点(如 xinnan 系的 Endpoint 服务)
权限接入点地址在 HA 集成配置中填写;可勾选 HA 自带 Assist API 与用户在 HA 中接入的其他 MCP Server
验证状态待验证:工具发现与调用按作者 README 声明整理

路线三:Home Assistant MCP Server 桥接

项内容
项目mac8005/xiaozhi-mcp-ha(MIT,latest v0.0.27 / commit a6d3ca4a,2026-10-21)
角色桥接/代理:位于小智云服务与本地 HA MCP Server 集成之间(v0.0.27 README “How it Works”:设备 ↔ 小智云 ↔ 本集成 ↔ HA MCP Server ↔ HA 实体)
谁连接谁本集成主动建立并维护到小智云端点(WebSocket URL 含 token)的长连接(README 特性:自动重连+指数退避);小智云在既有连接上向本集成下发 MCP 请求;本集成再以 SSE 转发给本地 HA MCP Server(http://localhost:8123/mcp_server/sse,legacy HTTP/SSE)。即「云下发请求」发生在桥接主动建立的连接之内,不是云向家庭网络拨号
配置与权限两个独立令牌:小智侧 MCP 端点 URL(含 ?token=…,来自官方控制台的 MCP 页面)+ HA 长期访问令牌(HA 个人资料创建);两者不可混用
验证状态待验证:新式 Streamable HTTP 兼容未测试;v0.0.26 起 loopback 之外要求 TLS、不再记录消息负载与端点 URL——既有局域网明文 URL 需迁移(作者 CHANGELOG/SECURITY 声明)

选择与边界

  • 两条 HA 路线不合并为同一套步骤:直连与桥接的传输、权限模型不同;
  • 令牌与端点地址只放在服务端配置,不进入页面示例(本页无真实凭据);
  • 各路线的兼容性以对应项目文档为准;本页"待验证"条目在具备运行环境后补实测记录;
  • 设备端 MCP 工具(与本文的三条服务端路线不同位置)见使用指南。

关联项目记录

三条路线的项目实体、许可与观察水位已登记在生态项目与来源注册表(仓库 numeric ID 保持身份,改名不失效)。