Expense Tracker 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., "@Expense Tracker MCP ServerAdd an expense of $30 for lunch 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 MCP Server
A powerful, AI-ready expense tracking system built with FastMCP (Model Context Protocol) that integrates seamlessly with Claude AI and other LLM applications.
๐ฏ Status: Production-Ready | ๐ Database: SQLite | ๐ Framework: FastMCP 3.4.2
โจ Features
๐ฏ Core Expense Management
โ Add Expenses - Track daily spending with category, subcategory, and notes
โ List Expenses - Query expenses by date range
โ Summarize - Category-wise expense breakdown with totals
๐ฐ Budget Management
โ Set Budget - Define monthly budgets per category
โ Check Budget Status - Real-time budget vs actual spending with ๐ด๐ก๐ข status indicators
โ Budget Alerts - Automatic warnings at 80% budget usage
๐ Analytics & Insights
โ Spending Trends - Weekly trend analysis (last 30 days)
โ Advanced Analytics - Highest/lowest expenses, median, averages per category
โ Smart Insights - AI-generated spending patterns and recommendations
โ Monthly Reports - Comprehensive month-end summaries
๐ Recurring Expenses
โ Add Recurring Expenses - Subscriptions, rent, bills (daily/weekly/monthly/yearly)
โ List Recurring - View all active subscriptions with estimated monthly cost
๐ฏ Savings Goals
โ Create Savings Goals - Vacation, emergency fund, new gadgets, etc.
โ Track Progress - Update and monitor goal achievements
โ View All Goals - Dashboard with progress percentages and deadlines
๐ฎ Forecasting
โ Expense Forecast - Predict next month expenses (70% historical + 30% recurring)
โ Spending Prediction - AI-powered forecasting based on patterns
Related MCP server: MCP Agent - AI Expense Tracker
๐ ๏ธ Installation
Prerequisites
Python 3.8+
pip or uv (recommended)
Step 1: Clone Repository
git clone https://github.com/mhd-faraz/Expense-Tracker-MCP.git
cd Expense-Tracker-MCPStep 2: Create Virtual Environment
# Using uv (faster)
uv venv
source .venv/bin/activate
# Or using Python venv
python3 -m venv .venv
source .venv/bin/activateStep 3: Install Dependencies
uv add fastmcp aiosqliteStep 4: Run Server
python3 main.pyExpected Output:
โ
Database initialized with all tables - write access confirmed
INFO: Uvicorn running on http://0.0.0.0:8321/mcp (Press CTRL+C to quit)๐ Usage
Option 1: MCP Inspector (Testing)
Open browser:
http://localhost:8321/mcp/inspectorSelect tool from dropdown
Fill parameters
Click "Run Tool"
Example:
{
"date": "2026-06-19",
"amount": 450,
"category": "Food & Dining",
"subcategory": "Restaurant",
"note": "Lunch with team"
}Option 2: Claude Desktop (Production)
Connect to this MCP server in Claude Desktop
Use natural language:
"Add an expense of โน3000 for groceries today"
"Show my spending trends for the last 30 days"
"What's my budget status for this month?"
"Create a savings goal of โน50000 for vacation by December"
"Forecast my next month expenses"Claude will automatically call the appropriate tools and update your database!
Option 3: Python Script
import aiosqlite
import asyncio
async def add_expense():
async with aiosqlite.connect("/tmp/expenses.db") as db:
await db.execute(
"INSERT INTO expenses(date, amount, category, note) VALUES (?,?,?,?)",
("2026-06-19", 450, "Food & Dining", "Lunch")
)
await db.commit()
asyncio.run(add_expense())๐๏ธ Database Schema
expenses
CREATE TABLE expenses(
id INTEGER PRIMARY KEY AUTOINCREMENT,
date TEXT NOT NULL,
amount REAL NOT NULL,
category TEXT NOT NULL,
subcategory TEXT DEFAULT '',
note TEXT DEFAULT '',
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
)budgets
CREATE TABLE budgets(
id INTEGER PRIMARY KEY AUTOINCREMENT,
category TEXT NOT NULL,
amount REAL NOT NULL,
month TEXT NOT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
UNIQUE(category, month)
)recurring_expenses
CREATE TABLE recurring_expenses(
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT NOT NULL,
amount REAL NOT NULL,
category TEXT NOT NULL,
frequency TEXT NOT NULL,
start_date TEXT NOT NULL,
end_date TEXT,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
)savings_goals
CREATE TABLE savings_goals(
id INTEGER PRIMARY KEY AUTOINCREMENT,
goal_name TEXT NOT NULL,
target_amount REAL NOT NULL,
current_amount REAL DEFAULT 0,
deadline TEXT NOT NULL,
category TEXT DEFAULT 'Savings',
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
)Database Location: /tmp/expenses.db (macOS/Linux)
๐ง Available Tools (13 Total)
# | Tool | Purpose | Parameters |
1 |
| Add new expense | date, amount, category, subcategory, note |
2 |
| Query expenses | start_date, end_date |
3 |
| Category summary | start_date, end_date, category |
4 |
| Set monthly budget | category, amount, month |
5 |
| Budget tracking | month |
6 |
| Add subscription | name, amount, category, frequency, start_date |
7 |
| View subscriptions | (no params) |
8 |
| New savings target | goal_name, target_amount, deadline, category |
9 |
| Track progress | goal_id, amount_saved |
10 |
| View all goals | (no params) |
11 |
| Weekly trends | days |
12 |
| Detailed stats | start_date, end_date |
13 |
| Next month prediction | months_ahead |
14 |
| AI recommendations | (no params) |
15 |
| Monthly summary | month |
๐ Example Outputs
Budget Status:
Category Budget Spent Remaining Usage% Status
Food & Dining โน5000 โน2300 โน2700 46.0% ๐ข OK
Transportation โน3000 โน1200 โน1800 40.0% ๐ข OK
Bills & Utilities โน4000 โน2500 โน1500 62.5% ๐ข OKSmart Insights:
๐ฏ TOP SPENDING
Food & Dining is your biggest expense (โน2300) - 35.2% of budget
๐ FREQUENCY
Transportation has most transactions (4 times). Small amounts add up!
๐ DAILY PACE
You're spending โน473 per day on average
๐ก OPTIMIZATION
You have 3 categories eating >20% of budget. Consider consolidating!Forecast:
Category Predicted vs Last Month
Bills & Utilities โน6429.70 โ +157.2%
Groceries โน2450.00 โ -30.0%
Food & Dining โน2060.00 โ -10.4%๐ Connect to Claude Desktop
Step 1: Get Server URL
http://0.0.0.0:8321/mcpStep 2: Add to Claude Settings
In Claude Desktop, go to Settings โ Connected Servers:
{
"mcpServers": {
"expense-tracker": {
"command": "python3",
"args": ["/path/to/main.py"],
"type": "stdio"
}
}
}Step 3: Start Using!
Now tell Claude:
"I spent โน3000 on groceries today"
"Show my monthly budget status"
"Create a savings goal for my vacation"
"What are my spending trends?"๐ Project Structure
Expense-Tracker-MCP/
โโโ main.py # Main MCP server (13 tools)
โโโ test_expense_tracker.py # Complete test suite
โโโ categories.json # Category definitions
โโโ .gitignore # Git ignore rules
โโโ README.md # This file
โโโ .venv/ # Virtual environment๐งช Testing
Run the complete test suite:
python3 test_expense_tracker.pyOutput includes:
โ 10 sample expenses
โ 5 budget configurations
โ 5 recurring expenses
โ 4 savings goals
โ All 15 tools tested
โ Formatted analytics and reports
๐ Security & Best Practices
โ Database uses WAL mode for concurrent access
โ Async/await for non-blocking operations
โ Input validation on all parameters
โ Proper error handling with meaningful messages
โ Database transactions for data integrity
๐ Tech Stack
Framework: FastMCP 3.4.2
Database: SQLite 3
Async Runtime: asyncio + aiosqlite
Server: Uvicorn
Language: Python 3.12+
๐ฏ Use Cases
Personal Finance Tracking - Daily expense logging
Budget Planning - Monthly budget management
Goal Tracking - Savings and financial targets
Spending Analysis - Trend analysis and forecasting
AI Integration - Natural language expense tracking via Claude
๐ Categories Supported
Food & Dining Bills & Utilities Healthcare
Transportation Entertainment Travel
Shopping Education Business
Subscriptions Groceries Personal Care
Other๐ค Contributing
This is a portfolio project. Feel free to fork and extend!
Ideas for enhancement:
Export to CSV/PDF
Multi-user support
Cloud sync
Mobile app integration
Advanced ML predictions
๐ License
MIT License - Feel free to use and modify!
๐จโ๐ป Author
Faraz - CS Engineering Graduate (2025)
Portfolio: faraz-portfolio-ivvo-xi.vercel.app
GitHub: @mhd-faraz
๐ FAQ
Q: Database file empty?
A: Database files are binary. Use list_expenses() tool to verify data exists.
Q: Can I use this without Claude Desktop?
A: Yes! Use MCP Inspector or call tools directly via Python.
Q: How do I reset all data?
A: Delete /tmp/expenses.db and restart server.
Q: Can I host this online?
A: Yes! Deploy to MCPCloud, Vercel, or Railway.
๐ Next Steps
โ Clone this repo
โ Run
python3 main.pyโ Open
http://localhost:8321/mcp/inspectorโ Test a tool
โ Connect to Claude Desktop
โ Start tracking expenses with AI!
Happy Expense Tracking! ๐ฐโจ
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
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/mhd-faraz/Expense-Tracker-MCP'
If you have feedback or need assistance with the MCP directory API, please join our Discord server