MCP Hub
Back to servers

Expense Tracker MCP Server

A SQLite-backed expense manager that allows users to track, categorize, and summarize personal spending and credit accounts through Claude. It provides full CRUD operations for expenses along with categorized reporting features.

Tools
6
Updated
Dec 4, 2025

Expense Tracker MCP Server

A Model Context Protocol (MCP) server for tracking expenses, built with fastmcp.

Features

This server provides tools to manage expenses in a local SQLite database (expenses.db) and exposes categories via a resource.

Tools

  • add_expense: Add a new expense.
    • Arguments: date (YYYY-MM-DD), amount, category, subcategory (optional), note (optional).
  • list_expenses: List expenses within a date range.
    • Arguments: start_date, end_date.
  • summarize: Summarize expenses by category.
    • Arguments: start_date, end_date, category (optional filter).
  • edit_expense: Edit an existing expense.
    • Arguments: id, date, amount, category, subcategory, note.
  • delete_expense: Delete an expense by ID.
    • Arguments: id.
  • add_credit: Add credit to a user account (default user).
    • Arguments: amount, user_name (optional, default="default").

Resources

  • expense://categories: Returns the content of categories.json.

Prerequisites

  • Python >= 3.12
  • uv (recommended for dependency management)

Installation & Usage

Using uv (Recommended)

You can run the server directly using uv:

uv run main.py

Manual Installation

  1. Create a virtual environment:

    python -m venv .venv
    source .venv/bin/activate  # On Windows: .venv\Scripts\activate
    
  2. Install dependencies:

    pip install fastmcp
    
  3. Run the server:

    python main.py
    

Configuration for Claude Desktop

Add the following to your claude_desktop_config.json:

{
  "mcpServers": {
    "expense-tracker": {
      "command": "uv",
      "args": [
        "run",
        "--with",
        "fastmcp",
        "c:\\Users\\LOQ\\Downloads\\ExpenseTracker_MCP_Server\\main.py"
      ]
    }
  }
}

Note: Update the path to main.py to match your local path.

Reviews

No reviews yet

Sign in to write a review