Content
# E-Invoice MCP Server
> MCP Server fuer E-Rechnungen im DACH-Raum — XRechnung erstellen, validieren und Daten extrahieren. Direkt aus Claude, Cursor oder jedem MCP-Client.
[](https://www.npmjs.com/package/einvoice-mcp)
[](LICENSE)
## Was ist das?
E-Invoice MCP ist ein [Model Context Protocol](https://modelcontextprotocol.io/) Server fuer die Erstellung und Validierung von E-Rechnungen nach dem deutschen XRechnung-Standard. Ab 2027 muessen alle Unternehmen in Deutschland E-Rechnungen versenden koennen — mit diesem Tool bist du vorbereitet.
Du sagst Claude einfach: "Erstelle eine Rechnung an die Beispiel GmbH fuer 10 Stunden Beratung" — und erhaeltst eine valide XRechnung als UBL 2.1 XML.
## Features
- **XRechnung erstellen** — Valides UBL 2.1 XML aus strukturierten Daten (EN 16931 + XRechnung 3.0.2)
- **E-Rechnung validieren** — Syntax, Pflichtfelder und deutsche Business-Regeln (BR-DE) pruefen
- **Daten extrahieren** — Strukturierte Daten aus UBL- oder CII-XML lesen
- **Format-Info** — Nachschlagewerk fuer Pflichtfelder, Steuer-Kategorien, Einheiten-Codes und Fristen
- **Automatische Berechnung** — Netto, Brutto, Steuerbetraege werden automatisch berechnet
- **Plugin-faehig** — Kann standalone laufen ODER in den BuchPilot MCP Server integriert werden
- **Keine externen Dienste** — Alles laeuft lokal, keine API-Keys noetig
- **Keine nativen Abhaengigkeiten** — Laeuft auf jedem System mit Node.js
## Gesetzliche Fristen
| Datum | Was passiert |
|-------|-------------|
| **01.01.2025** | Alle Unternehmen muessen E-Rechnungen **empfangen** koennen |
| **31.12.2026** | PDF-Rechnungen nur noch mit Empfaenger-Zustimmung erlaubt |
| **01.01.2027** | Unternehmen >800.000 EUR Umsatz muessen E-Rechnungen **senden** |
| **01.01.2028** | **ALLE** Unternehmen muessen E-Rechnungen senden |
> Fehlerhafte E-Rechnungen koennen zum Verlust des Vorsteuerabzugs fuehren (+ 6% Verzinsung).
## Installation
### Voraussetzungen
- Node.js >= 18
### npm (global)
```bash
npm install -g einvoice-mcp
```
### Von Source
```bash
git clone https://github.com/makririch/einvoice-mcp.git
cd einvoice-mcp
npm install
npm run build
```
## Konfiguration
Dieser MCP Server benoetigt **keine Konfiguration**. Es werden keine API-Keys oder externe Dienste benoetigt — alles laeuft lokal.
## Nutzung
### Server starten (standalone)
```bash
# Nach npm install -g:
einvoice-mcp
# Oder von Source:
npm start
# Entwicklung mit Auto-Reload:
npm run dev
```
Der Server laeuft ueber stdio und wartet auf MCP-Nachrichten.
### In Claude Desktop verwenden
Siehe [Claude Desktop Setup Guide](docs/claude-desktop-setup.md) fuer eine detaillierte Anleitung.
Kurzversion — fuege in `claude_desktop_config.json` hinzu:
```json
{
"mcpServers": {
"einvoice": {
"command": "npx",
"args": ["-y", "einvoice-mcp"]
}
}
}
```
### Beispiele (natuerliche Sprache in Claude)
Nachdem du den Server konfiguriert hast, kannst du Claude z.B. fragen:
- "Erstelle eine XRechnung an die Beispiel GmbH fuer 10 Stunden Beratung zu 150 EUR"
- "Ist diese XML-Datei eine gueltige XRechnung?"
- "Extrahiere die Rechnungsdaten aus diesem XML"
- "Welche Pflichtfelder brauche ich fuer eine XRechnung?"
- "Welche Steuer-Kategorien gibt es und was bedeuten sie?"
- "Bis wann muss mein Unternehmen E-Rechnungen versenden koennen?"
### Quickstart
Eine Schritt-fuer-Schritt-Anleitung "Erstelle deine erste XRechnung in 5 Minuten" findest du in [docs/quickstart.md](docs/quickstart.md).
## Tool-Referenz
Eine vollstaendige Referenz aller 4 Tools mit Parametern, Beispiel-Inputs und Beispiel-Outputs findest du in [docs/tool-reference.md](docs/tool-reference.md).
### Kurzuebersicht
| Tool | Beschreibung |
|------|-------------|
| `create_xrechnung` | XRechnung (UBL 2.1 XML) aus strukturierten Daten erstellen |
| `validate_invoice` | E-Rechnung XML validieren (Syntax + BR-DE Business-Regeln) |
| `extract_data` | Strukturierte Daten aus UBL- oder CII-XML extrahieren |
| `get_format_info` | Nachschlagewerk fuer Formate, Pflichtfelder, Codes und Fristen |
## BuchPilot-Integration
E-Invoice MCP kann als Plugin in den [BuchPilot MCP Server](https://www.npmjs.com/package/buchpilot-mcp) integriert werden:
```typescript
import { registerEInvoiceTools } from "einvoice-mcp";
registerEInvoiceTools(server);
```
**Kombination:** BuchPilot erstellt eine Rechnung in Lexoffice -> Daten extrahieren -> XRechnung erzeugen -> fertige E-Rechnung.
## Unterstuetzte Standards
| Standard | Version | Status |
|----------|---------|--------|
| XRechnung | 3.0.2 | Erstellen + Validieren |
| EN 16931 | — | Basis fuer XRechnung |
| UBL 2.1 | — | XML-Syntax fuer XRechnung |
| CII (Cross Industry Invoice) | — | Extrahieren (Lesen) |
| ZUGFeRD / Factur-X | 2.3 | Extrahieren (Lesen), Erstellen geplant |
## FAQ / Troubleshooting
### "XML konnte nicht geparst werden"
- Ist das XML well-formed? (Alle Tags korrekt geschlossen?)
- Ist es tatsaechlich eine UBL- oder CII-Rechnung? (Root-Element muss `<Invoice>` oder `<CrossIndustryInvoice>` sein)
- Ist das Encoding UTF-8?
### Validierung zeigt Fehler "BR-DE-13: Buyer Reference ist Pflicht"
Die Kaeufer-Referenz (BT-10) ist in XRechnung Pflicht. Bei Rechnungen an oeffentliche Auftraggeber ist das die **Leitweg-ID**. Bei B2B-Rechnungen kann es eine beliebige Referenz sein (z.B. Bestellnummer).
```json
{
"buyerReference": "04011000-12345-67"
}
```
### Validierung zeigt Warnung "BR-DE-21: Telefonnummer empfohlen"
Das ist nur eine Warnung, kein Fehler. Die Rechnung ist trotzdem gueltig. Fuer beste Kompatibilitaet solltest du aber eine Telefonnummer des Verkaeufers angeben.
### Welche Steuer-Kategorien gibt es?
| Code | Name | Beschreibung | Steuersaetze |
|------|------|-------------|-------------|
| S | Standard | Normaler Steuersatz | 19%, 7% |
| Z | Nullsatz | 0% (z.B. innergemeinschaftlich mit USt-Befreiung) | 0% |
| E | Steuerbefreit | z.B. Kleinunternehmer nach Paragraph 19 UStG | 0% |
| AE | Reverse Charge | Steuerschuldnerschaft des Empfaengers (Paragraph 13b UStG) | 0% |
| K | Innergemeinschaftlich | Steuerfreie innergemeinschaftliche Lieferung | 0% |
### Welche Einheiten-Codes gibt es?
| Code | Name | Beschreibung |
|------|------|-------------|
| H87 | Stueck | Einzelne Einheit (Default) |
| HUR | Stunde | Arbeitsstunde |
| DAY | Tag | Arbeitstag |
| MON | Monat | Kalendermonat |
| KGM | Kilogramm | Gewicht |
| MTR | Meter | Laenge |
| LTR | Liter | Volumen |
| MTK | Quadratmeter | Flaeche |
| SET | Set/Paket | Zusammenstellung |
| C62 | Einheit (generisch) | Allgemeine Mengeneinheit |
### Server startet, aber Claude erkennt die Tools nicht
- Pruefe ob die `claude_desktop_config.json` korrekt ist
- Starte Claude Desktop neu nach Konfigurationsaenderungen
- Pruefe die Logs: `~/Library/Logs/Claude/mcp.log` (macOS)
## Lizenz
MIT — Frei nutzbar, auch kommerziell.
## Autor
**MaKri** — [GitHub](https://github.com/makririch/einvoice-mcp)
MCP Config
Below is the configuration for this MCP Server. You can copy it directly to Cursor or other MCP clients.
mcp.json
Connection Info
You Might Also Like
Vibe-Trading
Vibe-Trading: Your Personal Trading Agent
ai-berkshire
Berkshire in the AI Era: A Value Investment Research Framework Based on...
hexstrike-ai
HexStrike AI is an AI-powered MCP cybersecurity automation platform with 150+ tools.
valuecell
Valuecell is a Python project for efficient data management.
tradingview-mcp
AI-assisted TradingView chart analysis — connect Claude Code to your...
tradingview-mcp
TradingView MCP Server offers real-time market analysis for crypto and stocks.