MCP Server for OpenHAB
Server pro propojení MCP (Multi-Capability Platform) s OpenHAB REST API. Umožňuje MCP interagovat s OpenHAB itemy.
Konfigurace
Pro správnou funkci serveru je nutné vytvořit soubor .env v kořenovém adresáři projektu. Tento soubor obsahuje citlivé konfigurační údaje, jako jsou přístupové tokeny.
Požadované proměnné prostředí:
OPENHAB_URL: URL vaší lokální OpenHAB instance (např.http://localhost:8080).OPENHAB_TOKEN: API token vygenerovaný v OpenHAB pro přístup k REST API.
Příklad
Related MCP server: OpenAPI
Implementované MCP Operace
Server poskytuje následující MCP operace:
getItemState
Popis: Získá aktuální stav zadaného OpenHAB itemu.
Vstup:
{ "itemName": "string" }(kdeitemNameje název OpenHAB itemu)Výstup:
{ "state": "string" }(aktuální stav itemu)
sendCommand
Popis: Odešle příkaz zadanému OpenHAB itemu.
Vstup:
{ "itemName": "string", "command": "string" }(kdeitemNameje název OpenHAB itemu acommandje příkaz k odeslání)Výstup:
{ "success": boolean }(indikuje, zda byl příkaz úspěšně odeslán)
Struktura Projektu
Klíčové soubory a adresáře projektu:
src/config.ts: Zodpovídá za načítání a validaci konfiguračních proměnných z.envsouboru.src/openhabApi.ts: Obsahuje funkce pro komunikaci s OpenHAB REST API (získání stavu, odeslání příkazu).src/operations.ts: Implementuje logiku pro jednotlivé MCP operace (getItemState,sendCommand) s využitímopenhabApi.ts.src/server/server.ts: Hlavní soubor MCP serveru. Inicializuje server a registruje dostupné MCP operace definované voperations.ts..env: Soubor pro uložení konfiguračních proměnných (není součástí repozitáře).package.json: Definuje závislosti projektu a skripty pro spuštění.tsconfig.json: Konfigurace TypeScript kompilátoru.
Spuštění
Instalace závislostí
Sestavení (Build)
Pro produkční nasazení je potřeba projekt sestavit (přeložit TypeScript na JavaScript):
nebo přímo pomocí TypeScript kompilátoru:
Spuštění (Vývoj)
Pro spuštění serveru v režimu vývoje s automatickým restartem při změnách:
Spuštění (Produkce)
Po úspěšném sestavení spusťte server pomocí: