SevDesk MCP

Lokaler MCP-Server fuer SevDesk (REST-API v1). Liest Rechnungen, Belege, Kontakte und Bank-Konten — read-only.

Eigenes Projekt, nicht geforkt — keinen bestehenden SevDesk-MCP gefunden. Python + FastMCP analog zu gsuite.

Tools

ToolZweck
list_invoices(limit, offset, status)Ausgangsrechnungen
get_invoice_details(invoice_id)Eine Rechnung mit Details
get_invoice_pdf(invoice_id, save_path)PDF in Dateipfad schreiben
list_vouchers(limit, offset, status)Eingangsbelege
get_voucher_details(voucher_id)Ein Beleg mit Details
get_voucher_pdf(voucher_id, save_path)PDF downloaden
list_contacts(limit, offset)Kontakte (Kunden, Lieferanten)
list_check_accounts()Bank- und Online-Konten

Status-Codes fuer Filter:

  • Invoice: 100=Entwurf, 200=offen, 500=offen/versendet, 1000=bezahlt
  • Voucher: 50=Entwurf, 100=offen, 1000=bezahlt

Setup

  1. Token: my.sevdesk.de → Einstellungen → Users → eigenen User → „API-Token anzeigen”. Anleitung: SevDesk Hilfe.
  2. .env.local:
    SEVDESK_API_TOKEN=<token>
    
  3. Install + Reload:
    uv tool install --force --editable ~/source/mcps/mcp-sevdesk
    # Claude Code neu starten -> mcp__sevdesk__*

Auth-Quirk

SevDesk erwartet Token direkt als Authorization-Header, ohne Bearer-Prefix:

Authorization: <raw_token>

Im Server bereits so gesetzt.

Upstream / Eigen-Wartung

Kein Upstream — wir sind der Upstream. Bei SevDesk-API-Aenderungen (Breaking Changes 2025-03 laut Tech-Blog) muessen wir nachziehen.

Typische Use Cases

  1. Bestands-Migration: alle historischen Rechnungen per list_invoices durchpaginieren, per get_invoice_pdf(save_path=...) nach assets/finanzen/<jahr>/ downloaden.
  2. Dubletten-Check gegen Lexware Office: gleiche Rechnungsnummer in beiden Tools = Duplicate.
  3. Steuerberater-Report: Summen pro Status (bezahlt vs. offen) zusammenbauen.

Status & Abgrenzung

papierkram ist Primary. lexware und sevdesk vorgehalten falls DATEV-Export per API gebraucht wird (Papierkram hat das nicht). Tool-Entscheidung: buchhaltungs-stack.