Skip to content
← All products
MCP Server New

Homelab Control Kit

Manage your infrastructure from Claude — you choose what's enabled.

Complete infrastructure control: Docker container management, n8n workflow automation, and pre-configured deployment templates — plus optional Obsidian note management, git checkpoints, a Homepage dashboard, system monitoring, and Telegram alerts. An interactive installer asks which components you want before anything is configured; nothing is assumed, nothing is forced. The MCP server only registers tools for the components you enable, secured with OAuth 2.1 (Authorization Code + PKCE) for Claude.ai's native connector.

What's included

  • 36 MCP tools across 7 components — Docker (6), n8n (14), Obsidian (9), git (1), Homepage (2), monitoring (3), Telegram (1)
  • Interactive installer — choose which components run, no assumptions about your setup
  • Component-gated server — disabled tool groups are never registered, not just hidden
  • 6 Docker Compose stack templates — Simple, Database, Full, n8n Automation, Monitoring, All-in-One Homelab
  • OAuth 2.1 authentication with PKCE — works with Claude.ai's native MCP connector
  • Docker container management — status, logs, restart, exec for allowlisted containers only (empty by default)
  • Full n8n control — list, activate, deactivate, execute, and inspect workflows and executions
  • Optional Obsidian integration — for Obsidian users only, not assumed for everyone
  • Cloudflare Tunnel setup script — expose the server with zero open inbound ports
  • Daily backup script for your stack's data volumes
  • 4-layer security architecture — Cloudflare Tunnel, OAuth 2.1, tool allowlists, container isolation
  • No shell execution, no exec, no eval — every operation is explicitly defined and scoped

Requirements

  • Docker and Docker Compose
  • A domain with HTTPS (Cloudflare Tunnel recommended — setup script included)
  • Claude.ai Pro, Team, or Enterprise plan for remote MCP connectors (or any local MCP client for localhost use)
  • Optional, only if enabled: n8n instance, Obsidian vault or markdown folder, Homepage dashboard, GitHub token, Telegram bot token
server.py
# Only enabled components register as tools — the rest don't exist
# on the running server.
ENABLED_COMPONENTS = set(
    os.environ.get("ENABLED_COMPONENTS", "docker,n8n").split(",")
)

def tool_if_enabled(component: str):
    def decorator(fn):
        if component in ENABLED_COMPONENTS:
            return mcp.tool()(fn)
        return fn
    return decorator

@tool_if_enabled("docker")
async def docker_restart(container_name: str):
    if container_name not in ALLOWED_CONTAINERS:
        return {"error": "Not in allowlist"}
    ...