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-在命名空间中列出Podk8s_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 install2.配置环境
复制示例环境文件并配置您的设置:
cp .env.example .env编辑 .env 并设置:
HA_URL-您的家庭助理URL(例如。,http://homeassistant.local:8123)HA_TOKEN-Home Assistant长期访问令牌K8S_CONFIG-kubeconfig文件的路径(可选,如果未设置,将使用默认路径)
3.建设项目
npm run build4.运行服务器
npm start对于自动重建的开发:
npm run watch配置
家庭助手
- 在Home Assistant中创建长期访问令牌:
- 转到Home Assistant中的个人资料 - 滚动到“长期访问令牌” - 点击“创建令牌” - 将令牌复制到您的 .env 文件
Kubernetes
服务器支持多种kubeconfig选项:
- 集
K8S_CONFIG到特定的kubeconfig文件路径 - 留空以使用默认kubeconfig(
~/.kube/config) - 如果在Kubernetes pod中运行,将在集群配置中尝试
部署
选项1:在专用服务器上运行(推荐)
- 在Proxmox上配置Ubuntu/Kali服务器
- 安装Node.js(v18或更高版本)
- 克隆此存储库
- 按照上述设置步骤进行操作
- 使用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"
}
}
}
}状态
准备测试 -服务器实现完成。已准备好安装依赖项并进行测试。
