Skip to content
← All products
📓
MCP Server

Vault MCP

Your vault, containers, workflows, and infrastructure — one MCP server.

An MCP server that gives Claude.ai hands-on access to your Obsidian vault, Docker containers, n8n workflows, and home lab infrastructure — 38 tools behind OAuth 2.1 authentication. Manage notes, restart containers, inspect workflow executions, check service health, read your Homepage dashboard, push git checkpoints, and get Telegram notifications — all through natural conversation. Deploy with Docker, connect from Claude.ai, and operate your entire stack from anywhere, including your phone. Built for anyone running a home lab who wants their AI assistant to actually manage it.

What's included

  • 9 vault tools — list, read, search, create, update, append, delete notes plus folder listing and tag scanning
  • 14 n8n tools — list workflows, inspect executions, activate/deactivate, execute, create, update, delete, bulk update, and failure triage
  • 6 Docker tools — container status, restart, logs, exec, compose restart, and read files inside containers
  • 2 Homepage tools — read and update your dashboard service entries
  • Infrastructure tools — system info, service health checks, Cloudflare tunnel status, git checkpoint, drift detection
  • Telegram notifications — send alerts and status messages to your phone
  • Content queue status — check your content pipeline backlog
  • OAuth 2.1 authentication with PKCE — works with Claude.ai's native MCP connector
  • Path traversal prevention, markdown-only enforcement, restricted directory exclusion
  • Docker deployment with health checks and secret file injection

Requirements

  • Docker and Docker Compose
  • A domain with HTTPS (Cloudflare Tunnel, Caddy, or nginx recommended)
  • Claude.ai Pro, Team, or Enterprise plan (required for MCP connectors)
  • An Obsidian vault or any directory of markdown files
server.py
# 38 tools. Vault, Docker, n8n, infrastructure.

@mcp.tool()
def search_notes(query: str, folder: str = "",
                 max_results: int = 20) -> str:
    """Search for text across vault notes."""
    ...

@mcp.tool()
def docker_status() -> str:
    """List all containers with state, uptime, ports."""
    ...

@mcp.tool()
def n8n_failed_executions(hours: int = 24) -> str:
    """Get failed workflow executions for triage."""
    ...

@mcp.tool()
def service_health_check(services: list[str]) -> str:
    """HTTP health check against named services."""
    ...

@mcp.tool()
def send_telegram(message: str) -> str:
    """Push a notification to your phone."""
    ...