← 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"}
...