home / mcp / homelab mcp server
Modular MCP server for homelab service management, providing unified access to multiple services and health checks.
Configuration
View docs{
"mcpServers": {
"havartibard-homelab-mcp": {
"url": "http://192.168.1.100:6971/mcp"
}
}
}Homelab MCP is a modular server that unifies access to multiple homelab services through a single MCP API. You can enable only the services you need, monitor health from one endpoint, and deploy it easily with Docker, on Unraid, Proxmox, or Kubernetes.
Connect your MCP client to the Homelab MCP server to manage and monitor your services from a single interface. You can use the remote MCP endpoint to integrate your tools, or run the server locally for development and testing.
Common workflows include running health checks across all enabled services, listing configured services and their status, and invoking per-service tools to manage specific resources such as proxies, DNS, monitoring, Docker endpoints, UPS status, or network devices.
If you run the server locally for development, use the development command to start the runtime and then connect your client to the local endpoint. For production use, prefer the containerized deployment options and point clients at the appropriate MCP URL.
Prerequisites you need before installation: Python and pip for development, Docker for containerized deployment, and git for cloning repositories.
Step-by-step installation and setup you can follow:
# 1. Clone the repository
git clone https://github.com/HavartiBard/homelab-mcp.git
cd homelab-mcp
# 2. Prepare configuration
cp config.example.yaml config.yaml
# Edit config.yaml with your service URLs and credentialsStep to run in development mode (local runtime): you will use Python to start the MCP server.
# Install dependencies
pip install -e .
# Run server locally (development)
python -m homelab_mcp.mainProduction or containerized deployment options are provided to simplify deployment in common environments.
# Docker Compose (recommended)
docker compose up -dUnraid deployment and Kubernetes deployment are also supported with explicit steps in their respective sections.
Configuration is done in the config.yaml file. The example shows how to enable services and provide credentials. You can enable and configure each service individually.
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: "[email protected]"
password: "your-password"
pihole:
enabled: true
url: "http://192.168.1.53"
api_key: "your-api-key"
# ... more servicesMCP client configuration enables you to connect from client applications. A typical client JSON includes the MCP server URL and the transport method. For example, you can configure a client to connect to a remote MCP endpoint.
Check health of all enabled services to verify they are functioning and reachable.
List configured services and their current status in the MCP configuration.
List all proxy hosts configured in Nginx Proxy Manager through MCP.
List SSL certificates managed by Nginx Proxy Manager.
Get details for a specific proxy host managed by Nginx Proxy Manager.
Enable a proxy host previously disabled in Nginx Proxy Manager.
Disable a proxy host in Nginx Proxy Manager.
Find SSL certificates that are nearing expiration.
Retrieve DNS query statistics from Pi-hole.
Show the top domain queries processed by Pi-hole.
Show the top blocked domains on Pi-hole.
Enable ad blocking by Pi-hole.
Disable ad blocking in Pi-hole.
Provide a breakdown of DNS query types seen by Pi-hole.
Get the status page information for Uptime Kuma monitors.
Retrieve heartbeat data from uptime monitors.
Summarize the status of all uptime Kuma monitors.
List Docker environments configured in Portainer.
List containers on a Portainer endpoint.
Get stats for containers, images, and volumes in Portainer.
Start, stop, or restart containers via Portainer.
List Docker Compose stacks managed by Portainer.
Get current UPS status such as battery level and runtime.
Retrieve all UPS variables exposed by the device.
List UPS devices available to MCP.
Quick check of the power status from UPS devices.
Fetch router model, serial, and firmware information for Netgear Orbi.
List connected devices with IP, MAC, and signal strength.
View bandwidth usage statistics today and month.
Block a device by MAC address on the Orbi network.
Unblock a previously blocked device on the Orbi network.
Check for available firmware updates on Orbi.
Get the status of guest WiFi networks.
Enable or disable guest WiFi networks on Orbi.
Reboot the Orbi router (causes temporary network outage).