Skip to main content
Glama
Darkjay123

voiceledger-mcp

by Darkjay123

voiceledger-mcp

A self-hosted MCP server that gives an assistant a cash trader's books.

Ask it what you sold today, what is running out, and who still owes you, and it answers from the same append-only ledger the trader actually writes into. Built for the Alexa+ track of Build, Ship, Shape: Amazon Developer Hackathon.

Why this exists

Most of the shops in a Nigerian market run on memory and a paper book. The book is honest and the memory is not, and neither of them can answer a question while the owner's hands are full of rice. The gap is not a dashboard. It is being able to ask out loud and get a number you can stand behind.

Related MCP server: NOVA MCP Server

What it does

Five tools and one resource, over MCP:

  • record_entry writes a sale, expense, restock, credit or repayment.

  • day_summary gives the day's totals and the cash that should be in the box.

  • summarise_day_for_speech gives the same figures, phrased to be read aloud.

  • low_stock lists what is running out, counted from restocks minus everything that left.

  • outstanding_debts lists who still owes, largest first.

  • ledger://entries exposes the raw book as JSON.

The rules it will not bend

  • Money is integer kobo. No float ever touches a naira figure, so a hundred small entries do not drift.

  • The ledger is append-only. A mistake is corrected by writing another entry, the way a paper book works.

  • Goods on credit are not sales. They leave stock, they raise a debt, and they stay out of the day's takings.

  • A credit entry with no customer name is refused, because an unnamed debt is an unrecoverable one.

  • A model never phrases a number. Figures are computed here and passed through verbatim; Bedrock only warms up the sentence around them, and if it is down the deterministic line goes out unchanged.

Running it

cp .env.example .env
npm install
npm test
npm run dev

The Streamable HTTP endpoint is then at http://localhost:8787/mcp, with /healthz alongside it. Set MCP_AUTH_TOKEN to require Authorization: Bearer <token>; leave it unset to run open locally.

Stack

TypeScript and Node 20+, the Model Context Protocol SDK over Streamable HTTP (spec 2025-11-25), Express for the endpoint, Zod for tool schemas, Vitest for the tests. Amazon Bedrock is optional and used only for speech phrasing.

Status

Built for the Alexa+ track of Build, Ship, Shape: Amazon Developer Hackathon (deadline 23 October 2026), and entered in the AWS Builder and Open Source mini challenges. MIT licensed.

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables interaction with local Beancount accounting ledgers through structured tools for viewing accounts, balances, and transactions, as well as inserting/removing transactions and answering natural-language questions via BeanQuery. Provides deterministic, validated, and auditable financial data operations with offline-first functionality.
    1
    -
  • F
    license
    Not graded
    quality
    B
    maintenance
    Enables read-only investigation of NOVA's Dolibarr accounting and commercial data through an AI assistant, with privacy protection and deterministic accounting rules.
    -
  • A
    license
    B
    quality
    B
    maintenance
    Enables AI assistants to query and manage self-hosted accounting data—invoices, balances, and books—through natural language, with read-only tools by default and optional scoped write operations.
    10
    MIT
  • F
    license
    A
    quality
    B
    maintenance
    Enables LLMs to answer small business finance questions about spending, sales trends, cash flow projections, and profitability using a local SQLite database.
    6
    -