Homelab: Nginx Proxy Manager, Docker and Cloudflare DNS, with approval for every change.
Connect Runs on your machine
claude mcp add homelab-infra-mcp -e HOMELAB_PROXY_URL=<HOMELAB_PROXY_URL> -e HOMELAB_PROXY_EMAIL=<HOMELAB_PROXY_EMAIL> -e HOMELAB_PROXY_PASSWORD=<HOMELAB_PROXY_PASSWORD> -e HOMELAB_DOCKER_HOST=<HOMELAB_DOCKER_HOST> -e HOMELAB_DOCKER_PORTAINER_URL=<HOMELAB_DOCKER_PORTAINER_URL> -e HOMELAB_DOCKER_PORTAINER_TOKEN=<HOMELAB_DOCKER_PORTAINER_TOKEN> -e HOMELAB_DOCKER_PORTAINER_ENDPOINT_ID=<HOMELAB_DOCKER_PORTAINER_ENDPOINT_ID> -e HOMELAB_DNS_API_TOKEN=<HOMELAB_DNS_API_TOKEN> -e HOMELAB_DNS_ZONE_ID=<HOMELAB_DNS_ZONE_ID> -e HOMELAB_HOME_ASSISTANT_URL=<HOMELAB_HOME_ASSISTANT_URL> -e HOMELAB_HOME_ASSISTANT_TOKEN=<HOMELAB_HOME_ASSISTANT_TOKEN> -e HOMELAB_UPTIME_ENABLED=<HOMELAB_UPTIME_ENABLED> -e HOMELAB_UPTIME_URL=<HOMELAB_UPTIME_URL> -e HOMELAB_UPTIME_API_KEY=<HOMELAB_UPTIME_API_KEY> -e HOMELAB_TUNNEL_ENABLED=<HOMELAB_TUNNEL_ENABLED> -e HOMELAB_TUNNEL_API_TOKEN=<HOMELAB_TUNNEL_API_TOKEN> -e HOMELAB_TUNNEL_ACCOUNT_ID=<HOMELAB_TUNNEL_ACCOUNT_ID> -e HOMELAB_TUNNEL_TUNNEL_ID=<HOMELAB_TUNNEL_TUNNEL_ID> -e HOMELAB_DNS_FILTER_ENABLED=<HOMELAB_DNS_FILTER_ENABLED> -e HOMELAB_DNS_FILTER_URL=<HOMELAB_DNS_FILTER_URL> -e HOMELAB_DNS_FILTER_USERNAME=<HOMELAB_DNS_FILTER_USERNAME> -e HOMELAB_DNS_FILTER_PASSWORD=<HOMELAB_DNS_FILTER_PASSWORD> -e HOMELAB_SSO_ENABLED=<HOMELAB_SSO_ENABLED> -e HOMELAB_SSO_URL=<HOMELAB_SSO_URL> -e HOMELAB_SSO_TOKEN=<HOMELAB_SSO_TOKEN> -e HOMELAB_SSO_FLOW_SLUG=<HOMELAB_SSO_FLOW_SLUG> -e HOMELAB_READ_ONLY=<HOMELAB_READ_ONLY> -- uvx homelab-infra-mcp==2.1.1
{
"mcpServers": {
"homelab-infra-mcp": {
"command": "uvx",
"args": [
"homelab-infra-mcp==2.1.1"
],
"env": {
"HOMELAB_PROXY_URL": "<HOMELAB_PROXY_URL>",
"HOMELAB_PROXY_EMAIL": "<HOMELAB_PROXY_EMAIL>",
"HOMELAB_PROXY_PASSWORD": "<HOMELAB_PROXY_PASSWORD>",
"HOMELAB_DOCKER_HOST": "<HOMELAB_DOCKER_HOST>",
"HOMELAB_DOCKER_PORTAINER_URL": "<HOMELAB_DOCKER_PORTAINER_URL>",
"HOMELAB_DOCKER_PORTAINER_TOKEN": "<HOMELAB_DOCKER_PORTAINER_TOKEN>",
"HOMELAB_DOCKER_PORTAINER_ENDPOINT_ID": "<HOMELAB_DOCKER_PORTAINER_ENDPOINT_ID>",
"HOMELAB_DNS_API_TOKEN": "<HOMELAB_DNS_API_TOKEN>",
"HOMELAB_DNS_ZONE_ID": "<HOMELAB_DNS_ZONE_ID>",
"HOMELAB_HOME_ASSISTANT_URL": "<HOMELAB_HOME_ASSISTANT_URL>",
"HOMELAB_HOME_ASSISTANT_TOKEN": "<HOMELAB_HOME_ASSISTANT_TOKEN>",
"HOMELAB_UPTIME_ENABLED": "<HOMELAB_UPTIME_ENABLED>",
"HOMELAB_UPTIME_URL": "<HOMELAB_UPTIME_URL>",
"HOMELAB_UPTIME_API_KEY": "<HOMELAB_UPTIME_API_KEY>",
"HOMELAB_TUNNEL_ENABLED": "<HOMELAB_TUNNEL_ENABLED>",
"HOMELAB_TUNNEL_API_TOKEN": "<HOMELAB_TUNNEL_API_TOKEN>",
"HOMELAB_TUNNEL_ACCOUNT_ID": "<HOMELAB_TUNNEL_ACCOUNT_ID>",
"HOMELAB_TUNNEL_TUNNEL_ID": "<HOMELAB_TUNNEL_TUNNEL_ID>",
"HOMELAB_DNS_FILTER_ENABLED": "<HOMELAB_DNS_FILTER_ENABLED>",
"HOMELAB_DNS_FILTER_URL": "<HOMELAB_DNS_FILTER_URL>",
"HOMELAB_DNS_FILTER_USERNAME": "<HOMELAB_DNS_FILTER_USERNAME>",
"HOMELAB_DNS_FILTER_PASSWORD": "<HOMELAB_DNS_FILTER_PASSWORD>",
"HOMELAB_SSO_ENABLED": "<HOMELAB_SSO_ENABLED>",
"HOMELAB_SSO_URL": "<HOMELAB_SSO_URL>",
"HOMELAB_SSO_TOKEN": "<HOMELAB_SSO_TOKEN>",
"HOMELAB_SSO_FLOW_SLUG": "<HOMELAB_SSO_FLOW_SLUG>",
"HOMELAB_READ_ONLY": "<HOMELAB_READ_ONLY>"
}
}
}
}
{
"mcpServers": {
"homelab-infra-mcp": {
"command": "uvx",
"args": [
"homelab-infra-mcp==2.1.1"
],
"env": {
"HOMELAB_PROXY_URL": "<HOMELAB_PROXY_URL>",
"HOMELAB_PROXY_EMAIL": "<HOMELAB_PROXY_EMAIL>",
"HOMELAB_PROXY_PASSWORD": "<HOMELAB_PROXY_PASSWORD>",
"HOMELAB_DOCKER_HOST": "<HOMELAB_DOCKER_HOST>",
"HOMELAB_DOCKER_PORTAINER_URL": "<HOMELAB_DOCKER_PORTAINER_URL>",
"HOMELAB_DOCKER_PORTAINER_TOKEN": "<HOMELAB_DOCKER_PORTAINER_TOKEN>",
"HOMELAB_DOCKER_PORTAINER_ENDPOINT_ID": "<HOMELAB_DOCKER_PORTAINER_ENDPOINT_ID>",
"HOMELAB_DNS_API_TOKEN": "<HOMELAB_DNS_API_TOKEN>",
"HOMELAB_DNS_ZONE_ID": "<HOMELAB_DNS_ZONE_ID>",
"HOMELAB_HOME_ASSISTANT_URL": "<HOMELAB_HOME_ASSISTANT_URL>",
"HOMELAB_HOME_ASSISTANT_TOKEN": "<HOMELAB_HOME_ASSISTANT_TOKEN>",
"HOMELAB_UPTIME_ENABLED": "<HOMELAB_UPTIME_ENABLED>",
"HOMELAB_UPTIME_URL": "<HOMELAB_UPTIME_URL>",
"HOMELAB_UPTIME_API_KEY": "<HOMELAB_UPTIME_API_KEY>",
"HOMELAB_TUNNEL_ENABLED": "<HOMELAB_TUNNEL_ENABLED>",
"HOMELAB_TUNNEL_API_TOKEN": "<HOMELAB_TUNNEL_API_TOKEN>",
"HOMELAB_TUNNEL_ACCOUNT_ID": "<HOMELAB_TUNNEL_ACCOUNT_ID>",
"HOMELAB_TUNNEL_TUNNEL_ID": "<HOMELAB_TUNNEL_TUNNEL_ID>",
"HOMELAB_DNS_FILTER_ENABLED": "<HOMELAB_DNS_FILTER_ENABLED>",
"HOMELAB_DNS_FILTER_URL": "<HOMELAB_DNS_FILTER_URL>",
"HOMELAB_DNS_FILTER_USERNAME": "<HOMELAB_DNS_FILTER_USERNAME>",
"HOMELAB_DNS_FILTER_PASSWORD": "<HOMELAB_DNS_FILTER_PASSWORD>",
"HOMELAB_SSO_ENABLED": "<HOMELAB_SSO_ENABLED>",
"HOMELAB_SSO_URL": "<HOMELAB_SSO_URL>",
"HOMELAB_SSO_TOKEN": "<HOMELAB_SSO_TOKEN>",
"HOMELAB_SSO_FLOW_SLUG": "<HOMELAB_SSO_FLOW_SLUG>",
"HOMELAB_READ_ONLY": "<HOMELAB_READ_ONLY>"
}
}
}
}
{
"servers": {
"homelab-infra-mcp": {
"type": "stdio",
"command": "uvx",
"args": [
"homelab-infra-mcp==2.1.1"
],
"env": {
"HOMELAB_PROXY_URL": "<HOMELAB_PROXY_URL>",
"HOMELAB_PROXY_EMAIL": "<HOMELAB_PROXY_EMAIL>",
"HOMELAB_PROXY_PASSWORD": "<HOMELAB_PROXY_PASSWORD>",
"HOMELAB_DOCKER_HOST": "<HOMELAB_DOCKER_HOST>",
"HOMELAB_DOCKER_PORTAINER_URL": "<HOMELAB_DOCKER_PORTAINER_URL>",
"HOMELAB_DOCKER_PORTAINER_TOKEN": "<HOMELAB_DOCKER_PORTAINER_TOKEN>",
"HOMELAB_DOCKER_PORTAINER_ENDPOINT_ID": "<HOMELAB_DOCKER_PORTAINER_ENDPOINT_ID>",
"HOMELAB_DNS_API_TOKEN": "<HOMELAB_DNS_API_TOKEN>",
"HOMELAB_DNS_ZONE_ID": "<HOMELAB_DNS_ZONE_ID>",
"HOMELAB_HOME_ASSISTANT_URL": "<HOMELAB_HOME_ASSISTANT_URL>",
"HOMELAB_HOME_ASSISTANT_TOKEN": "<HOMELAB_HOME_ASSISTANT_TOKEN>",
"HOMELAB_UPTIME_ENABLED": "<HOMELAB_UPTIME_ENABLED>",
"HOMELAB_UPTIME_URL": "<HOMELAB_UPTIME_URL>",
"HOMELAB_UPTIME_API_KEY": "<HOMELAB_UPTIME_API_KEY>",
"HOMELAB_TUNNEL_ENABLED": "<HOMELAB_TUNNEL_ENABLED>",
"HOMELAB_TUNNEL_API_TOKEN": "<HOMELAB_TUNNEL_API_TOKEN>",
"HOMELAB_TUNNEL_ACCOUNT_ID": "<HOMELAB_TUNNEL_ACCOUNT_ID>",
"HOMELAB_TUNNEL_TUNNEL_ID": "<HOMELAB_TUNNEL_TUNNEL_ID>",
"HOMELAB_DNS_FILTER_ENABLED": "<HOMELAB_DNS_FILTER_ENABLED>",
"HOMELAB_DNS_FILTER_URL": "<HOMELAB_DNS_FILTER_URL>",
"HOMELAB_DNS_FILTER_USERNAME": "<HOMELAB_DNS_FILTER_USERNAME>",
"HOMELAB_DNS_FILTER_PASSWORD": "<HOMELAB_DNS_FILTER_PASSWORD>",
"HOMELAB_SSO_ENABLED": "<HOMELAB_SSO_ENABLED>",
"HOMELAB_SSO_URL": "<HOMELAB_SSO_URL>",
"HOMELAB_SSO_TOKEN": "<HOMELAB_SSO_TOKEN>",
"HOMELAB_SSO_FLOW_SLUG": "<HOMELAB_SSO_FLOW_SLUG>",
"HOMELAB_READ_ONLY": "<HOMELAB_READ_ONLY>"
}
}
}
}
Replace the values in angle brackets with your own. Keys stay on your machine; we never see them.
Tools
This server runs locally, so its tools are listed by your MCP client once it starts.
Environment variables
| Name | Description |
|---|---|
HOMELAB_PROXY_URLOptional | Nginx Proxy Manager address, e.g. http://localhost:81 |
HOMELAB_PROXY_EMAILOptional | Nginx Proxy Manager admin email |
HOMELAB_PROXY_PASSWORDOptional, secret | Nginx Proxy Manager admin password |
HOMELAB_DOCKER_HOSTOptional | Docker engine address, e.g. unix:///var/run/docker.sock |
HOMELAB_DOCKER_PORTAINER_URLOptional | Portainer base URL, instead of the Docker socket |
HOMELAB_DOCKER_PORTAINER_TOKENOptional, secret | Portainer API key |
HOMELAB_DOCKER_PORTAINER_ENDPOINT_IDOptional | Portainer endpoint id (default 1) |
HOMELAB_DNS_API_TOKENOptional, secret | Cloudflare API token with DNS edit permission |
HOMELAB_DNS_ZONE_IDOptional | Default Cloudflare zone id |
HOMELAB_HOME_ASSISTANT_URLOptional | Home Assistant address (module is off by default) |
HOMELAB_HOME_ASSISTANT_TOKENOptional, secret | Home Assistant long-lived access token |
HOMELAB_UPTIME_ENABLEDOptional | true turns on the Uptime Kuma module (off by default) |
HOMELAB_UPTIME_URLOptional | Uptime Kuma address |
HOMELAB_UPTIME_API_KEYOptional, secret | Uptime Kuma API key, read from /metrics |
HOMELAB_TUNNEL_ENABLEDOptional | true turns on the Cloudflare Tunnel module (off by default) |
HOMELAB_TUNNEL_API_TOKENOptional, secret | Cloudflare API token with tunnel edit permission |
HOMELAB_TUNNEL_ACCOUNT_IDOptional | Cloudflare account id that owns the tunnel |
HOMELAB_TUNNEL_TUNNEL_IDOptional | Cloudflare Tunnel id |
HOMELAB_DNS_FILTER_ENABLEDOptional | true turns on the AdGuard Home module (off by default) |
HOMELAB_DNS_FILTER_URLOptional | AdGuard Home address |
HOMELAB_DNS_FILTER_USERNAMEOptional | AdGuard Home login |
HOMELAB_DNS_FILTER_PASSWORDOptional, secret | AdGuard Home password |
HOMELAB_SSO_ENABLEDOptional | true turns on the Authentik module (off by default) |
HOMELAB_SSO_URLOptional | Authentik address |
HOMELAB_SSO_TOKENOptional, secret | Authentik API token |
HOMELAB_SSO_FLOW_SLUGOptional | Authentik authorization flow slug used for new proxy providers |
HOMELAB_READ_ONLYOptional | true refuses every change |
Details
| Package | [email protected] (PYPI, stdio) |
| First published | 27 Oct 2026 |
| Last updated | 27 Oct 2026 |
| Registry name | io.github.seayniclabs/homelab-infra-mcp |
More cloud and devops servers See all
Listing data from the official MCP registry. Status and tools from NestDaddy's daily check. Browse all MCP servers.
