expense-tracker-mcp
README.md
# Expense Tracker MCP Server
A local MCP (Model Context Protocol) server built with **FastMCP** and **PostgreSQL**.
This project exposes expense management tools that can be used by MCP clients such as Claude Desktop.
## Features
- ā Add Expense
- š List Expenses
- š Summarize Expenses
- āļø Edit Expense
- šļø Delete Expense
- š° Add Credit
- š Expense Categories Resource
## Tech Stack
- Python
- FastMCP
- PostgreSQL
- SQLAlchemy
- Psycopg 3
- Pydantic Settings
- UV
## Project Structure
```text
expense-tracker-mcp/
ā
āāā app/
ā āāā tools/
ā ā āāā expense_tools.py
ā ā āāā credit_tools.py
ā āāā config.py
ā āāā database.py
ā āāā models.py
ā āāā resources.py
ā
āāā categories.json
āāā main.py
āāā .env.example
āāā pyproject.toml
āāā README.md
```
## MCP Tools
| Tool | Description |
|------|-------------|
| `add_expense` | Add a new expense |
| `list_expenses` | List all expenses |
| `summarize_expenses` | Show expense summary |
| `edit_expense` | Update an existing expense |
| `delete_expense` | Delete an expense |
| `add_credit` | Add income/credit |
## MCP Resource
```
expense://categories
```
Returns the predefined expense categories.
## Setup
Clone the repository:
```bash
git clone https://github.com/thearyangupta/expense-tracker-mcp.git
cd expense-tracker-mcp
```
Install dependencies:
```bash
uv sync
```
Create a `.env` file:
```env
DATABASE_URL=postgresql+psycopg://postgres:YOUR_PASSWORD@localhost:5432/expense_tracker
```
Run the server:
```bash
uv run python main.py
```
## Example Prompts
```
Add a Food expense of ā¹250 for Lunch.
Show all expenses.
Summarize my expenses.
Update expense 3.
Delete expense 5.
Add a credit of ā¹20,000 from Freelancing.
```
## Future Improvements
- Expense filtering
- Monthly reports
- Export to CSV
- Budget tracking
- AI-powered expense insights
---
Built using FastMCP and PostgreSQL.This server cannot be deployed
Maintenance
ActivitySlowing
ResponsivenessNo issues