Skip to main content
Glama
juansebashr

Money Lover MCP Server

by juansebashr

Money Lover MCP Server

Node.js-Implementierung eines Model Context Protocol (MCP)-Servers, der die inoffizielle Money Lover REST-API kapselt. Der Server stellt 27 MCP-Tools für Authentifizierung, Geldbörsen, Kategorien, Transaktionen, Ereignisse, Schulden und statische Konfiguration bereit – dies ermöglicht KI-Assistenten oder MCP-kompatiblen Clients das Abfragen und Verwalten von persönlichen Finanzdaten.

Funktionen

  • Automatische Authentifizierung über EMAIL/PASSWORD-Umgebungsvariablen – für die meisten Tools ist keine Token-Übergabe erforderlich.

  • 23 Lese-Tools für Benutzerinformationen, Geldbörsen, Kategorien, Transaktionen, Ereignisse, Schulden, Symbole, Anbieter und statische Konfiguration.

  • 4 Schreib-Tools: Erstellen, Aktualisieren und Löschen von Transaktionen, Geldbörsen und Kategorien.

  • Große Antworten werden automatisch gekürzt, um den LLM-Kontext überschaubar zu halten (konfigurierbar über den limit-Parameter).

  • Stdio-basierter Server, kompatibel mit Claude Code, Claude Desktop, Cursor und jedem MCP-Host.

  • Token-Caching pro E-Mail unter ~/.moneylover-mcp/ mit automatischer Aktualisierung bei Authentifizierungsfehlern.

Related MCP server: YNAB Assistant

Voraussetzungen

  • Node.js 22 oder neuer.

  • Money Lover-Zugangsdaten.

Installation

npm install

Verwendung

Starten Sie den MCP-Server über stdio:

npm start

Projektbezogene Konfiguration (Claude Code)

Fügen Sie .mcp.json im Projektstammverzeichnis hinzu:

{
  "mcpServers": {
    "mcp-moneylover": {
      "command": "node",
      "args": ["/absolute/path/to/moneylover-mcp/src/server.js"],
      "env": {
        "EMAIL": "your@email.com",
        "PASSWORD": "your-password"
      }
    }
  }
}

Und aktivieren Sie es in .claude/settings.json:

{ "enabledMcpjsonServers": ["mcp-moneylover"] }

Globale Konfiguration (Claude Desktop / Cursor)

{
  "mcpServers": {
    "mcp-moneylover": {
      "command": "npx",
      "args": ["@ferdhika31/moneylover-mcp@latest"],
      "env": {
        "EMAIL": "your@email.com",
        "PASSWORD": "your-password"
      }
    }
  }
}

Verfügbare Tools

Auth

Tool

Beschreibung

Argumente

login

Ruft ein JWT-Token ab.

email, password

Benutzer

Tool

Beschreibung

Argumente

get_user_info

Mit der Sitzung verknüpftes Profil.

get_user_account

Geräte und aktive Sitzungen.

get_user_profile

Erweiterte Profildaten.

Geldbörsen (Wallets)

Tool

Beschreibung

Argumente

get_wallets

Alle Geldbörsen auflisten.

get_wallet_balance

Saldoübersicht für eine Geldbörse.

walletId

get_shared_wallets

Mit anderen Benutzern geteilte Geldbörsen.

get_awaiting_shared_wallets

Ausstehende Einladungen zur Freigabe.

add_wallet

Eine neue Geldbörse erstellen.

name, currencyId; optional icon

edit_wallet

Name, Symbol oder Währung der Geldbörse aktualisieren.

walletId, currencyId (API-erforderlich); optional name, icon

delete_wallet

Eine Geldbörse dauerhaft löschen.

walletId

Kategorien

Tool

Beschreibung

Argumente

get_categories

Kategorien für eine bestimmte Geldbörse.

walletId

get_all_categories

Alle Kategorien über alle Geldbörsen hinweg.

optional limit (Standard 50)

add_category

Eine Kategorie in einer Geldbörse erstellen.

walletId, name, icon (verwenden Sie get_icons für gültige Namen, z. B. icon_3), type (1=Einnahme, 2=Ausgabe)

edit_category

Eine Kategorie umbenennen oder deren Symbol ändern.

categoryId, icon (API-erforderlich, auch bei reiner Umbenennung); optional name

delete_category

Eine Kategorie löschen.

categoryId

Transaktionen

Tool

Beschreibung

Argumente

get_transactions

Transaktionen in einem Datumsbereich.

walletId, startDate, endDate (JJJJ-MM-TT)

add_transaction

Eine Transaktion erstellen. Kategorie-IDs aus get_categories werden automatisch in globale IDs aufgelöst.

walletId, categoryId, amount, date; optional note, with

edit_transaction

Eine Transaktion aktualisieren. Die API erfordert bei jeder Bearbeitung die vollständige Nutzlast – rufen Sie die Transaktion zuerst ab, wenn Sie aktuelle Werte benötigen. categoryId wird automatisch global aufgelöst.

transactionId, walletId, categoryId, amount, date; optional note, with

delete_transaction

Eine Transaktion löschen.

transactionId

search_transactions

Freitextsuche mit optionalen Filtern.

optional filters, limit (Standard 20)

get_debt_transactions

Als Schulden/Darlehen markierte Transaktionen.

get_related_transactions

Zugehörige Transaktionen nach ID-Liste.

ids (Array)

get_related_transactions_by_category

Zugehörige Transaktionen für eine Kategorie.

categoryId

get_related_transactions_by_wallet

Zugehörige Transaktionen für eine Geldbörse.

walletId

get_transaction_search_config

Verfügbare Suchfilteroptionen.

optional limit (Standard 20)

Statik & Konfiguration

Tool

Beschreibung

Argumente

get_events

Sparziele/Ereignisse für eine Geldbörse.

walletId; optional limit (Standard 50)

get_debts

Offene Schulden in einer Geldbörse.

walletId

get_icons

Metadaten des Symbolpakets.

optional pack (Standard "default")

get_linked_providers

Unterstützte Bankanbieter.

get_currencies

Währungskatalog.

optional limit (Standard 100)

get_exchange_rates

Snapshot der USD-basierten Wechselkurse.

get_other_config

Sonstige Laufzeitkonfiguration.

Beispiele für die Tool-Verwendung

Beispiele für Prompts, erforderliche vs. optionale Felder, Fallstricke und gängige mehrstufige Muster für jedes Tool: docs/examples.md.

Bibliotheksverwendung

import { MoneyloverClient } from './src/moneyloverClient.js';

const token = await MoneyloverClient.getToken(email, password);
const client = new MoneyloverClient(token);

const wallets = await client.getWallets();
const txns = await client.getTransactions(walletId, '2026-01-01', '2026-04-30');
await client.addTransaction({ walletId, categoryId, amount: '50000', date: '2026-04-18' });
await client.editTransaction('txn-id', { amount: '60000', note: 'updated' });
await client.deleteTransaction('txn-id');

Testen

Unit-Tests

Gemockte Unit-Tests – keine Live-API-Aufrufe erforderlich:

npm test

Integrationstests (mcp-tester)

mcp-tester ist ein auf ReAct-Agenten basierendes MCP-Testframework. Es startet den Server, steuert ein LLM zur Ausführung von Tools als Reaktion auf natürlichsprachliche Prompts und prüft, ob die korrekten Tools mit den korrekten Argumenten aufgerufen wurden.

Installation

pipx install --index-url https://pypi.artifacts.furycloud.io/simple/ mcp-tester

Konfiguration

tests/mcp-tester/mcps.json – verweisen Sie auf den lokalen Server mit Ihren Zugangsdaten:

{
  "mcp-moneylover": {
    "command": "node",
    "args": ["/absolute/path/to/src/server.js"],
    "transport": "stdio",
    "env": {
      "EMAIL": "your@email.com",
      "PASSWORD": "your-password"
    }
  }
}

Ausführung

mcp-tester run-tests \
  --mcps tests/mcp-tester/mcps.json \
  --model gpt-4o-mini \
  --concurrent-runs 3 \
  tests/mcp-tester/read-tools.yaml

Ergebnisse

tests/mcp-tester/read-tools.yaml enthält 25 Integrationstests, die jedes Lese-Tool abdecken:

total 25, success 25, failures 0

Die wichtigsten Entscheidungen, die die Tests stabil machen:

  • Kein Token-Parameter bei Lese-Tools – das Offenlegen eines optionalen token-Feldes führte dazu, dass LLMs Geldbörsen-IDs dort einfügten. Der Server authentifiziert sich automatisch über Umgebungsvariablen.

  • Antwortkürzung – mehrere Endpunkte geben Hunderttausende von Datensätzen aus der gemeinsam genutzten MoneyLover-Datenbank zurück. Tools akzeptieren einen limit-Parameter (Standard: 20–100), um den LLM-Kontext unter Kontrolle zu halten.

  • Dict-Wrapping – alle Tool-Antworten geben ein JSON-Objekt zurück (niemals ein reines Array), damit die Validierung des MCP-Frameworks erfolgreich ist.

Schreib-Tool-Tests (mcp-tester)

Drei zusätzliche YAML-Dateien testen den vollständigen CRUD-Lebenszyklus für Geldbörsen, Kategorien und Transaktionen in drei aufeinanderfolgenden Phasen. Jede Phase führt alle drei Ressourcentypen gleichzeitig aus.

Datei

Phase

Tests

write-create.yaml

Erstellen

add_wallet, add_category, add_transaction

write-edit.yaml

Bearbeiten

edit_wallet, edit_category, edit_transaction

write-delete.yaml

Löschen

delete_wallet, delete_category, delete_transaction

Führen Sie die Phasen nacheinander aus – jede hängt von der vorherigen ab:

# Phase 1: Create
mcp-tester run-tests --mcps tests/mcp-tester/mcps.json --model gpt-4o-mini --concurrent-runs 3 tests/mcp-tester/write-create.yaml

# Phase 2: Edit (after Phase 1 passes)
mcp-tester run-tests --mcps tests/mcp-tester/mcps.json --model gpt-4o-mini --concurrent-runs 3 tests/mcp-tester/write-edit.yaml

# Phase 3: Delete (after Phase 2 passes)
mcp-tester run-tests --mcps tests/mcp-tester/mcps.json --model gpt-4o-mini --concurrent-runs 3 tests/mcp-tester/write-delete.yaml

Ergebnisse über alle drei Phasen hinweg:

Phase 1 (Create): total 3, success 3, failures 0
Phase 2 (Edit):   total 3, success 3, failures 0
Phase 3 (Delete): total 3, success 3, failures 0

Die wichtigsten Designentscheidungen für Schreib-Tool-Tests:

  • Erkennung vor Mutation – Tests zum Bearbeiten und Löschen weisen den Agenten an, zuerst ein Lese-Tool (get_wallets, get_categories, get_transactions) aufzurufen, um das Ziel anhand des Namens zu finden, und dann das Mutations-Tool aufzurufen. Dies spiegelt das reale Verhalten von Agenten wider, bei denen IDs nicht im Voraus bekannt sind.

  • args: !any für Schreib-Tool-Assertionen – Das Framework erfordert eine exakte Übereinstimmung der Argumente. Schreib-Tools akzeptieren optionale Felder (icon, with usw.), die der Agent nach eigenem Ermessen einfügen kann; !any überprüft, ob das Tool aufgerufen wurde und erfolgreich war, ohne bei harmlosen Extras zu scheitern. Assertionen für Lese-Tools können exakte Argumentübereinstimmungen verwenden, da deren Schemata keine optionalen Felder enthalten, die das LLM spontan hinzufügen würde.

  • Vorhersehbare Bezeichner – Testressourcen verwenden feste Namen (MCP-Test-Wallet, MCP-Test-Category) und eine feste Notiz (MCP test transaction), damit der Agent sie während der Bearbeitungs- und Löschphasen anhand des Namens finden kann, ohne den Status zwischen Testläufen teilen zu müssen.

  • Vollständige Payload-Bearbeitungs-Assertionenedit_transaction ist ein Vorgang, der den gesamten Datensatz ersetzt; der Test-Prompt weist den Agenten an, zuerst die vorhandene Transaktion abzurufen (get_transactions) und alle aktuellen Feldwerte zu übernehmen, wobei nur die Notiz geändert wird. Dies validiert das mehrstufige Denken, das die Tool-Beschreibung erfordert.

Sicherheitshinweise

  • Committen Sie niemals echte Zugangsdaten oder Token.

  • Zwischengespeicherte Token befinden sich in ~/.moneylover-mcp/ und sind auf den aktuellen Benutzer beschränkt.

  • Löschen Sie dieses Verzeichnis, um alle zwischengespeicherten Sitzungen zu widerrufen.

Install Server
A
license - permissive license
A
quality
D
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables AI agents to interact with the WYGIWYH expense tracking API through 75 dynamically generated MCP tools. Supports comprehensive financial operations including transaction management, account handling, recurring expenses, and investment tracking.
    7
  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables AI assistants to interact with YNAB budgets through natural language. Supports managing accounts, categories, transactions, and budget months with 21 tools for comprehensive budget operations.
  • A
    license
    A
    quality
    D
    maintenance
    Enables AI assistants to interact with Money Lover personal finance app through unofficial REST API. Supports authentication, wallet management, transaction querying, and creating new transactions for expense tracking.
    6
    20
    4
    ISC
  • A
    license
    A
    quality
    D
    maintenance
    Enables AI assistants to manage personal finances through the Realbyte Money Manager mobile app, providing transaction management, asset tracking, credit card monitoring, and financial analytics with 18 comprehensive tools.
    18
    17
    11
    MIT

View all related MCP servers

Related MCP Connectors

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

  • Connect AI agents to bank accounts, transactions, balances, and investments.

  • Gateway between LLM agents and world data through eight tools and a bundled endpoint catalog.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/juansebashr/moneylover-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server