Labsco
MCP SERVER

Homelab MCP Server

by washyu

Homelab operations as tool calls: SSH discovery, service installs from templates, VM and container lifecycle, network mapping, Proxmox, Terraform and Ansible.

Network, Endpoint & Fleet Management
Summary
Preview variants on the operations that cannot be undone.

Removing a device, purging records, decommissioning a host — each has a matching preview call, so an agent can show its work before anything is destroyed. Credential handling is the other thing worth noting: register a host once and the server injects the credentials on every later connection, with key-based entries storing the key file path in the keyring rather than the key itself. Log output is filtered for credential redaction.

What it is

A Python MCP server for managing homelab infrastructure. It onboards a host by creating a managed admin user over SSH, then gives an assistant a broad surface — hardware discovery, service deployment, VM control, topology mapping — with credentials held in the OS keyring rather than typed each time.

What you get
  • Host onboarding and hardware discovery over SSH: create the managed user, confirm passwordless access, then gather hardware and software detail — `setup_mcp_admin`, `verify_mcp_admin`, `ssh_discover`, `ssh_execute_command`
  • Network topology: discover and map devices in bulk, read the sitemap, analyse the topology and track what changed — `discover_and_map`, `bulk_discover_and_map`, `get_network_sitemap`, `analyze_network_topology`, `get_device_changes`
  • Service installation from YAML templates — Jellyfin, Pi-hole, Ollama, Home Assistant and more — with requirement checks first — `list_available_services`, `check_service_requirements`, `install_service`, `get_service_status`
  • VM and container lifecycle for Docker and LXD workloads — `deploy_vm`, `control_vm`, `get_vm_status`, `list_vms`, `get_vm_logs`, `remove_vm`
  • Proxmox operations plus community script discovery — `list_proxmox_resources`, `create_proxmox_lxc`, `create_proxmox_vm`, `clone_proxmox_vm`, `manage_proxmox_vm`, `search_proxmox_scripts`
  • State-managed infrastructure with drift detection, backups and rollback, and Ansible playbook execution — `deploy_infrastructure`, `scan_infrastructure_drift`, `create_infrastructure_backup`, `rollback_infrastructure_changes`, `run_ansible_playbook`
  • Destructive operations paired with a preview variant that shows what would happen first — `remove_device_preview`, `purge_devices_preview`, `decommission_device_preview`
Requirements

SSH access to the machines you want managed. The server generates its own key pair on first run at `~/.ssh/mcp_admin_rsa`. Install with `uvx homelab-mcp` — the package is `homelab-mcp` (1.8.0 in pyproject) — or clone and run `uv sync && uv run python run_server.py`. Credentials are stored in the OS keyring, libsecret on Linux and Keychain on macOS, falling back to environment variables on headless servers. Proxmox credentials are registered the same way with `--type proxmox`.

Setup effort

One command — uvx homelab-mcp