<?xml version="1.0" encoding="UTF-8"?>
<!-- Vault MCP server LaunchAgent (template) — the always-on tool surface over this vault.
     Installed by `alexandria install-launchd`, which replaces __VAULT_MCP_SH__ with the
     absolute path of Agent/scripts/mcp/vault-mcp.sh in your checkout. The server holds
     streamable HTTP on the configured port (config vault_mcp.port, default 8765): local
     seats hit http://127.0.0.1:<port>/mcp, remote seats the tailnet HTTPS name via
     Tailscale Serve. It refuses to start (clean exit) until at least one seat Bearer
     (VAULT_MCP_BEARER) is present in the off-repo alexandria.env. -->
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0"><dict>
  <key>Label</key><string>com.alexandria.vault-mcp</string>
  <key>ProgramArguments</key><array><string>/bin/sh</string><string>__VAULT_MCP_SH__</string></array>
  <key>RunAtLoad</key><true/>
  <!-- Restart on crash/kill/reboot, but NOT on a clean exit (no seat Bearer configured),
       so a not-yet-provisioned box doesn't respawn-loop. ThrottleInterval floors respawns
       at 30s. -->
  <key>KeepAlive</key><dict><key>SuccessfulExit</key><false/></dict>
  <key>ThrottleInterval</key><integer>30</integer>
  <key>StandardOutPath</key><string>__LOGDIR__/vault-mcp.log</string>
  <key>StandardErrorPath</key><string>__LOGDIR__/vault-mcp.log</string>
</dict></plist>
