personal-finance-mcp
personal-finance-mcp
Inoffiziell. Dieses Projekt ist nicht mit Plaid Inc. verbunden, wird von dieser nicht unterstützt oder gesponsert. "Plaid" ist eine Marke von Plaid Inc. Dies ist ein selbstgehosteter Client, der mit der API von Plaid unter Verwendung Ihrer bereitgestellten Anmeldedaten kommuniziert.
Ein selbstgehosteter, schreibgeschützter MCP-Server, der Ihre Banken, Kreditkarten, Kredite und Brokerage-Konten (über Plaid) mit einem MCP-Client wie Claude Code verbindet. Stellen Sie Fragen zu Ihren eigenen Finanzen in einfachem Englisch — ohne Drittanbieter-Aggregator (Monarch, Mint, etc.).
Was Sie fragen können
"Wie hoch ist mein Gesamtsaldo über alle Konten hinweg?"
"Zeige mir Transaktionen über 100 $ in den letzten 30 Tagen."
"Für welche Abonnements zahle ich noch?"
"Wie viel habe ich letzten Monat für Lebensmittel ausgegeben?"
"Muss irgendeine Bank neu authentifiziert werden?"
Beispielsitzung (illustrativ):
you : What did I spend on groceries last month?
claude : [calls get_transactions]
$487.23 across 14 transactions. Top merchants:
Whole Foods ($198), Trader Joe's ($156), Safeway ($89).
you : Any subscriptions I'm still paying for?
claude : [calls get_recurring_transactions]
7 active recurring outflows totaling $142/mo:
Netflix ($15.99), Spotify ($11.99), NYT ($4), ...Related MCP server: plaid-mcp
Tools
Alle 9 Tools sind schreibgeschützt. Jedes gibt {<data>: [...], "warnings": [...]} zurück, sodass eine defekte Bankverbindung nicht die gesamte Abfrage unterbricht.
Tool | Funktion |
| Jedes Konto bei jeder verknüpften Bank, mit Salden |
| Aktuelle + verfügbare Salden (optional nach Konto gefiltert) |
| Transaktionen in einem Datumsbereich (bis zu 2 Jahre zurück) |
| Stichwortsuche nach Händler / Name / Gegenpartei |
| Erkannte wiederkehrende Einnahmen- + Ausgabenströme |
| Kreditkarten, Studienkredite, Hypotheken mit effektivem Jahreszins und Zahlungsdetails |
| Aktuelle Bestände mit Symbol + Wertpapier-Metadaten |
| Kauf- / Verkaufs- / Dividendenhistorie in einem Datumsbereich |
| Status jeder verknüpften Bank (zeigt an, ob eine Neu-Authentifizierung nötig ist) |
Schnellstart
Erfordert Python 3.11+, ein Plaid-Konto (kostenloser Testplan) und einen MCP-Client.
1. Plaid-Einrichtung
Registrieren Sie sich unter https://dashboard.plaid.com/signup → wählen Sie den Trial-Plan (kostenlos, 10 Elemente).
Team Settings → Products: aktivieren Sie Transactions, Liabilities, Investments.
Team Settings → API: kopieren Sie Ihre
client_idund das Produktions-secret.
2. Installation
git clone https://github.com/JosueM1109/personal-finance-mcp.git
cd personal-finance-mcp
python3.11 -m venv .venv && source .venv/bin/activate
pip install -r requirements.txt
cp .env.example .env # then fill in PLAID_CLIENT_ID and PLAID_SECRET
pytest -v # sanity check3. Jede Bank verknüpfen
Führen Sie dies einmal pro Bank aus, die Sie verbinden möchten:
uvicorn link_helper:app --port 8765Öffnen Sie http://localhost:8765, klicken Sie auf Link a bank und schließen Sie Plaid Link ab. Das Terminal gibt eine Zeile wie PLAID_TOKEN_CHASE=access-prod-xxx... aus — fügen Sie diese in .env ein und wiederholen Sie den Vorgang für jede Bank.
4. Ausführen
python server.py # serves on http://localhost:8000/mcp5. Zu Claude Code hinzufügen
claude mcp add --transport http personal-finance http://localhost:8000/mcpVersuchen Sie "list my accounts", um es zu bestätigen.
Bereitstellung
Für eine Bereitstellung, die Sie von überall nutzen können:
Docker (enthalten):
docker build -t personal-finance-mcp . && docker run --rm -p 8000:8000 --env-file .env personal-finance-mcpJeder Python-Host (Fly.io, Railway, Raspberry Pi + Tailscale, ein VPS): setzen Sie die Umgebungsvariablen aus
.env.example, machen Sie/mcpüber HTTPS verfügbar und sichern Sie es mit einer Authentifizierung.Prefect Horizon (was der Autor verwendet — 0 $ laufende Kosten): siehe docs/DEPLOYMENT.md für die vollständige Anleitung.
Sichern Sie den Endpunkt. Ein exponierter MCP-Endpunkt mit Ihren Tokens legt jedes verknüpfte Konto offen. Verwenden Sie OAuth 2.1, Cloudflare Access oder binden Sie ihn nur an ein privates Netzwerk.
Sicherheit
Single-Tenant. Eine Bereitstellung pro Person. Nicht teilen.
Schreibgeschützt. Kein Tool ändert den Status bei irgendeinem Institut. Fügen Sie keine Tools hinzu, die dies tun.
Tokens leben in Umgebungsvariablen, niemals auf der Festplatte.
.envist in gitignore enthalten.Sie sind für die Plaid-Compliance verantwortlich. Sie sind der Plaid-Kunde unter Ihrem eigenen Konto.
Vor jeder Bereitstellung:
[ ]
.envniemals committen:git log --all -- .envgibt nichts zurück[ ] Keine echten Tokens in der Historie:
git log -S'access-prod-' --allgibt nur Platzhalter zurück[ ] Authentifizierungsschutz vor dem MCP-Endpunkt (oder nur localhost)
[ ]
HORIZON=1(oder ähnlich) in der Bereitstellungsumgebung gesetzt, blockiertlink_helper.pydort[ ] Überprüfen Sie
get_institutions_status()alle paar Wochen auf notwendige Neu-Authentifizierungen
Fehlerbehebung
Tool gibt trotz echter Daten nichts zurück. Plaid-Produkte waren nicht aktiviert, als Sie die Bank verknüpft haben. Verknüpfen Sie sie erneut mit aktivierten Transactions + Liabilities + Investments. Das Tool zeigt PRODUCTS_NOT_SUPPORTED in warnings an, wenn dies die Ursache ist.
get_institutions_status() zeigt re_auth_required. Die Plaid-Sitzung der Bank ist abgelaufen. Führen Sie link_helper.py im Update-Modus aus — Ihr bestehendes Zugriffstoken bleibt gleich. Siehe docs/DEPLOYMENT.md.
Plaid Link zeigt eine Bank als "nicht unterstützt" an (häufig bei Amex). Normalerweise ein INSTITUTION_REGISTRATION_REQUIRED-Problem — OAuth-Banken benötigen zuerst eine Registrierung pro Institut im Plaid-Dashboard. Siehe docs/TROUBLESHOOTING.md.
Weitere Probleme: docs/TROUBLESHOOTING.md.
Architektur
server.py — FastMCP-Server, 9 schreibgeschützte Tools.
plaid_client.py — Plaid SDK-Wrapper:
SecretStr-Token-Schwärzung, 5-Minuten-Gesundheits-Cache pro Element, Antwortformatierung, strukturierte Fehlerzuordnung.link_helper.py — Nur lokal verfügbare FastAPI-App für Plaid Link. Verweigert den Betrieb, wenn
HORIZON=1gesetzt ist.
Tieferer Einblick (einschließlich warum /transactions/get statt /transactions/sync): docs/ARCHITECTURE.md.
Mitwirken
Siehe CONTRIBUTING.md. Der Umfang ist bewusst eng gefasst: schreibgeschützt, Single-Tenant, Plaid-basiert.
Maintenance
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
- AlicenseAqualityDmaintenanceA read-only MCP server that enables users to analyze their real bank, credit card, loan, and brokerage data through Plaid. It provides financial analysis tools for transactions, balances, investments, liabilities, and debt while keeping all access tokens and data locally stored.24MIT
- FlicenseNot gradedqualityCmaintenanceSelf-hosted MCP server enabling Claude to query bank accounts, balances, and transactions through Plaid with OAuth and TLS.
- AlicenseBqualityAmaintenanceopen-source personal finance app with a first-party MCP server. 91 HTTP tools (OAuth 2.1 + DCR) and 87 stdio tools cover transactions, budgets, accounts, portfolio analytics, FX conversion, loans, subscriptions, goals, importers, and rules. Users self-host with Docker + PostgreSQL or use the managed cloud8911AGPL 3.0
- AlicenseNot gradedqualityDmaintenanceA local MCP server that provides read-only SQL access to financial accounts via Plaid, enabling natural language queries about transactions, balances, and holdings.MIT
Related MCP Connectors
Hosted remote MCP server for YNAB on Cloudflare Workers with OAuth
Brazilian Open Finance MCP — 30+ banks (Itaú, Nubank, etc.) to Claude/Cursor. Read-only.
Read-only bank access for your AI agent. Connects Claude, ChatGPT, Cursor, Gemini, Codex.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/JosueM1109/personal-finance-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server