Skip to main content
Glama
vansh216

Expense Tracker MCP Server

by vansh216
README.md
# Expense Tracker MCP Server

An MCP (Model Context Protocol) server built with FastMCP for managing and analyzing expenses through AI assistants such as Claude, ChatGPT, Gemini, Cursor, and other MCP-compatible clients.

## Features

### Tools

#### 1. Add Expense

Add a new expense record.

Parameters:

* date
* amount
* category
* subcategory (optional)
* note (optional)

#### 2. List Expenses

Retrieve all stored expenses.

#### 3. Get Expenses by Category

Filter expenses by category.

#### 4. Calculate Total Expenses

Calculate the total amount spent.

#### 5. Summarize Expenses

Generate a spending summary including:

* Total expenses
* Number of transactions
* Category-wise spending
* Highest expense
* Lowest expense
* Average expense

Example Response:

```json
{
  "total_expenses": 12500,
  "transaction_count": 45,
  "average_expense": 277.78,
  "highest_expense": 1500,
  "lowest_expense": 50,
  "category_breakdown": {
    "Food": 3500,
    "Transport": 2200,
    "Shopping": 4800,
    "Bills": 2000
  }
}
```

---

## MCP Resources

### expense://categories

Returns available expense categories.

MIME Type:

```text
application/json
```

Example:

```json
{
  "categories": [
    "Food",
    "Transport",
    "Shopping",
    "Bills",
    "Healthcare",
    "Entertainment",
    "Education",
    "Other"
  ]
}
```

---

## Project Structure

```text
expense-tracker/
│
├── main.py
├── expenses.db
├── categories.json
├── pyproject.toml
├── README.md
└── .venv/
```

---

## Installation

```bash
git clone <repository-url>
cd expense-tracker
uv sync
```

---

## Running the MCP Server

```bash
uv run fastmcp run main.py
```

Development mode:

```bash
uv run fastmcp run main.py --reload
```

---

## Example Expense Record

```json
{
  "date": "2026-06-20",
  "amount": 250,
  "category": "Food",
  "subcategory": "Restaurant",
  "note": "Lunch"
}
```

---

## Database

SQLite is used for storing expenses.

Fields:

* id
* date
* amount
* category
* subcategory
* note

---

## Supported MCP Clients

* Claude Desktop
* ChatGPT MCP Clients
* Gemini MCP Clients
* Cursor
* VS Code MCP Extensions
* Any MCP-compatible MCP client

---

## License

No license specified.
All rights reserved by the project owner unless otherwise stated.

TDQS

B3.1/5.0

Scored across 3 tools

Disambiguation5/5

Each tool has a clearly distinct purpose: adding, listing, and summarizing expenses. There is no overlap or ambiguity.

Naming Consistency4/5

Two tools follow verb_noun pattern consistently, but summarizemissing a noun and pluralization differs (expense vs expenses), which is a minor deviation.

Tool Count3/5

Three tools is borderline low for an expense tracker; while core read and create are covered, it feels slightly under-scoped.

Completeness2/5

Notable missing operations: update and delete for expenses, and no category management. This creates significant gaps in typical expense tracking workflows.

Maintenance

ActivityStale
ResponsivenessNo issues