About DATEV EXTF
DATEV EXTF is a local MCP server for accounting workflows that validates and writes Buchungsstapel and Debitoren/Kreditoren files. It reports findings by line and field in German or English.
Key features
- 01Validate EXTF files or text
- 02Locate and explain errors and warnings
- 03Build and validate Buchungsstapel files
- 04List DATEV columns and findings
- 05Offer a prompt for import fixes
Use cases
- 01Find why DATEV rejects an import
- 02Write bookings into an EXTF file
MCP support
It exposes validation, finding explanation, file writing, and column-listing tools to MCP clients, along with column and finding resources and a repair prompt. The server reads files locally without uploading them.
Configuration
Local server config is the same for every client. Copy it into your client’s MCP config file.
Tools
4Saved tool list · updated 3w ago
| Parameter | Type | Required | Description |
|---|---|---|---|
| lang | enum | No | Language of the messages: de (default) or en.de | en |
| path | string | No | Path to the CSV file on this machine. Relative paths resolve against the server's working directory. |
| content | string | No | The file content as text, if there's no file. The encoding can't be checked this way. |
Details
From the project READMEdatev-extf-mcp
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.
- Local only. The server runs on your machine and reads files from disk. Nothing is uploaded, and there's no account or API key.
- Built on
@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#REWimport messages. - Every file the writer produces passes the validator.
Prefer a browser? The same checks run in the DATEV EXTF validator (English), also without upload.
Install
Needs Node.js 20 or later.
Claude Code
claude mcp add datev-extf -- npx -y @seamless-engineering/datev-extf-mcp
Claude Desktop (claude_desktop_config.json), Cursor (.cursor/mcp.json) and most other clients:
{
"mcpServers": {
"datev-extf": {
"command": "npx",
"args": ["-y", "@seamless-engineering/datev-extf-mcp"]
}
}
}
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.
Tools
| 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.
Example
Why does DATEV reject
~/Downloads/EXTF_Buchungsstapel.csv?
2 errors, 1 warning in 214 data rows (category buchungsstapel, encoding utf-8).
- warning [utf8-without-bom]: The file is UTF-8 without a byte order mark. DATEV then reads it as Windows-1252 and umlauts turn into garbage …
- error line 4 [amount-dot]: Amount “49.90” uses a dot as the decimal separator. DATEV expects a comma: 12.50 becomes 12,50.
- error line 9 [date-leading-zero]: Document date “506” has only three digits: the leading zero is gone. …
Not tax advice
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.
Maintenance
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.
Releasing
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.
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.