buchpilot-mcp
Can be used with n8n-nodes-buchpilot for sevDesk backend support, extending accounting automation capabilities beyond the current Lexoffice integration.
BuchPilot MCP Server
MCP Server for DACH accounting — manage contacts, invoices, vouchers, and quotes directly from Claude, Cursor, or any MCP-compatible client.
What is this?
BuchPilot MCP is a Model Context Protocol server that connects your accounting system (currently Lexoffice) with AI assistants. You can create invoices, manage contacts, and check overdue payments using natural language — directly in Claude Desktop, Cursor, or any other MCP client.
Related MCP server: @centry-digital/bukku-mcp
Features
15 tools for complete accounting automation
Contacts: create, retrieve, list, update
Invoices: create, retrieve, list, update, download PDF
Vouchers: create, retrieve, list (incoming invoices, credit notes)
Quotes: create, retrieve
Overdue invoices: with amounts and days overdue
Backend architecture — currently Lexoffice, extensible for sevDesk, Billomat, etc.
Plugin-ready — can integrate E-Invoice MCP tools (
einvoice-mcp)No database, no state — pure API proxy
Installation
Prerequisites
Node.js >= 18
A Lexoffice account with an API key
npm (global)
npm install -g buchpilot-mcpFrom source
git clone https://github.com/makririch/buchpilot-mcp.git
cd buchpilot-mcp
npm install
npm run buildConfiguration
Create a configuration file .buchpilot.json in one of the following locations:
Path from environment variable
BUCHPILOT_CONFIG~/.buchpilot.json(home directory)./.buchpilot.json(current directory)
Content of .buchpilot.json
{
"backends": {
"lexoffice": {
"api_key": "DEIN_LEXOFFICE_API_KEY"
}
},
"default_backend": "lexoffice"
}Create Lexoffice API key
Go to Lexoffice Public API
Click on Create API key
Copy the key and paste it into
.buchpilot.json
Security note: Never store the API key in Git. Add
.buchpilot.jsonto your.gitignore.
Usage
Start server (standalone)
# Nach npm install -g:
buchpilot-mcp
# Oder von Source:
npm start
# Entwicklung mit Auto-Reload:
npm run devThe server runs via stdio and waits for MCP messages.
Use in Claude Desktop
See Claude Desktop Setup Guide for detailed instructions.
Quick version — add to claude_desktop_config.json:
{
"mcpServers": {
"buchpilot": {
"command": "npx",
"args": ["-y", "buchpilot-mcp"],
"env": {
"BUCHPILOT_CONFIG": "/Users/DEIN_NAME/.buchpilot.json"
}
}
}
}Examples (natural language in Claude)
After configuring the server, you can ask Claude, for example:
"Create a contact for the company Beispiel GmbH with the email info@beispiel.de"
"Show me all open invoices"
"Create an invoice for contact XYZ: 10 hours of consulting at 150 EUR each"
"Which invoices are overdue?"
"Download the PDF for invoice ABC"
"Create a quote for 5 licenses at 49 EUR/month"
Tool Reference
A full reference of all 15 tools with parameters, example inputs, and example outputs can be found in docs/tool-reference.md.
Quick Overview
Tool | Description |
| Create a new contact (person or company) |
| Retrieve contact by ID |
| List contacts with filters |
| Update contact |
| Create a new invoice with line items |
| Retrieve invoice by ID |
| List invoices (filterable by status) |
| Download invoice as PDF (Base64) |
| Update draft invoice |
| Create a new voucher |
| Retrieve voucher by ID |
| List vouchers |
| Create a new quote with line items |
| Retrieve quote by ID |
| Overdue invoices with analysis |
E-Invoice Integration
BuchPilot MCP can optionally integrate the E-Invoice MCP package to generate XRechnung and ZUGFeRD directly from the accounting system:
// In deinem eigenen MCP-Server:
import { registerEInvoiceTools } from "einvoice-mcp";
registerEInvoiceTools(server);
// Ergebnis: 15 + 4 = 19 ToolsFAQ / Troubleshooting
"No .buchpilot.json found"
The server cannot find a configuration file. Create a .buchpilot.json in your home directory:
echo '{"backends":{"lexoffice":{"api_key":"DEIN_KEY"}},"default_backend":"lexoffice"}' > ~/.buchpilot.json"401 Unauthorized" with Lexoffice
Is the API key correct in
.dachflow.json?Is the key still active? Check under Lexoffice Public API
API keys can expire — create a new one if necessary
"429 Too Many Requests"
Lexoffice allows a maximum of 2 requests per second. If you perform many operations in succession, wait a moment between requests.
Server starts, but Claude does not recognize the tools
Check if
claude_desktop_config.jsonis correctRestart Claude Desktop after configuration changes
Check the logs:
~/Library/Logs/Claude/mcp.log(macOS)
Invoice cannot be updated
Only invoices with the status draft can be updated. Finalized invoices are immutable.
Backend "sevDesk" not available
Currently, only Lexoffice is supported as a backend. sevDesk support is planned. You can use the n8n nodes (n8n-nodes-buchpilot) for sevDesk.
License
MIT — Free to use, including commercially.
Author
MaKri — GitHub
Available Tools
15 toolscreate_contactB
Erstellt einen neuen Kontakt (Person oder Firma) im Buchhaltungssystem. Creates a new contact (person or company).
Inputs: type (required), name (required), firstName, email, +2 more.
create_invoiceB
Erstellt eine neue Rechnung mit Positionen. Creates a new invoice with line items.
Inputs: contactId (required), date (required), lineItems (required), title, +5 more.
create_quotationB
Erstellt ein neues Angebot mit Positionen. Creates a new quotation with line items.
Inputs: contactId (required), date (required), lineItems (required), expirationDate, +5 more.
create_voucherC
Erstellt einen neuen Beleg (Eingangsrechnung, Gutschrift). Creates a new voucher (purchase invoice, credit note).
Inputs: type (required), date (required), totalGross (required), taxRate, +3 more.
get_contactC
Ruft einen Kontakt per ID ab. Gets a contact by ID.
Inputs: id (required), backend.
get_invoiceC
Ruft eine Rechnung per ID ab. Gets an invoice by ID.
Inputs: id (required), backend.
get_invoice_pdfA
Laedt eine Rechnung als PDF herunter (Base64-kodiert). Downloads an invoice as PDF (base64-encoded).
Inputs: id (required), backend.
get_overdue_invoicesC
Listet alle ueberfaelligen Rechnungen mit Betrag und Faelligkeitsdatum. Lists all overdue invoices with amount and due date.
Inputs: days_overdue, limit, backend.
get_quotationC
Ruft ein Angebot per ID ab. Gets a quotation by ID.
Inputs: id (required), backend.
get_voucherC
Ruft einen Beleg per ID ab. Gets a voucher by ID.
Inputs: id (required), backend.
list_contactsC
Listet Kontakte auf mit optionalen Filtern. Lists contacts with optional filters.
Inputs: name, email, role, limit, +1 more.
list_invoicesC
Listet Rechnungen auf. Kann nach Status filtern (draft, open, paid, overdue). Lists invoices with optional status filter.
Inputs: status, contactId, limit, backend.
list_vouchersB
Listet Belege auf mit optionalen Filtern. Lists vouchers with optional filters.
Inputs: type, limit, backend.
update_contactB
Aktualisiert einen bestehenden Kontakt. Updates an existing contact.
Inputs: id (required), name, firstName, email, +1 more.
update_invoiceB
Aktualisiert eine bestehende Rechnung (nur Entwuerfe). Updates a draft invoice.
Inputs: id (required), title, introduction, remark, +1 more.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 15 tools
Each tool targets a distinct resource (contact, invoice, quotation, voucher) with separate actions (create, get, list, update). No overlap in purpose.
All tool names follow a consistent verb_noun pattern in snake_case (e.g., create_contact, get_invoice_pdf). No mixed conventions.
15 tools are appropriate for an accounting server covering contacts, invoices, quotations, and vouchers. Not too few or too many.
Core CRUD operations are present for contacts and invoices, with additional features like PDF download and overdue listing. However, missing updates for quotations and vouchers, and missing deletions for all resources are minor gaps.
Maintenance
Related MCP Connectors
MCP server unifying ERPs, CRMs, APIs and knowledge base for Claude, ChatGPT and Gemini.
MCP server for ABRA Flexi — accounting, contacts, stock and draft-checked invoice creation.
sevdesk MCP server for ChatGPT, Claude and any AI agent: create invoice, send invoice, upload receipt, book voucher and list open invoices in your own sevdesk account. Cotlet works in the account through your Cloud Browser, a real Chrome where you sign in to sevdesk yourself; Cotlet does not store your password and you need no sevdesk API key. About the official sevdesk API: sevdesk has a REST API (checked 14 Oct 2026). It covers almost everything the web app does, but only on the Buchhaltung Pro plan, in Germany, on system version 2.0. Setup and FAQ: https://cotlet.dev/integrations/sevdesk-api-mcp-server
Hosted MCP server connecting AI assistants to 9,000+ apps and 40,000+ actions via Zapier.
Related MCP Servers
- AlicenseAqualityDmaintenanceMCP server for German e-invoice compliance (XRechnung 3.0 & ZUGFeRD 2.x) enabling AI agents to validate, generate, parse, and check compliance of electronic invoices per EN 16931.61MIT
- AlicenseNot gradedqualityAmaintenanceMCP server enabling AI assistants to manage invoices, contacts, products, and other accounting data through the Bukku API.9MIT
- AlicenseAqualityBmaintenanceMCP server for the Elorus invoicing and accounting platform, enabling AI assistants to create invoices, manage contacts, and query financial data through natural language.434MIT
- AlicenseAqualityCmaintenanceMCP server for Spanish accounting for freelancers and SMEs, enabling AI agents to issue invoices, OCR expense PDFs, reconcile bank transactions, and prepare quarterly VAT (Modelo 303).234MIT