mahnantrag-mcp
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@mahnantrag-mcp Prüfe meinen Mahnbescheidsantrag gegen Müller wegen 1.250 € vor."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
mahnantrag-mcp
MCP-Server (und Claude-Plugin), mit dem Claude einen Antrag auf Erlass eines Mahnbescheids über online-mahnantrag.de vorbereitet:
Vorprüfung – deterministisch, bevor das Portal den Antrag sieht
Ausfüllen des Portals bis zur Datenübersicht – im sichtbaren Browser, Mensch kann jederzeit übernehmen. Haltepunkt am Prozessgericht: das Portal leitet es aus der Gegneranschrift ab, Weiterklicken gilt als Wahl nach § 35 ZPO. Der Ausfüller zeigt das Gericht und macht erst nach Bestätigung weiter.
EDA-Download – erst nach ausdrücklicher Freigabe und nur, wenn die Datenübersicht keine Fehler (
FehlerDa) und keine offenen Warnungen zeigt; Datei wird schreibgeschützt gespeichert und gehasht
Eingereicht wird nie durch diesen Server. Die EDA-Datei geht unverändert über einen sicheren Übermittlungsweg (beA, § 130a Abs. 4 ZPO) an das Mahngericht. Das macht der Mensch.
Status: v0.1, Work-in-Progress. Ende-zu-Ende gegen das Live-Portal getestet (09.11.2026, Fantasiedaten), einschließlich EDA-Download. Eine echte Einreichung beim Mahngericht ist noch nicht erprobt.
Warum eine Vorprüfung?
Das Portal prüft fast nichts. Vierstellige PLZ, eine weibliche Vertreterfunktion zu einem männlichen
Namen oder eine doppelt eingetragene vorgerichtliche Anwaltsvergütung gehen ohne Meldung durch.
antrag_pruefen fängt unter anderem ab:
Feldlängen des Portals (Firmenname 35 Zeichen je Zeile, Ort 27, Kennziffer 8 Ziffern …)
Katalogcodes (75 Anspruchsarten, 178 Rechtsformen, Belegarten, Auslagenarten)
PLZ, IBAN-Prüfziffer, Daten in der Zukunft
vorgerichtliche Anwaltsvergütung als Haupt- und Nebenforderung (verdoppelt die Forderung)
Barcode-Weg für Rechtsanwälte nur mit Glaubhaftmachung (§ 130d S. 2, 3 ZPO)
9 Punkte über Basiszins gegen natürliche Personen (§ 288 Abs. 1 vs. 2 BGB)
Kosten des Mahnverfahrens als Auslage (§ 699 Abs. 3 ZPO)
rechtliche Weichen, die ausdrücklich entschieden sein müssen: Gegenleistung, streitiges Verfahren, Vergütung, Einreichung durch Berufsträger (auch in eigener Sache), vorgerichtliche Anwaltsvergütung als Haupt- oder Nebenforderung, Verbraucherbeteiligung (§ 288 BGB), Prozessgericht
Related MCP server: Dichiarazione-MCP
Tools
Tool | Wirkung |
| Anspruchsart, Rechtsform, Belegart, Auslagenart nachschlagen |
| JSON-Schema des Antrags |
| Vorprüfung, nur lesend |
| Portal füllen; hält am Prozessgericht (falls nicht bestätigt) und an der Datenübersicht |
| nach Bestätigung des angezeigten Prozessgerichts weiterfüllen |
| EDA-Datei speichern (nur nach Freigabe) |
| Sitzung ansehen / beenden |
Beispielantrag: tests/beispiel_antrag.json.
Umfang v0.1 (bewusst eng)
Unterstützt: ein Antragsteller, ein Antragsgegner (je natürliche Person oder Firma mit einem gesetzlichen Vertreter), Prozessbevollmächtigter (Reiter „Rechtsanwalt/-beistand“) oder Antragsteller selbst, ein katalogisierter Anspruch mit optional Abtretung und laufenden Zinsen, Auslagen und Nebenforderungen, Bankverbindung, Versandart EDA-Download oder Barcode.
Abgelehnt statt halb ausgefüllt: mehrere Ansprüche/Parteien/Vertreter, Auslandsanschriften (auch beim Zedenten), Urkunden-/Scheck-/Wechselmahnverfahren, sonstige Ansprüche, ausgerechnete Zinsen, RA-Gesellschaft/Inkasso als Vertreter, manuelle Gerichtswahl. Beim Barcode-Weg hält der Ausfüller auf der Übersicht an; Druck und Unterschrift macht der Mensch im Browser.
Installation
Voraussetzungen: uv, Google Chrome (sonst uv run playwright install chromium).
Als Plugin (Claude Code / Claude Desktop): Marketplace eliasreiche/mahnantrag-mcp hinzufügen
und Plugin mahnantrag installieren.
Direkt als MCP-Server:
claude mcp add mahnantrag -- uv run --directory /pfad/zu/mahnantrag-mcp mahnantrag-mcpUmgebungsvariablen (optional):
Variable | Bedeutung |
| Zielordner für EDA-Dateien (Standard |
| Playwright-Kanal (Standard |
| expliziter Pfad zu einem Chromium |
Datenschutz und Berufsrecht
Die Antragsdaten (Parteien, Forderung) laufen durch das Sprachmodell. In Kanzleien deshalb nur mit
einem berufsrechtlich abgesicherten Modellzugang nutzen (z. B. Claude über Amazon Bedrock in der EU
mit § 43e-BRAO-Vereinbarung), nicht mit einem Verbraucherkonto. Der Server selbst schreibt nur die
heruntergeladene EDA-Datei auf die Platte, in einen Ordner <Zeitpunkt>_<Geschäftszeichen>. Das Protokoll
bleibt im Arbeitsspeicher; Fehlermeldungen zur Antragsstruktur nennen Feldpfade, nicht die eingegebenen Werte.
Das Portal (verantwortlich: Justizministerium Baden-Württemberg, Koordinierungsstelle für das
automatisierte Mahnverfahren) hat laut Analyse keinen Bot-Schutz und keine Nutzungsbedingung gegen
automatisierte Bedienung. Der Ausfüller klickt die Zustimmung zum Datenschutzhinweis des Portals nur,
wenn datenschutzhinweis_akzeptiert=true übergeben wird.
Entwicklung
uv sync
uv run pytest # Unit-Tests, offline
uv run python scripts/mcp_rauchtest.py # MCP über stdio
uv run python scripts/live_probelauf.py tests/beispiel_antrag.json --sichtbar # Live bis Übersicht, kein Download
uv run python scripts/live_probelauf.py tests/beispiel_antrag.json --gericht-bestaetigen --download /tmp/eda # inkl. Download (nur Fantasiedaten!)Portalwissen: docs/referenz/ (Masken, Felder, zwölf Fallen). Neue Erkenntnisse
aus Live-Läufen stehen als Kommentar am Code (z. B. Begründungspflicht für sonstige Auslagen).
Sicherheit
Sicherheitslücken bitte privat melden, siehe SECURITY.md. CI führt bei jedem Push die Offline-Tests (inklusive der Freigabesperren) und einen gitleaks-Scan aus.
Quellen und Lizenz
Code: GPL-3.0-or-later, siehe LICENSE.
Ausgenommen sind die Inhalte aus der Portal-Analyse
nbindewald-legal/mahnantrag-portal-reference:
docs/referenz/ (unveränderte Kopie) und die daraus abgeleiteten Kataloge in
src/mahnantrag_mcp/daten/*.json stehen unter CC BY 4.0. Namensnennung und Änderungen: NOTICE.
Keine Rechtsberatung. Die Verantwortung für Inhalt und Einreichung des Antrags liegt bei der antragstellenden Person bzw. dem Prozessbevollmächtigten.
Available Tools
8 toolsantrag_pruefenBRead-only
Antrag deterministisch vorprüfen (Feldlängen, Kataloge, PLZ, IBAN, doppelte Anwaltsvergütung, § 130d ZPO, § 288 BGB, Pflicht-Entscheidungen). Schreibt nichts, öffnet keinen Browser.
Inputs: antrag (required).
antrag_schemaARead-only
JSON-Schema des Antrags (Felder, Pflichtangaben, Beschreibungen).
Inputs: no named parameters.
ausfuellen_fortsetzenA
Nach status 'gericht_bestaetigen': das vom Menschen bestätigte Prozessgericht übernehmen und bis zur Datenübersicht weiterfüllen. Der Name muss genau dem angezeigten Gericht entsprechen.
Inputs: prozessgericht_bestaetigt (required).
eda_herunterladenADestructive
EDA-Datei aus der offenen Portal-Sitzung herunterladen (nur Versandart EDA-Download).
Nur aufrufen, wenn der Mensch die Datenübersicht gesehen und ausdrücklich freigegeben hat. Gesperrt, wenn das Portal Fehler meldet (FehlerDa) oder nicht freigegebene Warnungen offen sind. Die Datei wird schreibgeschützt unter ihrem Portal-Namen gespeichert und gehasht, aber nie verändert. Zielordner: Umgebungsvariable MAHNANTRAG_AUSGABE, sonst ~/Documents/Mahnantraege. (destructiveHint, damit Clients vor dem Aufruf beim Menschen nachfragen.)
Inputs: uebersicht_vom_menschen_freigegeben (required).
kataloge_suchenARead-only
Katalogwerte des Portals nachschlagen.
katalog: 'anspruchsart' | 'rechtsform' | 'belegart' | 'auslage' suchbegriff: Teil des Namens (z. B. 'Kauf', 'GmbH') oder exakter Code; leer = alles.
Inputs: katalog (required), suchbegriff.
portal_ausfuellenA
Füllt online-mahnantrag.de aus und hält an der Datenübersicht an. Es wird nichts eingereicht.
Haltepunkt Prozessgericht: Ist entscheidungen.prozessgericht_bestaetigt leer oder passt es nicht zum
vom Portal abgeleiteten Gericht, endet der Aufruf mit status 'gericht_bestaetigen'.
datenschutzhinweis_akzeptiert: Der Mensch hat den Datenschutzhinweis des Portals gelesen und stimmt zu (der Ausfüller klickt dort 'Ich stimme zu'). Muss True sein. sichtbar: Browserfenster zeigen (empfohlen), damit der Mensch mitlesen und übernehmen kann. Die Portal-Sitzung läuft nach ca. 30 Minuten ohne Aktivität ab.
Inputs: antrag (required), datenschutzhinweis_akzeptiert (required), sichtbar.
portal_schliessenADestructive
Browser schließen. Nicht heruntergeladene Eingaben im Portal gehen verloren.
Inputs: no named parameters.
portal_statusARead-only
Aktuelle Maske der offenen Portal-Sitzung, Minuten seit der letzten Aktivität und Protokoll.
Inputs: no named parameters.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 8 tools
The tools map cleanly onto distinct workflow stages (catalog lookup, schema, validation, form fill, resume, download, status, close). The only real risk is portal_ausfuellen versus ausfuellen_fortsetzen, which share the filling purpose, but the description explicitly gates the latter on status 'gericht_bestaetigen'. kataloge_suchen and antrag_schema both return metadata but for clearly different purposes.
All names are lowercase snake_case following the German object_verb convention (kataloge_suchen, antrag_pruefen, portal_ausfuellen, eda_herunterladen, portal_schliessen). Two tools are noun_noun (antrag_schema, portal_status) and one inverts the order (ausfuellen_fortsetzen), which are minor deviations that remain readable.
Eight tools is well-scoped for a single guided workflow: lookup, schema, validate, fill, resume, fetch, inspect, close. Each has a clear place and none appears redundant boilerplate.
The lifecycle is nearly closed: schema discovery, catalog lookup, pre-validation, portal filling with an explicit human-confirmation breakpoint, resume, file download, status polling and teardown. Minor gaps: there is no explicit tool to open/start a portal session (implicitly bundled into portal_ausfuellen) and no separate way to surface detailed portal error listings beyond portal_status, though agents can work around both.
Maintenance
Related MCP Connectors
Accessibility pre-checks (WCAG/BFSG) in a real browser + statement drafts. Pay per call.
Create and validate XRechnung, ZUGFeRD and Peppol e-invoices (KoSIT); Peppol lookup, rule help.
XRechnung and ZUGFeRD e-invoicing (EN 16931): create, validate, check Leitweg-IDs, German VAT.
German e-invoicing: generate XRechnung 3.0, pre-check and extract (incl. ZUGFeRD PDF). Paid.
Related MCP Servers
- AlicenseBqualityDmaintenanceEnables AI-driven browser automation with advanced form testing, batch operations, and intelligent element extraction for MCP-compatible applications.146 npmMIT
- AlicenseBqualityCmaintenanceLocal-first MCP server that assists users with preparing and reviewing Italian tax declarations (Dichiarazioni) inside a controlled, user-authenticated Agenzia delle Entrate browser session, with a hard approval boundary preventing any external legal or financial action without explicit local approval.7Apache 2.0
- AlicenseAqualityBmaintenanceEnables AI assistants to prepare German freedom-of-information requests on FragDenStaat.de: identify the responsible authority with evidence, the applicable act and deadline, track requests, collect replies and attachments, and draft new requests locally before anything is sent.1524 PyPIMIT
- AlicenseBqualityBmaintenanceEnables MCP clients to drive the German ELSTER tax portal by filling forms by Kennzahl, running checks, and reviewing exactly what would be sent, with final submission left to the user. It also supports read-only access to submissions, history, and inbox data plus draft and session management.3256 npm2MIT