NestDaddy

Homelab Infra Mcp

io.github.seayniclabs/homelab-infra-mcp ยท v2.1.1

Homelab: Nginx Proxy Manager, Docker and Cloudflare DNS, with approval for every change.

Connect Runs on your machine

Terminal
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
claude_desktop_config.json
{
  "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>"
      }
    }
  }
}
~/.cursor/mcp.json
{
  "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>"
      }
    }
  }
}
.vscode/mcp.json
{
  "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

NameDescription
HOMELAB_PROXY_URL
Optional
Nginx Proxy Manager address, e.g. http://localhost:81
HOMELAB_PROXY_EMAIL
Optional
Nginx Proxy Manager admin email
HOMELAB_PROXY_PASSWORD
Optional, secret
Nginx Proxy Manager admin password
HOMELAB_DOCKER_HOST
Optional
Docker engine address, e.g. unix:///var/run/docker.sock
HOMELAB_DOCKER_PORTAINER_URL
Optional
Portainer base URL, instead of the Docker socket
HOMELAB_DOCKER_PORTAINER_TOKEN
Optional, secret
Portainer API key
HOMELAB_DOCKER_PORTAINER_ENDPOINT_ID
Optional
Portainer endpoint id (default 1)
HOMELAB_DNS_API_TOKEN
Optional, secret
Cloudflare API token with DNS edit permission
HOMELAB_DNS_ZONE_ID
Optional
Default Cloudflare zone id
HOMELAB_HOME_ASSISTANT_URL
Optional
Home Assistant address (module is off by default)
HOMELAB_HOME_ASSISTANT_TOKEN
Optional, secret
Home Assistant long-lived access token
HOMELAB_UPTIME_ENABLED
Optional
true turns on the Uptime Kuma module (off by default)
HOMELAB_UPTIME_URL
Optional
Uptime Kuma address
HOMELAB_UPTIME_API_KEY
Optional, secret
Uptime Kuma API key, read from /metrics
HOMELAB_TUNNEL_ENABLED
Optional
true turns on the Cloudflare Tunnel module (off by default)
HOMELAB_TUNNEL_API_TOKEN
Optional, secret
Cloudflare API token with tunnel edit permission
HOMELAB_TUNNEL_ACCOUNT_ID
Optional
Cloudflare account id that owns the tunnel
HOMELAB_TUNNEL_TUNNEL_ID
Optional
Cloudflare Tunnel id
HOMELAB_DNS_FILTER_ENABLED
Optional
true turns on the AdGuard Home module (off by default)
HOMELAB_DNS_FILTER_URL
Optional
AdGuard Home address
HOMELAB_DNS_FILTER_USERNAME
Optional
AdGuard Home login
HOMELAB_DNS_FILTER_PASSWORD
Optional, secret
AdGuard Home password
HOMELAB_SSO_ENABLED
Optional
true turns on the Authentik module (off by default)
HOMELAB_SSO_URL
Optional
Authentik address
HOMELAB_SSO_TOKEN
Optional, secret
Authentik API token
HOMELAB_SSO_FLOW_SLUG
Optional
Authentik authorization flow slug used for new proxy providers
HOMELAB_READ_ONLY
Optional
true refuses every change

Details

Package[email protected] (PYPI, stdio)
First published27 Oct 2026
Last updated27 Oct 2026
Registry nameio.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.