Skip to main content
Glama
MOKSH0077

Local MCP Server Expense Tracker

by MOKSH0077
README.md
# Local MCP Server Expense Tracker

A lightweight, local Model Context Protocol (MCP) server built with **FastMCP** and **SQLite** to manage expenses. This server enables MCP-compatible clients (like Claude Desktop) to add, list, edit, and delete expenses directly from chat using a local database.

## Features

- **SQLite Database**: Self-contained database (`Expense.db`) created dynamically in the same directory.
- **Full CRUD operations**:
  - `add_expense`: Add a new expense (amount, category, date, description).
  - `list_expenses`: Fetch all expenses stored in the database.
  - `edit_expense`: Modify an existing expense record by ID.
  - `delete_expense`: Permanently delete an expense record by ID.

## Prerequisites

- **Python 3.10+**
- **uv** (recommended Python package installer/runner)

## Installation & Running

### 1. Run in Development Mode (Inspector)
To run the server and inspect/test the tools using the FastMCP web inspector:
```bash
uv run fastmcp dev inspector expense_tracker.py
```

### 2. Run the MCP Server
To start the server directly:
```bash
uv run fastmcp run expense_tracker.py
```


### 3. Install in Claude Desktop
To automatically register the server with your local Claude Desktop configuration:
```bash
uv run fastmcp install claude-desktop expense_tracker.py
```

### 4. Windows Auto-Sync & Path Fix (Optional)
If you are using the Microsoft Store version of Claude Desktop on Windows, the app is sandboxed and might fail to find `uv` in its PATH or fail to load the standard configuration.

You can run the included PowerShell script to fix the paths and sync configuration:
```powershell
.\sync_mcp.ps1
```
This script:
- Resolves the absolute path of `uv.exe`.
- Syncs the configurations to Claude's sandboxed local packages directories.
- Restarts Claude Desktop automatically.

## Database Schema

The SQLite database contains a table named `expenses` with the following schema:
- `id`: INTEGER (Primary Key, Auto-increment)
- `amount`: REAL (Not Null)
- `category`: TEXT (Not Null)
- `date`: DATE (Not Null)
- `description`: TEXT (Optional)

## License

MIT License

TDQS

B3.3/5.0

Scored across 4 tools

Disambiguation5/5

Each tool has a distinct operation (add, delete, edit, list) with no overlap, making it easy for an agent to select the correct one.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern using snake_case, which is predictable and readable.

Tool Count5/5

Four tools cover the core CRUD operations for an expense tracker; the count is appropriate and not excessive.

Completeness4/5

The set provides essential create, read (list), update, and delete operations, but lacks a single-expense retrieval tool, which is a minor gap.

Maintenance

ActivityStale
ResponsivenessNo issues