npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@seamless-engineering/datev-extf-mcp

v0.1.0

Published

MCP server that validates and writes DATEV-Format (EXTF) files locally: Buchungsstapel and Debitoren/Kreditoren, with findings in German and English.

Readme

datev-extf-mcp

npm CI License: MIT

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 #REW import 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"]
    }
  }
}

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 and both versions in server.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.