Welche Rechnungen sind überfällig? Lexware Office mit Claude abfragen
Montagmorgen, kurz nach acht. Wer selbstständig ist oder einen kleinen Betrieb führt, kennt die Frage, die sich irgendwann an den Kaffee setzt: Wer schuldet mir eigentlich noch Geld?
Die Antwort steht in der Buchhaltung, aber der Weg dorthin ist selten kurz. Anmelden, Liste öffnen, filtern, vielleicht exportieren, in eine Tabelle kopieren, Summen bilden. Fünf Minuten, wenn es gut läuft. Und weil es lästig ist, passiert es nicht jede Woche.
Ich wollte stattdessen einfach fragen: „Welche Rechnungen sind überfällig?" Und die Antwort bekommen. Dafür habe ich lexware-php-mcp gebaut, einen kleinen Server, der Claude mit Lexware Office verbindet. Er ist frisch veröffentlicht, und dieser Beitrag erklärt, was er kann, was er bewusst nicht kann und wie Sie ihn einrichten.
Was dabei herauskommt
Ein Beispiel mit erfundenen Daten. Ich frage Claude: „Welche Rechnungen sind überfällig, und um wie viele Tage?" Die Antwort sieht dann ungefähr so aus:
Zwei Rechnungen sind überfällig:
- RE-0412 an die Beispielbau GmbH, 1.190,00 EUR brutto, fällig seit 38 Tagen
- RE-0431 an Muster & Söhne, 476,00 EUR brutto, fällig seit 9 Tagen
Zusammen sind 1.666,00 EUR überfällig. Zusätzlich sind zwei weitere Rechnungen offen, aber noch nicht fällig.
Die Namen und Beträge sind ausgedacht, das Format ist echt: älteste Fälligkeit zuerst, Tage überfällig, Summen je Währung. Man kann nachfragen, etwa nur nach einem bestimmten Kunden, oder sich nur die überfälligen Posten zeigen lassen. Das war es, was mich gereizt hat: kein Export, keine Tabelle dazwischen, nur eine Frage in normalem Deutsch.
Der Teil, der mir am wichtigsten war: Sicherheit
Wer einer KI Zugriff auf seine Buchhaltung gibt, sollte genau wissen, was sie damit tun kann. Deshalb sind die Grenzen hier eng gezogen, und ich nenne sie, bevor ich über Komfort spreche.
Der Server liest nur. Er sendet ausschließlich Abfragen, die Daten abrufen. Es gibt kein Werkzeug, das in Lexware Office etwas anlegt, ändert oder löscht. Selbst wenn Claude sich einmal missversteht, kann es an Ihren Belegen nichts verändern.
Bankdaten kommen nicht an. IBAN, BIC und Kontodaten werden aus jeder Antwort entfernt, bevor sie das Modell erreichen.
Der API-Schlüssel bleibt im Verborgenen. Er wird nur aus der Umgebung gelesen und erscheint weder in Ausgaben noch in Fehlermeldungen. Unter macOS lässt er sich im Schlüsselbund ablegen, statt im Klartext in einer Konfigurationsdatei zu stehen. Bei der Claude-Desktop-Erweiterung gebe ich den Schlüssel bei der Installation ein.
Und eine Sache, die ich nicht kleinreden will: Was der Server zurückgibt, geht an den Anbieter des Modells, also bei Claude an Anthropic. Setzen Sie ihn nur mit Konten ein, deren Daten Sie dorthin weitergeben dürfen. Bei Rechnungen an Privatpersonen lohnt sich ein Blick auf die eigene Datenschutzdokumentation, bevor es losgeht.
Warum ausgerechnet PHP?
Es gibt bereits MCP-Server für Lexware Office, geschrieben in TypeScript oder Python. Meiner ist, soweit ich sehe, der erste in PHP. Das heißt nicht, dass PHP besser wäre. Mein Argument ist ein praktisches:
- Keine zweite Laufzeit. Wer ohnehin PHP betreibt, braucht kein Node.js und kein Python und kein
npx, das beim Start Code nachlädt. - Klein genug zum Prüfen. Der Server hat drei Abhängigkeiten und nur wenige Klassen. Man kann ihn an einem Nachmittag komplett lesen, und das sollte man bei einem Werkzeug, das an die Buchhaltung angeschlossen wird, auch tun können.
- Saubere Grundlage. Er baut auf dem offiziellen PHP-SDK für das Model Context Protocol auf und wird mit PHPStan Level 8 geprüft.
Für Sie als Anwender spielt das seit dem aktuellen Release keine Rolle mehr, denn:
Einrichtung ohne PHP
Die erste Fassung verlangte PHP und Composer. Das war für Entwickler in Ordnung, für Selbstständige ohne IT-Hintergrund aber eine unnötige Hürde. Das Release v0.3.0 räumt sie weg:
- Claude-Desktop-Erweiterung. Eine Datei mit der Endung
.mcpbfür macOS und Windows. Per Doppelklick installieren, den API-Schlüssel eintragen, fertig. PHP ist eingebaut. Die Erweiterung ist nicht signiert, Claude Desktop zeigt deshalb beim Installieren eine Warnung. - Einzelne Programmdateien für macOS, Linux und Windows, ebenfalls mit eingebautem PHP. Eine Prüfsummendatei (
SHA256SUMS) liegt bei, damit Sie den Download kontrollieren können. - Der klassische Weg über Composer bleibt für alle, die PHP ohnehin im Haus haben.
Den API-Schlüssel für Lexware Office erzeugen Sie in Ihrem Konto unter Public API. Danach starten Sie Claude Desktop neu und stellen die erste Frage.
Wer Claude Code nutzt, registriert den Server mit einem einzigen Befehl (claude mcp add). Die genauen Schritte stehen in der deutschen Anleitung im Repository. Ich wiederhole sie hier bewusst nicht, weil sie sich mit neuen Versionen ändern können und die Anleitung im Repository die aktuelle bleibt.
Ehrlich zum Stand
Aktuell gibt es genau ein Werkzeug: open_items. Es zeigt unbezahlte Ausgangsrechnungen, offen und überfällig, mit den Filtern overdueOnly und contact. Die Beträge sind Bruttobeträge.
Das ist wenig, und ich sage das lieber selbst. Geplant sind eine Belegsuche, ein Beleg-Detail mit Nettobeträgen, eine Kontaktsuche und eine Umsatzübersicht je Zeitraum. Wann das fertig ist, kann ich nicht versprechen. Wer den Stand verfolgen möchte, findet ihn im Repository.
Für die Neugierigen: Die Fallen in der Lexware-Schnittstelle
Beim Bauen bin ich auf Eigenheiten gestoßen, die sich nicht aus der Dokumentation erschließen. Falls Sie selbst gegen die Schnittstelle programmieren, sparen Ihnen diese vier Punkte Zeit:
- Zwei Belegarten für Rechnungen. In Lexware geschriebene Rechnungen (
invoice) und gebuchte Verkaufsbelege (salesinvoice) sind getrennte Typen. Wer nur einen abfragt, übersieht Posten. - Der Status „überfällig" lässt sich nicht mit anderen Filtern kombinieren. Die Schnittstelle antwortet dann mit HTTP 400, der Filter muss also anders gelöst werden.
- Nettobeträge gibt es nur im Belegdetail. In der Listenansicht stehen ausschließlich Bruttobeträge. Deshalb liefert
open_itemsbrutto. - Höchstens zwei Anfragen pro Sekunde. Der Server drosselt sich selbst und wiederholt bei Fehlern mit wachsendem Abstand.
Die Begründungen stehen in der Entscheidungsdokumentation (ADR 0001) im Repository.
Wo Sie es finden
- Quellcode und Anleitung: github.com/Stefan39/lexware-php-mcp
- Aktuelles Release mit den Downloads: v0.3.0
- Für Entwickler: jacomeit/lexware-php-mcp auf Packagist
Wenn Sie in Ihrem Betrieb ähnliche Fragen an Ihre Zahlen haben und nicht wissen, ob sich eine solche Anbindung lohnt oder was sie bei Ihnen kosten würde: Schreiben Sie mir über jacomeit.de. Das erste Gespräch kostet nichts.
Inoffiziell. Keine Verbindung zur Haufe Group. Lexware und lexoffice sind Marken der Haufe Group.
Werbehinweis: Die Links auf Lexware Office im Text sind Empfehlungslinks (Kunden werben Kunden). Wenn Sie darüber ein Lexware-Produkt abschließen, erhalte ich eine Vergütung, Ihnen entstehen keine Mehrkosten.