homelab-mcp
Allows configuration and management of AdGuard Home DNS filtering and ad blocking.
Provides tools to manage Docker containers, run Compose projects, and deploy applications on a devbox.
Enables version control operations such as checking status, pulling, viewing log, and cloning repositories.
Allows interaction with Grafana API for dashboards and monitoring.
Provides tools to manage Plex media server: libraries, search, sessions, watch history, and library scans.
Enables querying Prometheus API for metrics and monitoring of infrastructure.
Provides full management of Proxmox VE nodes, virtual machines, and LXC containers.
Allows monitoring and management of QNAP NAS storage health and services.
Provides tools for managing movies in Radarr: search, add, remove, queue monitoring, and path mappings.
Provides tools for managing TV series in Sonarr: search, add, remove, queue monitoring, and path mappings.
Allows sending notifications and alerts via Telegram bot.
Enables monitoring of services via Uptime Kuma API for uptime and status checks.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@homelab-mcpset up my homelab"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
homelab-mcp
MCP server that gives AI assistants full control of a Proxmox homelab — manage VMs and containers, deploy Docker projects, monitor services, control the media stack, and check storage health, all from conversation.
65+ tools across 17 domains. Modular architecture designed for AI-assisted extensibility.
AI Setup
No manual config needed. The server includes an AI-native setup wizard. Just connect it to your MCP client and say:
"Set up my homelab" or "Configure the MCP server"
The setup wizard scans your configuration, guides you through each setting interactively, saves your answers, and verifies connectivity — all through conversation. Credentials are never exposed to the AI; the wizard masks passwords, API keys, and tokens before returning any results.
Related MCP server: HA Vibecode Agent
Quick start
Prerequisites
Node.js 20+
A Proxmox VE host reachable over the network
A devbox (any SSH-accessible Linux host running Docker)
(Optional) Media services: Plex, Radarr, Sonarr, SABnzbd, Overseerr, Prowlarr
(Optional) Monitoring: Prometheus, Grafana, Uptime Kuma
Install
From npm (recommended):
npm install -g homelab-mcp
# Or locally in your project:
npm install homelab-mcpFrom source (for contributors):
git clone https://github.com/Nainounen/homelab-mcp.git
cd homelab-mcp
npm install
npm run buildDocker (optional)
A Dockerfile is provided for containerized deployments:
npm run build
cp .env.example .env # edit with your credentials
docker compose up -dFor most users, running directly with Node.js (no Docker) is simpler — the MCP server communicates over stdio.
Connect to your MCP client
Add to your MCP client's config file. For Claude Code, that's ~/.claude/claude_mcp_config.json:
{
"mcpServers": {
"homelab": {
"command": "npx",
"args": ["homelab-mcp"],
"cwd": "/path/to/your/homelab-config"
}
}
}Place your .env file in the cwd directory (copy .env.example from this repo as a starting point). No secrets go in the MCP config — the server loads .env from its working directory.
Then just say "set up my homelab" — the AI-native setup wizard will guide you through the rest.
Configuration
All settings live in .env. See .env.example for the full template. The server starts with the services you configure — any service whose env vars are missing is skipped with a warning.
Required (server won't start without these)
Variable | Description |
| Proxmox API access |
| Proxmox auth |
| Devbox SSH access |
| Devbox SSH auth |
| Radarr API |
| Sonarr API |
| Prowlarr API |
| SABnzbd API |
| Overseerr API |
Optional (skipped with a warning if missing)
Variable | Service |
| QNAP NAS |
| Plex |
| Tautulli analytics |
| Bazarr subtitles |
| AdGuard Home |
| Proxmox Backup Server |
| Lidarr music |
| Readarr books |
| Uptime Kuma |
| Prometheus API |
| Grafana API |
| Telegram notifications |
Security settings
Variable | Default | Description |
|
| Set to |
|
| Set to |
|
| Set to |
Tools reference
Infrastructure
Tool | Description |
| List Proxmox nodes with CPU, RAM, uptime |
| List all VMs and LXC containers |
| Start a VM or container |
| Stop a VM or container |
| Restart a VM or container |
| Detailed metrics for one VM/CT |
| Node-level CPU, RAM, disk, load |
| Create a new Debian 12 LXC container |
| Tail task log for a VM/CT |
| Run a shell command on Proxmox host (dangerous commands blocked) |
Devbox & Docker
Tool | Description |
| Run a shell command on the devbox (dangerous commands blocked) |
| Read a file (max 100 KB) |
| Write a file, auto-creates parent dirs (max 1 MB) |
| List directory contents |
| Show running Docker containers |
| Run compose up/down/restart/pull/logs |
| Git status, pull, log, or clone a repo |
| Deploy: git pull → compose pull → compose up → status |
| Health check for a deployed project |
| Scan a base path for compose projects |
Media — download & library
Tool | Description |
| Search for a movie by title |
| Add a movie and trigger download search |
| List all movies with download status |
| Remove a movie (optionally delete files) |
| Active movie downloads with progress |
| Re-search indexers for a movie |
| Recent download history |
| Show available releases and rejections |
| Remove all items from download queue |
| Clear the release blocklist |
| Blocklist a bad release and retry |
| List remote path mappings |
| Add/update a path mapping |
| Search for a TV series by title |
| Add a series and trigger download |
| List all series with episode progress |
| Remove a series (optionally delete files) |
| Active episode downloads with progress |
| Re-search for missing episodes |
| Search for a specific season |
| Show releases and rejections for a season |
| Blocklist and retry a failed download |
| Clear the download queue |
| Clear the release blocklist |
| List remote path mappings |
| Add/update a path mapping |
| Download speed, ETA, disk space, queue size |
| Active NZB downloads with progress |
| Recent download history |
| Pause downloads |
| Resume downloads |
| Delete a queue item by NZO ID |
| List indexers with status |
| Sync indexers to Radarr/Sonarr |
| Test all (or one) indexer |
| Search for a music artist |
| Add an artist to Lidarr |
| List all artists with album counts |
| Remove an artist |
| Active music downloads |
| Search for a book |
| Add a book to Readarr |
| List all books |
| Active book downloads |
Media — Plex & requests
Tool | Description |
| List Plex libraries with item counts |
| Search across all libraries |
| Who is streaming, what, transcode/direct play |
| Recently added movies and episodes |
| Trigger a library scan |
| Permanently delete by ratingKey |
| Recent watch history across users |
| List media requests from family |
| Approve a pending request |
| Decline a request |
| Delete a request |
| Request statistics |
| Current Plex streams (Tautulli) |
| Plex watch history (Tautulli) |
| 30-day play stats |
| Wanted subtitle counts |
| Trigger manual subtitle download |
Media — operational
Tool | Description |
| Running container status and uptime |
| Tail logs for a media container |
| Restart a media container |
| All-in-one: Proxmox, containers, downloads, library, storage, GPU |
| GPU temp, util, VRAM, power |
| SSH config and Proxmox firewall status |
Monitoring & observability
Tool | Description |
| Quick CPU, RAM, disk, network, container health |
| Run an arbitrary PromQL query |
| Historical metric trends |
| List all dashboards |
| Get panel list for a dashboard |
| Query actual data from a panel |
| Monitor up/down status and latency |
Storage, network & DNS
Tool | Description |
| QNAP NAS: RAID, drive temps, storage |
| SMART health per drive |
| Per-share usage and LVM |
| RAID array health check |
| PBS datastore usage |
| Recent backup snapshots |
| Backup/verify/GC task history |
| DNS query stats and block rate |
| Check if a domain is blocked |
| Enable/disable DNS filtering |
| Wake-on-LAN magic packet |
| Tailscale peers and status |
Updates, notifications & meta
Tool | Description |
| Check for newer Docker images |
| Pull + restart a container |
| Send a message to Telegram |
| Ping all configured services, report reachable/down + latency |
| Start here — lists all available tools |
| AI-guided setup wizard — configure |
Architecture
src/
├── {service}.ts # Layer 1: HTTP/SSH client factory
├── tools/{service}.ts # Layer 2: Zod schemas + implementations
├── modules/{service}.ts # Layer 3: Tool definitions + handler router
├── modules/registry.ts # Central module registry
└── index.ts # MCP server entry pointEach integration follows the same three-file pattern. Adding a new service means creating these three files and registering it in the registry. The scaffolding script handles the boilerplate:
npm run new-module -- tautulliSee CONTRIBUTING.md for the full guide.
Security
Credentials: All secrets live in
.env, which is gitignored. Never commit it.SSH host keys: Verification is off by default (homelab hosts change keys often). Set
SSH_STRICT_HOST_KEY=trueto enable it.TLS: Proxmox/PBS self-signed certs — verification off by default. Set
PROXMOX_TLS_VERIFY=true/PBS_TLS_VERIFY=trueif you have trusted certs.Command safety:
exectools block destructive commands (rm -rf /,mkfs,shutdown, etc.).Error sanitization: Error messages returned to the MCP client are sanitized — full details go to stderr.
See SECURITY.md for details.
License
MIT — see LICENSE.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Nainounen/homelab-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server