返回市场
开放色调-MCP服务器

开放色调-MCP服务器

作者:lsemenenko9 星标更新:2024-12-24

项目介绍

OpenHue MCP Server

这是一个MCP服务器,通过OpenHue CLI使用Claude和其他LLM接口来控制Philips Hue灯光。

预备条件

桥接设置

在使用服务器之前,你需要用你的Hue桥接器设置OpenHue CLI:

  1. 运行设置命令:
# 在Linux/macOS上:
docker run -v "${HOME}/.openhue:/.openhue" --rm --name=openhue -it openhue/cli setup

# 在Windows(PowerShell)上:
docker run -v "${env:USERPROFILE}\.openhue:/.openhue" --rm --name=openhue -it openhue/cli setup
  1. 按照屏幕上的指示操作:

    • CLI会搜索你的Hue桥接器
    • 当提示时,请按Hue桥接器上的链接按钮
    • 等待确认设置完成
  2. 通过列出你的灯光来验证设置:

# 在Linux/macOS上:
docker run -v "${HOME}/.openhue:/.openhue" --rm --name=openhue -it openhue/cli get lights

# 在Windows(PowerShell)上:
docker run -v "${env:USERPROFILE}\.openhue:/.openhue" --rm --name=openhue -it openhue/cli get lights

如果你能看到列出的灯光,说明设置已完成,你可以开始使用MCP服务器了。

安装

  1. 克隆仓库:
git clone <your-repo-url>
cd claude-mcp-openhue
  1. 安装依赖项:
npm install
  1. 构建项目:
npm run build
  1. 运行服务器:
npm start

功能

此服务器通过MCP提供了以下功能:

灯光控制

  • 列出所有灯光或获取特定灯光的详细信息
  • 开启/关闭灯光
  • 调整亮度
  • 设置颜色
  • 控制色温

房间控制

  • 列出所有房间或获取房间详细信息
  • 控制房间内所有灯光
  • 设置房间内的整体亮度和颜色

场景管理

  • 列出可用场景
  • 激活不同模式的场景
  • 根据房间过滤场景

使用Claude Desktop

  1. 打开你的Claude Desktop配置文件:

    • macOS:~/Library/Application Support/Claude/claude_desktop_config.json
    • Windows:%APPDATA%\Claude\claude_desktop_config.json
  2. 添加服务器配置:

{
  "mcpServers": {
    "hue": {
      "command": "node",
      "args": ["/absolute/path/to/build/index.js"]
    }
  }
}
  1. 重启Claude Desktop

  2. 查看锤子图标以验证服务器是否已连接

示例命令

一旦连接,你可以向Claude提出自然语言问题,例如:

  • “客厅里有哪些灯光?”
  • “打开厨房里的所有灯光”
  • “将卧室的灯光调到50%亮度”
  • “将办公室的灯光改为蓝色”
  • “激活‘放松’场景”
  • “休息室里有哪些可用场景?”

可用工具

get-lights

列出所有灯光或获取特定灯光的详细信息

{
  lightId?: string;  // 可选的灯光ID或名称
  room?: string;     // 可选的房间名称过滤器
}

control-light

控制单个灯光

{
  target: string;    // 灯光ID或名称
  action: "on" | "off";
  brightness?: number; // 0-100
  color?: string;     // 颜色名称
  temperature?: number; // 153-500 Mirek
}

get-rooms

列出所有房间或获取特定房间的详细信息

{
  roomId?: string;  // 可选的房间ID或名称
}

control-room

控制房间内所有灯光

{
  target: string;    // 房间ID或名称
  action: "on" | "off";
  brightness?: number;
  color?: string;
  temperature?: number;
}

get-scenes

列出可用场景

{
  room?: string;    // 可选的房间名称过滤器
}

activate-scene

激活特定场景

{
  name: string;     // 场景名称或ID
  room?: string;    // 可选的房间名称
  mode?: "active" | "dynamic" | "static";
}

开发

项目结构

.
├── src/
│   └── index.ts    # 主服务器实现
├── build/          # 编译后的JavaScript
├── package.json
├── tsconfig.json
└── README.md

构建

npm run build

运行

npm start

故障排除

服务器未连接

  1. 检查Docker是否正在运行
  2. 验证OpenHue配置是否存在
  3. 检查Claude Desktop日志
  4. 尝试直接运行OpenHue CLI

命令失败

  1. 检查OpenHue CLI权限
  2. 验证灯光/房间/场景名称
  3. 检查Docker容器日志
  4. 验证Hue桥接器的连通性

许可证

MIT许可证

贡献

  1. 分叉仓库
  2. 创建你的功能分支
  3. 提交更改
  4. 推送到分支
  5. 创建新的Pull Request