Provides tools for managing reverse proxy hosts, SSL certificates, and proxy configurations, including listing hosts, checking certificate expiration, and enabling/disabling proxy hosts.
Enables management of DNS ad-blocking and monitoring, including viewing query statistics, top queries and blocked domains, toggling ad blocking, and analyzing query types.
Enables Docker management across multiple hosts, including listing environments and containers, managing container lifecycle (start/stop/restart), viewing statistics, and managing docker-compose stacks.
Provides tools for monitoring service availability, including retrieving status pages, monitoring heartbeat data, and viewing summaries of all configured monitors.
Homelab MCP
A modular MCP (Model Context Protocol) server for homelab service management. Provides unified access to multiple homelab services through a single MCP interface.
Features
Modular Architecture: Enable only the services you need
Unified Health Checks: Monitor all services from one endpoint
Docker Ready: Easy deployment to Unraid, Proxmox, or Kubernetes
Extensible: Easy to add new service integrations
Supported Services
Service | Description | Status |
Nginx Proxy Manager | Reverse proxy management, SSL certificates | ✅ Ready |
Pi-hole | DNS ad-blocking, query stats | ✅ Ready |
Uptime Kuma | Service availability monitoring | ✅ Ready |
Portainer | Docker management across hosts | ✅ Ready |
UPS NUT | UPS power monitoring | ✅ Ready |
Quick Start
1. Clone and Configure
2. Run with Docker
3. Run Locally (Development)
Configuration
Edit config.yaml to enable services and configure credentials:
Available Tools
Core Tools
homelab_health_check- Check health of all enabled serviceshomelab_list_services- List configured services and status
Nginx Proxy Manager
npm_list_proxy_hosts- List all proxy hostsnpm_list_ssl_certificates- List SSL certificatesnpm_get_proxy_host- Get proxy host detailsnpm_enable_proxy_host/npm_disable_proxy_host- Toggle hostsnpm_check_expiring_certificates- Find expiring SSL certs
Pi-hole
pihole_get_summary- DNS query statisticspihole_get_top_queries/pihole_get_top_blocked- Top domainspihole_enable/pihole_disable- Toggle ad blockingpihole_get_query_types- Query type breakdown
Uptime Kuma
uptime_get_status_page- Get status page infouptime_get_heartbeats- Monitor heartbeat datauptime_get_monitor_summary- Summary of all monitors
Portainer
portainer_list_endpoints- List Docker environmentsportainer_list_containers- List containers on endpointportainer_get_endpoint_stats- Container/image/volume statsportainer_container_action- Start/stop/restart containersportainer_list_stacks- List docker-compose stacks
UPS NUT
ups_get_status- Battery, load, runtime infoups_get_all_variables- All UPS variablesups_list_devices- List UPS devicesups_check_power_status- Quick power status check
Deployment
Docker Compose (Recommended)
Unraid
Copy files to
/mnt/user/appdata/homelab-mcp/Build and run:
Kubernetes
Adding New Services
Create a new directory under
homelab_mcp/services/Implement
ServiceBaseclass with:_create_client()- HTTP client setupregister_tools()- MCP tool registrationhealth_check()- Service health check
Add configuration model to
core/config.pyRegister in
server.py
MCP Client Configuration
Add to your MCP client (e.g., Windsurf):
License
MIT