Skip to main content
Glama
PranaPragada7

Expense Tracker MCP Server

Expense Tracker Agent

CI Python Streamlit SQLite MCP

Ein KI-gestützter persönlicher Ausgaben-Tracker, der natürlichsprachliche Anfragen in strukturierte Datenbankoperationen umwandelt. Das Projekt kombiniert eine responsive Streamlit-Oberfläche, Claude-Toolnutzung, einen MCP-Server und lokale SQLite-Speicherung.

Was dieses Projekt demonstriert

  • Agentischer, mehrstufiger Tool-Einsatz für reale Datenbank-Workflows

  • Eine saubere Trennung zwischen Sprachmodell, MCP-Transport und Datenebene

  • Eine direkte Claude-Toolaufruf-Schleife ohne Orchestrierungsframework

  • Eingabevalidierung, eingeschränktes Assistentenverhalten und sichere lokale Datenverarbeitung

  • Automatisierte Smoke-Tests und kontinuierliche Integration

  • Eine responsive Benutzeroberfläche für Eingabe, Konversation und Ausgaben-Einblicke

Related MCP server: Expense Tracker MCP Server

Produktfunktionen

  • Ausgaben über ein Formular oder eine natürlichsprachliche Anfrage hinzufügen

  • Datum, Betrag, Kategorie und Beschreibung für jede Transaktion speichern

  • Ausgaben über MCP-Tools suchen, aktualisieren, löschen und zusammenfassen

  • Gesamtbeträge, aktuelle Transaktionen und Ausgaben auf Kategorieebene anzeigen

  • Den fokussierten Finanzassistenten nach datenbankgestützten Erkenntnissen fragen

  • Ausgabendaten lokal in einer SQLite-Datei speichern

Architektur

flowchart LR
    U[User] --> UI[Streamlit or CLI]
    UI --> A[Claude agent]
    A -->|Tool request| C[MCP client]
    C -->|stdio| S[MCP server]
    S -->|DB-API 2.0| D[(SQLite)]
    D --> S
    S -->|Structured result| A
    A --> UI

Claude greift nie direkt auf SQLite zu. Es wählt aus den MCP-Tool-Schemata aus, und der Server führt jede validierte Datenbank-Lese- und Schreiboperation durch.

Beispielhafte Agent-Workflows

Benutzerabsicht

Tool-Sequenz

Ausgabe für Mittagessen hinzufügen

find_category → add_expense

Gestern getankten Betrag ändern

search_expenses → update_expense

Übereinstimmenden Kauf löschen

search_expenses → delete_expense

Monatliche Ausgaben überprüfen

monthly_summary

Technologie

Schicht

Technologie

Schnittstelle

Streamlit, pandas

Sprachmodell

Anthropic Claude

Agentenintegration

Direct Messages API Tool-Use-Loop

Tool-Protokoll

Model Context Protocol über stdio

Daten

SQLite über Python DB-API 2.0

Qualität

pytest, Black, GitHub Actions

Schnellstart

Voraussetzungen:

  • Python 3.11 oder neuer

  • Ein Anthropic-API-Schlüssel für den Assistenten

Virtuelle Umgebung erstellen und aktivieren:

python -m venv .venv
.\.venv\Scripts\Activate.ps1
python -m pip install -r requirements.txt

Für macOS oder Linux die Umgebung aktivieren mit:

source .venv/bin/activate

Lokale Umgebungsdatei erstellen und ANTHROPIC_API_KEY hinzufügen:

Copy-Item .env.example .env

Datenbankschema und Startkategorien erstellen, dann die App starten:

python db_setup.py
streamlit run streamlit_app.py

Der MCP-Server verwendet stdio und startet automatisch, wenn ein Client verbindet.

Qualitätsprüfungen

Entwicklungsabhängigkeiten installieren und die gleichen Prüfungen wie in der CI ausführen:

python -m pip install -r requirements-dev.txt
python -m black --check .
python -m compileall -q agent.py client_test.py db_setup.py mcp_client.py server.py streamlit_app.py
python -m pytest -q
python client_test.py

client_test.py führt alle 18 MCP-Tools aus und entfernt seine temporären Datensätze, wenn der Smoke-Test beendet ist.

MCP-Tools

Der Server stellt 18 Tools bereit:

  • Kategorienverwaltung: list_categories, add_category, rename_category, delete_category, get_category_name

  • Ausgabenverwaltung: add_expense, update_expense, delete_expense, list_expenses, search_expenses, expenses_by_category, total_expense_by_category, total_expense, monthly_summary

  • Unterstützende Abfragen: current_date, find_category, get_expense, expenses_between

Projektstruktur

Pfad

Zweck

streamlit_app.py

Formular-, Assistenten- und Einblicke-Schnittstelle

agent.py

Claude-Toolaufruf-Schleife und Befehlszeilenschnittstelle

server.py

Validierte SQLite-Operationen, die als MCP-Tools bereitgestellt werden

mcp_client.py

Wiederverwendbarer stdio-MCP-Client

db_setup.py

Schema- und Startkategorie-Initialisierung

client_test.py

End-to-End-MCP-Tool-Smoke-Test

tests/

Automatisierte Datenbank- und UI-Prüfungen

.github/workflows/ci.yml

Continuous-Integration-Pipeline

Konfiguration

Variable

Erforderlich

Standard

ANTHROPIC_API_KEY

Ja

—

ANTHROPIC_MODEL

Nein

claude-sonnet-5

AGENT_EFFORT

Nein

medium

EXPENSE_DB

Nein

expenses.db neben den Quelldateien

Die .env-Datei und expenses.db sind von Git ausgeschlossen. API-Schlüssel und persönliche Ausgabendaten bleiben außerhalb des Repositorys.

Um die Datenbank mit einer leeren Ausgabentabelle neu zu erstellen:

python db_setup.py --reset

Related MCP Connectors

  • Log, query, and edit expenses, budgets, and accounts in Manilo from any MCP-compatible AI assistant.

  • Log, query, and edit expenses, budgets, and accounts in Manilo (formerly Ledgy) from any MCP-compatible AI assistant.

  • Log, query, and edit expenses, budgets, and accounts in Ledgy from any MCP-compatible AI assistant.

  • The Ramp MCP server enables users to securely connect Ramp with AI assistants like ChatGPT and Claude to query financial data and take actions using natural language. It transforms Ramp's developer API into a SQL interface that LLMs can query, allowing admins to analyze spend trends, identify cost savings, and run complex SQL analyses on comprehensive datasets (transactions, purchase orders, vendors, users), while all users can manage cards, view transactions, request reimbursements, and get expense policy answers.

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables AI assistants to manage personal expenses through natural conversation, supporting expense tracking, categorization, filtering, and financial summaries. Uses SQLite database to store expense records with full CRUD operations for comprehensive personal finance management.
    2
    -
  • F
    license
    C
    quality
    D
    maintenance
    Enables personal expense management with SQLite storage, allowing users to add, update, delete, list, and summarize expenses by category through natural language interactions.
    5
    -
  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables management of expenses via SQLite database, including adding, listing, updating, deleting, filtering, and summing expenses through natural language.
    -
  • F
    license
    A
    quality
    C
    maintenance
    Enables natural language management of personal expenses, including adding, updating, deleting, searching, and summarizing expenses stored in a local SQLite database.
    6
    -