Building a 24/7 AI Accountant: The Techthos Stack
The endgame
Imagine telling your accountant once:
“Bill Acme monthly from this month’s tracked hours. Use my standard template. File with myDATA the day after I issue it. Flag anything unusual before it goes out.”
…and then never thinking about it again. That’s the agent. It wakes up on schedule, reads the state of your work, makes a proposal, gets your one-tap approval (or proceeds if you’ve pre-authorized), and reports what it did. It is, in the literal sense, a hosted employee — except its workspace is a set of MCP servers and its memory is a set of Skills.
The architecture, top-down
flowchart TD
A["<b>Hosted Accountant-Agent</b><br/><i>GPT-5 · 24/7</i><br/><br/><b>Skills</b><br/>invoicing-policy · greek-vat<br/>reconciliation · client-comms<br/>myDATA-submission"]:::agent
A -->|MCP| B["<b>clockwork</b><br/><i>time</i>"]:::tool
A -->|MCP| C["<b>invoicework</b><br/><i>invoices</i>"]:::tool
A -->|MCP| D["<b>gofolio</b><br/><i>PDF</i>"]:::tool
A -->|MCP| E["<b>yourdata-mcp</b><br/><i>AADE</i>"]:::tool
E --> F["<b>yourdata-sdk</b><br/><i>REST / XML</i>"]:::sdk
classDef agent fill:#494fdf,stroke:#376cd5,color:#ffffff,stroke-width:2px
classDef tool fill:#1e293b,stroke:#64748b,color:#f1f5f9,stroke-width:1.5px
classDef sdk fill:#334155,stroke:#94a3b8,color:#e2e8f0,stroke-width:1px,stroke-dasharray: 5 3
Three layers, each replaceable:
- The agent layer — GPT-5 (or any MCP-speaking model) running on a hosted schedule. This is where judgment lives.
- The skills layer — domain knowledge encoded as Skills: how a Greek invoice numbers itself, which VAT regime applies, when myDATA accepts late submissions, how to phrase a polite payment-reminder email. Skills are how the agent thinks like an accountant.
- The tools layer — five standalone Go micro-applications, each exposing an MCP surface. Skills are what the agent thinks; MCP servers are what it can do.
What each layer contributes
Tools (MCP servers). Deterministic, auditable, boring. Each one does one job, has its own database, and can be operated from a terminal by a human:
- clockwork — read/write time entries, summarize hours, derive activity from git
- invoicework — draft, store, and number invoices and quotes (multi-AFM, multi-series)
- gofolio — render any YAML document spec to PDF
- yourdata-mcp (over yourdata-sdk) — preview, validate, and submit AADE myDATA XML
Skills. Tacit knowledge made explicit. A Skill is a markdown file the agent loads when a trigger matches, telling it how to do something the right way: which fields myDATA rejects in production but tolerates in the sandbox, how to round VAT to the cent, when to issue a credit note vs. cancel an invoice, how to phrase a Greek-language payment reminder that doesn’t sound robotic.
The hosted agent. The orchestrator. It owns the schedule (cron-like routines: “every 1st of the month, draft invoices from last month’s hours”), the memory (which clients are on which terms), and the escalation policy (when to ask the human, when to act autonomously).
Why this shape, not a monolith
A traditional accounting SaaS would bake all of this into one application with one database and one UI. We deliberately didn’t, for three reasons:
- The agent is the UI. If chat is the primary interface, you don’t need a unified frontend — you need unified tool semantics. MCP gives you that without coupling the implementations.
- Each tool stays useful without the agent. clockwork is a complete time tracker on its own. yourdata-sdk is usable from any Go program. If you don’t want the agent, you don’t need the agent. If the agent is down, your invoices are still in your bbolt file on disk.
- Skills evolve faster than code. Greek tax rules change. Client preferences change. A Skill is a markdown edit; a schema migration is not.
What “24/7” actually means
The hosted agent isn’t a chatbot waiting for input. It’s a set of scheduled routines plus an inbox:
- Scheduled: “On the 1st, draft last month’s invoices.” “Every Monday, reconcile myDATA submissions against invoicework state.” “Every quarter, prep VAT summary.”
- Reactive: “When a client emails about an invoice, look it up and draft a reply.” “When clockwork shows >40h on a non-billable project, flag it.”
- Human-in-the-loop: every action that costs money, sends an email, or hits a government API has a configurable approval gate.
Where we are, where we’re going
Today, the five tools exist as standalone Go applications, each with its own MCP server. The next milestones:
- Skill library — codify the Greek-SMB accountant playbook as Skills (invoicing policy, VAT regimes, myDATA quirks, reminder etiquette).
- Hosted runtime — move the agent off the laptop and onto a scheduled, persistent host with durable memory and audit logs.
- Approval surface — a minimal mobile-friendly UI for the one job the agent can’t do alone: saying “yes, send it.”
The vision is small and specific: one agent, hired once, working forever, on the boring parts of running a Greek SMB.