Token导航 LogoToken导航TokenDH.com
Hubitat MCP logo
运维云端stdio官方级别未说明来源级核验

Hubitat MCP

MCP Server

tsx

Hubitat MCP服务器是一个用于通过自然语言控制Hubitat Elevation家庭自动化系统的协议服务器,支持设备控制、状态监控和自动化管理。

工具数

12

提示词数

0

GitHub Stars

2

资源数

0
设备控制JavaScriptClaudeClaude DesktopClaude

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

MvdMunnik26

提供方

MvdMunnik26

最后核验

2026/5/17 20:21

运行时

Node.js

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

npx tsx src/index.ts

详细介绍

Hubitat MCP 服务器

通过Maker API实现Hubitat Elevation家庭自动化的模型上下文协议服务器

![License: MIT](https://opensource.org/licenses/MIT) ![TypeScript](https://www.typescriptlang.org/) ](https://nodejs.org/)

将您的Hubitat Elevation智能家居中心与Claude和其他MCP兼容应用程序集成。通过自然语言控制设备、监控状态、管理模式并自动化您的家庭。

______________________________________________________________________

🚀 特性

  • 📱 设备控制 -打开/关闭设备、设置级别、调整颜色和执行任何支持的命令
  • 📊 实时监控 -查询设备状态、属性和最近发生的事件
  • 🏠 模式管理 -查看和更改集线器模式(Home、Away、Night等)
  • 🛡️ HSM集成 -控制Hubitat安全监视器(启用/解除/状态)
  • 🔢 中心变量 -读写自动化逻辑的中心变量
  • ⚡ 全面制造商API支持 -完成所有创客API端点的实现
  • 🔒 安全 -使用访问令牌,验证所有输入,从不存储凭据
  • 📝 TypeScript -完全类型化,提供出色的IDE支持和更少的错误

📦 安装

先决条件

  • Hubitat高程 本地网络上的集线器
  • 制造商API 在Hubitat中心安装和配置应用程序
  • Node.js 18或更高(可选-仅当您想在本地构建/测试时)

快速开始

# Clone the repository
git clone https://github.com/MvdMunnik26/Hubitat-MCP.git
cd Hubitat-MCP

# That's it! No build required when using npx tsx method
# Configure Claude Desktop (see Step 3 below) and you're ready

可选:本地测试

如果要在本地测试服务器:

# Install dependencies
npm install

# Create configuration file
cp .env.example .env

# Edit .env with your Hubitat details
# HUBITAT_HOST=10.10.1.250
# HUBITAT_APP_ID=688
# HUBITAT_ACCESS_TOKEN=your_token_here

# Option 1: Run with tsx (no build needed)
npx tsx src/index.ts

# Option 2: Build and run
npm run build
npm start

⚙️ 配置

步骤1:在Hubitat上启用创客API

  1. 打开您的Hubitat中心web界面
  2. 导航到 应用添加内置应用程序
  3. 选择 制造商API
  4. 选择要授权的设备
  5. 注意 应用程序ID访问令牌 显示在应用程序中

步骤2:配置环境变量

创建 .env 项目根目录中的文件:

HUBITAT_HOST=192.168.1.100      # Your hub's IP address
HUBITAT_APP_ID=123               # From Maker API app
HUBITAT_ACCESS_TOKEN=abc123...   # From Maker API app

步骤3:添加到Claude桌面

将此添加到您的Claude Desktop配置文件中:

地点:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • 窗户: %APPDATA%\Claude\claude_desktop_config.json
  • Linux: ~/.config/Claude/claude_desktop_config.json

推荐配置(直接运行TypeScript,无需构建):

{
  "mcpServers": {
    "hubitat": {
      "command": "npx",
      "args": [
        "-y",
        "tsx",
        "/absolute/path/to/Hubitat-MCP/src/index.ts"
      ],
      "env": {
        "HUBITAT_HOST": "192.168.1.100",
        "HUBITAT_APP_ID": "123",
        "HUBITAT_ACCESS_TOKEN": "your_access_token_here"
      }
    }
  }
}

示例(Windows):

{
  "mcpServers": {
    "hubitat": {
      "command": "npx",
      "args": [
        "-y",
        "tsx",
        "C:\\AI-projects\\Hubitat-MCP\\src\\index.ts"
      ],
      "env": {
        "HUBITAT_HOST": "192.168.1.100",
        "HUBITAT_APP_ID": "123",
        "HUBITAT_ACCESS_TOKEN": "your_access_token_here"
      }
    }
  }
}

替代方案:运行编译版本(需要构建):

{
  "mcpServers": {
    "hubitat": {
      "command": "node",
      "args": ["/absolute/path/to/Hubitat-MCP/dist/index.js"],
      "env": {
        "HUBITAT_HOST": "192.168.1.100",
        "HUBITAT_APP_ID": "123",
        "HUBITAT_ACCESS_TOKEN": "your_access_token_here"
      }
    }
  }
}

步骤4:重新启动克劳德桌面

完全退出并重新启动Claude Desktop,以便MCP服务器连接。

🎯 使用示例

列出所有设备

User: "List all my Hubitat devices"
Claude: Uses hubitat_list_devices tool

控制设备

User: "Turn on the living room light"
Claude: Uses hubitat_send_command with device ID and "on" command

User: "Set the bedroom light to 50%"
Claude: Uses hubitat_send_command with "setLevel" and parameter "50"

检查设备状态

User: "Is the front door locked?"
Claude: Uses hubitat_get_attribute to check "lock" attribute

User: "What's the temperature in the bedroom?"
Claude: Uses hubitat_get_attribute to check "temperature" attribute

更改模式

User: "Set the house to away mode"
Claude: Uses hubitat_get_modes to find mode ID, then hubitat_set_mode

安全监视器

User: "Arm the security system for away"
Claude: Uses hubitat_set_hsm with "armAway"

🔧 可用工具

MCP服务器为Claude提供以下工具:

设备管理

  • hubitat_list_devices -列出所有授权设备
  • hubitat_get_device -获取详细的设备信息
  • hubitat_send_command -向设备发送命令 具有自动重试逻辑
  • hubitat_get_attribute -获取当前属性值
  • hubitat_get_events -获取最近的设备事件

⚡ 自动重试逻辑

电池供电设备支持: 服务器会自动重试可能处于睡眠模式的电池供电的Z-Wave设备(恒温器、锁等)的命令。

支持的命令:

  • 恒温器设定点(setHeatingSetpoint, setCoolingSetpoint)
  • 调光器级别(setLevel)
  • 交换机(on, off)
  • 锁(lock, unlock)

重试策略:

  1. 立即发送初始命令
  2. 如果未验证:等待2秒,重试
  3. 如果仍未验证:再等待5秒,重试
  4. 如果仍未验证:再等待10秒,最后重试
  5. 报告成功/失败,并提供详细的验证信息

示例响应:

{
  "success": true,
  "device": { /* device details */ },
  "verification": {
    "attribute": "heatingSetpoint",
    "expectedValue": "20.0",
    "attempts": 2,
    "message": "Command verified after 1 retry(s) (2s wait)"
  }
}

中心变量

  • hubitat_list_variables -列出所有中心变量
  • hubitat_get_variable -获取变量值
  • hubitat_set_variable -设置变量值

模式和安全

  • hubitat_get_modes -获取可用模式
  • hubitat_set_mode -更改集线器模式
  • hubitat_get_hsm_status -获取HSM状态
  • hubitat_set_hsm -设置HSM状态

📚 API 文档

设备命令

大多数设备支持的常见命令:

  • 开关: on, off, toggle
  • 调光器: setLevel (0-100)
  • 彩色灯泡: setColor (色调、饱和度、级别), setHue, setSaturation
  • : lock, unlock
  • 恒温器: setHeatingSetpoint, setCoolingSetpoint, setThermostatMode
  • 通用的: refresh

设备属性

您可以查询的常见属性:

  • 开关:开/关
  • 水平:0-100(调光级别)
  • 温度:当前温度
  • 湿度:当前湿度
  • :锁定/解锁
  • 联系:打开/关闭(门/窗)
  • 运动:活动/非活动
  • 存在:存在/不存在

HSM状态值

  • armAway -手臂移开
  • armHome -Arm主页
  • armNight -手臂之夜
  • disarm -解除所有武装
  • disarmAll -解除所有武装
  • armRules -手臂定制规则
  • disarmRules -解除自定义规则的武装
  • cancelAlerts -取消提醒

🔒 安全

  • 访问令牌安全:您的创客API访问令牌提供对授权设备的完全控制。保持安全。
  • 本地网络:此MCP服务器直接与本地网络(无云)上的Hubitat集线器通信。
  • 无凭据存储:凭据作为环境变量传递,从不存储在代码中。
  • 输入验证:所有输入都使用Zod模式进行验证。
  • HTTPS支持:使用 https://HUBITAT_HOST 如果您的集线器启用了HTTPS。

安全最佳实践

  1. 永不承诺 .env 文件 -它包含您的访问令牌
  2. 使用 .env.example 作为模板
  3. 定期旋转令牌 -如果泄露,在Maker API中生成新的访问令牌
  4. 限制设备访问 -仅在Maker API中授权必要的设备
  5. 网络安全 -将Hubitat集线器保持在安全的本地网络上

🛠️ 发展

构建

npm run build

开发模式(手表)

npm run dev

运行测试

npm test

棉绒

npm run lint

📖 进一步阅读

🤝 贡献

欢迎投稿!拜托:

  1. 分叉存储库
  2. 创建要素分支(git checkout -b feature/amazing-feature)
  3. 提交您的更改(git commit -m 'feat: add amazing feature')
  4. 推到分支(git push origin feature/amazing-feature)
  5. 打开拉取请求

请遵循常规提交格式。

📄 许可证

此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。

🙏 致谢

🐛 故障排除

服务器无法启动

  • 检查节点版本: node --version (必须≥18)
  • 验证 .env 文件:确保设置了所有必需的变量
  • 测试集线器连接: ping
  • Check Maker API:确保应用程序已安装,设备已授权

设备没有响应

  • 验证设备授权:检查Maker API应用程序设置
  • 手动测试终点:尝试访问 http:///apps/api//devices?access_token= 在浏览器中
  • 检查设备ID:使用 hubitat_list_devices 查看正确的ID

克劳德看不到服务器

  • 重新启动克劳德桌面:完全退出并重新打开
  • 检查配置:验证 claude_desktop_config.json 是正确的
  • 检查日志:在Claude Desktop日志文件夹中查找错误
  • 验证路径:确保绝对路径 index.js 是正确的

📞 支持

______________________________________________________________________

由...制作❤️ 智能家居社区

目录标签

目录标签

设备控制JavaScriptClaude家庭自动化本地部署状态监控Hubitat集成自然语言处理

支持客户端

Claude DesktopClaude

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

token

运行时(runtime,运行环境)

Node.js

来源包(packageName,安装包名)

tsx

工具数量(toolCount,工具数)

12

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdiotoken部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP