local-expense-tracker
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., "@local-expense-trackeradd a lunch expense of $12.50 for today"
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.
Expense Tracker -- Local MCP Server
A simple local MCP (Model Context Protocol) server for tracking personal expenses using SQLite. This server exposes expense-related tools (add, list, summarize) that can be consumed by MCP-compatible clients such as Claude Desktop, Cursor, or other LLM hosts.
No HTTP server. No frontend. Just a clean local tool backend for LLMs.
Features
Add expense entries with date, amount, category, subcategory, and notes
List expenses within a date range
Summarize expenses by category
Local SQLite database (auto-created)
Categories exposed as an MCP resource (
expense://categories)Zero configuration beyond Python
Related MCP server: expense-tracker-mcp-server
Project Structure
expense_tracker/
│
├── server.py # MCP server code
├── categories.json # Expense categories (editable at runtime)
└── expenses.db # SQLite database (auto-created)Requirements
Python 3.9+
uv(recommended)fastmcp
Setup
1. Install uv (once)
pip install uv
Verify installation:
uv --version
2. Create a virtual environment
From the project directory:
uv venv
Activate it:
Windows:
.venv\Scripts\activatemacOS / Linux:
source .venv/bin/activate
3. Install dependencies
uv pip install fastmcp
Running the MCP Server
Start the server using:
uv run python server.py
Note: You will see no output. This is expected behavior as the server runs silently and waits for a compatible client (like Claude) to connect.
To stop the server: CTRL + C
Database Behavior
The
expenses.dbfile is automatically created on first run.Tables are created using
CREATE TABLE IF NOT EXISTS.No manual database setup is required.
Available MCP Tools
add_expense
Adds a new expense entry to the database.
date: string (format:
YYYY-MM-DD)amount: number
category: string
subcategory: string (optional)
note: string (optional)
list_expenses
Lists all expenses within a given date range.
start_date: string (
YYYY-MM-DD)end_date: string (
YYYY-MM-DD)
summarize
Summarizes expenses by category.
start_date: string (
YYYY-MM-DD)end_date: string (
YYYY-MM-DD)category: string (optional)
MCP Resources
expense://categories
Returns the contents of categories.json. The file is read fresh on every request, allowing category updates without restarting the server.
Using with Claude Desktop
Add the server to your claude_desktop_config.json (found in %APPDATA%\Claude on Windows or ~/Library/Application Support/Claude on macOS):
{
"mcpServers": {
"expense-tracker": {
"command": "uv",
"args": [
"run",
"--path",
"C:/absolute/path/to/expense_tracker",
"python",
"server.py"
]
}
}
}
Note: Ensure you use absolute paths and forward slashes / even on Windows.
License
MIT License --- free to use, modify, and distribute.
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/K37VIN/local-expense-tracker-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server