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