Kumbuka - Voice/text activity tracker for mining site operators in Tanzania. Built with React, Vite, Tailwind, Dexie, and WebMCP.
# Kumbuka
**Your records, in your language.** A voice/text activity tracker for mining-site operators in Tanzania — and an agent-native web app built for the WebMCP Challenge.
## The problem
Small-scale mining site operators in Tanzania track payments, deliveries, and daily activity by memory or scraps of paper — "nimempa John elfu tano kwa dizeli" said once, then forgotten. Kumbuka lets them **say or type one sentence, in Swahili or English**, and turns it into a structured record: who, what, how much. No forms, no menus.
## Why WebMCP
Kumbuka's records aren't just for the human operator. Through WebMCP, the app exposes the exact same activity log as a set of structured tools an AI agent sharing the browser tab can call directly — instead of guessing at buttons or scraping the page. A site owner's assistant agent can ask "how much did we spend this week" or "add a record for the fuel delivery" and get a reliable answer, using the same data the human sees in the app.
### Registered WebMCP tools (`src/lib/webmcp-register.ts`)
| Tool | Purpose |
|---|---|
| `add_activity_record` | Create a new expense / income / activity record |
| `list_activity_records` | List records, filterable by type, person, or date range |
| `search_activity_records` | Keyword search across person, item, note, and original text |
| `get_summary_report` | Totals in/out, balance, and breakdowns for day/week/month |
| `delete_activity_record` | Remove a record by id |
These tools read and write the same Dexie (IndexedDB) store the UI uses, so a human confirming a voice entry and an agent querying totals are always looking at the same data — no separate API, no sync step.
## How it works
1. **Record** — tap the mic (or type) and say one sentence in any language: *"Nimempa John 5000 kwa diesel"*.
2. Kumbuka's lightweight bilingual parser (`src/lib/parse.ts`) extracts type (expense/income/activity), person, amount, item, and unit — with word-number support for Swahili (`elfu`, `laki`, `mil …