Ledger MCP Server
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Ledger MCP Serverwhat's my biggest expense this month?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Ledger
A small personal finance ledger for importing Revolut CSV exports into SQLite, running spending reports, and exposing ledger/currency utilities over MCP.
What It Does
Imports Revolut CSV rows into a normalized
ledger_entriestable.Stores ledger data in a local SQLite database.
Generates JSON reports for merchant spending and largest expenses.
Provides an MCP stdio server with ledger report tools and currency conversion.
Uses TypeScript, Vitest, oxlint, and oxfmt for development checks.
Requirements
Node.js
>=22.18npm
Setup
npm installInitialize the default local database at data/ledger.sqlite:
npm run db:initYou can pass a custom database path directly to the underlying CLI:
node src/cli/init-db.ts path/to/ledger.sqliteImport Revolut Data
Inspect a Revolut CSV export before importing:
npm run inspect:revolut -- path/to/revolut.csvImport rows into the default database:
npm run import:revolut -- path/to/revolut.csvImport into a custom database:
npm run import:revolut -- path/to/revolut.csv path/to/ledger.sqliteImports are idempotent per source file and source row. Duplicate rows are skipped using the database uniqueness constraint.
Reports
Find monthly spending for a merchant:
npm run report:monthly-merchant -- "Merchant Name"Find the month with the most posted card payments for a merchant:
npm run report:busiest-merchant-month -- "Merchant Name"Find the largest expense, optionally filtered:
npm run report:largest-expense -- --merchant "Merchant Name"
npm run report:largest-expense -- --date-from 2026-01-01 --date-to 2026-01-31
npm run report:largest-expense -- --time-from 12:00 --time-to 14:00All report commands print JSON.
MCP Server
Start the stdio MCP server:
npm run mcp:serverBy default, the server reads from data/ledger.sqlite. Set LEDGER_DB_PATH to
point at another database:
LEDGER_DB_PATH=path/to/ledger.sqlite npm run mcp:serverAvailable MCP tools:
find_busiest_merchant_monthfind_largest_expensefind_total_merchant_spendingconvert_currency
Smoke-test the MCP clients:
npm run mcp:smokeDevelopment
Run the full check suite:
npm run checkRun individual checks:
npm run typecheck
npm test
npm run lint
npm run format:checkFormat and lint-fix locally:
npm run format
npm run lint:fixProject Layout
src/agent/ Local agent/MCP chat helpers
src/cli/ Command-line entry points
src/domain/ Core ledger, money, date, time, and currency types
src/exchange-rates/ NBP exchange-rate integration
src/importers/ Source-specific importers, currently Revolut
src/mcp/ MCP server and smoke clients
src/presentation/ Formatting helpers
src/reports/ Report queries and calculations
src/storage/ SQLite setup and persistence helpers
src/tools/ MCP tool implementationsNotes
Currency support is currently limited to
PLN,CHF, andEUR.Currency conversion uses the latest NBP table A average exchange rates.
The SQLite database is local; keep personal export files and database files out of version control.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/haladamateusz/ledger'
If you have feedback or need assistance with the MCP directory API, please join our Discord server