HomeLab MCP Server
Provides read-only tools for Home Assistant, enabling searching entities, retrieving entity states, and fetching statistics such as kWh meters.
Provides tools for interacting with Pi-hole instances, including listing configured Pi-holes, retrieving summaries and versions, top clients, and query logs with filtering by client, domain, or time.
Click on "Deploy 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 MCP Serverlist the clients on my UniFi network"
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 Server
Eigen MCP-server om je UniFi-netwerk te beheren via Claude. Proxmox en Home Assistant volgen later als apart uitbreidingsproject. Draait als Docker container (via Portainer) en is alleen bereikbaar binnen je eigen netwerk/VPN.
Zie INSTALLATIE.md voor de volledige stap-voor-stap gids afgestemd op jouw
Portainer-omgeving.
1. Server draaien via Portainer
Kopieer deze map naar je Docker-host.
Maak in Portainer een nieuwe stack aan met
docker-compose.yml, en vul de UniFi-variabelen in via het Environment variables-veld van het stack-formulier (geen los.envbestand nodig).Deploy de stack.
Wil je lokaal testen buiten Portainer? Kopieer dan .env.example naar .env
en draai:
docker compose up -d --buildControleer of hij draait:
docker compose logs -fJe moet zien:
Uvicorn running on http://0.0.0.0:8000
De server is nu bereikbaar op http://<proxmox-ip>:8000/mcp binnen je LAN/VPN.
Zet deze poort nooit publiek open op internet — dit is puur bedoeld voor
gebruik binnen je eigen netwerk of via VPN (bv. WireGuard/Tailscale).
Related MCP server: unifi-mcp
2. Verbinden vanuit Claude Code (eenvoudigst)
claude mcp add --transport http homelab http://<proxmox-ip>:8000/mcpTest daarna met bijvoorbeeld:
"Welke VM's draaien er op mijn Proxmox node?"
3. Verbinden vanuit Claude Desktop
Claude Desktop verwacht lokale (stdio) servers in zijn configuratiebestand.
Voor een remote server zoals deze gebruik je de mcp-remote bridge.
Open je claude_desktop_config.json:
macOS:
~/Library/Application Support/Claude/config.jsonWindows:
%APPDATA%\Claude\config.json
En voeg toe:
{
"mcpServers": {
"homelab": {
"command": "npx",
"args": ["-y", "mcp-remote", "http://<proxmox-ip>:8000/mcp"]
}
}
}Herstart Claude Desktop. Je zou dan de tools van deze server moeten zien
verschijnen (bijv. ha_list_entities, pm_vm_action, uf_client_action).
4. Beschikbare tools
Module | Tool | Omschrijving |
UniFi |
| Versie van UniFi Network (alleen lezen) |
UniFi |
| Netwerk-apparaten op de site |
UniFi |
| Verbonden clients (alle pagina's) |
UniFi |
| Netwerken/VLAN's (alleen lezen) |
UniFi |
| Wifi-netwerken/SSID's + VLAN (alleen lezen) |
UniFi |
| Firewallzones (alleen lezen) |
UniFi |
| Firewallregels tussen zones (alleen lezen) |
UniFi |
| ACL-regels op switchniveau (alleen lezen) |
UniFi |
| Client blokkeren/deblokkeren op MAC-adres |
Alle uf_list_*-tools ondersteunen paginering: standaard worden alle pagina's
opgehaald (fetch_all=true); met fetch_all=false plus offset/limit (max 200)
haal je één pagina op. De UniFi-API geeft zelf maar 25 items per aanroep.
| Pi-hole | pi_list_hosts | Geconfigureerde Pi-holes (alleen lezen) |
| Pi-hole | pi_summary | Samenvatting + versies per Pi-hole |
| Pi-hole | pi_top_clients | Topclients (alleen lezen) |
| Pi-hole | pi_queries | Query log, filter op client/domein/tijd |
| Home Assistant | ha_list_entities | Entiteiten zoeken (alleen lezen) |
| Home Assistant | ha_get_state | Status van één entiteit (alleen lezen) |
| Home Assistant | ha_statistic_ids | Beschikbare statistieken (kWh-tellers e.d.) |
| Home Assistant | ha_statistics | Uur-/dag-statistieken ophalen (alleen lezen) |
De Home Assistant-tools lezen alleen. Ze hebben HA_URL en HA_TOKEN nodig in de
omgeving van de container. Proxmox-tools staan gepland als los uitbreidingsproject.
5. Uitbreiden
Voeg een nieuw bestand toe in tools/, importeer mcp uit app.py, en
gebruik @mcp.tool boven een functie. Voeg de import toe in server.py
zodat de tool geregistreerd wordt bij het opstarten.
Veiligheidsopmerkingen
De API-tokens in
.envgeven aanzienlijke controle over je infrastructuur (VM's stoppen, firewall/clients blokkeren, Home Assistant-apparaten aansturen). Behandel.envals een wachtwoordbestand.Begin met testen via read-only tools (
*_list_*,*_get_*) voordat je Claude actiematige tools laat gebruiken (pm_vm_action,uf_client_action,ha_call_service).Overweeg een Proxmox API-token met beperkte rechten (niet root) aan te maken, specifiek voor deze server.
This server cannot be deployed
Maintenance
Related MCP Connectors
An MCP server that provides an API to LLMs to manage their JumpCloud resources.
MCP server unifying ERPs, CRMs, APIs and knowledge base for Claude, ChatGPT and Gemini.
MCP server for OpenAI API (chat completions, image generation, embeddings) via AceDataCloud
Hosted Amazon Seller and Vendor MCP server for Claude, ChatGPT, Cursor, Codex, Gemini, Copilot.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceMCP server providing Claude Code with full UniFi network management capabilities -- devices, clients, ports, bandwidth auditing, firewall policies, and traffic rules -- all through natural language.13 npm1MIT
- AlicenseAqualityCmaintenanceMCP server that turns Claude into a UniFi network specialist. Manage devices, optimize WiFi, audit security, and troubleshoot your network through natural language.3112 npm2MIT
- AlicenseNot gradedqualityCmaintenanceMCP server for UniFi Network Controller enabling AI assistants to manage UniFi infrastructure via natural language. It supports firewall rules, IPv6, and uses lazy/eager tool modes to minimize context usage.6Mozilla Public 2.0
- AlicenseNot gradedqualityBmaintenanceAn MCP server that enables Claude to manage Ubiquiti UniFi networks via the official API, including device/client oversight, network and WiFi configuration, firewall and ACL management, and guest access controls.13 npmMIT