buchpilot-mcp 0.1.2 → 0.1.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +23 -9
- package/README.md +27 -27
- package/docs/claude-desktop-setup.md +19 -19
- package/docs/tool-reference.md +14 -14
- package/package.json +2 -2
- package/server.json +36 -0
- package/src/backends/lexoffice.ts +0 -392
- package/src/backends/types.ts +0 -137
- package/src/config.ts +0 -62
- package/src/errors.ts +0 -34
- package/src/index.ts +0 -73
- package/src/tools/contacts.ts +0 -92
- package/src/tools/invoices.ts +0 -128
- package/src/tools/quotations.ts +0 -58
- package/src/tools/sync.ts +0 -50
- package/src/tools/vouchers.ts +0 -65
- package/tsconfig.json +0 -15
package/CHANGELOG.md
CHANGED
|
@@ -4,27 +4,41 @@ All notable changes to this project will be documented in this file.
|
|
|
4
4
|
Format: [Keep a Changelog](https://keepachangelog.com/en/1.1.0/)
|
|
5
5
|
Versioning: [Semantic Versioning](https://semver.org/)
|
|
6
6
|
|
|
7
|
+
## [0.1.3] - 2026-04-13 19:00
|
|
8
|
+
|
|
9
|
+
### Fixed
|
|
10
|
+
- Umlaute korrigiert in allen Docs (ä/ü/ö statt ae/ue/oe)
|
|
11
|
+
- `.npmignore` hinzugefügt — MCP Registry Token-Dateien werden nicht mehr mit npm publiziert
|
|
12
|
+
|
|
13
|
+
## [0.1.2] - 2026-04-13 18:30
|
|
14
|
+
|
|
15
|
+
### Added
|
|
16
|
+
- `mcpName: "io.github.makririch/buchpilot"` in package.json — für Official MCP Registry
|
|
17
|
+
- `repository` field in package.json
|
|
18
|
+
- `server.json` — Official MCP Registry Metadata (LEXOFFICE_API_KEY, SEVDESK_API_KEY env vars)
|
|
19
|
+
- Publiziert im Official MCP Registry: `io.github.makririch/buchpilot`
|
|
20
|
+
|
|
7
21
|
## [0.1.1] - 2026-03-19 11:30
|
|
8
22
|
|
|
9
23
|
### Fixed
|
|
10
|
-
- Email-Mapping
|
|
11
|
-
- Rate-Limiter
|
|
12
|
-
- `contactId`-Filter in `listInvoices` wird jetzt korrekt an Lexoffice API
|
|
13
|
-
- PDF-Response nutzt Standard-Text-Format statt
|
|
14
|
-
- CHANGELOG: "Sync" korrigiert zu "
|
|
24
|
+
- Email-Mapping für Person-Kontakte: Email wird jetzt korrekt in Lexoffice gesetzt und gelesen
|
|
25
|
+
- Rate-Limiter für PDF-Download: `getInvoicePdf` nutzt jetzt Rate-Limiting + Fehlerbehandlung
|
|
26
|
+
- `contactId`-Filter in `listInvoices` wird jetzt korrekt an Lexoffice API übergeben
|
|
27
|
+
- PDF-Response nutzt Standard-Text-Format statt fragwürdigem `resource`-Typ
|
|
28
|
+
- CHANGELOG: "Sync" korrigiert zu "Überfällige Rechnungen"
|
|
15
29
|
|
|
16
30
|
## [0.1.0] - 2026-03-18 10:00
|
|
17
31
|
|
|
18
32
|
### Added
|
|
19
|
-
- MCP Server
|
|
33
|
+
- MCP Server für DACH-Buchhaltung via Model Context Protocol (stdio Transport)
|
|
20
34
|
- Backend-Architektur mit austauschbaren Backends (aktuell: Lexoffice)
|
|
21
|
-
- Lexoffice-Backend:
|
|
35
|
+
- Lexoffice-Backend: vollständige API-Integration mit Lazy-Initialisierung
|
|
22
36
|
- Tools: Kontakte (create, get, list, update)
|
|
23
37
|
- Tools: Rechnungen (create, get, list, get_pdf, update)
|
|
24
38
|
- Tools: Belege/Vouchers (create, get, list)
|
|
25
39
|
- Tools: Angebote/Quotations (create, get)
|
|
26
|
-
- Tools:
|
|
40
|
+
- Tools: Überfällige Rechnungen (get_overdue_invoices)
|
|
27
41
|
- Konfiguration via Umgebungsvariablen/Config-Datei
|
|
28
42
|
- Strukturierte Fehlerbehandlung mit Error Codes
|
|
29
|
-
- Zod-basierte Input-Validierung
|
|
43
|
+
- Zod-basierte Input-Validierung für alle Tools
|
|
30
44
|
- TypeScript mit ES Modules
|
package/README.md
CHANGED
|
@@ -1,24 +1,24 @@
|
|
|
1
1
|
# BuchPilot MCP Server
|
|
2
2
|
|
|
3
|
-
> MCP Server
|
|
3
|
+
> MCP Server für DACH-Buchhaltung — Kontakte, Rechnungen, Belege und Angebote direkt aus Claude, Cursor oder jedem MCP-kompatiblen Client verwalten.
|
|
4
4
|
|
|
5
5
|
[](https://www.npmjs.com/package/buchpilot-mcp)
|
|
6
6
|
[](LICENSE)
|
|
7
7
|
|
|
8
8
|
## Was ist das?
|
|
9
9
|
|
|
10
|
-
BuchPilot MCP ist ein [Model Context Protocol](https://modelcontextprotocol.io/) Server, der dein Buchhaltungssystem (aktuell Lexoffice) mit KI-Assistenten verbindet. Du kannst per
|
|
10
|
+
BuchPilot MCP ist ein [Model Context Protocol](https://modelcontextprotocol.io/) Server, der dein Buchhaltungssystem (aktuell Lexoffice) mit KI-Assistenten verbindet. Du kannst per natürlicher Sprache Rechnungen erstellen, Kontakte verwalten und überfällige Zahlungen prüfen — direkt in Claude Desktop, Cursor oder jedem anderen MCP-Client.
|
|
11
11
|
|
|
12
12
|
## Features
|
|
13
13
|
|
|
14
|
-
- **15 Tools**
|
|
14
|
+
- **15 Tools** für vollständige Buchhaltungs-Automatisierung
|
|
15
15
|
- **Kontakte** erstellen, abrufen, auflisten, aktualisieren
|
|
16
16
|
- **Rechnungen** erstellen, abrufen, auflisten, aktualisieren, PDF herunterladen
|
|
17
17
|
- **Belege** erstellen, abrufen, auflisten (Eingangsrechnungen, Gutschriften)
|
|
18
18
|
- **Angebote** erstellen, abrufen
|
|
19
|
-
-
|
|
20
|
-
- **Backend-Architektur** — aktuell Lexoffice, erweiterbar
|
|
21
|
-
- **Plugin-
|
|
19
|
+
- **Überfällige Rechnungen** mit Beträgen und Tagen überfällig
|
|
20
|
+
- **Backend-Architektur** — aktuell Lexoffice, erweiterbar für sevDesk, Billomat etc.
|
|
21
|
+
- **Plugin-fähig** — kann E-Invoice MCP Tools integrieren (`einvoice-mcp`)
|
|
22
22
|
- Keine Datenbank, kein State — reiner API-Proxy
|
|
23
23
|
|
|
24
24
|
## Installation
|
|
@@ -68,9 +68,9 @@ Erstelle eine Konfigurationsdatei `.buchpilot.json` an einem der folgenden Orte:
|
|
|
68
68
|
|
|
69
69
|
1. Gehe zu [Lexoffice Public API](https://app.lexoffice.de/addons/public-api)
|
|
70
70
|
2. Klicke auf **API-Key erstellen**
|
|
71
|
-
3. Kopiere den Key und
|
|
71
|
+
3. Kopiere den Key und füge ihn in `.buchpilot.json` ein
|
|
72
72
|
|
|
73
|
-
> **Sicherheitshinweis:** Speichere den API-Key nie in Git.
|
|
73
|
+
> **Sicherheitshinweis:** Speichere den API-Key nie in Git. Füge `.buchpilot.json` zu deiner `.gitignore` hinzu.
|
|
74
74
|
|
|
75
75
|
## Nutzung
|
|
76
76
|
|
|
@@ -87,13 +87,13 @@ npm start
|
|
|
87
87
|
npm run dev
|
|
88
88
|
```
|
|
89
89
|
|
|
90
|
-
Der Server
|
|
90
|
+
Der Server läuft über stdio und wartet auf MCP-Nachrichten.
|
|
91
91
|
|
|
92
92
|
### In Claude Desktop verwenden
|
|
93
93
|
|
|
94
|
-
Siehe [Claude Desktop Setup Guide](docs/claude-desktop-setup.md)
|
|
94
|
+
Siehe [Claude Desktop Setup Guide](docs/claude-desktop-setup.md) für eine detaillierte Anleitung.
|
|
95
95
|
|
|
96
|
-
Kurzversion —
|
|
96
|
+
Kurzversion — füge in `claude_desktop_config.json` hinzu:
|
|
97
97
|
|
|
98
98
|
```json
|
|
99
99
|
{
|
|
@@ -109,22 +109,22 @@ Kurzversion — fuege in `claude_desktop_config.json` hinzu:
|
|
|
109
109
|
}
|
|
110
110
|
```
|
|
111
111
|
|
|
112
|
-
### Beispiele (
|
|
112
|
+
### Beispiele (natürliche Sprache in Claude)
|
|
113
113
|
|
|
114
114
|
Nachdem du den Server konfiguriert hast, kannst du Claude z.B. fragen:
|
|
115
115
|
|
|
116
|
-
- "Erstelle einen Kontakt
|
|
116
|
+
- "Erstelle einen Kontakt für die Firma Beispiel GmbH mit der E-Mail info@beispiel.de"
|
|
117
117
|
- "Zeige mir alle offenen Rechnungen"
|
|
118
118
|
- "Erstelle eine Rechnung an Kontakt XYZ: 10 Stunden Beratung zu je 150 EUR"
|
|
119
|
-
- "Welche Rechnungen sind
|
|
119
|
+
- "Welche Rechnungen sind überfällig?"
|
|
120
120
|
- "Lade die PDF von Rechnung ABC herunter"
|
|
121
|
-
- "Erstelle ein Angebot
|
|
121
|
+
- "Erstelle ein Angebot für 5 Lizenzen a 49 EUR/Monat"
|
|
122
122
|
|
|
123
123
|
## Tool-Referenz
|
|
124
124
|
|
|
125
|
-
Eine
|
|
125
|
+
Eine vollständige Referenz aller 15 Tools mit Parametern, Beispiel-Inputs und Beispiel-Outputs findest du in [docs/tool-reference.md](docs/tool-reference.md).
|
|
126
126
|
|
|
127
|
-
###
|
|
127
|
+
### Kurzübersicht
|
|
128
128
|
|
|
129
129
|
| Tool | Beschreibung |
|
|
130
130
|
|------|-------------|
|
|
@@ -142,7 +142,7 @@ Eine vollstaendige Referenz aller 15 Tools mit Parametern, Beispiel-Inputs und B
|
|
|
142
142
|
| `list_vouchers` | Belege auflisten |
|
|
143
143
|
| `create_quotation` | Neues Angebot mit Positionen erstellen |
|
|
144
144
|
| `get_quotation` | Angebot per ID abrufen |
|
|
145
|
-
| `get_overdue_invoices` |
|
|
145
|
+
| `get_overdue_invoices` | Überfällige Rechnungen mit Analyse |
|
|
146
146
|
|
|
147
147
|
## E-Invoice Integration
|
|
148
148
|
|
|
@@ -168,26 +168,26 @@ echo '{"backends":{"lexoffice":{"api_key":"DEIN_KEY"}},"default_backend":"lexoff
|
|
|
168
168
|
### "401 Unauthorized" bei Lexoffice
|
|
169
169
|
|
|
170
170
|
- Ist der API-Key korrekt in `.dachflow.json`?
|
|
171
|
-
- Ist der Key noch aktiv?
|
|
172
|
-
- API-Keys
|
|
171
|
+
- Ist der Key noch aktiv? Prüfe unter [Lexoffice Public API](https://app.lexoffice.de/addons/public-api)
|
|
172
|
+
- API-Keys können ablaufen — erstelle ggf. einen neuen
|
|
173
173
|
|
|
174
174
|
### "429 Too Many Requests"
|
|
175
175
|
|
|
176
|
-
Lexoffice erlaubt max. 2 Requests pro Sekunde. Wenn du viele Operationen hintereinander
|
|
176
|
+
Lexoffice erlaubt max. 2 Requests pro Sekunde. Wenn du viele Operationen hintereinander ausführst, warte kurz zwischen den Anfragen.
|
|
177
177
|
|
|
178
178
|
### Server startet, aber Claude erkennt die Tools nicht
|
|
179
179
|
|
|
180
|
-
-
|
|
181
|
-
- Starte Claude Desktop neu nach
|
|
182
|
-
-
|
|
180
|
+
- Prüfe ob die `claude_desktop_config.json` korrekt ist
|
|
181
|
+
- Starte Claude Desktop neu nach Konfigurationsänderungen
|
|
182
|
+
- Prüfe die Logs: `~/Library/Logs/Claude/mcp.log` (macOS)
|
|
183
183
|
|
|
184
184
|
### Rechnung kann nicht aktualisiert werden
|
|
185
185
|
|
|
186
|
-
Nur Rechnungen im Status **draft** (Entwurf)
|
|
186
|
+
Nur Rechnungen im Status **draft** (Entwurf) können aktualisiert werden. Finalisierte Rechnungen sind unveränderlich.
|
|
187
187
|
|
|
188
|
-
### Backend "sevDesk" nicht
|
|
188
|
+
### Backend "sevDesk" nicht verfügbar
|
|
189
189
|
|
|
190
|
-
Aktuell wird nur **Lexoffice** als Backend
|
|
190
|
+
Aktuell wird nur **Lexoffice** als Backend unterstützt. sevDesk-Unterstützung ist geplant. Du kannst die n8n-Nodes (`n8n-nodes-buchpilot`) für sevDesk verwenden.
|
|
191
191
|
|
|
192
192
|
## Lizenz
|
|
193
193
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# BuchPilot MCP — Claude Desktop Setup Guide
|
|
2
2
|
|
|
3
|
-
Diese Anleitung zeigt dir Schritt
|
|
3
|
+
Diese Anleitung zeigt dir Schritt für Schritt, wie du den BuchPilot MCP Server in Claude Desktop einrichtest.
|
|
4
4
|
|
|
5
5
|
## Voraussetzungen
|
|
6
6
|
|
|
@@ -10,7 +10,7 @@ Diese Anleitung zeigt dir Schritt fuer Schritt, wie du den BuchPilot MCP Server
|
|
|
10
10
|
|
|
11
11
|
## Schritt 1: Lexoffice API-Key erstellen
|
|
12
12
|
|
|
13
|
-
1.
|
|
13
|
+
1. Öffne [Lexoffice Public API](https://app.lexoffice.de/addons/public-api)
|
|
14
14
|
2. Klicke auf **API-Key erstellen**
|
|
15
15
|
3. Kopiere den Key — du brauchst ihn gleich
|
|
16
16
|
|
|
@@ -48,11 +48,11 @@ EOF
|
|
|
48
48
|
"@ | Out-File -Encoding utf8 "$env:USERPROFILE\.buchpilot.json"
|
|
49
49
|
```
|
|
50
50
|
|
|
51
|
-
Ersetze `DEIN_LEXOFFICE_API_KEY_HIER` durch deinen
|
|
51
|
+
Ersetze `DEIN_LEXOFFICE_API_KEY_HIER` durch deinen tatsächlichen API-Key.
|
|
52
52
|
|
|
53
53
|
## Schritt 3: Claude Desktop konfigurieren
|
|
54
54
|
|
|
55
|
-
|
|
55
|
+
Öffne die Claude Desktop Konfigurationsdatei:
|
|
56
56
|
|
|
57
57
|
### macOS
|
|
58
58
|
|
|
@@ -72,7 +72,7 @@ Oeffne die Claude Desktop Konfigurationsdatei:
|
|
|
72
72
|
~/.config/claude/claude_desktop_config.json
|
|
73
73
|
```
|
|
74
74
|
|
|
75
|
-
Falls die Datei nicht existiert, erstelle sie.
|
|
75
|
+
Falls die Datei nicht existiert, erstelle sie. Füge folgenden Inhalt hinzu:
|
|
76
76
|
|
|
77
77
|
### Variante A: Mit npx (empfohlen, immer aktuell)
|
|
78
78
|
|
|
@@ -126,13 +126,13 @@ Falls die Datei nicht existiert, erstelle sie. Fuege folgenden Inhalt hinzu:
|
|
|
126
126
|
}
|
|
127
127
|
```
|
|
128
128
|
|
|
129
|
-
> **Hinweis:** Ersetze `/Users/DEIN_NAME/` durch deinen
|
|
129
|
+
> **Hinweis:** Ersetze `/Users/DEIN_NAME/` durch deinen tatsächlichen Home-Pfad.
|
|
130
130
|
|
|
131
131
|
|
|
132
132
|
## Schritt 4: Claude Desktop neu starten
|
|
133
133
|
|
|
134
|
-
1.
|
|
135
|
-
2.
|
|
134
|
+
1. Schließe Claude Desktop vollständig (nicht nur minimieren)
|
|
135
|
+
2. Öffne Claude Desktop erneut
|
|
136
136
|
3. Du solltest jetzt ein Hammer-Symbol (Tools) im Chat sehen
|
|
137
137
|
|
|
138
138
|
<!-- Screenshot-Platzhalter: Claude Desktop mit Tool-Symbol -->
|
|
@@ -140,7 +140,7 @@ Falls die Datei nicht existiert, erstelle sie. Fuege folgenden Inhalt hinzu:
|
|
|
140
140
|
|
|
141
141
|
## Schritt 5: Testen
|
|
142
142
|
|
|
143
|
-
|
|
143
|
+
Öffne einen neuen Chat in Claude und probiere:
|
|
144
144
|
|
|
145
145
|
```
|
|
146
146
|
Zeige mir alle meine Kontakte in Lexoffice
|
|
@@ -154,15 +154,15 @@ Claude sollte das `list_contacts`-Tool aufrufen und deine Kontakte anzeigen.
|
|
|
154
154
|
Weitere Beispiele:
|
|
155
155
|
|
|
156
156
|
```
|
|
157
|
-
Erstelle einen Kontakt
|
|
157
|
+
Erstelle einen Kontakt für die Firma "Test GmbH" mit der E-Mail test@beispiel.de
|
|
158
158
|
```
|
|
159
159
|
|
|
160
160
|
```
|
|
161
|
-
Welche Rechnungen sind
|
|
161
|
+
Welche Rechnungen sind überfällig?
|
|
162
162
|
```
|
|
163
163
|
|
|
164
164
|
```
|
|
165
|
-
Erstelle eine Rechnung an Kontakt [ID]
|
|
165
|
+
Erstelle eine Rechnung an Kontakt [ID] für:
|
|
166
166
|
- 10 Stunden Beratung zu je 150 EUR
|
|
167
167
|
- 1 Lizenz Software zu 499 EUR
|
|
168
168
|
```
|
|
@@ -171,12 +171,12 @@ Erstelle eine Rechnung an Kontakt [ID] fuer:
|
|
|
171
171
|
|
|
172
172
|
### Tools erscheinen nicht in Claude
|
|
173
173
|
|
|
174
|
-
1. **Config-Pfad
|
|
174
|
+
1. **Config-Pfad prüfen:** Ist der Pfad zu `claude_desktop_config.json` korrekt?
|
|
175
175
|
2. **JSON-Syntax:** Ist die JSON-Datei valide? (Keine Kommas nach dem letzten Element)
|
|
176
176
|
3. **Node.js:** Ist `node` und `npx` im PATH? Teste mit `node --version` im Terminal.
|
|
177
|
-
4. **Neustart:** Hast du Claude Desktop
|
|
177
|
+
4. **Neustart:** Hast du Claude Desktop vollständig neu gestartet?
|
|
178
178
|
|
|
179
|
-
### Logs
|
|
179
|
+
### Logs prüfen
|
|
180
180
|
|
|
181
181
|
**macOS:**
|
|
182
182
|
```bash
|
|
@@ -190,16 +190,16 @@ Get-Content "$env:APPDATA\Claude\Logs\mcp.log" -Wait
|
|
|
190
190
|
|
|
191
191
|
### "No .buchpilot.json found"
|
|
192
192
|
|
|
193
|
-
Die Konfigurationsdatei wurde nicht gefunden.
|
|
193
|
+
Die Konfigurationsdatei wurde nicht gefunden. Prüfe:
|
|
194
194
|
- Existiert `~/.buchpilot.json`?
|
|
195
195
|
- Ist der Pfad in der `env.BUCHPILOT_CONFIG` korrekt?
|
|
196
|
-
- Hat die Datei
|
|
196
|
+
- Hat die Datei gültiges JSON?
|
|
197
197
|
|
|
198
198
|
### "401 Unauthorized"
|
|
199
199
|
|
|
200
|
-
Der Lexoffice API-Key ist
|
|
200
|
+
Der Lexoffice API-Key ist ungültig oder abgelaufen:
|
|
201
201
|
1. Gehe zu [Lexoffice Public API](https://app.lexoffice.de/addons/public-api)
|
|
202
|
-
2.
|
|
202
|
+
2. Prüfe ob der Key aktiv ist
|
|
203
203
|
3. Erstelle ggf. einen neuen Key
|
|
204
204
|
4. Aktualisiere `~/.buchpilot.json`
|
|
205
205
|
5. Starte Claude Desktop neu
|
package/docs/tool-reference.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# BuchPilot MCP — Tool-Referenz
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
Vollständige Referenz aller 15 Tools des BuchPilot MCP Servers.
|
|
4
4
|
|
|
5
5
|
---
|
|
6
6
|
|
|
@@ -136,7 +136,7 @@ Listet Kontakte auf mit optionalen Filtern.
|
|
|
136
136
|
|
|
137
137
|
### update_contact
|
|
138
138
|
|
|
139
|
-
Aktualisiert einen bestehenden Kontakt. Nur die
|
|
139
|
+
Aktualisiert einen bestehenden Kontakt. Nur die übergebenen Felder werden geändert.
|
|
140
140
|
|
|
141
141
|
**Parameter:**
|
|
142
142
|
|
|
@@ -169,7 +169,7 @@ Erstellt eine neue Rechnung mit Positionen.
|
|
|
169
169
|
|
|
170
170
|
| Parameter | Typ | Pflicht | Default | Beschreibung |
|
|
171
171
|
|-----------|-----|---------|---------|-------------|
|
|
172
|
-
| `contactId` | string | Ja | — | Kontakt-ID des
|
|
172
|
+
| `contactId` | string | Ja | — | Kontakt-ID des Rechnungsempfängers |
|
|
173
173
|
| `date` | string | Ja | — | Rechnungsdatum (ISO 8601, z.B. `2026-03-18`) |
|
|
174
174
|
| `lineItems` | Array | Ja | — | Rechnungspositionen (mind. 1) |
|
|
175
175
|
| `lineItems[].name` | string | Ja | — | Positionsname |
|
|
@@ -179,7 +179,7 @@ Erstellt eine neue Rechnung mit Positionen.
|
|
|
179
179
|
| `title` | string | Nein | — | Rechnungstitel |
|
|
180
180
|
| `introduction` | string | Nein | — | Einleitungstext |
|
|
181
181
|
| `remark` | string | Nein | — | Schlusstext |
|
|
182
|
-
| `currency` | string | Nein | `"EUR"` |
|
|
182
|
+
| `currency` | string | Nein | `"EUR"` | Währung |
|
|
183
183
|
| `finalize` | boolean | Nein | `false` | Rechnung direkt finalisieren (nicht mehr editierbar) |
|
|
184
184
|
| `backend` | string | Nein | Default-Backend | Backend |
|
|
185
185
|
|
|
@@ -193,8 +193,8 @@ Erstellt eine neue Rechnung mit Positionen.
|
|
|
193
193
|
{ "name": "Beratung", "quantity": 10, "unitPrice": 150.00, "taxRate": 19 },
|
|
194
194
|
{ "name": "Softwarelizenz", "quantity": 1, "unitPrice": 499.00, "taxRate": 19 }
|
|
195
195
|
],
|
|
196
|
-
"title": "Rechnung
|
|
197
|
-
"introduction": "Vielen Dank
|
|
196
|
+
"title": "Rechnung März 2026",
|
|
197
|
+
"introduction": "Vielen Dank für Ihren Auftrag.",
|
|
198
198
|
"remark": "Zahlbar innerhalb von 14 Tagen.",
|
|
199
199
|
"finalize": false
|
|
200
200
|
}
|
|
@@ -263,7 +263,7 @@ Listet Rechnungen auf. Kann nach Status und Kontakt gefiltert werden.
|
|
|
263
263
|
|
|
264
264
|
### get_invoice_pdf
|
|
265
265
|
|
|
266
|
-
|
|
266
|
+
Lädt eine Rechnung als PDF herunter (Base64-kodiert). Die Rechnung muss finalisiert sein (Status "open" oder "paid").
|
|
267
267
|
|
|
268
268
|
**Parameter:**
|
|
269
269
|
|
|
@@ -281,13 +281,13 @@ Laedt eine Rechnung als PDF herunter (Base64-kodiert). Die Rechnung muss finalis
|
|
|
281
281
|
}
|
|
282
282
|
```
|
|
283
283
|
|
|
284
|
-
|
|
284
|
+
Zusätzlich wird die PDF als Base64-kodierte Ressource zurückgegeben.
|
|
285
285
|
|
|
286
286
|
---
|
|
287
287
|
|
|
288
288
|
### update_invoice
|
|
289
289
|
|
|
290
|
-
Aktualisiert eine bestehende Rechnung. Nur
|
|
290
|
+
Aktualisiert eine bestehende Rechnung. Nur Entwürfe (Status "draft") können aktualisiert werden.
|
|
291
291
|
|
|
292
292
|
**Parameter:**
|
|
293
293
|
|
|
@@ -327,7 +327,7 @@ Erstellt einen neuen Beleg (Eingangsrechnung oder Gutschrift).
|
|
|
327
327
|
"date": "2026-03-15",
|
|
328
328
|
"totalGross": 119.00,
|
|
329
329
|
"taxRate": 19,
|
|
330
|
-
"remark": "
|
|
330
|
+
"remark": "Büromaterial"
|
|
331
331
|
}
|
|
332
332
|
```
|
|
333
333
|
|
|
@@ -391,7 +391,7 @@ Erstellt ein neues Angebot mit Positionen.
|
|
|
391
391
|
| `lineItems[].quantity` | number | Nein | 1 | Menge |
|
|
392
392
|
| `lineItems[].unitPrice` | number | Ja | — | Einzelpreis netto |
|
|
393
393
|
| `lineItems[].taxRate` | number | Nein | 19 | Steuersatz in Prozent |
|
|
394
|
-
| `expirationDate` | string | Nein | — |
|
|
394
|
+
| `expirationDate` | string | Nein | — | Gültig bis (ISO 8601) |
|
|
395
395
|
| `title` | string | Nein | — | Angebotstitel |
|
|
396
396
|
| `introduction` | string | Nein | — | Einleitungstext |
|
|
397
397
|
| `remark` | string | Nein | — | Schlusstext |
|
|
@@ -448,17 +448,17 @@ Ruft ein Angebot per ID ab.
|
|
|
448
448
|
|
|
449
449
|
---
|
|
450
450
|
|
|
451
|
-
##
|
|
451
|
+
## Überfällige Rechnungen
|
|
452
452
|
|
|
453
453
|
### get_overdue_invoices
|
|
454
454
|
|
|
455
|
-
Listet alle
|
|
455
|
+
Listet alle überfälligen Rechnungen mit Betrag, Fälligkeitsdatum und Tagen überfällig auf.
|
|
456
456
|
|
|
457
457
|
**Parameter:**
|
|
458
458
|
|
|
459
459
|
| Parameter | Typ | Pflicht | Default | Beschreibung |
|
|
460
460
|
|-----------|-----|---------|---------|-------------|
|
|
461
|
-
| `days_overdue` | number | Nein | 0 | Mindestens X Tage
|
|
461
|
+
| `days_overdue` | number | Nein | 0 | Mindestens X Tage überfällig (0 = alle überfälligen) |
|
|
462
462
|
| `limit` | number | Nein | 50 | Maximale Anzahl |
|
|
463
463
|
| `backend` | string | Nein | Default-Backend | Backend |
|
|
464
464
|
|
package/package.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "buchpilot-mcp",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.4",
|
|
4
4
|
"mcpName": "io.github.makririch/buchpilot",
|
|
5
|
-
"description": "MCP Server
|
|
5
|
+
"description": "MCP Server für DACH-Buchhaltung (Lexoffice, Billomat, sevDesk)",
|
|
6
6
|
"type": "module",
|
|
7
7
|
"main": "dist/index.js",
|
|
8
8
|
"bin": {
|
package/server.json
ADDED
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
|
|
3
|
+
"name": "io.github.makririch/buchpilot",
|
|
4
|
+
"description": "DACH accounting for AI: connect sevDesk & Lexoffice to create invoices, contacts, vouchers.",
|
|
5
|
+
"repository": {
|
|
6
|
+
"url": "https://github.com/makririch/buchpilot-mcp",
|
|
7
|
+
"source": "github"
|
|
8
|
+
},
|
|
9
|
+
"version": "0.1.3",
|
|
10
|
+
"packages": [
|
|
11
|
+
{
|
|
12
|
+
"registryType": "npm",
|
|
13
|
+
"identifier": "buchpilot-mcp",
|
|
14
|
+
"version": "0.1.3",
|
|
15
|
+
"transport": {
|
|
16
|
+
"type": "stdio"
|
|
17
|
+
},
|
|
18
|
+
"environmentVariables": [
|
|
19
|
+
{
|
|
20
|
+
"description": "Lexoffice API key (from lexoffice.de/api)",
|
|
21
|
+
"isRequired": false,
|
|
22
|
+
"format": "string",
|
|
23
|
+
"isSecret": true,
|
|
24
|
+
"name": "LEXOFFICE_API_KEY"
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
"description": "sevDesk API key (from sevdesk.de/api)",
|
|
28
|
+
"isRequired": false,
|
|
29
|
+
"format": "string",
|
|
30
|
+
"isSecret": true,
|
|
31
|
+
"name": "SEVDESK_API_KEY"
|
|
32
|
+
}
|
|
33
|
+
]
|
|
34
|
+
}
|
|
35
|
+
]
|
|
36
|
+
}
|