moneybird-mcp
moneybird-mcp
Ein Model Context Protocol-Server für die Buchhaltungs-API von Moneybird.
Er stellt Moneybird als eine Reihe von MCP-Tools bereit, sodass ein Assistent wie Claude Kontakte nachschlagen, Rechnungen lesen, Bankbewegungen prüfen, Zeiten erfassen und Berichte aus deiner Administration abrufen kann. Der Zugriff ist schreibgeschützt, bis du das Schreiben aktivierst. Die Tools sind in Toolsets gruppiert, die du einzeln aktivieren kannst, und der Client passt das Tempo seiner eigenen Anfragen an, um innerhalb des Moneybird-Ratenlimits zu bleiben. Er spricht stdio für lokale Clients und Streamable HTTP für entfernte Clients.
Schnellstart
Registriere den Server bei deinem Client. Für Claude Code:
claude mcp add moneybird -- npx -y moneybird-mcp serveBitte dann deinen Assistenten, sich zu verbinden. Der Server startet ohne Anmeldedaten und stellt ein connect_moneybird-Tool bereit: Es öffnet die Token-Seite von Moneybird in deinem Browser, fragt nach dem Token, das du dort erstellst, verifiziert es, wählt deine Administration aus und speichert sie — ohne das Gespräch zu verlassen.
Das erfordert einen Client, der MCP-Elicitation unterstützt. Wo das nicht verfügbar ist, läuft dieselbe Einrichtung in einem Terminal:
npx moneybird-mcp loginDas führt dich durch dieselben Schritte und speichert das Ergebnis in ~/.config/moneybird-mcp/credentials.json.
Prüfe, dass alles funktioniert, bevor du dich darauf verlässt:
npx moneybird-mcp statusstatus gibt die aktivierten Toolsets, die Schreib- und Lösch-Einstellungen, die Herkunft der Anmeldedaten und die Administrationen aus, die der Token erreichen kann. Er beendet sich mit einem Fehlercode ungleich null, wenn er Moneybird nicht erreichen kann.
Related MCP server: kalender.digital MCP Server
Authentifizierung
Moneybird bietet zwei Möglichkeiten, ein Token zu erhalten, und dieser Server unterstützt beide. Keine der beiden läuft völlig ohne Zutun ab: Moneybird implementiert weder Dynamic Client Registration noch PKCE, daher gibt es keinen Ablauf, der das Erstellen eines Tokens oder das Registrieren einer Anwendung überspringt. Das ist eine Einschränkung der Moneybird-API, nicht dieses Servers. Das connect_moneybird-Tool entfernt jeden Schritt um diesen einen herum — es öffnet die richtige Seite und erfasst das Ergebnis für dich.
Persönlicher API-Token. Du erstellst es selbst unter https://moneybird.com/user/applications/new, wählst die gewünschten Scopes aus und fügst es in moneybird-mcp login ein. Der einfachste Weg. Die Scopes sind bei der Erstellung festgelegt, und Moneybird lässt diese Tokens derzeit nicht ablaufen — was auch bedeutet, dass eines nicht automatisch rotiert werden kann. Behandle es wie ein Passwort.
OAuth-Anwendung. Du registrierst eine Anwendung an derselben Stelle, dann:
export MONEYBIRD_CLIENT_ID=...
export MONEYBIRD_CLIENT_SECRET=...
npx moneybird-mcp login --oauthDer Server öffnet die Autorisierungsseite von Moneybird, fängt die Weiterleitung auf http://127.0.0.1:51739/callback ab und tauscht den Code um. Moneybird gleicht Redirect-URIs exakt ab, daher muss diese URI exakt so bei deiner Anwendung registriert sein. Verwende --port, um eine andere zu wählen, oder --oob, damit Moneybird den Code im Browser anzeigt, statt weiterzuleiten — nützlich, wenn kein Loopback-Listener geöffnet werden kann. OAuth-Tokens können bei Moneybird widerrufen und automatisch erneuert werden, wenn sie ein Ablaufdatum tragen.
Um ein Token ohne jede Rückfrage zu speichern, zum Beispiel in einem Provisioning-Skript:
npx moneybird-mcp login --token "$MONEYBIRD_TOKEN"moneybird-mcp logout entfernt die gespeicherte Datei. Bei einer OAuth-Anmeldung widerruft es die Autorisierung selbst nicht — das erledigst du in Moneybird.
Siehe docs/authentication.md für Scopes, Erneuerungsverhalten und die genauen Abläufe.
Konfiguration
Die Konfiguration kommt aus der Umgebung; CLI-Flags überschreiben sie.
Umgebungsvariablen
Variable | Standard | Zweck |
| — | Zu verwendendes Token, das die gespeicherten Anmeldedaten vollständig umgeht. |
| aus den gespeicherten Anmeldedaten | Administration, die verwendet wird, wenn ein Tool keine nennt. |
|
| Zu aktivierende Toolsets. Akzeptiert |
|
|
|
|
|
|
|
|
|
|
| Bind-Adresse für den HTTP-Transport. |
|
| Port für den HTTP-Transport. |
|
|
|
| — | Gemeinsames Geheimnis, das Aufrufer im |
| — | Client-ID der OAuth-Anwendung. Muss zusammen mit dem Secret gesetzt werden. |
| — | Client-Secret der OAuth-Anwendung. |
| alle sechs Scopes | Durch Kommas getrennte Scopes, die während |
|
| Redirect-URI für den OAuth-Ablauf. Muss mit der bei deiner Anwendung registrierten übereinstimmen. |
| — | IANA-Zeitzone, die mit datumsabhängigen Anfragen gesendet wird, z. B. |
|
| API-Basis-URL. Zum Testen gegen einen Stub. |
|
| Timeout pro Anfrage. |
|
| Wiederholungen nach dem ersten Versuch, bei 429- und 5xx-Antworten. |
|
| Verzeichnis, das |
Befehle
Befehl | Funktion |
| Startet den MCP-Server. Dies ist der Standard, wenn kein Befehl angegeben wird. |
| Authentifiziert und speichert Anmeldedaten. |
| Entfernt die gespeicherten Anmeldedaten. |
| Gibt die Konfiguration aus und prüft die Verbindung. |
| Listet die Tools auf, die die aktuellen Einstellungen freigeben. |
Flags
Flag | Befehl | Bedeutung |
|
| Über Streamable HTTP statt stdio bedienen. |
|
| Bind-Adresse für |
|
| Port für |
|
| Pfad, auf dem der MCP-Endpunkt bedient wird. Standard |
|
| Durch Kommas getrennte Toolsets; |
|
| Tools aktivieren, die Daten erstellen oder ändern. |
|
| Tools aktivieren, die Daten löschen. Impliziert |
|
| Standard-Administrations-ID. |
|
| Den OAuth-Anwendungs-Ablauf verwenden. |
|
| Den Autorisierungscode im Browser anzeigen, statt weiterzuleiten. |
|
| Loopback-Port für die OAuth-Weiterleitung. Standard |
|
| Ein Token ohne Rückfrage speichern. |
|
| Die Liste der Tools als JSON ausgeben. |
| beliebig | Verwendung ausgeben. |
| beliebig | Die Version ausgeben. |
Toolsets
Die Tools sind nach den eigenen Domänen von Moneybird gruppiert. Fünf sind standardmäßig aktiviert; die anderen vier sind Opt-in.
Toolset | Standard | Umfang |
| an | Administrationen, Kontakte, Produkte, Projekte, Sachkonten, Steuersätze, Benutzer. |
| an | Verkaufsrechnungen, wiederkehrende Rechnungen, Angebote, Workflows. |
| an | Einkaufsrechnungen, Belege, Dokumente, allgemeine Journalbelege. |
| an | Finanzkonten, Finanzbewegungen, Zahlungsverknüpfung. |
| an | Zeiterfassungen. |
| aus | Gewinn und Verlust, Bilanz und andere |
| aus | Anlagevermögen und Abschreibung. |
| aus | Notizen, Aufgaben, Ereignisse, benutzerdefinierte Felder. |
| aus | Webhook-Abonnements. |
Lege sie explizit fest, ergänze die Standardeinstellungen oder ziehe davon ab:
moneybird-mcp serve --toolsets core,invoicing # exactly these two
moneybird-mcp serve --toolsets all # everything
moneybird-mcp serve --toolsets reports # exactly reports
moneybird-mcp serve --toolsets -banking,-time # the defaults minus twoEin -name-Eintrag an beliebiger Stelle der Liste bedeutet, dass die Liste von den Standardeinstellungen ausgeht statt von nichts. all hat Vorrang vor allem anderen. Ein unbekannter Name ist ein Fehler, kein stiller No-op.
Die vollständige Auflistung pro Tool findest du in docs/tools.md, oder führe moneybird-mcp tools aus.
Sicherheitsmodell
Jedes Tool deklariert eine von drei Zugriffsstufen, und der Server registriert nur diejenigen, die die aktuellen Einstellungen erlauben. Ein Tool, das nicht registriert ist, ist für das Modell unsichtbar — es kann nicht aus Versehen aufgerufen oder herbeigeredet werden.
read — immer registriert.
write — erstellt oder ändert Daten. Benötigt
--allow-writeoderMONEYBIRD_ALLOW_WRITE=true.destroy — benötigt
--allow-deleteund--allow-write.--allow-deleteallein bewirkt nichts.
Das Löschen ist getrennt vom Schreiben abgesichert, weil die beiden Fehlerarten nicht vergleichbar sind. Ein falscher Schreibvorgang hinterlässt einen Datensatz, den du korrigieren kannst; ein Löschen oder eine an einen Kunden gesendete Rechnung kann die API nicht rückgängig machen. Schreibzugriff zu aktivieren, damit ein Assistent eine Rechnung entwerfen kann, sollte ihm nicht auch erlauben, deine Buchhaltung zu entfernen. Die Stufe destroy umfasst daher sowohl Löschungen als auch Aufrufe, die in der Praxis unumkehrbar sind, etwa das Senden eines Dokuments an einen Kontakt.
Nur-Lesen ist die Standardeinstellung. Aktiviere nur das Nötigste:
claude mcp add moneybird --env MONEYBIRD_ALLOW_WRITE=true -- npx -y moneybird-mcp serveClient-Einrichtung
Claude Code
claude mcp add moneybird -- npx -y moneybird-mcp serveMit Schreibzugriff und einer größeren Auswahl an Tools:
claude mcp add moneybird \
--env MONEYBIRD_ALLOW_WRITE=true \
--env MONEYBIRD_TOOLSETS=all \
-- npx -y moneybird-mcp serveClaude Desktop
Füge den Server zu claude_desktop_config.json hinzu:
{
"mcpServers": {
"moneybird": {
"command": "npx",
"args": ["-y", "moneybird-mcp", "serve"],
"env": {
"MONEYBIRD_ALLOW_WRITE": "true"
}
}
}
}Die Datei befindet sich unter ~/Library/Application Support/Claude/claude_desktop_config.json auf macOS und %APPDATA%\Claude\claude_desktop_config.json auf Windows. Starte die App nach dem Bearbeiten neu.
Beliebiger stdio-Client
Der Server ist ein einfacher stdio-MCP-Server. Führe moneybird-mcp serve aus und kommuniziere per JSON-RPC über stdin und stdout. Diagnosemeldungen gehen an stderr, niemals an stdout.
{
"command": "npx",
"args": ["-y", "moneybird-mcp", "serve"],
"env": {
"MONEYBIRD_API_TOKEN": "..."
}
}Wenn du Zugangsdaten lieber nicht auf der Festplatte speichern möchtest, setze MONEYBIRD_API_TOKEN im env-Block des Clients. Er hat Vorrang vor allem, was in credentials.json steht.
Docker und Self-Hosting
docker build -t moneybird-mcp .
docker run --rm -p 3000:3000 -e MONEYBIRD_API_TOKEN=... moneybird-mcpDas Image verwendet standardmäßig den HTTP-Transport auf 0.0.0.0:3000 und stellt /mcp sowie ein nicht authentifiziertes /healthz bereit. Betreibe es ohne Authentifizierung nicht unter einer öffentlichen Adresse.
docs/hosting.md behandelt die drei HTTP-Authentifizierungsmodi, Multi-Tenant-passthrough-Bereitstellungen, Hinweise zu Reverse-Proxys und das Verbinden eines entfernten Clients.
Rate-Limits
Moneybird erlaubt 150 Anfragen pro 5 Minuten pro IP und 50 pro 5 Minuten für /reports-Endpunkte. Der Client führt für beide Budgets eigene Gleitfenster-Zähler und verzögert eine Anfrage, die eines davon überschreiten würde, sodass bei normaler Nutzung keine 429s auftreten. Wenn Moneybird dennoch eine 429 zurückgibt, respektiert der Client Retry-After und verwendet andernfalls exponentielles Backoff mit vollem Jitter, bis zu MONEYBIRD_MAX_RETRIES Versuchen.
Das Budget gilt pro IP, nicht pro Token. Mehrere Instanzen hinter einer gemeinsamen ausgehenden Adresse teilen es sich, und die lokalen Zähler können einander nicht sehen. Bemesse die Bereitstellungen entsprechend.
Entwicklung
npm install
npm run build # before typecheck: the docs generator imports the built output
npm run typecheck
npm test
npm run formatdocs/tools.md wird aus den Tool-Definitionen generiert. Generiere sie nach dem Hinzufügen oder Ändern eines Tools neu:
npm run docs:toolsspec/endpoints.json fixiert die veröffentlichte Operationsliste von Moneybird, und ein Test prüft jeden Pfad, den ein Tool aufruft, gegen diese Liste. Aktualisiere sie, wenn Moneybird API-Änderungen veröffentlicht:
npm run spec:refresh
npm testEin fehlschlagender Endpunkt-Test nach einer Aktualisierung bedeutet, dass eine Route, von der ein Tool abhängt, verschoben oder zurückgezogen wurde.
Mitwirken
Issues und Pull-Requests sind unter https://github.com/HalloSouf/moneybird-mcp willkommen. Bitte führe vor dem Eröffnen eines Pull-Requests npm run typecheck, npm test und npm run format:check aus; CI führt dieselben Prüfungen auf Node 20 und 22 durch.
Lizenz
MIT. Siehe LICENSE.
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
- AlicenseAqualityAmaintenanceMCP server for the bexio API, enabling interaction with contacts, sales, accounting, projects, and more through 35 tools. Supports both PAT and OAuth authentication with read-only mode and tool group filtering.35213MIT
- AlicenseAqualityCmaintenanceEnables managing events and subcalendars from kalender.digital through MCP tools for listing, creating, updating, and deleting events and subcalendars.8MIT
- AlicenseNot gradedqualityBmaintenanceHosted MCP server for Exact Online. Ask questions, pull reports, and prepare bookings you approve first.MIT
- AlicenseAqualityCmaintenanceEnables MCP clients to read and write Bokio accounting data for one company through 85 tools covering invoices, customers, suppliers, journal entries, chart of accounts, fiscal years, items, tags, uploads, SIE export, and bank payments.40MIT
Related MCP Connectors
Log, query, and edit expenses, budgets, and accounts in Manilo from any MCP-compatible AI assistant.
Search, document and execute authenticated API calls across 700+ apps via one MCP server
Conta Azul ERP MCP — sales, customers, finance and NF-e via OAuth 2.0. Read + write, 35 tools.
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/HalloSouf/moneybird-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server