by SikamikanikoBG
A self‑hosted, single‑page dashboard that visualizes GPU usage, containers, systemd services, disks, and health across multiple hosts, with a built‑in read‑only MCP server enabling AI agents to query the same data.
HomeLab Monitor provides a unified, browser‑based view of an entire home‑lab or AI rig. It aggregates data from GPUs, Docker containers, systemd services, and filesystem usage on any number of machines reachable via SSH—Linux, Raspberry Pi, or Windows—without requiring agents on the remote hosts.
docker-compose.yml and start the stack:
curl -fsSLO https://raw.githubusercontent.com/SikamikanikoBG/homelab-monitor/main/docker-compose.yml
docker compose up -d
http://<your‑host>:9800 in a browser.9810. Set ENABLE_MCP=1 (default) in the compose environment to expose it. AI agents can then connect using a URL like http://YOUR-HUB:9810/mcp.SAMPLE_INTERVAL, RETENTION_DAYS, PRESSURE_FREE_MB, PORT, and alert settings via the docker-compose.yml environment: block./metrics for external scraping, plus a ready‑made Grafana dashboard.Q: Do I need a GPU on the host running the dashboard?
A: No. The dashboard works without a GPU; GPU panels become active only when a GPU is detected on any monitored host.
Q: How is data collected from remote machines?
A: The hub sends a lightweight Python/PowerShell probe over SSH; nothing is persisted on the remote side.
Q: Is the MCP server writable?
A: It is read‑only by design; there are no write tools, so agents can only query data.
Q: Can I disable the MCP server?
A: Yes, set ENABLE_MCP=0 in the compose environment to run only the dashboard.
Q: What storage does the dashboard use?
A: SQLite files (gpu.db, etc.) are stored under ./data and survive container restarts.
Q: How are alerts configured?
A: Through environment variables and the web UI; supported targets include Discord webhooks and ntfy.sh endpoints.
Q: Is there any cloud dependency?
A: No. All components run locally; the only outbound call is an optional daily GitHub‑releases check, which can be disabled via CHECK_UPDATES=false.
One page for your whole home lab & AI rig — GPU, containers, services, disks. No agents, no Prometheus/Grafana, no cloud.
Your home lab grew into a couple of machines, a Pi, and a GPU that's mysteriously always busy. HomeLab Monitor gives you one self-hosted page that answers the real questions: which model is holding the GPU, which container is eating RAM, what's filling your disks, and is anything down — across every box over SSH: Linux, a Pi, even Windows. Readable from your phone over the VPN.
# Grab the compose file and go. No GPU required — the GPU panels just light up when one's present.
curl -fsSLO https://raw.githubusercontent.com/SikamikanikoBG/homelab-monitor/main/docker-compose.yml
docker compose up -d
Open http://<your-host>:9800 and you're done. Full options (from source, GPU toolkit, Windows/WSL2) → Install docs.
🆕 v0.14.0 — a built-in read-only MCP server: connect Claude (or any MCP client) to your homelab and explore it with full dashboard parity, no extra container. Release notes · changelog · MCP docs.

Full tab-by-tab tour → Features.
Open the Hosts tab, paste the hub's auto-generated SSH key onto each remote, and the hub starts polling it — no agents, just SSH + Python 3 (PowerShell on Windows). The hub pipes a small self-contained probe over SSH; nothing persists on the remote.
Onboarding, Windows setup, and the security model → Multi-machine docs.
Set these under environment: in docker-compose.yml (all optional):
| Variable | Default | Meaning |
|---|---|---|
SAMPLE_INTERVAL |
10 |
Seconds between samples |
RETENTION_DAYS |
180 |
How long history is kept |
PRESSURE_FREE_MB |
2048 |
Free VRAM below this counts as "pressure" |
PORT |
9800 |
Dashboard port |
MCP_PORT |
9810 |
Port for the built-in read-only MCP server |
ENABLE_MCP |
1 |
Set 0 to run the dashboard without the MCP server |
WATCH_CONTAINERS |
— | Extra containers to scan for OOM (comma-separated) |
WATCH_SERVICES |
— | systemd units to always show, even vendor ones (comma-separated) |
CHECK_UPDATES |
true |
Set false to disable the daily GitHub-releases check (no outbound calls) |
History lives in ./data/gpu.db (a bind mount), so it survives restarts and upgrades. Alerts, the systemd D-Bus mount, and per-server tuning → Configuration docs.
The hub stitches nvidia-smi, the Docker API, model-server APIs (Ollama, vLLM, llama.cpp, A1111, …), systemd D-Bus, and /proc + /sys into one sampled view, persisted to SQLite and downsampled on read so a six-month range loads as fast as the last hour. Single page, vendored Chart.js, no build step.
/metrics Prometheus endpoint + Grafana dashboard → Prometheus & GrafanaYour homelab is now legible to AI agents — point a client at one URL and it can see every host, container, GPU and disk. Read-only, no extra setup.
HomeLab Monitor isn't just a dashboard for you anymore; it's context for your AI agent too. A read-only MCP server is built into the same container (served on :9810) — so Claude, Claude Code, or any MCP client connects in one line and explores your whole lab through 12 named tools, with the same coverage you see on the dashboard: hosts, containers, systemd services, GPU and who's driving it, per-process RAM, AI model servers, disk treemaps, history and alerts.
# the dashboard is on :9800; the MCP server rides along on :9810
claude mcp add --transport http homelab http://YOUR-HUB:9810/mcp
Once connected, skip the tab-hunting and just ask — the agent picks the right tools:
/backup? Give me the biggest folders and flag anything that looks like runaway logs."Read-only by design — there are no write tools, so an agent can look but never touch your fleet. Turn it off anytime with ENABLE_MCP=0. Full tool list & setup → MCP docs.
This is a host monitor: it runs with host access and a read-only Docker socket, root mount, and D-Bus socket — a broad footprint by design. Keep it behind your LAN/VPN/firewall and don't expose it to the public internet. Details → docs.
If HomeLab Monitor saves you a browser tab or two, a ⭐ on GitHub genuinely helps other home-labbers find it. Thank you!
Issues and PRs are very welcome — especially new model-server probes, new monitors, and GPU back-ends. This is a hobby tool meant to help fellow home-labbers, so be kind. See CONTRIBUTING.md.
MIT — see LICENSE.
Please log in to share your review and rating for this MCP.
Explore related MCPs that share similar capabilities and solve comparable challenges
by netdata
Delivers real‑time, per‑second infrastructure monitoring with zero‑configuration agents, on‑edge machine‑learning anomaly detection, and built‑in dashboards.
by Arize-ai
Open-source AI observability platform enabling tracing, evaluation, dataset versioning, experiment tracking, prompt management, and interactive playground for LLM applications.
by msgbyte
Provides integrated website traffic analysis, uptime checking, and server health monitoring in a single self‑hosted platform.
by grafana
Provides programmatic access to a Grafana instance and its surrounding ecosystem through the Model Context Protocol, enabling AI assistants and other clients to query and manipulate dashboards, datasources, alerts, incidents, on‑call schedules, and more.
by dynatrace-oss
Provides a local server that enables real‑time interaction with the Dynatrace observability platform, exposing tools for querying data, retrieving problems, sending Slack notifications, and integrating AI assistance.
by pydantic
Provides tools to retrieve and query OpenTelemetry trace and metric data from Pydantic Logfire, allowing LLMs to analyze distributed traces and run arbitrary SQL queries against telemetry records.
by aliyun
Unifies ACK cluster management, native Kubernetes operations, observability, security audit and diagnostic capabilities into a single AI‑native toolset, allowing natural‑language interaction with AI assistants to perform complex container‑oriented AIOps tasks.
by VictoriaMetrics-Community
Provides a Model Context Protocol server exposing read‑only VictoriaMetrics APIs, enabling seamless monitoring, observability, and automation through AI‑driven assistants.
by GeLi2001
Enables interaction with the Datadog API through a Model Context Protocol server, providing access to monitors, dashboards, metrics, logs, events, and incident data.