Home Assistant与Kubernetes工具集

一个提供与Home Assistant和Kubernetes交互的工具集的MCP服务器,适用于智能家居自动化和容器编排管理。

  • by Pete1979
  • JavaScript
  • 本地部署
  • 更新于
在 GitHub 查看 Pete1979/mcp-homeassistant-kubernetes

使用说明

MCP服务器-家庭助理和Kubernetes工具

项目概述

MCP(模型上下文协议)服务器,提供与以下对象交互的工具:

  • 家庭助手:获取/设置实体状态,触发自动,获取设备信息
  • Kubernetes:获取Pod、部署、服务、命名空间、应用清单、获取日志

建筑

服务器位置

  • 主机:运行Kali Linux服务器或Ubuntu服务器的专用服务器
  • 平台:家庭网络中的Proxmox VM
  • 网络:与Home Assistant和Kubernetes集群相同的网络

互联系统

  • 家庭助手:在网络中的专用硬件上运行
  • Kubernetes集群:在Proxmox集群中运行
  • 所有系统均可通过本地网络访问

实现语言

  • 使用MCP SDK的TypeScript

要实现的功能

主页辅助工具

  • ha_get_state -获取实体状态
  • ha_set_state -设置实体状态
  • ha_trigger_automation -触发自动化
  • ha_get_devices -获取设备信息
  • ha_call_service -呼叫总部助理服务

Kubernetes工具

  • k8s_get_pods -在命名空间中列出Pod
  • k8s_get_deployments -列出部署
  • k8s_get_services -列出服务
  • k8s_get_namespaces -列出命名空间
  • k8s_apply_manifest -应用YAML清单
  • k8s_get_logs -获取pod日志
  • k8s_describe_resource -描述Kubernetes资源

项目结构

mcp/
├── src/
│   ├── index.ts          # Main MCP server implementation
│   ├── config.ts         # Configuration loader
│   ├── homeassistant.ts  # Home Assistant client
│   └── kubernetes.ts     # Kubernetes client
├── package.json
├── tsconfig.json
├── .env.example
└── README.md

设置步骤

1.安装依赖项

npm install

2.配置环境

复制示例环境文件并配置您的设置:

cp .env.example .env

编辑 .env 并设置:

  • HA_URL -您的家庭助理URL(例如。,http://homeassistant.local:8123)
  • HA_TOKEN -Home Assistant长期访问令牌
  • K8S_CONFIG -kubeconfig文件的路径(可选,如果未设置,将使用默认路径)

3.建设项目

npm run build

4.运行服务器

npm start

对于自动重建的开发:

npm run watch

配置

家庭助手

  1. 在Home Assistant中创建长期访问令牌:
    • 转到Home Assistant中的个人资料
    • 滚动到“长期访问令牌”
    • 点击“创建令牌”
    • 将令牌复制到您的 .env 文件

Kubernetes

服务器支持多种kubeconfig选项:

  • 集 K8S_CONFIG 到特定的kubeconfig文件路径
  • 留空以使用默认kubeconfig(~/.kube/config)
  • 如果在Kubernetes pod中运行,将在集群配置中尝试

部署

选项1:在专用服务器上运行(推荐)

  1. 在Proxmox上配置Ubuntu/Kali服务器
  2. 安装Node.js(v18或更高版本)
  3. 克隆此存储库
  4. 按照上述设置步骤进行操作
  5. 使用PM2或systemd等流程管理器来保持其运行

选项2:在Kubernetes中运行

部署为具有适当服务帐户权限的pod,以访问Kubernetes API。

与MCP客户端一起使用

将此服务器添加到MCP客户端配置中。服务器通过stdio协议进行通信。

Claude Desktop的示例配置(~/Library/Application Support/Claude/claude_desktop_config.json):

{
  "mcpServers": {
    "homeassistant-kubernetes": {
      "command": "node",
      "args": ["/path/to/mcp/dist/index.js"],
      "env": {
        "HA_URL": "http://homeassistant.local:8123",
        "HA_TOKEN": "your_token_here",
        "K8S_CONFIG": "/path/to/kubeconfig"
      }
    }
  }
}

状态

准备测试 -服务器实现完成。已准备好安装依赖项并进行测试。