expenses-tracker-mcp
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., "@expenses-tracker-mcplist pending transactions"
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.
Expenses Tracker
A local-first expense tracking app built with FastAPI, SQLite, React, and Vite.
The backend stores transactions in a local SQLite database, serves the API under /api, and serves the built React frontend from the FastAPI app. The project also includes an MCP server for querying and classifying transactions from compatible clients.
Features
Import bank statement CSV files
Add, edit, delete, filter, and classify transactions
Maintain accounts and account groups
View monthly overview, category totals, and daily reports
Run a local MCP server with guarded read-only SQL plus transaction classification tools
Related MCP server: Expense Tracker MCP Server
Project structure
src/expenses_tracker/
main.py FastAPI app entry point
database.py SQLite setup and seed accounts
transactions.py Transaction data operations
import_statement.py CSV statement import logic
api/routes.py API routes
static/ Built frontend served by FastAPI
src/expenses_tracker_mcp/
server.py MCP server for expense tools
frontend/
index.html Vite entry HTML
src/ React source
vite.config.js Builds into src/expenses_tracker/static
data/
expenses.db Local SQLite database, ignored by gitRequirements
Python 3.12+
Node.js and npm
Setup
Install Python dependencies:
uv syncInstall frontend dependencies:
cd frontend
npm installBuild the frontend
The FastAPI app serves the compiled frontend from src/expenses_tracker/static.
cd frontend
npm run buildRun the app
uv run expensesThe app starts on http://127.0.0.1:8125 and opens the default browser automatically.
On first startup, the app creates data/expenses.db and seeds the default income statement lines, account groups, and accounts.
Bank statement imports
The transaction screen can import a CSV file through the browser. The backend also supports importing a local statement.csv from the project root when POST /api/import-bank-statement is called without a request body.
Expected CSV columns:
Transaction DateinDD/MM/YYYYformatTransaction DescriptionDebit AmountCredit Amount
Debit amounts are stored as negative pence values. Credit amounts are stored as positive pence values. Imported transactions are assigned to the Pending account by default.
statement.csv is ignored by git because bank statements can contain sensitive financial data.
API overview
GET /api/healthGET /api/account-groupsGET /api/accountsPOST /api/accountsGET /api/transactionsPOST /api/transactionsPATCH /api/transactions/{transaction_id}DELETE /api/transactions/{transaction_id}POST /api/import-bank-statement
MCP server
Run the MCP server with:
uv run expenses-mcpAvailable tools include:
guarded read-only SQL queries
transaction listing with filters
account listing
pending transaction grouping
classification summaries
account assignment for selected transactions or filtered batches
Use dry-run mode before bulk classification changes.
Development notes
Frontend source lives in
frontend/src.Frontend build output is committed under
src/expenses_tracker/staticso the FastAPI app can serve the UI directly.Local runtime data is ignored under
data/*.db.If dependencies change, commit both
pyproject.toml/uv.lockandfrontend/package.json/frontend/package-lock.json.
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.
Related MCP Servers
- Flicense-qualityDmaintenanceEnables 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.Last updated1
- FlicenseAqualityDmaintenanceEnables tracking and managing personal expenses through a local SQLite database. Supports adding, editing, deleting, listing, and summarizing expenses by category, as well as managing credit accounts.Last updated6
- FlicenseAqualityDmaintenanceEnables AI assistants like Claude to manage personal expenses locally using SQLite. Supports adding, categorizing, summarizing expenses, setting budgets, and exporting data without cloud services.Last updated8
- Flicense-qualityDmaintenanceEnables natural language management of personal expenses, including adding, listing, and summarizing expenses with local SQLite storage.Last updated
Related MCP Connectors
Run SOQL queries to explore and retrieve Salesforce data. Access accounts, contacts, opportunities…
Access US federal award, recipient, agency, and spending analytics data from USAspending.gov.
Explore your Messages SQLite database to browse tables and inspect schemas with ease. Run flexible…
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- 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/samu187/expenses-tracker-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server