Home Assistant MCP Server

项目简介

该项目 'home-assistant-mcp-server' 是一个基于 Model Context Protocol (MCP) 构建的服务器,旨在桥接 Home Assistant 智能家居系统与支持 MCP 协议的客户端(如 Claude Desktop)。它允许大型语言模型 (LLM) 通过标准化的 MCP 协议,以自然语言的方式查询和控制您的 Home Assistant 设备,实现智能家居的自然语言交互。

主要功能点

  • Home Assistant 集成: 能够连接和操作 Home Assistant 智能家居平台,实现对智能设备的控制和状态查询。
  • MCP 协议兼容: 完全兼容 Model Context Protocol,可以与任何 MCP 客户端无缝对接。
  • 自然语言交互: 支持通过自然语言查询和控制 Home Assistant 实体,使得 LLM 可以理解和执行智能家居指令。
  • 丰富的功能工具: 提供状态管理、服务调用、历史记录等多种工具,扩展 LLM 与智能家居的交互能力。
  • 安全认证: 采用 Home Assistant 长期访问令牌进行安全认证,保障智能家居控制的安全性。
  • 多种传输协议: 支持 Stdio 和 SSE 多种传输协议,适应本地进程和远程客户端等不同应用场景。
  • 演示模式: 内置演示模式,无需真实 Home Assistant 环境即可进行测试和功能演示。

安装步骤

本 MCP 服务器可以使用 'bun' 包管理器或从源代码安装。

使用 bun 安装 (推荐):

bun install -g home-assistant-mcp-server

从源代码安装:

git clone https://github.com/oleander/home-assistant-mcp-server.git
cd home-assistant-mcp-server
bun install
bun run build
bun link

服务器配置

MCP 客户端(如 Claude Desktop)需要配置 MCP 服务器的启动命令和必要的环境变量才能连接。以下是 Claude Desktop 的 'claude_desktop_config.json' 配置文件示例,用于配置 'home-assistant-mcp-server':

{
  "mcpServers": {
    "homeassistant": {
      "command": "home-assistant-mcp-server",
      "env": {
        "HASS_URL": "http://your-home-assistant:8123",
        "HASS_TOKEN": "your_token_here"
      }
    }
  }
}

配置参数说明:

  • server name: 'homeassistant' - 服务器名称,可以自定义,用于在客户端中标识该服务器连接。
  • command: 'home-assistant-mcp-server' - MCP 服务器的启动命令。请确保 'home-assistant-mcp-server' 命令在您的系统路径中可用。
  • env: 环境变量配置,以 JSON 对象形式提供。
    • HASS_URL: Home Assistant 实例的 URL 地址,例如 'http://homeassistant.local:8123'。(必填)
    • HASS_TOKEN: 用于 Home Assistant 认证的长期访问令牌。请在 Home Assistant 用户配置页面创建并获取。(必填)
    • PORT: HTTP 服务器端口号,默认为 '3000'。仅在使用 HTTP/SSE 传输时需要配置。(可选)
    • HASS_MOCK: 是否启用模拟数据模式。设置为 '"true"' 时,服务器将使用模拟数据,无需连接到真实的 Home Assistant 实例,默认为 '"false"'。(可选,测试或演示时使用)

获取 Home Assistant 长期访问令牌步骤:

  1. 登录您的 Home Assistant 实例。
  2. 点击左下角的您的个人资料
  3. 滚动到 长期访问令牌 部分。
  4. 点击 创建令牌 并输入一个描述性名称。
  5. 复制生成的令牌值(请注意,令牌只会显示一次)。

基本使用方法

  1. 配置环境变量: 在运行 'home-assistant-mcp-server' 的目录中创建 '.env' 文件,并根据您的 Home Assistant 环境配置 'HASS_URL' 和 'HASS_TOKEN' 等环境变量。
  2. 启动服务器: 在终端中运行 'home-assistant-mcp-server' 命令以启动服务器 (默认使用 HTTP/SSE 传输)。如需使用 Stdio 传输,请运行 'home-assistant-mcp-server --stdio'。
  3. 配置 MCP 客户端: 在 MCP 客户端(如 Claude Desktop)中,根据上述 服务器配置 部分的说明,配置服务器连接信息,确保 'command' 和 'env' 参数正确设置。
  4. 连接和使用: 在 MCP 客户端中连接到配置的 'homeassistant' 服务器,即可开始通过自然语言与您的 Home Assistant 智能家居系统进行交互。

启动命令示例:

  • 标准模式 (连接真实 Home Assistant):

    home-assistant-mcp-server
    home-assistant-mcp-server --stdio
  • 演示模式 (使用模拟数据):

    home-assistant-mcp-server --mock
    home-assistant-mcp-server --stdio --mock

信息

分类

桌面与硬件