Koskamo

Homelab MCP

An MCP server for homelab infrastructure management, allowing AI assistants to control Nginx Proxy Manager, Docker containers, and Cloudflare DNS records. It includes optional modules for Uptime Kuma, Cloudflare Tunnel, AdGuard Home, Authentik, and Home Assistant, with approval workflows before changes.

Package and access

Local package with source-attributed installation metadata. Koskamo does not execute packages during review.

Homelab MCP logo, by Seaynic LabsCommunity listingLocal stdioSource reviewed; not executedPublished by Seaynic Labs
You need:Install Homelab needs Python 3.11 or newer.
Vendor documentation

What you can do with it

  • Manage Nginx Proxy Manager proxy hosts and SSL certificates
  • Control Docker containers and images via local socket or Portainer
  • Manage Cloudflare DNS zones and records
  • Monitor Uptime Kuma status and manage Cloudflare Tunnels

Source and maintenance

Community listingRegistry 2.1.1MIT
Last repository push
Latest release
v2.1.1
Maintenance checked

Packages and installation

Source-provided package data. Koskamo has not executed or live-probed this package.

homelab-infra-mcp 2.1.1

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

Tools

Reported by the attributed source; not independently observed by Koskamo.

No tool definitions available.

Maintenance history

Public check and source-refresh events. Editorial and ownership records remain private.

  • · repository · passed · metadata changed · updated
  • · backfill · recorded · Pre-expansion baseline; unobserved rich metadata remains unknown

Connect from your client

Each snippet configures the same source-provided package; replace placeholders before use.

This server is operated by the named third party. Listing and endpoint checks are not an endorsement or a security audit. Review the operator's permissions, terms, and data handling before connecting. How listings are checked and corrected.

Cursor

Merge this local stdio configuration, replace every placeholder environment value, and restart Cursor. Koskamo has not executed this package.
Cursor configuration
{
  "mcpServers": {
    "homelab-mcp": {
      "command": "uvx",
      "args": [
        "homelab-infra-mcp==2.1.1"
      ],
      "env": {
        "HOMELAB_PROXY_URL": "<YOUR_HOMELAB_PROXY_URL>",
        "HOMELAB_PROXY_EMAIL": "<YOUR_HOMELAB_PROXY_EMAIL>",
        "HOMELAB_PROXY_PASSWORD": "<YOUR_HOMELAB_PROXY_PASSWORD>",
        "HOMELAB_DOCKER_HOST": "<YOUR_HOMELAB_DOCKER_HOST>",
        "HOMELAB_DOCKER_PORTAINER_URL": "<YOUR_HOMELAB_DOCKER_PORTAINER_URL>",
        "HOMELAB_DOCKER_PORTAINER_TOKEN": "<YOUR_HOMELAB_DOCKER_PORTAINER_TOKEN>",
        "HOMELAB_DOCKER_PORTAINER_ENDPOINT_ID": "<YOUR_HOMELAB_DOCKER_PORTAINER_ENDPOINT_ID>",
        "HOMELAB_DNS_API_TOKEN": "<YOUR_HOMELAB_DNS_API_TOKEN>",
        "HOMELAB_DNS_ZONE_ID": "<YOUR_HOMELAB_DNS_ZONE_ID>",
        "HOMELAB_HOME_ASSISTANT_URL": "<YOUR_HOMELAB_HOME_ASSISTANT_URL>",
        "HOMELAB_HOME_ASSISTANT_TOKEN": "<YOUR_HOMELAB_HOME_ASSISTANT_TOKEN>",
        "HOMELAB_UPTIME_ENABLED": "<YOUR_HOMELAB_UPTIME_ENABLED>",
        "HOMELAB_UPTIME_URL": "<YOUR_HOMELAB_UPTIME_URL>",
        "HOMELAB_UPTIME_API_KEY": "<YOUR_HOMELAB_UPTIME_API_KEY>",
        "HOMELAB_TUNNEL_ENABLED": "<YOUR_HOMELAB_TUNNEL_ENABLED>",
        "HOMELAB_TUNNEL_API_TOKEN": "<YOUR_HOMELAB_TUNNEL_API_TOKEN>",
        "HOMELAB_TUNNEL_ACCOUNT_ID": "<YOUR_HOMELAB_TUNNEL_ACCOUNT_ID>",
        "HOMELAB_TUNNEL_TUNNEL_ID": "<YOUR_HOMELAB_TUNNEL_TUNNEL_ID>",
        "HOMELAB_DNS_FILTER_ENABLED": "<YOUR_HOMELAB_DNS_FILTER_ENABLED>",
        "HOMELAB_DNS_FILTER_URL": "<YOUR_HOMELAB_DNS_FILTER_URL>",
        "HOMELAB_DNS_FILTER_USERNAME": "<YOUR_HOMELAB_DNS_FILTER_USERNAME>",
        "HOMELAB_DNS_FILTER_PASSWORD": "<YOUR_HOMELAB_DNS_FILTER_PASSWORD>",
        "HOMELAB_SSO_ENABLED": "<YOUR_HOMELAB_SSO_ENABLED>",
        "HOMELAB_SSO_URL": "<YOUR_HOMELAB_SSO_URL>",
        "HOMELAB_SSO_TOKEN": "<YOUR_HOMELAB_SSO_TOKEN>",
        "HOMELAB_SSO_FLOW_SLUG": "<YOUR_HOMELAB_SSO_FLOW_SLUG>",
        "HOMELAB_READ_ONLY": "<YOUR_HOMELAB_READ_ONLY>"
      }
    }
  }
}

Cline

Merge this local stdio configuration, replace every placeholder environment value, and restart Cline. Koskamo has not executed this package.
Cline configuration
{
  "mcpServers": {
    "homelab-mcp": {
      "command": "uvx",
      "args": [
        "homelab-infra-mcp==2.1.1"
      ],
      "env": {
        "HOMELAB_PROXY_URL": "<YOUR_HOMELAB_PROXY_URL>",
        "HOMELAB_PROXY_EMAIL": "<YOUR_HOMELAB_PROXY_EMAIL>",
        "HOMELAB_PROXY_PASSWORD": "<YOUR_HOMELAB_PROXY_PASSWORD>",
        "HOMELAB_DOCKER_HOST": "<YOUR_HOMELAB_DOCKER_HOST>",
        "HOMELAB_DOCKER_PORTAINER_URL": "<YOUR_HOMELAB_DOCKER_PORTAINER_URL>",
        "HOMELAB_DOCKER_PORTAINER_TOKEN": "<YOUR_HOMELAB_DOCKER_PORTAINER_TOKEN>",
        "HOMELAB_DOCKER_PORTAINER_ENDPOINT_ID": "<YOUR_HOMELAB_DOCKER_PORTAINER_ENDPOINT_ID>",
        "HOMELAB_DNS_API_TOKEN": "<YOUR_HOMELAB_DNS_API_TOKEN>",
        "HOMELAB_DNS_ZONE_ID": "<YOUR_HOMELAB_DNS_ZONE_ID>",
        "HOMELAB_HOME_ASSISTANT_URL": "<YOUR_HOMELAB_HOME_ASSISTANT_URL>",
        "HOMELAB_HOME_ASSISTANT_TOKEN": "<YOUR_HOMELAB_HOME_ASSISTANT_TOKEN>",
        "HOMELAB_UPTIME_ENABLED": "<YOUR_HOMELAB_UPTIME_ENABLED>",
        "HOMELAB_UPTIME_URL": "<YOUR_HOMELAB_UPTIME_URL>",
        "HOMELAB_UPTIME_API_KEY": "<YOUR_HOMELAB_UPTIME_API_KEY>",
        "HOMELAB_TUNNEL_ENABLED": "<YOUR_HOMELAB_TUNNEL_ENABLED>",
        "HOMELAB_TUNNEL_API_TOKEN": "<YOUR_HOMELAB_TUNNEL_API_TOKEN>",
        "HOMELAB_TUNNEL_ACCOUNT_ID": "<YOUR_HOMELAB_TUNNEL_ACCOUNT_ID>",
        "HOMELAB_TUNNEL_TUNNEL_ID": "<YOUR_HOMELAB_TUNNEL_TUNNEL_ID>",
        "HOMELAB_DNS_FILTER_ENABLED": "<YOUR_HOMELAB_DNS_FILTER_ENABLED>",
        "HOMELAB_DNS_FILTER_URL": "<YOUR_HOMELAB_DNS_FILTER_URL>",
        "HOMELAB_DNS_FILTER_USERNAME": "<YOUR_HOMELAB_DNS_FILTER_USERNAME>",
        "HOMELAB_DNS_FILTER_PASSWORD": "<YOUR_HOMELAB_DNS_FILTER_PASSWORD>",
        "HOMELAB_SSO_ENABLED": "<YOUR_HOMELAB_SSO_ENABLED>",
        "HOMELAB_SSO_URL": "<YOUR_HOMELAB_SSO_URL>",
        "HOMELAB_SSO_TOKEN": "<YOUR_HOMELAB_SSO_TOKEN>",
        "HOMELAB_SSO_FLOW_SLUG": "<YOUR_HOMELAB_SSO_FLOW_SLUG>",
        "HOMELAB_READ_ONLY": "<YOUR_HOMELAB_READ_ONLY>"
      }
    }
  }
}

VS Code

Merge this local stdio configuration, replace every placeholder environment value, and restart VS Code. Koskamo has not executed this package.
VS Code configuration
{
  "servers": {
    "homelab-mcp": {
      "type": "stdio",
      "command": "uvx",
      "args": [
        "homelab-infra-mcp==2.1.1"
      ],
      "env": {
        "HOMELAB_PROXY_URL": "<YOUR_HOMELAB_PROXY_URL>",
        "HOMELAB_PROXY_EMAIL": "<YOUR_HOMELAB_PROXY_EMAIL>",
        "HOMELAB_PROXY_PASSWORD": "<YOUR_HOMELAB_PROXY_PASSWORD>",
        "HOMELAB_DOCKER_HOST": "<YOUR_HOMELAB_DOCKER_HOST>",
        "HOMELAB_DOCKER_PORTAINER_URL": "<YOUR_HOMELAB_DOCKER_PORTAINER_URL>",
        "HOMELAB_DOCKER_PORTAINER_TOKEN": "<YOUR_HOMELAB_DOCKER_PORTAINER_TOKEN>",
        "HOMELAB_DOCKER_PORTAINER_ENDPOINT_ID": "<YOUR_HOMELAB_DOCKER_PORTAINER_ENDPOINT_ID>",
        "HOMELAB_DNS_API_TOKEN": "<YOUR_HOMELAB_DNS_API_TOKEN>",
        "HOMELAB_DNS_ZONE_ID": "<YOUR_HOMELAB_DNS_ZONE_ID>",
        "HOMELAB_HOME_ASSISTANT_URL": "<YOUR_HOMELAB_HOME_ASSISTANT_URL>",
        "HOMELAB_HOME_ASSISTANT_TOKEN": "<YOUR_HOMELAB_HOME_ASSISTANT_TOKEN>",
        "HOMELAB_UPTIME_ENABLED": "<YOUR_HOMELAB_UPTIME_ENABLED>",
        "HOMELAB_UPTIME_URL": "<YOUR_HOMELAB_UPTIME_URL>",
        "HOMELAB_UPTIME_API_KEY": "<YOUR_HOMELAB_UPTIME_API_KEY>",
        "HOMELAB_TUNNEL_ENABLED": "<YOUR_HOMELAB_TUNNEL_ENABLED>",
        "HOMELAB_TUNNEL_API_TOKEN": "<YOUR_HOMELAB_TUNNEL_API_TOKEN>",
        "HOMELAB_TUNNEL_ACCOUNT_ID": "<YOUR_HOMELAB_TUNNEL_ACCOUNT_ID>",
        "HOMELAB_TUNNEL_TUNNEL_ID": "<YOUR_HOMELAB_TUNNEL_TUNNEL_ID>",
        "HOMELAB_DNS_FILTER_ENABLED": "<YOUR_HOMELAB_DNS_FILTER_ENABLED>",
        "HOMELAB_DNS_FILTER_URL": "<YOUR_HOMELAB_DNS_FILTER_URL>",
        "HOMELAB_DNS_FILTER_USERNAME": "<YOUR_HOMELAB_DNS_FILTER_USERNAME>",
        "HOMELAB_DNS_FILTER_PASSWORD": "<YOUR_HOMELAB_DNS_FILTER_PASSWORD>",
        "HOMELAB_SSO_ENABLED": "<YOUR_HOMELAB_SSO_ENABLED>",
        "HOMELAB_SSO_URL": "<YOUR_HOMELAB_SSO_URL>",
        "HOMELAB_SSO_TOKEN": "<YOUR_HOMELAB_SSO_TOKEN>",
        "HOMELAB_SSO_FLOW_SLUG": "<YOUR_HOMELAB_SSO_FLOW_SLUG>",
        "HOMELAB_READ_ONLY": "<YOUR_HOMELAB_READ_ONLY>"
      }
    }
  }
}

Claude Desktop

Merge this local stdio configuration, replace every placeholder environment value, and restart Claude Desktop. Koskamo has not executed this package.
Claude Desktop configuration
{
  "mcpServers": {
    "homelab-mcp": {
      "command": "uvx",
      "args": [
        "homelab-infra-mcp==2.1.1"
      ],
      "env": {
        "HOMELAB_PROXY_URL": "<YOUR_HOMELAB_PROXY_URL>",
        "HOMELAB_PROXY_EMAIL": "<YOUR_HOMELAB_PROXY_EMAIL>",
        "HOMELAB_PROXY_PASSWORD": "<YOUR_HOMELAB_PROXY_PASSWORD>",
        "HOMELAB_DOCKER_HOST": "<YOUR_HOMELAB_DOCKER_HOST>",
        "HOMELAB_DOCKER_PORTAINER_URL": "<YOUR_HOMELAB_DOCKER_PORTAINER_URL>",
        "HOMELAB_DOCKER_PORTAINER_TOKEN": "<YOUR_HOMELAB_DOCKER_PORTAINER_TOKEN>",
        "HOMELAB_DOCKER_PORTAINER_ENDPOINT_ID": "<YOUR_HOMELAB_DOCKER_PORTAINER_ENDPOINT_ID>",
        "HOMELAB_DNS_API_TOKEN": "<YOUR_HOMELAB_DNS_API_TOKEN>",
        "HOMELAB_DNS_ZONE_ID": "<YOUR_HOMELAB_DNS_ZONE_ID>",
        "HOMELAB_HOME_ASSISTANT_URL": "<YOUR_HOMELAB_HOME_ASSISTANT_URL>",
        "HOMELAB_HOME_ASSISTANT_TOKEN": "<YOUR_HOMELAB_HOME_ASSISTANT_TOKEN>",
        "HOMELAB_UPTIME_ENABLED": "<YOUR_HOMELAB_UPTIME_ENABLED>",
        "HOMELAB_UPTIME_URL": "<YOUR_HOMELAB_UPTIME_URL>",
        "HOMELAB_UPTIME_API_KEY": "<YOUR_HOMELAB_UPTIME_API_KEY>",
        "HOMELAB_TUNNEL_ENABLED": "<YOUR_HOMELAB_TUNNEL_ENABLED>",
        "HOMELAB_TUNNEL_API_TOKEN": "<YOUR_HOMELAB_TUNNEL_API_TOKEN>",
        "HOMELAB_TUNNEL_ACCOUNT_ID": "<YOUR_HOMELAB_TUNNEL_ACCOUNT_ID>",
        "HOMELAB_TUNNEL_TUNNEL_ID": "<YOUR_HOMELAB_TUNNEL_TUNNEL_ID>",
        "HOMELAB_DNS_FILTER_ENABLED": "<YOUR_HOMELAB_DNS_FILTER_ENABLED>",
        "HOMELAB_DNS_FILTER_URL": "<YOUR_HOMELAB_DNS_FILTER_URL>",
        "HOMELAB_DNS_FILTER_USERNAME": "<YOUR_HOMELAB_DNS_FILTER_USERNAME>",
        "HOMELAB_DNS_FILTER_PASSWORD": "<YOUR_HOMELAB_DNS_FILTER_PASSWORD>",
        "HOMELAB_SSO_ENABLED": "<YOUR_HOMELAB_SSO_ENABLED>",
        "HOMELAB_SSO_URL": "<YOUR_HOMELAB_SSO_URL>",
        "HOMELAB_SSO_TOKEN": "<YOUR_HOMELAB_SSO_TOKEN>",
        "HOMELAB_SSO_FLOW_SLUG": "<YOUR_HOMELAB_SSO_FLOW_SLUG>",
        "HOMELAB_READ_ONLY": "<YOUR_HOMELAB_READ_ONLY>"
      }
    }
  }
}

Let your agent find its tools

Find servers like Homelab MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.