MCP OpenHAB 连接器
将MCP(多能力平台)与OpenHAB REST API连接的服务器,允许MCP通过getItemState和sendCommand等操作与OpenHAB项目进行交互。
服务介绍
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