Inspiration

Small traders serve customers with busy hands, so sales get written down later from memory, or never. The money that slips away most is credit: "she'll pay Friday". I wanted a shop owner to log a sale in the moment, by voice, and to be able to ask "who owes me?" and get a straight answer.

What it does

TillTalk is an Alexa+ MCP server for a shop's books. You say "Sold three rice at 12 each to Ama, she'll pay Friday" and it records the sale and the debt. You can log expenses, record a customer paying back, ask who owes you, hear how your day went, read back recent entries, and undo a mistake. Big entries wait for a spoken "yes" before they are recorded.

How it works

On Alexa+, the assistant understands the speech and calls tools on my self-hosted MCP server (Streamable HTTP, spec 2025-11-25). The server has eight tools. The key design choice: the AI understands, plain code decides. Every rule lives in the server: exact decimal money in whole pesewas, no negatives or absurd amounts, a credit sale must name a customer, nobody can pay back more than they owe, and entries over GHS 500 need confirmation (re-checked when confirmed). A misheard number or a clever sentence cannot bypass them, and internal errors are never spoken.

How I built it

Python and Flask, with the MCP protocol implemented directly (no SDK) so every rule is visible. SQLite for storage. A phone-friendly simulator page that sends real JSON-RPC to the /mcp endpoint and shows the traffic live. 38 automated tests cover the ledger rules, the parser, and the MCP protocol over real HTTP, including origin validation, version headers, auth, and error handling. I built this project with the help of an AI assistant (Claude).

Challenges

Getting money right (no floating-point drift), making voice replies short and natural, and deciding what the server should refuse versus ask about. For example, a credit sale without a customer name is refused with a clear question, because an untracked debt is worthless.

What's next

Deploy to a real Alexa+ device with OAuth 2.1 (PKCE) and the add-on package, support more currencies and languages, mobile money and receipts, and weekly summaries.

Honest note

The demo's language understanding is a small rule-based stand-in for Alexa+ so it runs offline. The MCP server, ledger rules and tests are real. I have not deployed it to a physical Alexa+ device or implemented the OAuth flow yet.

Try it

No login needed. Open the live demo and tap "Load a sample day". The free host sleeps when idle, so the first load can take about a minute, and demo data resets when it restarts. Setup and test instructions are in the README on GitHub.

Built With

Share this project:

Updates

Submission history