使用说明

项目简介

本项目是 Home Assistant 的一个自定义组件,实现了 Model Context Protocol (MCP) 服务器的功能。它允许外部的 LLM 客户端通过标准的 MCP 协议,访问 Home Assistant 提供的工具(如控制智能家居设备)和 Prompt 模板,从而实现更智能的家居控制和交互。

主要功能点

  • 工具 (Tools) 注册与调用: 将 Home Assistant 的服务(例如开关灯、控制家电等)暴露为可被 LLM 客户端调用的工具。LLM 可以通过 MCP 协议请求调用这些工具来控制 Home Assistant 管理的设备。
  • Prompt 模板 (Prompts) 提供: 提供预定义的 Prompt 模板,例如用于智能助手的 Prompt,这些模板可以帮助 LLM 更好地理解用户意图,并结合 Home Assistant 的上下文信息生成更准确的回复。
  • WebSocket 通信: 使用 WebSocket 协议作为 MCP 服务器的通信方式,支持实时的双向通信,使得 LLM 客户端可以方便地与 Home Assistant 进行交互。
  • 集成 Home Assistant LLM 框架: 基于 Home Assistant 的 LLM 框架构建,可以方便地利用 Home Assistant 提供的各种能力和上下文信息。

安装步骤

由于这是一个 Home Assistant 自定义组件,你需要按照 Home Assistant 自定义组件的安装步骤进行安装:

  1. 复制组件代码: 将仓库中的 'custom_components/model_context_protocol' 目录复制到你的 Home Assistant 配置目录下的 'custom_components' 目录中。如果你的 Home Assistant 配置目录中没有 'custom_components' 目录,请手动创建。
  2. 重启 Home Assistant: 完成代码复制后,重启你的 Home Assistant 服务器。
  3. 配置集成: 在 Home Assistant UI 中,进入 "集成" 页面,点击右下角的 "+ 添加集成" 按钮,搜索 "Model Context Protocol" 并添加该集成。按照提示完成配置。

服务器配置 (MCP 客户端配置)

MCP 客户端需要配置连接到 Home Assistant MCP 服务器的信息。由于该 MCP 服务器作为 Home Assistant 的组件运行,客户端需要连接到 Home Assistant 的 WebSocket API。 以下是一个典型的 MCP 客户端配置示例 (JSON 格式):

{
  "serverName": "HomeAssistantMCP",
  "command": "ws",
  "args": [
    "ws://<your_home_assistant_ip>:<your_home_assistant_port>/api/websocket"
  ]
}

参数注释:

  • 'serverName': MCP 服务器的名称,可以自定义,用于在客户端标识不同的服务器连接。例如 "HomeAssistantMCP"。
  • 'command': 指定连接服务器使用的命令或协议。对于 WebSocket 连接,设置为 '"ws"'。
  • 'args': 连接参数列表。对于 WebSocket 连接,'args' 数组包含一个元素,即 WebSocket 服务器的 URL。
    • '"ws://<your_home_assistant_ip>:<your_home_assistant_port>/api/websocket"': Home Assistant WebSocket API 的 URL。
      • '<your_home_assistant_ip>': 请替换为你的 Home Assistant 服务器的 IP 地址或域名。例如 '192.168.1.100' 或 'my-homeassistant.example.com'。
      • '<your_home_assistant_port>': 请替换为你的 Home Assistant 服务器的端口号。通常情况下,如果你使用 HTTP 访问 Home Assistant,端口号为 '8123'。如果使用 HTTPS 访问,并且没有自定义端口,端口号通常为 '443'。请根据你的 Home Assistant 配置进行修改。 注意:如果你的 Home Assistant 使用 HTTPS,请将 '"ws://"' 改为 '"wss://"'。

重要提示:

  • Home Assistant 身份验证: 连接 Home Assistant WebSocket API 需要进行身份验证。MCP 客户端需要处理 Home Assistant 的身份验证机制才能成功连接和通信。具体的身份验证方法请参考 Home Assistant 的 WebSocket API 文档。通常需要在 WebSocket 连接建立后,发送身份验证信息。
  • 端口和协议: 请确保 '<your_home_assistant_port>' 和协议 ('ws://' 或 'wss://') 与你的 Home Assistant 配置一致。错误的端口或协议会导致连接失败。

基本使用方法

配置好 MCP 客户端后,客户端可以通过 WebSocket 连接到 Home Assistant 的 MCP 服务器,并发送 MCP 协议定义的请求,例如:

  • 请求工具列表: 发送 'mcp/tools/list' 类型的请求,服务器会返回 Home Assistant 暴露的工具列表。
  • 调用工具: 发送 'mcp/tools/call' 类型的请求,指定要调用的工具名称和参数,服务器会执行相应的 Home Assistant 服务调用,并返回结果。
  • 获取 Prompt 模板: 发送 'mcp/prompts/get' 或 'mcp/prompts/list' 类型的请求,获取预定义的 Prompt 模板,用于指导 LLM 进行对话或任务。

具体的请求和响应格式请参考 Model Context Protocol 的官方文档。

信息

分类

桌面与硬件