Hi @madisvain — Upcount's local-first / "your data belongs to you" stance is exactly why I think it's
a great fit for a governed AI integration, and your CONTRIBUTING asks to check first, so here goes.
Because Upcount is local-first with no API, there's no safe way today for a user's AI assistant to
do things in it. I'd like to contribute an optional, off-by-default integration that exposes
Upcount's existing actions to an assistant (e.g. Claude Desktop) as a governed MCP server: reads
(clients/invoices/reports) flow freely, routine writes are audited, and money/destructive actions
(create/issue an invoice, deletes) pause for one-click human approval — every action signed into an
audit log.
It adds no dependency and no change to the app: a second kriya_exec binary reuses the same async
Database methods your Tauri commands already call, so an agent call runs identical code to a human
one. Governance lives in a separate open-source process. Shape: a kriya-mcp/ folder + a one-line
[[bin]] in src-tauri/Cargo.toml, inert unless a user wires it in. I have already opened a PR to make things easier. let me know your thoughts on same.
Hi @madisvain — Upcount's local-first / "your data belongs to you" stance is exactly why I think it's
a great fit for a governed AI integration, and your CONTRIBUTING asks to check first, so here goes.
Because Upcount is local-first with no API, there's no safe way today for a user's AI assistant to
do things in it. I'd like to contribute an optional, off-by-default integration that exposes
Upcount's existing actions to an assistant (e.g. Claude Desktop) as a governed MCP server: reads
(clients/invoices/reports) flow freely, routine writes are audited, and money/destructive actions
(create/issue an invoice, deletes) pause for one-click human approval — every action signed into an
audit log.
It adds no dependency and no change to the app: a second
kriya_execbinary reuses the same asyncDatabasemethods your Tauri commands already call, so an agent call runs identical code to a humanone. Governance lives in a separate open-source process. Shape: a
kriya-mcp/folder + a one-line[[bin]]insrc-tauri/Cargo.toml, inert unless a user wires it in. I have already opened a PR to make things easier. let me know your thoughts on same.