The full upstream README, mirrored here for reference. Install config, tool schemas, adoption signals, and an original overview live on the DATEV EXTF listing page.
MCP server that validates and writes DATEV-Format (EXTF) files: Buchungsstapel (booking batches) and Debitoren/Kreditoren (customer and supplier master data). Ask your AI assistant why DATEV rejected an import, or have it turn a list of bookings into a file DATEV accepts.
Deutsch: MCP-Server, der Dateien im DATEV-Format (EXTF) prüft und schreibt. Fragen Sie Ihren KI-Assistenten, warum DATEV einen Import ablehnt: Er bekommt jeden Fehler mit Zeile, Feld und einer verständlichen Erklärung, etwa Punkt statt Komma im Umsatz, fehlende führende Null im Belegdatum oder BU-Schlüssel auf Automatikkonten.
@seamless-engineering/datev-extf. Its rules come from DATEV's own material: the Formatbeschreibung on developer.datev.de, the DATEV-Format Prüfprogramm and the #REW import messages.Prefer a browser? The same checks run in the DATEV EXTF validator (English), also without upload.
Needs Node.js 20 or later.
Claude Code
Claude Desktop (claude_desktop_config.json), Cursor (.cursor/mcp.json) and most other clients:
Claude Desktop, one click: download datev-extf-mcp.mcpb from the latest release and open it. Build it yourself with ./scripts/bundle.sh.
Relative file paths resolve against the server's working directory, so absolute paths are the safer choice.
| Tool | What it does |
|---|---|
validate_datev_extf | Checks a file (path) or pasted text (content). Returns header data, error and warning counts, and each finding with line, field, value and an explanation in German (lang: "de", default) or English ("en"). The encoding is only checked for files. |
explain_datev_finding | Explains a finding code such as amount-dot or bu-automatic. |
write_buchungsstapel | Builds a Buchungsstapel (Formatversion 13) from a header and booking rows (amounts in cents), validates it, and writes it as Windows-1252 to outputPath or returns the CSV text. |
list_datev_columns | Lists the 125 Buchungsstapel or 254 Debitoren/Kreditoren columns by position. |
Resources: datev-extf://columns/buchungsstapel, datev-extf://columns/debkred, datev-extf://findings/de and datev-extf://findings/en.
Prompt: fix_datev_import validates a file and proposes fixes for the export that produced it.
Why does DATEV reject
~/Downloads/EXTF_Buchungsstapel.csv?
The server checks format, not bookkeeping. It can't tell whether an account or tax key is right for a transaction, and it doesn't pick them when writing. Agree that with your tax advisor.
DATEV and DATEV-Format are trademarks of DATEV eG. This project is not affiliated with or endorsed by DATEV.
Maintained by seamless.engineering for our own production use: we run managed DATEV integrations for shops, payment providers and ERPs, fully EU-hosted. Issues and PRs welcome, no SLA.
Bump version in package.json, both versions in server.json and the one in manifest.json, commit, then tag and push: git tag v0.1.1 && git push origin v0.1.1. The release workflow publishes to npm with provenance via trusted publishing, then to the MCP Registry as engineering.seamless/datev-extf.
MIT licence.