An open-source AI Finance team — designed around propose → human approve → post discipline. Runs on your own machine, under your own credentials, with auditable provenance for every entry on your books.
customization/ folder convention plus a setup-org skill that walks you through grounding every agent in your specific books: tagged chart of accounts, non-GAAP rules (declarative YAML — works for SaaS, crypto, real-estate), output templates, and writing voice. ~30 minutes once; every agent in the Stack then speaks your books. See customization-stub/README.md in the repo.
setup-org skill. Upload your CoA, declare non-GAAP rules in plain English, drop in your board-deck and exec-update templates. ~30 minutes, one-time.
Paste this into your Claude Desktop config file:
~/Library/Application Support/Claude/claude_desktop_config.json%APPDATA%Claudeclaude_desktop_config.json~/.config/Claude/claude_desktop_config.json{
"mcpServers": {
"the-ai-finance-stack": {
"url": "https://the-ai-finance-stack.sanjayraghavan.workers.dev/sse"
}
}
}
Restart Claude Desktop, then in a fresh conversation ask:
"What agents are available in the-ai-finance-stack registry?" — Claude calls browse_agents and returns the full catalog. From there you can have Claude install specific agents into your project folder, customize them, and run them.
Start here → START_HERE.md for the 1-page friendly entry · MEET_YOUR_AGENTS.md for the team roster · YOUR_FIRST_CLOSE.md for an hour-by-hour walkthrough of closing your first month.
Production setup (dedicated runtime running agents on schedule): any always-on machine works — a spare laptop you own, a Mac mini or NUC (~$300–600 one-time), or a VPS like Hetzner / Lightsail / DigitalOcean (~$5–15/mo). Guides: SETUP_DEDICATED_LAPTOP.md for Mac · SETUP_DEDICATED_LAPTOP_WINDOWS.md for Windows. The Windows guide is v0.1 draft pending validation — Linux/VPS guide planned.
Scaling to a finance team? The agents only run on one machine (the dedicated laptop). The rest of your team participates through Slack — read posts, approve JE proposals with /approve <id>, DM agents for ad-hoc questions. No team-member install needed regardless of their OS. See the "Scaling from one human to a whole finance team" section of ARCHITECTURE.md.
| Agent | Function | What it owns |
|---|---|---|
| Controller | Accounting | Month-end close, accruals, reconciliations, status reports |
| FP&A Analyst | FP&A | Variance with driver decomposition; rolling forecast; scenarios; 2-week annual budget cycle + quarterly re-forecast |
| Treasury | Treasury | Cash position; 13-week projection; runway calc with confidence bands. PSP-aware. |
| Investor Relations | IR | Monthly investor update drafts; board pre-reader; KPI watching |
| AP Watcher | AP | Invoice validation, duplicate detection, vendor contracts, month-end accrual proposals |
| AR Follow-Up | AR | Aging-based collection drafts in tone-matched bands (Good/Standard/Repeat-Late/Chronic), DSO tracking |
| Revenue Ops | RevOps | Commission calculations, ARR reconciliation, deal-desk support |
| Payroll Reviewer | Payroll | Pre-run variance review, headcount cost tracking. Privacy-scoped, restricted channel. |
| Prepay Manager | Accounting | Full prepayment lifecycle: identification, schedule generation, monthly amortization proposals, reconciliation |
| Bank Recon | Cash & Banking | Daily transaction matching, unmatched investigation, period-end attestation. Context-aware (uses AP/AR/Treasury outputs). |
| Agent | What it owns |
|---|---|
| Crypto Reconciler | Multi-chain wallet reconciliation, gas/fee separation, cost-basis sanity checks. For Tres Finance / Bitwave / on-chain subledgers. |
| Agent | What it owns |
|---|---|
| QBO Poster | The only agent permitted to write to QuickBooks Online. Reads approval records, runs 8-check validation, posts to QBO via MCP, verifies the post landed, writes immutable confirmation. Idempotent. Halts on anything unexpected. |
Most "AI for Finance" projects let agents post to the GL directly. That's how silent failures happen, how closed-period entries sneak through, and how auditors lose confidence in your books.
This Stack inverts that: every JE-writing agent proposes; exactly one execution-pack agent posts — and only after explicit human approval, validated through 8 checks (authorized approver, content-hash integrity, period not closed, accounts active, idempotency, approver limits, approval recency, structural validity). One Slack reply per entry. An AI Finance team you can deploy in production without losing sleep.
#finance-approvals →
Human types /approve <proposal-id> →
Approval handler writes record with SHA-256 hash →
QBO Poster validates (8 checks) and commits →
Confirmation written, audit log appended, Slack thread replied.
The foundation that prevents schema drift across agents. When multiple agents need the same canonical schema, methodology, or format, it lives in skills/ at the repo root and any agent imports it as stack:<name>. Also invokable directly by a human in Claude Desktop — no agent required.
| Shared skill | What it standardizes | Status |
|---|---|---|
stack:proposal-format | Canonical JE proposal schema (8 agents import it) | v0.1 — shipped |
stack:approval-record-format | Canonical approval record (auth, content hash, integrity) | v0.1 — shipped |
stack:slack-conventions | Channel routing, severity emojis, mention rules, link format | v0.1 — shipped |
stack:qbo-query-recipes | The playbook every QBO-touching agent follows — resolve via customization/ first, then call MCPs | v0.2 — shipped |
stack:finance-view-switch | Generic GAAP/Non-GAAP P&L + bridge (reads non-gaap-rules.yaml — works for SaaS, crypto, real-estate) | v0.2 — shipped |
stack:setup-org | Interactive ~30 min walkthrough to populate customization/ for a new org | v0.2 — shipped |
stack:audit-log-entry | JSONL schema for every agent's audit log | v0.2 |
stack:variance-narrative | Driver-aware variance commentary | v0.2 |
stack:driver-decomposition | Volume × Rate × Mix + Headcount × Cost-per-Head | v0.2 |
stack:kpi-snapshot | Canonical KPI extraction format | v0.2 |
stack:close-packet-format | Controller's close artifact structure | v0.2 |
stack:budget-checker | Query a budget XLSX for vendors / GL codes / employees | v0.2 |
The MCP ecosystem for finance tools is uneven: some have great official MCPs (Slack, Gmail, Box, Notion), some have admin-gated MCPs that block non-admin users (QuickBooks), some have nothing (Mercury, Stripe, Brex). The Stack uses a four-tier hierarchy so agents work regardless:
| Tier | When to use | Examples |
|---|---|---|
| 1. Official MCP | Vendor's MCP works at user scope | Slack, Gmail, Notion, Box, Google Calendar |
| 2. Bundled local MCP | Official is admin-gated or missing | qbo, bill-com, ramp, mercury, stripe, brex, rippling, carta (all v0.2) |
| 3. Bash + Python wrapper | One-off, doesn't justify full MCP | Internal data warehouse queries |
| 4. Hosted MCP gateway | Zero local setup, trust third party | Smithery, Composio, Glama |
v0.2 ships 8 bundled local MCPs under mcps/ in the repo. Each runs locally under your OAuth grant — credentials never leave your machine. Solves the "I'm not the QBO admin and the official MCP doesn't work for me" problem cleanly.
customization/ + setup-org skill. Every agent reads your tagged CoA, non-GAAP rules, output templates, and voice samples before acting. Generic agents become yours.
Two foundational pieces designed in v0.2; implementation queued for v0.3. Both are about making the Stack composable for the deployer — customize without forking, scale without sacrificing context.
customization/skills/<agent>/<skill>.md and the runtime loads it instead. Add new skills the same way. Disable shipped skills with a stub. Threshold + config overrides via customization/config/<agent>.yaml. Upstream git pull never conflicts because everything lives in gitignored customization/. Design: docs/v0.3-skill-composability.md.
docs/v0.3-controller-fanout.md.
update-reference agent that watches #finance-ops for messages like "tag vendor X as Cloud Infrastructure", drafts a PR to the customization repo, awaits approval, and pulls. Replaces the current gatekeeper pattern with a faster Slack-native loop.
Beyond v0.3: industry packs for PSP and SaaS; v0.4+ adds investment research, options & derivatives, private capital, and wealth management packs (Series II of the curriculum).
The Stack is the artifact. The AI-Powered Finance Substack is the why and how — 43 lessons across 8 modules. Module 7 (the agent track) is where the Stack gets introduced, dissected, and built up from first principles. If you want to understand the design decisions, that's where they're documented.