Skip to main content
Glama
MeetSolanki2260

expense-tracker-mcp-server

README.md
# Expense Tracker MCP Server

A Model Context Protocol (MCP) server for tracking, categorizing, and summarizing personal & business expenses. Built with Python, [FastMCP](https://github.com/jlowin/fastmcp), and SQLite.

## Features

- **Add Expenses (`add_expense`)**: Log date, amount, category, subcategory, and optional notes.
- **List Expenses (`list_expenses`)**: Fetch expense logs within a specified date range.
- **Summarize Expenses (`summarize`)**: Aggregated totals grouped by category (or filter by specific category).
- **Categories Resource (`expense://categories`)**: Dynamic access to preset expense categories and subcategories.

---

## Prerequisites

- Python 3.12+
- [`uv`](https://github.com/astral-sh/uv) (recommended) or `pip`

---

## Setup & Running

1. **Clone the Repository**:
   ```bash
   git clone https://github.com/<YOUR_USERNAME>/expense-tracker-mcp-server.git
   cd expense-tracker-mcp-server
   ```

2. **Install Dependencies**:
   ```bash
   uv sync
   ```

3. **Run the MCP Server**:
   ```bash
   uv run main.py
   ```

---

## MCP Client Configuration

### Claude Desktop Configuration
Add the following to your `claude_desktop_config.json`:

```json
{
  "mcpServers": {
    "expense-tracker": {
      "command": "uv",
      "args": [
        "--directory",
        "/absolute/path/to/expense-tracker-mcp-server",
        "run",
        "main.py"
      ]
    }
  }
}
```

---

## License

[MIT](LICENSE)

TDQS

C2.9/5.0

Scored across 3 tools

Disambiguation5/5

Each tool has a clearly distinct purpose: add_expense writes entries, list_expenses reads them by date range, and summarize aggregates them by category. There is no ambiguity between the three tools.

Naming Consistency4/5

All tools use a consistent verb_infinitive arrangement (add_, list_, summarize), though adding and listing are verb_noun patterns while summarize is less obviously named in the same convention. Minor deviation but the pattern is predictable.

Tool Count3/5

Three tools is on the thin side for an expense tracker, which typically needs update and delete operations to manage entries. The count is minimal but each tool does carry meaningful weight.

Completeness2/5

The surface covers create (add) and read (list, summarize), but lacks update and delete operations for expenses—a clear gap in CRUD coverage. Users cannot edit or remove entries, which is a significant functionality hole for an expense tracker.

Maintenance

ActivityStale
ResponsivenessNo issues