Home Assistant MCP工具

一个VS Code扩展,提供MCP工具,使GitHub Copilot能够通过REST API访问您的Home Assistant实例。

  • by RickyKleinhempel
  • TypeScript
  • 本地部署
  • 2 星标
  • 更新于
在 GitHub 查看 RickyKleinhempel/homeassistantMcp_vsc_extension

使用说明

GitHub Copilot的家庭助理MCP工具

VS代码扩展,为GitHub Copilot提供MCP(模型上下文协议)工具,通过REST API访问您的Home Assistant实例。

特性

  • 🏠 直接家庭助理访问:GitHub Copilot可以直接查询您的家庭助理
  • 🔍 实体发现:查找实体ID、状态和属性
  • 📋 服务信息:获取可用服务及其参数
  • 📊 历史和日志:访问历史数据和活动日志
  • 📅 日历集成:查询日历事件
  • ⚡ 服务控制:呼叫服务以控制设备(灯、开关、场景等)
  • 🎯 事件系统:触发自定义事件和处理意图
  • 📝 模板渲染:渲染Jinja2模板以进行复杂计算
  • 🔒 安全令牌存储:存储在VS Code安全存储中的访问令牌

可用工具

读取操作(GET)

工具 说明
ha_check_api 检查是否可以访问Home Assistant API
ha_get_config 获取家庭助理配置
ha_get_components 列出已加载的集成
ha_get_states 获取所有实体状态(带过滤)
ha_get_state 获取特定实体的状态
ha_get_services 列出可用服务
ha_get_events 列出可用的事件类型
ha_get_history 获取历史状态更改
ha_get_logbook 获取日志条目
ha_get_error_log 获取错误日志
ha_get_calendars 列出日历实体
ha_get_calendar_events 获取日历事件

写入操作(POST/DELETE)

工具 说明
ha_call_service 呼叫家庭助理服务(例如,打开灯、激活场景)
ha_fire_event 触发自定义事件以触发自动化
ha_set_state 设置或创建实体状态
ha_render_template 渲染Jinja2模板
ha_check_config 验证家庭助理配置文件
ha_handle_intent 处理对话/语音意图
ha_delete_state 删除实体状态

安装

1.安装扩展

来自VS代码市场:

  1. 打开VS代码
  2. 转到扩展(Ctrl+Shift+X)
  3. 搜索“家庭助理MCP”
  4. 点击“安装”

2.配置家庭助理URL

  1. 打开VS代码设置(Ctrl+,)
  2. 搜索“家庭助理mcp”
  3. 集 统一资源定位符 发送至您的家庭助理地址:
    • 当地: http://homeassistant.local:8123
    • 基于IP: http://192.168.1.100:8123
    • 纳布之家: https://your-instance.ui.nabu.casa

3.设置您的访问令牌

  1. 打开命令选项板(Ctrl+Shift+P)
  2. 运行: 家庭助理MCP:设置访问令牌
  3. 粘贴您的长期访问令牌
  4. 测试连接: 家庭助理MCP:测试连接

获得长寿命访问令牌

  1. 打开您的家庭助理实例
  2. 转到您的个人资料(单击侧栏中的用户名)
  3. 向下滚动到“长期访问令牌”
  4. 点击“创建令牌”
  5. 给它起个名字(例如,“VS Code Copilot”)
  6. 复制令牌(您只会看到一次!)

配置

VS代码设置

{
  "homeassistant-mcp.url": "http://homeassistant.local:8123",
  "homeassistant-mcp.validateSsl": true,
  "homeassistant-mcp.requestTimeout": 10000
}

命令

  • 家庭助理MCP:设置访问令牌 -设置您的家庭助理访问令牌
  • 家庭助理MCP:测试连接 -测试与家庭助理的连接
  • 家庭助理MCP:清除访问令牌 -删除存储的访问令牌

用法示例

配置后,您可以向GitHub Copilot提出以下问题:

查询数据

  • “我家里有什么灯?”
  • “当前温度传感器的读数是多少?”
  • “轻域提供哪些服务?”
  • “显示客厅温度传感器的历史记录”

控制设备

  • “打开客厅的灯”
  • “将卧室灯光亮度设置为50%”
  • “激活“电影之夜”场景”
  • “关掉厨房里的所有灯”

高级操作

  • “启动名为‘guest_arrived’的自定义活动”
  • “渲染显示平均温度的模板”
  • “检查我的家庭助理配置是否有效”

Copilot将使用适当的MCP工具来获取数据或控制您的家庭助理实例。

发展

先决条件

  • Node.js 18+
  • VS代码1.95+

构建

# Install dependencies
npm install

# Compile TypeScript
npm run compile

# Watch for changes
npm run watch

# Lint code
npm run lint

调试

  1. 在VS Code中打开项目
  2. 按 F5 开始调试
  3. 将打开一个新的VS Code窗口,其中加载了扩展名

安全

  • 访问令牌存储在VS Code的安全秘密存储器中
  • 令牌从不被记录或公开
  • 默认情况下启用SSL证书验证

许可证

麻省理工学院

贡献

欢迎投稿!请在上打开问题或拉取请求 GitHub.