M

MCP OpenHAB 连接器

@pendialek/mcp-server-openhab
0 Stars 14 次浏览 pendialek 更新于 2026-08-23

将MCP(多能力平台)与OpenHAB REST API连接的服务器,允许MCP通过getItemState和sendCommand等操作与OpenHAB项目进行交互。

该服务暂未提供标准配置,请参考 README 手动接入

服务介绍

MCP 服务器用于 OpenHAB

用于将MCP(多能力平台)与OpenHAB REST API连接的服务器。它允许MCP与OpenHAB项目进行交互。

配置

为了使服务器正常工作,需要在项目的根目录下创建一个.env文件。此文件包含敏感配置信息,如访问令牌。

必需环境变量:

  • OPENHAB_URL: 您本地OpenHAB实例的URL(例如 http://localhost:8080)。
  • OPENHAB_TOKEN: 在OpenHAB中生成的API令牌,用于访问REST API。

.env 文件示例:

OPENHAB_URL=http://localhost:8080
OPENHAB_TOKEN=YOUR_OPENHAB_API_TOKEN

实现的MCP操作

服务器提供以下MCP操作:

getItemState

  • 描述: 获取指定OpenHAB项目的当前状态。
  • 输入: { "itemName": "string" } (其中itemName是OpenHAB项目的名称)
  • 输出: { "state": "string" } (项目的当前状态)

sendCommand

  • 描述: 向指定的OpenHAB项目发送命令。
  • 输入: { "itemName": "string", "command": "string" } (其中itemName是OpenHAB项目的名称,command是要发送的命令)
  • 输出: { "success": boolean } (指示命令是否成功发送)

项目结构

项目的关键文件和目录包括:

  • src/config.ts: 负责从.env文件加载并验证配置变量。
  • src/openhabApi.ts: 包含与OpenHAB REST API通信的功能(获取状态、发送命令)。
  • src/operations.ts: 使用openhabApi.ts实现每个MCP操作(getItemState, sendCommand)的逻辑。
  • src/server/server.ts: MCP服务器的主要文件。初始化服务器并注册operations.ts中定义的可用MCP操作。
  • .env: 用于存储配置变量的文件(不是仓库的一部分)。
  • package.json: 定义项目的依赖项和启动脚本。
  • tsconfig.json: TypeScript编译器配置。

运行

安装依赖

npm install

构建(Build)

对于生产部署,需要构建项目(将TypeScript翻译成JavaScript):

npm run build

或者直接使用TypeScript编译器:

tsc

启动(开发)

要以开发模式运行服务器,并在更改时自动重启:

npm run dev

启动(生产)

构建成功后,使用以下命令启动服务器:

npm start