epago MCP Server
OfficialClick on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@epago MCP ServerZeig mir die Umsatzsteuer-Voranmeldung für Mai."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
epago MCP Server
MCP-Server (stdio) für epago, die Buchhaltungssoftware für deutsche KMU. Damit kann jeder MCP-fähige Client direkt in deiner epago-Buchhaltung lesen und buchen: Kontenplan, Buchungen, Rechnungen, Zahlungen, Belege, BWA und Umsatzsteuer-Voranmeldung.
Der Server ist ein reiner Client der epago Public API v1. Er braucht einen epago-Account und einen API-Schlüssel. Es gibt keinen Direktzugriff auf eine Datenbank, keine gespeicherten Zugangsdaten und keine Lösch-Werkzeuge.
English: MCP server for the German accounting SaaS epago. Requires an epago account and an API key. Tools and messages are in German, because the domain (German tax law, GoBD, DATEV charts of accounts) is.
Voraussetzungen
Ein epago-Account unter app.epago.de
Node.js 20 oder neuer
Ein API-Schlüssel aus epago: Einstellungen → API-Schlüssel (Anleitung: Mein Konto und API-Schlüssel)
Beim Anlegen des Schlüssels wählst du die Berechtigungen:
Scope | Wirkung im MCP-Server |
| Lese-Werkzeuge (Konten, Buchungen, Rechnungen, Berichte) |
| zusätzlich die Schreib-Werkzeuge (Buchung anlegen, Storno, Zahlung, Beleg) |
Der Klartext-Schlüssel (epago_…) wird nur einmal angezeigt. Ein Schlüssel gehört genau
einem Mandanten und lässt sich in epago jederzeit widerrufen.
Zum Ausprobieren einen Sandbox-Schlüssel nehmen
Neben der echten Buchhaltung hat jedes epago-Konto einen Testmandanten. Er wird unter Einstellungen → API-Schlüssel mit einem Klick angelegt und kommt mit Beispieldaten: Kontenrahmen, Geschäftsjahr, zwei Kunden, ein Lieferant, zwei Ausgangsrechnungen (eine davon bezahlt) und drei Buchungen.
Dort im selben Bereich entsteht dann ein Schlüssel mit dem Präfix epago_test_. Er erreicht
ausschließlich den Testmandanten und niemals die echte Buchhaltung: die Trennung hängt am
Schlüssel selbst, nicht an einer Einstellung im Client.
Aus dem Testmandanten geht außerdem nichts nach außen — keine E-Mail, kein ELSTER, keine Bankverbindung, keine Zahlung. Eine Testbuchung, die dort entsteht, ist trotzdem eine richtige Buchung: dieselben GoBD-Regeln, dieselbe Unveränderbarkeit. Wer neu anfangen will, setzt den Testmandanten zurück; die Schlüssel gelten danach weiter.
Ein Konto hat einen echten Mandanten und einen Testmandanten. Alle Sandbox-Schlüssel eines Kontos arbeiten auf demselben Testmandanten; andere Konten sehen ihn nie.
Welche Umgebung gerade aktiv ist, sagt der Server beim Start (Umgebung: SANDBOX bzw.
LIVE) und das Werkzeug mandant_info. Für die ersten Schritte, für Beispiele und für alles,
was man ausprobiert, bevor es in die Buchhaltung soll: Sandbox nehmen.
Related MCP server: Accounting Ledger MCP Server
Installation
git clone https://github.com/epago-GmbH/epago-mcp.git
cd epago-mcp
npm install
npm run build # erzeugt dist/index.jsEinrichtung
Der Server spricht MCP über stdio und wird vom MCP-Client als Prozess gestartet:
EPAGO_API_KEY=epago_... node /absoluter/pfad/zu/epago-mcp/dist/index.jsVariable | Pflicht | Beschreibung |
| ja | API-Schlüssel im Format |
| nein | Basis-URL der epago-Instanz, Standard |
Die meisten MCP-Clients nehmen eine Konfiguration dieser Form entgegen (Name des Servers, Befehl, Argumente, Umgebungsvariablen):
{
"mcpServers": {
"epago": {
"command": "node",
"args": ["/absoluter/pfad/zu/epago-mcp/dist/index.js"],
"env": {
"EPAGO_API_KEY": "epago_...",
"EPAGO_API_URL": "https://app.epago.de"
}
}
}
}Statt der Umgebungsvariablen kann eine .env-Datei im Repository-Root liegen (sie ist per
.gitignore ausgeschlossen):
EPAGO_API_KEY=epago_...
EPAGO_API_URL=https://app.epago.deBeim Start ruft der Server /api/v1/me auf, prüft den Schlüssel und registriert die
Schreib-Werkzeuge nur, wenn der Schlüssel den Scope write trägt. Ein Schlüssel ohne
write sieht die Schreib-Werkzeuge gar nicht erst. Ein ungültiger Schlüssel beendet den
Start mit einer Fehlermeldung.
Werkzeuge
Lesen (Scope read)
Werkzeug | Was es tut |
| Verbindungstest, Stammdaten des Mandanten, Umgebung (LIVE oder SANDBOX), Scopes des Schlüssels |
| Kontenplan, optional mit Salden für einen Zeitraum |
| Kontenblatt eines Kontos mit laufendem Saldo |
| Buchungen mit allen Zeilen, gefiltert nach Datum und Status |
| Ein- und Ausgangsrechnungen mit Status und Zahlungsstatus |
| Zahlungen eines Belegs mit Betrag, Datum, Buchung und Zahlungsart |
| Betriebswirtschaftliche Auswertung für einen Zeitraum |
| Kennzahlen der Umsatzsteuer-Voranmeldung für einen Zeitraum |
| Saldenliste aller Konten zu einem Stichtag |
Schreiben (Scope write)
Werkzeug | Was es tut |
| Buchung anlegen, vereinfacht (Betrag, zwei Konten, Steuerschlüssel) oder mit expliziten Zeilen |
| GoBD-konformer Storno: Gegenbuchung mit Tagesdatum, das Original bleibt stehen |
| Zahlung an einem Beleg erfassen; Skonto, Teilzahlung und Forderungsausfall werden abgefragt, nicht geraten |
| Beleg als Base64 hochladen (PDF, Bilder, Tabellen, max. 10 MB) |
Die Beschreibungen der Werkzeuge sind bewusst ausführlich: sie sind die Schnittstelle zum Sprachmodell und erklären dort, was GoBD-fest ist, was eine Rückfrage an den Nutzer braucht (Zahlungsart bei offenem Rest, Begründung bei Forderungsausfall) und was nicht geht.
Was man wissen muss
Gebucht ist gebucht. Eine Buchung mit
status: "posted"ist sofort unveränderbar (GoBD). Korrektur nur perbuchung_stornieren. Löschen gibt es nicht, auch nicht über die API.Festgeschriebene Perioden weisen jede Buchung mit
409 period_closedab.Offener Rest bei einer Zahlung ist eine Entscheidung des Nutzers: Teilzahlung, Skonto oder Forderungsausfall. Ohne
zahlungsartantwortet die API mit400und liefert Restbetrag, Vorschlag und Optionen mit. § 17 UStG kennt keine Bagatellgrenze.Vereinfachte Buchung:
buchung_erstellenmitbetrag,bruttoKonto,sachKontound optionalsteuerschluessel(1 steuerfrei, 2 USt 7 %, 3 USt 19 %, 8 VSt 7 %, 9 VSt 19 %). Den Buchungssatz samt Steuerzeile rechnet der Server mit dem Kontenrahmen des Mandanten (SKR03 oder SKR04); Automatikkonten erkennt er selbst. Die Soll-/Haben-Seite leitet er bei den Schlüsseln 2, 3, 8 und 9 aus dem Steuerfall ab; bei Schlüssel 1 und bei einer Buchung ohne Schlüssel (reine Umbuchung) istseite(SoderH, bezogen auf das Bruttokonto) Pflicht, weil sie sich dort nicht ableiten lässt. Wer die Zeilen selbst vorgeben will, nutztlines[]. In beiden Fällen prüft der Server Soll gleich Haben und Steuerkonsistenz.Rate-Limit: 60 Aufrufe je Minute und Schlüssel. Bei
429kurz warten.
Sicherheit
Der API-Schlüssel kommt ausschließlich aus der Umgebung (
EPAGO_API_KEYoder.env). Er wird nur alsAuthorization: Beareran die konfigurierteEPAGO_API_URLgesendet und taucht in keiner Ausgabe, keinem Log und keiner Fehlermeldung auf.Der Server hält keinen Zustand und speichert nichts auf der Festplatte.
Schreibende Werkzeuge existieren nur mit
write-Scope. Für reine Auswertungen einen Schlüssel ohnewriteanlegen.EPAGO_API_URLnur auf epago selbst setzen. Wer die URL auf einen fremden Host zeigt, schickt seinen Schlüssel dorthin.Alle Buchungen über die API laufen in epago durch dieselbe Prüfschicht wie die Oberfläche (Soll gleich Haben, Steuerkonsistenz, Periodensperre, Mandantentrennung). Es gibt keinen zweiten, laxeren Pfad.
Sicherheitslücken bitte nicht als öffentliches Issue melden, sondern an service@epago.de.
Roadmap
Geplant, ohne Termin:
rechnung_erstellen: Ausgangsrechnung anlegen und buchenmahnung_erstellen: Mahnung zu einer offenen Rechnung erzeugenrechnungen_ueberfaellig: prüfen, welche Rechnungen fällig oder überfällig sindkunden_liste: Kunden lesen, damit eine Rechnung adressiert werden kann
Entwicklung
npm run dev # startet src/index.ts direkt mit tsx
npm run build # TypeScript nach dist/Dieses Repository ist ein Spiegel des Pakets packages/epago-mcp aus dem epago-Monorepo.
Issues und Pull Requests sind willkommen; Änderungen werden ins Monorepo übernommen und von
dort wieder hierher gespiegelt.
Lizenz
MIT, siehe LICENSE. epago selbst ist ein kommerzieller Dienst der epago GmbH; dieses Repository enthält nur den MCP-Client.
This server cannot be deployed
Maintenance
Related MCP Connectors
Headless API-first double-entry accounting & bookkeeping engine. 84 MCP tools over HTTP.
wFirma.pl (Polish accounting) via MCP: invoices, contractors, payments, reports. Full read-write.
Secure remote MCP for supported accounting workflows in authorized Money S3 companies.
Conta Azul ERP MCP — sales, customers, finance and NF-e via OAuth 2.0. Read + write, 35 tools.
Related MCP Servers
- AlicenseBqualityAmaintenanceEnables interaction with the QuickBooks Online Accounting API to manage customers, invoices, expenses, and payments through MCP-compatible clients. It supports comprehensive financial workflows and the generation of reports like Profit and Loss or Balance Sheets.1332Apache 2.0
- FlicenseAqualityDmaintenanceProvides double-entry accounting ledger creation, transaction recording, and financial reporting capabilities via MCP.7-
- AlicenseBqualityCmaintenanceMCP server that provides full read/write access to Odoo accounting data including invoices, vendor bills, journal entries, payments, reconciliation, and financial reports, as well as BOQ/Project Budget data when available.34MIT
- 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