mcpField
H
Home Assistant Model Context Protocol (MCP)

Home Assistant Model Context Protocol (MCP)

本地服务
jango-blockchained.github.ioAI 与智能体5819 周前更新

关于 Home Assistant Model Context Protocol (MCP)

一个将 AI 助手连接到 Home Assistant 的 MCP 服务,提供 50 多种工具用于控制灯光、空调、门锁、场景和自动化等设备。适合希望通过 Claude、Cursor 等客户端管理智能家居的用户。该项目通过 STDIO 与 HTTP 等多种传输方式运行。

主要功能

  1. 0150 多种覆盖智能家居设备的工具
  2. 02支持 STDIO、HTTP+WS 和 HTTP 传输
  3. 03提供语音唤醒词与语音转文字功能
  4. 04支持 Docker 与 npm 等多种安装方式

适用场景

  1. 01通过 AI 助手控制灯光、空调和门锁
  2. 02查询历史状态与能耗数据
  3. 03在 Cursor 或 Claude Desktop 中管理智能家居自动化

MCP 相关

该服务作为 MCP 服务运行,向 MCP 客户端暴露 Home Assistant 的设备控制、状态查询与自动化等工具。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"advanced-homeassistant": {
"command": "npx",
"args": [
"-y",
"@smithery/cli"
]
}
}
}
启动命令npx -y @smithery/cli

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npm@smithery/cli

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

🏠 Home Assistant MCP

Smithery Release npm Docker CI Bun Node License

和你的家对话。 你的 AI 助手(Claude、GPT、Cursor、Copilot)通过模型上下文协议连接到 Home Assistant。50 多种工具、三种传输方式,只需一条 bunx 命令。

# ⚡ Fastest way to try it
bunx github:jango-blockchained/advanced-homeassistant-mcp

🚀 快速开始

你需要一个 Home Assistant 实例和一个 长期有效的访问令牌(在此创建)。

Claude Desktop

添加到 claude_desktop_config.json:

{
  "mcpServers": {
    "homeassistant-mcp": {
      "command": "bunx",
      "args": ["github:jango-blockchained/advanced-homeassistant-mcp"],
      "env": {
        "HASS_HOST": "http://your-ha-instance:8123",
        "HASS_TOKEN": "your_long_lived_access_token"
      }
    }
  }
}

重启 Claude。 就完成了。让它打开灯吧。

Cursor / VS Code
Cursor — 添加到 .cursor/mcp.json
{
  "mcpServers": {
    "homeassistant-mcp": {
      "command": "bunx",
      "args": ["github:jango-blockchained/advanced-homeassistant-mcp"],
      "env": {
        "HASS_HOST": "http://your-ha-instance:8123",
        "HASS_TOKEN": "your_long_lived_access_token"
      }
    }
  }
}
VS Code + MCP Extension

在 .env 文件中设置环境变量,并使用预配置的 .vscode/mcp.json:

{
  "mcp.servers": {
    "homeassistant-mcp": {
      "type": "stdio",
      "command": "bun",
      "args": ["run", "dist/stdio-server.mjs"],
      "env": {
        "HASS_HOST": "${env:HASS_HOST}",
        "HASS_TOKEN": "${env:HASS_TOKEN}"
      }
    }
  }
}
Smithery(一键安装)

直接从 Smithery 注册表 安装,无需配置文件:

npx @smithery/cli install @jango-blockchained/advanced-homeassistant-mcp --client claude

📦 所有安装选项

方法命令
Smithery(最简单)npx @smithery/cli install @jango-blockchained/advanced-homeassistant-mcp --client claude
bunx(无需安装)bunx github:jango-blockchained/advanced-homeassistant-mcp
npxnpx @jango-blockchained/homeassistant-mcp@latest
Dockerdocker run -d -p 7123:7123 --env-file .env ghcr.io/jango-blockchained/advanced-homeassistant-mcp:1.7.0
从源代码安装git clone ... && bun install && bun run build:all && bun run start:stdio
npm 全局安装npm add -g @jango-blockchained/homeassistant-mcp && homeassistant-mcp

可用的 Docker 标签:

  • latest - 最新稳定版本
  • 1.7.3、1.7、1 - 指定版本
  • dev - 来自 main 分支的最新开发构建

🎯 可以做什么

连接后,你就能像与人交谈一样与家沟通:

"Turn off all lights in the bedroom"
"Set the thermostat to 72°F"
"Lock all doors and start the vacuum"
"Show me energy consumption this week"
"What's the temperature in the living room?"
"Activate the movie scene"
"Notify everyone that dinner is ready"
"Check my Home Assistant health"
"Find orphaned devices with low battery"
"Analyze my light usage patterns"

每条命令都对应 50+ 个工具之一,涵盖灯光、气候、媒体、门锁、窗帘、风扇、吸尘器、警报器、场景、自动化、通知、历史记录、能源监控、维护等。

完整工具参考(全部 50+ 个工具)
类别工具
灯光列表、获取、开/关、亮度、色温、RGB、效果
气候列表、获取、HVAC 模式、目标温度、风扇模式、加湿
媒体列表、获取、播放/暂停、音量、来源、音效模式、随机播放
窗帘列表、获取、打开/关闭、位置、倾斜、车库门
门锁列表、获取、上锁/解锁(支持密码)
风扇列表、获取、速度、摇摆、方向、预设
吸尘器列表、获取、启动/停止/返回充电座、定点清扫、风扇速度
警报器列表、获取、布防(在家/外出/夜间)、撤防
开关列表、获取、开启/关闭/切换
场景列表、激活命名场景
自动化列表、切换、触发、创建/编辑/删除
通知通过 HA 渠道推送提醒
历史记录查询历史状态
附加组件安装、配置、控制
软件包HACS 集成和自定义组件
维护孤立设备、电池警告、能源分析
智能场景无人居家模式、窗户/供暖冲突、能源浪费
照明动画、场景、展示、BPM/节拍检测
语音唤醒词检测、语音转文本、语音命令
仪表盘查询和管理 Lovelace 仪表盘
模板通过 HA 渲染 Jinja2 模板
待办清单添加、更新、移除项目
执行轨迹自动化/脚本执行轨迹
搜索带筛选条件的实体全文搜索
实体状态获取任意实体的当前状态
错误日志查询 HA 错误日志并进行筛选

完整文档:工具参考


🎙️ 语音功能(语音控制)

将你的设置转变为完全由语音控制的智能家居助手。语音集成提供本地化、注重隐私的语音处理。

  • 唤醒词检测:由 wyoming-openwakeword 驱动(默认:“Hey Jarvis”)。
  • 语音转文本:使用 faster-whisper 快速进行本地转录。
  • 音频集成:直接集成 PulseAudio,轻松访问麦克风。

若要启用语音功能,请使用专用的 Docker Compose 文件:

docker-compose -f docker-compose.speech.yml up -d

详细配置和设置说明,请参阅语音功能指南。


🧱 架构

┌──────────────┐     ┌─────────────────────┐     ┌──────────────────┐
│  AI Assistant │◄───►│   Home Assistant    │◄───►│  Your Smart Home │
│ (Claude/GPT)  │     │    MCP Server       │     │  (Home Assistant)│
└──────────────┘     └─────────────────────┘     └──────────────────┘
                         │           │
                    ┌────┘           └────┐
                    ▼                     ▼
              ┌────────────┐      ┌──────────────┐
              │  HTTP/WS   │      │    STDIO     │
              │ (Express)  │      │ (fastmcp v3) │
              └────────────┘      └──────────────┘

三种传输方式,一套代码库。选择适合你设置的方式——它们都提供相同的 50 多种工具。

  • STDIO — 适用于 Claude Desktop、Cursor、VS Code(本地编辑器集成)
  • HTTP+WS — 适用于远程 AI 主机,支持 JWT 身份验证、速率限制和 WebSocket 流式传输
  • HTTP (fastmcp) — 轻量级 HTTP 传输,无需定制中间件

⚙️ 配置

配置极简。需要设置两个变量:

HASS_HOST=http://homeassistant.local:8123
HASS_TOKEN=eyJ...                          # long-lived access token

可选项:

PORT=7123                                  # HTTP server port (default: 4000)
LOG_LEVEL=info                             # debug | info | warn | error
JWT_SECRET=...                             # for HTTP/WS auth (min 32 chars)

如需查看完整的 20 多个环境变量列表,请参阅配置文档。


🛠️ 开发

bun install              # install dependencies
bun run build:all        # build all three entry points
bun test                 # run test suite (80% coverage threshold)
bun run lint             # ESLint + Prettier
bun run typecheck        # TypeScript type checking

使用 Bun、TypeScript 和 fastmcp 构建。提供三个入口点:

  • dist/index.cjs — 在基于 Express 的自定义 MCP 服务上运行 HTTP+WS
  • dist/stdio-server.mjs — 通过 fastmcp v3 使用 STDIO
  • dist/http-server.mjs — 通过 fastmcp v3 使用 HTTP

📖 文档

完整文档见 jango-blockchained.github.io/advanced-homeassistant-mcp,涵盖安装、配置、全部 50 多种工具、部署(HTTP、STDIO、Smithery)、架构深入解析和指南。


🤝 贡献

欢迎提交 PR。保持简洁——遵循相同的代码风格、添加测试,如果修改了公共 API,请更新文档。

  1. Fork 项目
  2. 创建分支
  3. 编写代码
  4. 运行测试
  5. 提交 PR

完整指南请参阅 CONTRIBUTING.md。


📄 许可证

MIT —— 去构建点酷东西吧。


你的智能家居会说 MCP 了。现在你的 AI 也会说了。 🏠⚡🤖🔋

电池已包含。🔋

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。