The AI Finance Stack

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.

v0.1 inventory: 12 agents across 3 packs, 3 shipped shared skills (with 6 more queued for v0.2), and a 4-tier MCP integration framework covering 8 bundled local connectors for the tools where official MCPs are missing or admin-gated. MIT-licensed.
New in v0.2 — the customization layer. A 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.

How it works in 3 steps

1. Install
Clone the repo, drop the config snippet below into Claude Desktop, paste your Anthropic API key. ~10 minutes. You'll see "Browse The AI Finance Stack" in Claude Desktop.
2. Customize for your books
Run the 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.
3. Schedule, or run on-demand
Install agents once; they fire on their built-in schedule. Or just ask in Claude Desktop: "Close the books for May", "What's our cash position?", "Draft the investor update."
Then: one human + one accountant + 12 agents = a full Finance function.
You stay in the loop for every JE approval. Everything else the agents handle, watch, and surface only when you need to decide.

Install

Paste this into your Claude Desktop config file:

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

The 12 agents (v0.1)

core 10 agents — universal Finance functions

AgentFunctionWhat it owns
ControllerAccountingMonth-end close, accruals, reconciliations, status reports
FP&A AnalystFP&AVariance with driver decomposition; rolling forecast; scenarios; 2-week annual budget cycle + quarterly re-forecast
TreasuryTreasuryCash position; 13-week projection; runway calc with confidence bands. PSP-aware.
Investor RelationsIRMonthly investor update drafts; board pre-reader; KPI watching
AP WatcherAPInvoice validation, duplicate detection, vendor contracts, month-end accrual proposals
AR Follow-UpARAging-based collection drafts in tone-matched bands (Good/Standard/Repeat-Late/Chronic), DSO tracking
Revenue OpsRevOpsCommission calculations, ARR reconciliation, deal-desk support
Payroll ReviewerPayrollPre-run variance review, headcount cost tracking. Privacy-scoped, restricted channel.
Prepay ManagerAccountingFull prepayment lifecycle: identification, schedule generation, monthly amortization proposals, reconciliation
Bank ReconCash & BankingDaily transaction matching, unmatched investigation, period-end attestation. Context-aware (uses AP/AR/Treasury outputs).

crypto pack 1 agent — for companies with tokens on the balance sheet

AgentWhat it owns
Crypto ReconcilerMulti-chain wallet reconciliation, gas/fee separation, cost-basis sanity checks. For Tres Finance / Bitwave / on-chain subledgers.

execution pack 1 agent — the only write-capable agents

AgentWhat it owns
QBO PosterThe 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.

The architecturally distinctive idea

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.

The flow:
Proposing agent (Controller, Prepay Manager, AP Watcher, Bank Recon, etc.) writes a proposal → Slack approval request posted in #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.

Shared skill layer

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 skillWhat it standardizesStatus
stack:proposal-formatCanonical JE proposal schema (8 agents import it)v0.1 — shipped
stack:approval-record-formatCanonical approval record (auth, content hash, integrity)v0.1 — shipped
stack:slack-conventionsChannel routing, severity emojis, mention rules, link formatv0.1 — shipped
stack:qbo-query-recipesThe playbook every QBO-touching agent follows — resolve via customization/ first, then call MCPsv0.2 — shipped
stack:finance-view-switchGeneric GAAP/Non-GAAP P&L + bridge (reads non-gaap-rules.yaml — works for SaaS, crypto, real-estate)v0.2 — shipped
stack:setup-orgInteractive ~30 min walkthrough to populate customization/ for a new orgv0.2 — shipped
stack:audit-log-entryJSONL schema for every agent's audit logv0.2
stack:variance-narrativeDriver-aware variance commentaryv0.2
stack:driver-decompositionVolume × Rate × Mix + Headcount × Cost-per-Headv0.2
stack:kpi-snapshotCanonical KPI extraction formatv0.2
stack:close-packet-formatController's close artifact structurev0.2
stack:budget-checkerQuery a budget XLSX for vendors / GL codes / employeesv0.2

MCP integration — the four-tier framework

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:

TierWhen to useExamples
1. Official MCPVendor's MCP works at user scopeSlack, Gmail, Notion, Box, Google Calendar
2. Bundled local MCPOfficial is admin-gated or missingqbo, bill-com, ramp, mercury, stripe, brex, rippling, carta (all v0.2)
3. Bash + Python wrapperOne-off, doesn't justify full MCPInternal data warehouse queries
4. Hosted MCP gatewayZero local setup, trust third partySmithery, 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.

What's coming in v0.2

Customization layer (shipped)
customization/ + setup-org skill. Every agent reads your tagged CoA, non-GAAP rules, output templates, and voice samples before acting. Generic agents become yours.
Bundled MCPs
8 Python MCP servers (qbo shipped read-only; bill-com, ramp, mercury, stripe, brex, rippling, carta queued) running locally under your OAuth grant
6 more shared skills
audit-log-entry, variance-narrative, driver-decomposition, kpi-snapshot, close-packet-format, budget-checker
Additional execution Posters
netsuite-poster, xero-poster, rillet-poster, sage-intacct-poster — same propose → approve → post contract
create-finance-mcp skill
Scaffolds new bundled MCPs from a template. Community-contributable.

What's planned for v0.3

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.

Skill composability
Precedence-based override system: deployers drop a customized version of any shipped skill into 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.
Sub-agent fan-out for Controller
Controller's reconciliations pass becomes a parent orchestrator that spawns short-lived sub-agents in parallel (bank-rec / AR-rec / AP-rec / intercompany / crypto), each with focused context. Parent synthesizes results into the close packet. Same audit log, same approval gates — just faster on Day 2 and cleaner under context pressure. Design: docs/v0.3-controller-fanout.md.
Linux / VPS install guide
Parallel to the Mac and Windows setup guides. Systemd timers, common VPS providers (Hetzner / Lightsail / DigitalOcean). Mac and Windows guides shipped in v0.2; Linux/VPS guide pending validation.
Slack-driven customization updates
An 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).

Companion lesson series

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.

Links