使用说明
家庭实验室MCP
用于家庭实验室服务管理的模块化MCP(模型上下文协议)服务器。通过单个MCP接口提供对多个家庭实验室服务的统一访问。
特性
- 模块化架构:仅启用所需的服务
- 统一健康检查:从一个端点监视所有服务
- Docker就绪:轻松部署到Unraid、Proxmox或Kubernetes
- 可扩展:易于添加新的服务集成
支持服务列表
| 服务 | 描述 | 状态 |
|---|---|---|
| Nginx代理管理器 | 反向代理管理,SSL证书 | ✅ 准备好了 |
| Pi孔 | DNS广告拦截,查询统计信息 | ✅ 准备好了 |
| 正常运行时间Kuma | 服务可用性监控 | ✅ 准备好了 |
| 波特纳 | 跨主机的Docker管理 | ✅ 准备好了 |
| UPS坚果 | UPS电源监控 | ✅ 准备好了 |
| Netgear奥比 | WiFi网状系统管理 | ✅ 准备好了 |
| AdGuard主页 | DNS广告拦截替代方案 | ✅ 准备好了 |
| 技术 | DNS服务器管理 | ✅ 准备好了 |
| NetBox | DCIM/IPAM网络文档 | ✅ 准备好了 |
快速开始
1.克隆和配置
git clone https://github.com/HavartiBard/homelab-mcp.git
cd homelab-mcp
# Copy and edit configuration
cp config.example.yaml config.yaml
# Edit config.yaml with your service URLs and credentials
2.使用Docker运行
docker compose up -d
3.本地运行(开发)
# Install dependencies
pip install -e .
# Run server
python -m homelab_mcp.main
配置
编辑 config.yaml 要启用服务和配置凭据,请执行以下操作:
server:
host: "0.0.0.0"
port: 6971
transport: "streamable-http"
services:
nginx_proxy_manager:
enabled: true
url: "http://192.168.1.100:81"
username: "admin@example.com"
password: "your-password"
pihole:
enabled: true
url: "http://192.168.1.53"
api_key: "your-api-key"
# ... more services
可用工具
核心工具
homelab_health_check-检查所有已启用服务的运行状况homelab_list_services-列出已配置的服务和状态
Nginx代理管理器
npm_list_proxy_hosts-列出所有代理主机npm_list_ssl_certificates-列出SSL证书npm_get_proxy_host-获取代理主机详细信息npm_enable_proxy_host/npm_disable_proxy_host-切换主机npm_check_expiring_certificates-查找过期的SSL证书
Pi孔
pihole_get_summary-DNS查询统计pihole_get_top_queries/pihole_get_top_blocked-顶级域名pihole_enable/pihole_disable-切换广告拦截pihole_get_query_types-查询类型细分
正常运行时间Kuma
uptime_get_status_page-获取状态页面信息uptime_get_heartbeats-监测心跳数据uptime_get_monitor_summary-所有监视器摘要
波特纳
portainer_list_endpoints-列出Docker环境portainer_list_containers-列出端点上的容器portainer_get_endpoint_stats-容器/图像/体积统计portainer_container_action-启动/停止/重新启动容器portainer_list_stacks-列出docker组合堆栈
UPS坚果
ups_get_status-电池、负载、运行时间信息ups_get_all_variables-所有UPS变量ups_list_devices-列出UPS设备ups_check_power_status-快速电源状态检查
Netgear奥比
orbi_get_info-路由器型号、序列号、固件版本orbi_get_attached_devices-列出所有连接的设备,包括IP、MAC、信号强度orbi_get_traffic_meter-带宽使用统计数据(今天/每月)orbi_block_device-按MAC地址阻止设备orbi_allow_device-解锁以前被阻止的设备orbi_check_firmware-检查可用的固件更新orbi_get_guest_wifi_status-获取访客网络状态(2.4GHz/5GHz)orbi_set_guest_wifi-启用/禁用访客WiFi网络orbi_reboot-重新启动路由器(导致临时网络中断)
部署
Docker Compose(推荐)
docker compose up -d
取消突袭
- 将文件复制到
/mnt/user/appdata/homelab-mcp/ - 构建并运行:
docker build -t homelab-mcp .
docker run -d --name homelab-mcp \
-p 6971:6971 \
-v /mnt/user/appdata/homelab-mcp/config.yaml:/app/config.yaml:ro \
homelab-mcp
Kubernetes
apiVersion: apps/v1
kind: Deployment
metadata:
name: homelab-mcp
spec:
replicas: 1
selector:
matchLabels:
app: homelab-mcp
template:
metadata:
labels:
app: homelab-mcp
spec:
containers:
- name: homelab-mcp
image: homelab-mcp:latest
ports:
- containerPort: 6971
volumeMounts:
- name: config
mountPath: /app/config.yaml
subPath: config.yaml
volumes:
- name: config
configMap:
name: homelab-mcp-config
添加新服务
- 在下创建新目录
homelab_mcp/services/ - 实施
ServiceBase类与:_create_client()-HTTP客户端设置register_tools()-MCP工具注册health_check()-服务健康检查
- 将配置模型添加到
core/config.py - 注册于
server.py
MCP客户端配置
添加到您的MCP客户端(例如Windsurf):
{
"mcpServers": {
"homelab": {
"serverType": "streamable-http",
"url": "http://192.168.1.100:6971/mcp"
}
}
}
许可证
麻省理工学院
