项目简介

这是一个实现了Model Context Protocol (MCP) 的服务器,用于连接流行的智能家居平台 OpenHAB 和支持 MCP 的大语言模型 (LLM) 客户端(如 Anthropic Claude、Cline 等)。它允许你通过自然语言指令来控制和管理你的 OpenHAB 系统中的设备、状态、规则等。

主要功能点

  • 设备控制与查询: 获取 OpenHAB 中所有设备(Items)的列表、详细信息,更新设备状态(如开关灯)。
  • 设备管理: 支持创建、更新和删除 OpenHAB 设备。
  • 物联设备信息: 获取 OpenHAB 系统中的物联设备(Things)列表和详细信息。
  • 规则管理: 获取规则列表、详细信息,创建、更新、删除规则,甚至可以立即运行某个规则。
  • 脚本管理: 专门针对 OpenHAB 中的脚本(一种特殊规则),提供列表、获取、创建、更新和删除功能。

安装步骤

推荐使用 Docker 进行部署:

  1. 确保你已经安装了 Docker。
  2. 克隆或下载本仓库代码。
  3. 打开终端,切换到仓库代码所在的目录。
  4. 构建 Docker 镜像:
    docker build -t openhab-mcp .
  5. 运行 Docker 容器,并将容器内部的 8080 端口映射到主机上的 8081 端口(避免与 OpenHAB 默认端口冲突)。同时需要设置连接你的 OpenHAB 实例的 URL 和 API Token:
    docker run -d --rm -p 8081:8080 \
      -e OPENHAB_URL=http://你的-openhab-主机名或IP:8080 \
      -e OPENHAB_API_TOKEN=你的-api-token \
      --name openhab-mcp \
      openhab-mcp
    请将 'http://你的-openhab-主机名或IP:8080' 和 '你的-api-token' 替换为你实际的 OpenHAB 地址和认证令牌。如果你使用用户名密码认证,请使用 '-e OPENHAB_USERNAME=你的用户名 -e OPENHAB_PASSWORD=你的密码' 替换 API Token 的设置。
  6. 要停止容器,运行:
    docker stop openhab-mcp

服务器配置

本 MCP 服务器需要由支持 MCP 的 LLM 客户端(如 Claude Desktop 或 Cline VSCode 扩展)来启动和连接。你需要在客户端的配置中指定如何运行这个服务器。

通常,你需要在客户端的 MCP 配置 JSON 文件中添加一个条目,描述这个 MCP 服务器。配置信息包括:

  • 服务器名称(例如:'openhab-mcp')
  • 启动命令 ('command'):指定用于启动服务器的可执行程序,在这里是 'docker'。
  • 启动参数 ('args'):指定传递给启动命令的参数,这里是运行 Docker 容器的命令参数,包括:
    • '-d':后台运行
    • '-p 8081:8080':端口映射
    • '-e OPENHAB_URL=...':设置 OpenHAB 地址环境变量
    • '-e OPENHAB_API_TOKEN=...' 或 '-e OPENHAB_USERNAME=... -e OPENHAB_PASSWORD=...':设置 OpenHAB 认证环境变量
    • '--name openhab-mcp':容器名称
    • 'openhab-mcp':要运行的 Docker 镜像名称

请参照你的 LLM 客户端的文档,找到其 MCP 配置文件的位置和格式要求,然后根据上述信息填入相应的 'name', 'command', 和 'args'。

基本使用方法

配置完成后,重启你的 LLM 客户端。打开一个新的对话窗口,尝试用自然语言与 OpenHAB 进行交互。

例如:

  • 询问设备状态:'我的客厅灯现在是什么状态?'
  • 控制设备:'请把厨房的灯打开。'
  • 列出设备:'列出我所有的 OpenHAB 设备。'
  • 运行规则:'执行一下我叫 '晚安模式' 的规则。'

如果一切配置正确,AI 助手将能够理解你的指令,并通过 MCP 服务器调用 OpenHAB API 来执行操作或获取信息。

信息

分类

桌面与硬件