Quartermaster
Quartermaster joins your HRIS, identity provider, code platform, chat, and billing — in a single federated SQL query — to find zombie accounts, ghost seats, shadow IT, and compliance drift.
The agent (Claude Sonnet 4.6 over MCP) drives a conversational interface, narrates findings, and drafts remediation. The SQL does the joins. Everything runs on your machine. PII never leaves.
Architecture
A Next.js frontend talks to API routes over HTTP + SSE. Those routes call Coral (Apache DataFusion over MCP stdio) for federated SQL and Claude for authoring, narration, and remediation. Coral caches source rows locally and joins them at query time.
Coral federation
The core trick: five sources, one query. Coral federates over MCP and joins on a normalized LOWER(email) key — no warehouse, no ETL, no data movement.
The five audits
Five named, reproducible audits. Each is a SQL template plus the source rows it touched — no black box.
Zombie Account Hunter
Inactive employees still holding active accounts or admin roles.
Permission Drift
Active employees with elevated permissions unused 90+ days.
Ghost-Seat Spend
Paid seats with zero activity in 30 days, quantified in $/mo.
Shadow-IT Detector
Off-list Stripe charges correlated with Slack mentions.
Compliance Ledger
SOC2 evidence pack assembled per terminated employee.
QM Copilot
Chat that compiles natural language to federated SQL, grounded on Coral's schema catalog. Invalid SQL is fed back to Claude and recompiled — up to three retries — before it ever executes.
Continuous Mode
Quartermaster polls sources on a tick, diffs results against a local cache, and streams only net-new findings into the Cockpit's live feed.
Blast Radius
For any account, parallel Coral reachability queries build an interactive force-directed graph of every system it touches — repos, channels, secrets, services.
MCP server
Quartermaster's own audits are exposed as an MCP server — Claude Code can call run_audit, get_findings, and draft_remediation as tools. The audit engine is both a product and a primitive.
Quickstart
No tokens needed — fixture mode ships canned source data so the full demo runs offline:
$QM_FIXTURES=on pnpm demoThen open the Risk Cockpit and toggle Continuous Mode.