Der MCP-Server bindet Arbeitszeugnis-Schreiben direkt in KI-Agenten ein. Claude, Cursor oder Ihr eigener Agent erstellen im Gespräch ein Arbeitszeugnis in korrekter Zeugnissprache oder prüfen ein bestehendes, ohne dass jemand eine REST-Anfrage von Hand baut.
Stand: 29.09.2026
Schlüssel vergeben wir von Hand. Schreiben Sie uns kurz, was Sie anbinden möchten und mit welchem Volumen Sie rechnen. Der Zugang steht in der Regel innerhalb eines Werktags.
Das Model Context Protocol ist ein offener Standard dafür, wie ein KI-Agent externe Werkzeuge und Daten anspricht. Statt einen API-Client zu schreiben, tragen Sie den Server einmal in die Konfiguration des Agenten ein. Danach kennt das Modell die verfügbaren Werkzeuge und ruft sie selbst auf, wenn das Gespräch es erfordert.
Warum nicht einfach das Sprachmodell selbst das Zeugnis schreiben lassen? Weil allgemeine Modelle die Zeugnissprache unzuverlässig treffen: ein fehlendes "stets" macht aus einer Eins eine Zwei, ein falsch gewählter Schlusssatz wirkt wie versteckte Kritik. Der Server liefert Zeugnisse, deren Formulierungen fest an die angegebenen Noten gebunden sind, und dasselbe Wissen in umgekehrter Richtung für die Analyse.
Die Adresse lautet https://mcp.arbeitszeugnisschreiben.de/mcp. Dahinter liegt derselbe Dienst wie unter /api/, mit denselben Schlüsseln. Zeugnisse, die ein Agent erstellt, erscheinen auch in der REST-API und umgekehrt.
Abgerechnet wird auch hier nur pro freigeschaltetem Zeugnis (29,99 €) und pro freigeschalteter Analyse (9,99 €). Lesende Werkzeuge, Vorschau und Korrekturen kosten nichts.
Es gilt derselbe Weg wie bei der REST-API: Schlüssel werden von Hand vergeben. Schreiben Sie an [email protected] und nennen Sie kurz, welchen Agenten Sie anbinden möchten, wer ihn nutzt und mit welchem Volumen zu rechnen ist.
Sie erhalten einen Testschlüssel (sk_test_) und einen Liveschlüssel (sk_live_). Wer schon einen API-Schlüssel hat, braucht keinen zweiten, derselbe Schlüssel öffnet den MCP-Server.
Für Personalabteilungen, in denen mehrere Personen den Agenten nutzen, vergeben wir auf Wunsch mehrere Schlüssel mit gemeinsamer Abrechnung. So bleibt nachvollziehbar, wer welches Zeugnis erstellt hat.
Der Server spricht MCP über Streamable HTTP, den Transport, den aktuelle Clients standardmäßig verwenden. Ein lokaler Prozess wird nicht gebraucht, es gibt nichts zu installieren.
Die Authentifizierung läuft über denselben Authorization-Header wie bei der REST-API: Authorization: Bearer sk_live_.... Clients, die nur stdio beherrschen, erreichen den Server über mcp-remote als Brücke, siehe die Konfiguration für Claude Desktop.
Die Protokollversion handeln Client und Server beim Verbindungsaufbau aus. Wir unterstützen die aktuelle Fassung und die davor, damit ein Client-Update nie zu einem harten Bruch führt.
curl https://mcp.arbeitszeugnisschreiben.de/health
# {"status":"ok","protocol":["2025-06-18","2025-03-26"]}
In Claude Code genügt ein Befehl. Der Schlüssel sollte aus einer Umgebungsvariable kommen.
claude mcp add --transport http arbeitszeugnis \
https://mcp.arbeitszeugnisschreiben.de/mcp \
--header "Authorization: Bearer $AZS_API_KEY"
Claude Desktop liest seine Serverliste aus claude_desktop_config.json. Der Eintrag verbindet über mcp-remote mit dem HTTP-Transport.
{
"mcpServers": {
"arbeitszeugnis": {
"command": "npx",
"args": [
"-y", "mcp-remote",
"https://mcp.arbeitszeugnisschreiben.de/mcp",
"--header", "Authorization: Bearer ${AZS_API_KEY}"
],
"env": { "AZS_API_KEY": "sk_live_..." }
}
}
}
Cursor, Windsurf, Zed und die meisten anderen Clients nehmen die Server-Adresse direkt entgegen und erlauben eigene Header. Damit entfällt die Brücke.
{
"mcpServers": {
"arbeitszeugnis": {
"url": "https://mcp.arbeitszeugnisschreiben.de/mcp",
"headers": { "Authorization": "Bearer ${env:AZS_API_KEY}" }
}
}
}
Nach dem Eintragen sollte der Client neun Werkzeuge anzeigen. Bleibt die Liste leer, liegt es fast immer am Header: ein abgelaufener oder falsch kopierter Schlüssel führt zu einer leeren Werkzeugliste statt zu einer sichtbaren Fehlermeldung.
Der Server stellt neun Werkzeuge bereit. Schreibende Werkzeuge sind als solche gekennzeichnet, damit Clients sie bei Bedarf bestätigen lassen.
| Werkzeug | Art | Beschreibung |
|---|---|---|
| create_zeugnis | schreibend | Erstellt ein Arbeitszeugnis aus den Angaben des Nutzers. Wartet standardmäßig, bis der Text steht, und gibt die ersten 200 Wörter zurück. |
| get_zeugnis | lesend | Liefert den aktuellen Stand eines Zeugnisses samt Status, Vorschau und Bezahlstatus. |
| list_zeugnisse | lesend | Listet die zuletzt erstellten Zeugnisse, optional nach Status oder Zeugnisart gefiltert. |
| get_zeugnis_text | lesend | Gibt den vollständigen Zeugnistext zurück. Nur nach Freischaltung, sonst ein Hinweis mit Bezahllink. |
| request_correction | schreibend | Fordert eine korrigierte Fassung an, mit Hinweis und geänderten Angaben. Bis zu drei Mal je Zeugnis kostenlos. |
| analyse_zeugnis | schreibend | Analysiert ein eingefügtes Arbeitszeugnis und gibt Gesamtnote, Kurzfazit und die ersten beiden Teilnoten zurück. |
| get_analyse | lesend | Liefert eine Analyse, nach Freischaltung vollständig mit Detailanalyse, Warnsignalen und Empfehlung. |
| get_checkout_link | lesend | Erzeugt einen Bezahllink für ein Zeugnis oder eine Analyse, damit der Agent ihn im Gespräch weitergeben kann. |
| list_options | lesend | Nennt die gültigen Werte für Zeugnisart, Perspektive, Austrittsgrund und Noten. |
Lesende Werkzeuge dürfen vom Agenten ohne Rückfrage aufgerufen werden. create_zeugnis, request_correction und analyse_zeugnis verarbeiten personenbezogene Daten und melden sich deshalb beim Client als schreibend an.
Das wichtigste Werkzeug ist create_zeugnis. Sein Schema entspricht dem REST-Endpunkt, die Beschreibung ist aber an das Modell gerichtet: Pflichtangaben erfragen statt erfinden, Noten nur vom Nutzer übernehmen, nie selbst schätzen.
{
"name": "create_zeugnis",
"description": "Erstellt einen Arbeitszeugnis-Entwurf in korrekter deutscher Zeugnissprache nach § 109 GewO. Frage fehlende Pflichtangaben beim Nutzer nach, statt sie zu erfinden. Aufgaben und Noten müssen vom Nutzer stammen.",
"inputSchema": {
"type": "object",
"required": ["zeugnisart", "mitarbeiter_name", "position", "eintrittsdatum", "firma_name", "aufgaben"],
"properties": {
"zeugnisart": { "type": "string", "enum": ["endzeugnis", "zwischenzeugnis", "einfaches_zeugnis"] },
"perspektive": { "type": "string", "enum": ["arbeitgeber", "arbeitnehmer"], "default": "arbeitgeber" },
"mitarbeiter_name": { "type": "string" },
"position": { "type": "string" },
"eintrittsdatum": { "type": "string", "format": "date" },
"austrittsdatum": { "type": "string", "format": "date" },
"fuehrungskraft": { "type": "boolean", "default": false },
"firma_name": { "type": "string" },
"aufgaben": { "type": "string", "minLength": 40, "maxLength": 4000 },
"besondere_leistungen": { "type": "string" },
"gesamtnote": { "type": "integer", "minimum": 1, "maximum": 5 },
"teilnoten": { "type": "object" },
"austrittsgrund": { "type": "string", "enum": ["eigener_wunsch", "betriebsbedingt", "einvernehmlich", "befristung"] },
"wait": { "type": "boolean", "default": true }
}
},
"annotations": { "readOnlyHint": false, "idempotentHint": false }
}
Die Regeln der Zeugnisarten gelten unverändert. Fehlt bei einem Endzeugnis das Austrittsdatum oder bekommt ein einfaches Zeugnis eine Note, kommt ein Fehlerergebnis mit einer konkreten Rückfrage zurück, die der Agent an den Nutzer weitergibt.
Das Feld wait steht standardmäßig auf true, weil ein Zeugnis in der Regel in unter einer Minute steht und der Agent die Vorschau dann sofort zeigen kann. Mit false kehrt der Aufruf direkt zurück, der Agent fragt später mit get_zeugnis nach.
Werkzeuge antworten zweigleisig: ein Textblock für das Modell und structuredContent für den Client. Der Textblock ist so formuliert, dass das Modell ihn dem Nutzer direkt wiedergeben kann.
{
"content": [
{
"type": "text",
"text": "Das Zwischenzeugnis für Murat Yilmaz ist fertig (Gesamtnote 1). Die ersten 200 Wörter stehen unten, der vollständige Text mit PDF und Word-Datei wird nach der Zahlung von 29,99 € freigeschaltet."
},
{ "type": "resource_link", "uri": "zeugnis://zgn_6Yc3nB8wKe/vorschau", "name": "Vorschau", "mimeType": "text/plain" }
],
"structuredContent": {
"id": "zgn_6Yc3nB8wKe",
"status": "ready",
"paid": false,
"word_count": 438,
"corrections_left": 3
},
"isError": false
}
Vollständiger Text und Dateien kommen als Ressourcenverweise zurück, nicht eingebettet. Ein Client, der PDF oder DOCX anbieten kann, löst den Verweis auf. Alle anderen behalten den Text. So landet nie eine Binärdatei im Kontextfenster.
Neben Werkzeugen stellt der Server Ressourcen unter den Schemata zeugnis://, analyse:// und optionen:// bereit. Clients, die Ressourcen unterstützen, können sie anzeigen oder an das Modell anhängen, ohne ein Werkzeug aufzurufen.
zeugnis://{id}/vorschau die ersten 200 Wörter, immer frei
zeugnis://{id}/text vollständiger Text, nach Zahlung
zeugnis://{id}/pdf PDF, nach Zahlung
zeugnis://{id}/docx Word-Datei, nach Zahlung
analyse://{id} Analyse eines bestehenden Zeugnisses
optionen://zeugnis gültige Werte für alle Aufzählungen
Text- und Dateiressourcen existieren erst nach der Freischaltung. Ein Zugriff davor ist kein technischer Fehler, sondern liefert einen Hinweis samt Bezahllink.
Für die häufigsten Abläufe liegen fertige Prompts bereit. Sie sammeln die Angaben ein, die ein gutes Zeugnis braucht, und rufen danach das passende Werkzeug auf. In Clients, die Prompts unterstützen, erscheinen sie als Schnellbefehle.
{
"name": "zwischenzeugnis_erstellen",
"description": "Sammelt die Angaben für ein Zwischenzeugnis ein und erstellt den Entwurf.",
"arguments": [
{ "name": "mitarbeiter_name", "required": true },
{ "name": "anlass", "description": "z. B. Vorgesetztenwechsel, Elternzeit, Umstrukturierung", "required": false }
]
}
Verfügbar sind endzeugnis_erstellen, zwischenzeugnis_erstellen, einfaches_zeugnis_erstellen und zeugnis_pruefen. Wer eigene Abläufe bevorzugt, ruft die Werkzeuge direkt auf.
So sieht der Ablauf in der Praxis aus. Der Agent fragt die fehlenden Angaben ab, erstellt das Zeugnis, zeigt den Anfang und nimmt eine Korrektur entgegen.
Nutzerin: Ich brauche ein Zwischenzeugnis für unseren Elektroniker Murat Yilmaz,
er geht nächsten Monat in Elternzeit.
Agent: Gern. Seit wann ist er bei Ihnen, und was sind seine Hauptaufgaben?
Wie würden Sie seine Leistung insgesamt als Schulnote bewerten?
Nutzerin: Seit August 2019. Installation und Prüfung von Anlagen, Fehlersuche,
Wartungskunden, er bildet auch unsere Azubis mit aus. Eine glatte 1.
2024 hat er bei uns die E-Mobilität aufgebaut.
Agent: [create_zeugnis: zeugnisart=zwischenzeugnis, gesamtnote=1, ...]
Das Zwischenzeugnis ist fertig. Es beginnt so:
"Herr Murat Yilmaz ist seit dem 01.08.2019 in unserem Unternehmen als
Elektroniker für Energie- und Gebäudetechnik tätig ..."
Der vollständige Text mit PDF und Word-Datei kostet 29,99 €.
Nutzerin: Sozialverhalten bitte nur eine 2, er eckt manchmal bei Kunden an.
Agent: [request_correction: teilnoten.sozialverhalten=2]
Angepasst. Die Gesamtnote bleibt 1, beim Verhalten gegenüber Kunden
steht jetzt die Formulierung für gut. Hier ist der Bezahllink: ...
Entscheidend ist der letzte Schritt: Die Nutzerin ändert eine Teilnote, nicht den Text. Der Agent reicht die Änderung als Angabe weiter, und die Formulierung passt sich an. Agenten sollten Zeugnistext nie selbst umschreiben, weil sie dabei die Notenbedeutung unbemerkt verschieben.
analyse_zeugnis ist für Arbeitnehmer und Berater gedacht, die ein erhaltenes Zeugnis verstehen wollen. Der Agent übergibt den Text, zurück kommen Gesamtnote, Kurzfazit und die ersten beiden Teilnoten mit wörtlichem Zitat.
Die vollständige Auswertung mit Detailanalyse, fehlenden Bausteinen, Warnsignalen und konkreten Alternativformulierungen folgt nach Freischaltung über get_analyse. Agenten sollten das Ergebnis als Einschätzung weitergeben, nicht als Rechtsrat: bei einem Streit über das Zeugnis hilft ein Fachanwalt für Arbeitsrecht.
Ein Agent kann keine Zahlung auslösen. Er erzeugt einen Bezahllink und gibt ihn weiter, bezahlt wird im Browser. Das ist bewusst so gebaut: Ein Modell soll keine Kaufentscheidung treffen, die ein Mensch nicht gesehen hat.
get_checkout_link liefert eine Adresse, die 24 Stunden gültig ist. Nach der Zahlung steht das Zeugnis auf complete, und beim nächsten get_zeugnis liegen Text und Dateien bereit.
Konten mit Sammelabrechnung oder Zeugnis-Abo überspringen den Bezahllink: Zeugnisse werden dort direkt freigeschaltet und über das Konto abgerechnet.
Jeder Schlüssel trägt Berechtigungen. Voreingestellt sind Lesen und Schreiben ohne Abrechnungszugriff.
| Berechtigung | Bedeutung |
|---|---|
| zeugnisse:read | Zeugnisse abfragen, auflisten, Vorschau und freigeschaltete Texte lesen. |
| zeugnisse:write | Zeugnisse erstellen und korrigieren. |
| analysen:write | Bestehende Zeugnisse analysieren lassen. |
| billing | Bezahllinks erzeugen und Zahlungsstatus lesen. |
Werkzeuge, für die die Berechtigung fehlt, erscheinen gar nicht erst in der Werkzeugliste. Ein Agent für Arbeitnehmer braucht zum Beispiel nur analysen:write und billing.
Fachliche Fehler kommen als normales Werkzeugergebnis mit isError: true zurück, nicht als Protokollfehler. Der Text ist an das Modell gerichtet und sagt, was zu tun ist.
{
"content": [
{
"type": "text",
"text": "Für ein Endzeugnis fehlt das Austrittsdatum. Bitte frage den Nutzer, zu welchem Datum das Arbeitsverhältnis endet, und rufe create_zeugnis danach erneut auf."
}
],
"isError": true
}
Echte Protokollfehler gibt es nur bei ungültigem Schlüssel, fehlender Berechtigung oder fehlerhafter Anfrage. Alles, was fachlich schiefgehen kann, also fehlende Angaben, widersprüchliche Noten, unbezahltes Zeugnis, erreichtes Limit, kommt als Text zurück.
Es gelten dieselben Limits wie in der REST-API: 60 Werkzeugaufrufe pro Minute je Schlüssel, höchstens zehn Erstellungen gleichzeitig, drei kostenlose Korrekturen je Zeugnis. Für höhere Werte genügt eine E-Mail.
Ein überschrittenes Limit führt zu einem Textergebnis mit dem Hinweis, wann es weitergeht. Agenten sollten dann warten, statt sofort erneut aufzurufen.
Über den Server laufen personenbezogene Daten von Beschäftigten. Sie sind dafür der Verantwortliche im Sinne der DSGVO, wir der Auftragsverarbeiter, den Auftragsverarbeitungsvertrag erhalten Sie mit dem Schlüssel. Wir verwenden die Angaben ausschließlich für das jeweilige Zeugnis und nicht zum Training von Modellen.
Zeugnisse, Analysen und Eingaben bleiben 90 Tage abrufbar und werden danach gelöscht. Bedenken Sie, dass auch der Anbieter Ihres KI-Agenten das Gespräch verarbeitet. Ob das für Beschäftigtendaten in Ihrem Betrieb zulässig ist, klären Sie am besten vorher mit Ihrem Datenschutzbeauftragten.
Fragen, höhere Limits, eigene Prompts für Ihre Abläufe: [email protected]. Nennen Sie bei technischen Problemen die Zeugnis-ID, dann finden wir den Vorgang sofort.
Schlüssel vergeben wir von Hand. Schreiben Sie uns kurz, was Sie anbinden möchten und mit welchem Volumen Sie rechnen. Der Zugang steht in der Regel innerhalb eines Werktags.