Hubitat Go MCP服务器
Hubitat家庭自动化系统的模型上下文协议(MCP)服务器的原生Go实现。该服务器使Claude Desktop等AI助手能够通过MCP协议控制和查询Hubitat设备。

特性
- ✅ 本地MCP实现 -内置于 mcp走
- ✅ 全设备控制 -打开/关闭设备、设置级别、发送自定义命令
- ✅ 设备发现 -列出所有具有功能的设备
- ✅ 多种模式 -stdio(克劳德桌面)或SSE(HTTP服务器)
- ✅ 交叉平台的 -Linux、macOS和Windows支持
- ✅ 系统集成 -在Linux上作为系统服务运行
- ✅ 环境配置 -使用.env文件轻松设置
- ✅ 生产就绪 -包括Makefile和systemd服务
先决条件
- Hubitat 中心 随着 制造商API 启用
- 创客API应用程序ID 和 访问令牌 从您的Hubitat中心
- 转到1.21+ 安装
- 克劳德桌面 或另一个MCP兼容客户端
安装
视窗
看 WINDOWS.md 获取完整的Windows安装指南。
快速入门(Windows):
git clone https://github.com/alexj212/hubitat-go-mcp.git
cd hubitat-go-mcp
.\install-windows.ps1Linux/macOS
快速启动(自动)
# Clone the repository
git clone https://github.com/alexj212/hubitat-go-mcp.git
cd hubitat-go-mcp
# Run installation script
./install-claude-desktop.sh手动安装
# Clone the repository
git clone https://github.com/alexj212/hubitat-go-mcp.git
cd hubitat-go-mcp
# Copy environment template
cp .env.example .env
# Edit .env with your Hubitat configuration
nano .env
# Build and install
make install
# Optional: Install as systemd service (Linux only)
make install-service
sudo systemctl start hubitat-go-mcp手动构建
# Download dependencies
make deps
# Build binary
make build
# Run directly
./hubitat-go-mcp配置
创建一个 .env 项目目录中的文件:
# Hubitat Configuration
HUBITAT_BASE_URL=http://192.168.1.253/apps/api/131/devices
HUBITAT_TOKEN=your-access-token-here
# Server Configuration (optional)
PORT=5006获取Hubitat证书
- 登录您的Hubitat中心(例如。,
http://192.168.1.253) - 首选 应用 → Hubitat 制造 API
- 注意 应用程序ID (在URL中:
/apps/api/[APP_ID]/) - 复制 访问令牌
- 构建您的基本URL:
http:///apps/api//devices
Claude桌面集成
自动设置
Linux/macOS:
./install-claude-desktop.sh视窗:
.\install-windows.ps1手动设置
将此添加到您的Claude Desktop配置文件中:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
{
"mcpServers": {
"hubitat": {
"command": "/usr/local/bin/hubitat-go-mcp"
}
}
}视窗: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"hubitat": {
"command": "C:\\path\\to\\hubitat-go-mcp\\hubitat-go-mcp.exe"
}
}
}Linux: ~/.config/Claude/claude_desktop_config.json
{
"mcpServers": {
"hubitat": {
"command": "/usr/local/bin/hubitat-go-mcp"
}
}
}然后重新启动Claude Desktop。
运行模式
服务器支持两种操作模式:
模式1:stdio(默认值-适用于Claude Desktop)
这是Claude Desktop用于本地MCP服务器集成的默认模式:
./hubitat-go-mcp
# or
./hubitat-go-mcp -mode=stdioClaude Desktop将通过配置文件自动启动此程序。
模式2:SSE服务器(用于远程访问)
作为HTTP服务器运行,并使用服务器发送的事件进行远程访问:
./hubitat-go-mcp -mode=sse
# or specify a custom port
./hubitat-go-mcp -mode=sse -port=8080这将在以下位置创建一个HTTP服务器:
- SSE端点:
http://localhost:5006/sse - 状态端点:
http://localhost:5006/status
然后,您可以使用以下工具 mcp-proxy 或其他MCP客户端远程连接。
命令行选项
./hubitat-go-mcp -help可用选项:
-mode=stdio|sse-服务器模式(默认:stdio)-port=PORT-SSE模式端口(覆盖.env)-version-打印版本并退出-help-显示帮助消息
可用工具
MCP服务器向Claude公开了以下工具:
1. list_devices
列出所有Hubitat设备及其功能和当前状态。
示例:“列出我的所有Hubitat设备”
2. get_device
获取特定设备的详细信息。
参数:
device_id(字符串,必填):设备ID
示例:“获取设备135的详细信息”
3. turn_on
打开设备(开关、灯等)。
参数:
device_id(字符串,必填):设备ID
示例:“打开厨房的灯”
4. turn_off
关闭设备。
参数:
device_id(字符串,必填):设备ID
示例:“关闭所有卧室灯”
5. set_level
设置可调光设备的亮度级别。
参数:
device_id(字符串,必填):设备IDlevel(数字,必填):亮度级别(0-100)
示例:“将客厅的灯光设置为50%”
6. send_command
向设备发送自定义命令。
参数:
device_id(字符串,必填):设备IDcommand(string,必填):要发送的命令value(string,可选):可选命令参数
示例:“刷新设备85”
使用示例
一旦配置了Claude Desktop,您就可以:
"List all my Hubitat devices"
"Turn on the Office Lamp"
"Set the Master bedroom lights to 30%"
"What is the temperature in the Office?"
"Turn off all lights in the Kitchen"
"Get status of device 135"系统化服务管理
# Start the service
sudo systemctl start hubitat-go-mcp
# Stop the service
sudo systemctl stop hubitat-go-mcp
# Restart the service
sudo systemctl restart hubitat-go-mcp
# Check status
sudo systemctl status hubitat-go-mcp
# View logs
sudo journalctl -u hubitat-go-mcp -f
# Enable auto-start on boot
sudo systemctl enable hubitat-go-mcp
# Disable auto-start
sudo systemctl disable hubitat-go-mcp发展
# Run tests
make test
# Run in development mode (requires 'air' for auto-reload)
make dev
# Clean build artifacts
make clean
# Show all make targets
make help生成文件目标
make deps-下载Go依赖项make build-构建二进制文件make install-将二进制文件安装到/usr/local/binmake install-service-安装systemd服务make uninstall-service-删除systemd服务make clean-清理构建工件make test-运行测试make run-构建并运行make dev-自动重新加载的开发模式make help-显示帮助
建筑
此服务器使用:
- mcp走 -Go实现模型上下文协议
- stdio传输 -通过标准输入/输出与Claude Desktop通信
- Hubitat 制造 API -用于设备控制的REST API
- godotenv -环境变量管理
故障排除
服务无法启动
# Check service status
sudo systemctl status hubitat-go-mcp
# View logs
sudo journalctl -u hubitat-go-mcp -n 50配置错误
确保您的 .env 文件具有正确的值:
cat /docker/hubitat-go-mcp/.env测试Hubitat连接
# Test the Hubitat API directly
curl "http://192.168.1.253/apps/api/131/devices/all?access_token=YOUR_TOKEN"Claude Desktop未检测到服务器
- 验证是否安装了二进制文件:
which hubitat-go-mcp - 检查Claude Desktop配置文件语法
- 完全重新启动克劳德桌面
- 检查Claude Desktop日志是否有错误
与Python版本的比较
| 功能 | Go版本 | Python版本 |
|---|---|---|
| MCP协议 | 本机(MCP-go) | 需要MCP代理 |
| 性能 | 快速,编译 | 较慢,解释 |
| 依赖关系 | 单二进制 | Python+包 |
| 内存 | 低(~10MB) | 高(~50MB+) |
| 设置 | 直接集成 | 需要代理层 |
贡献
欢迎投稿!拜托:
- 复刻仓库
- 创建要素分支
- 进行更改
- 提交拉取请求
许可证
MIT许可证-有关详细信息,请参阅许可证文件
链接
作者
Alex Jeannopoulos(@alexj212)
致谢
- 内置于 mcp走 Mark3Labs
- 灵感来自 hubitat-mcp Python实现
