MCP-Server

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

Zugang anfragen

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.

Zugang anfragen

Einführung

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.

Zugang

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.

Verbindung und Transport

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.

bash Erreichbarkeit prüfen
curl https://mcp.arbeitszeugnisschreiben.de/health
# {"status":"ok","protocol":["2025-06-18","2025-03-26"]}

Einrichtung

In Claude Code genügt ein Befehl. Der Schlüssel sollte aus einer Umgebungsvariable kommen.

bash Claude Code
claude mcp add --transport http arbeitszeugnis \
  https://mcp.arbeitszeugnisschreiben.de/mcp \
  --header "Authorization: Bearer $AZS_API_KEY"

Claude Desktop

Claude Desktop liest seine Serverliste aus claude_desktop_config.json. Der Eintrag verbindet über mcp-remote mit dem HTTP-Transport.

json claude_desktop_config.json
{
  "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 und andere Clients

Cursor, Windsurf, Zed und die meisten anderen Clients nehmen die Server-Adresse direkt entgegen und erlauben eigene Header. Damit entfällt die Brücke.

json .cursor/mcp.json
{
  "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.

Werkzeuge

Der Server stellt neun Werkzeuge bereit. Schreibende Werkzeuge sind als solche gekennzeichnet, damit Clients sie bei Bedarf bestätigen lassen.

WerkzeugArtBeschreibung
create_zeugnisschreibendErstellt ein Arbeitszeugnis aus den Angaben des Nutzers. Wartet standardmäßig, bis der Text steht, und gibt die ersten 200 Wörter zurück.
get_zeugnislesendLiefert den aktuellen Stand eines Zeugnisses samt Status, Vorschau und Bezahlstatus.
list_zeugnisselesendListet die zuletzt erstellten Zeugnisse, optional nach Status oder Zeugnisart gefiltert.
get_zeugnis_textlesendGibt den vollständigen Zeugnistext zurück. Nur nach Freischaltung, sonst ein Hinweis mit Bezahllink.
request_correctionschreibendFordert eine korrigierte Fassung an, mit Hinweis und geänderten Angaben. Bis zu drei Mal je Zeugnis kostenlos.
analyse_zeugnisschreibendAnalysiert ein eingefügtes Arbeitszeugnis und gibt Gesamtnote, Kurzfazit und die ersten beiden Teilnoten zurück.
get_analyselesendLiefert eine Analyse, nach Freischaltung vollständig mit Detailanalyse, Warnsignalen und Empfehlung.
get_checkout_linklesendErzeugt einen Bezahllink für ein Zeugnis oder eine Analyse, damit der Agent ihn im Gespräch weitergeben kann.
list_optionslesendNennt 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.

create_zeugnis im Detail

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.

json Werkzeugschema
{
  "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.

Antwortformat

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.

json Antwort von create_zeugnis
{
  "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.

Ressourcen

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.

text Ressourcen-URIs
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.

Prompts

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.

json Prompt-Definition
{
  "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.

Beispielgespräch

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.

text Mitschnitt
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.

Zeugnisse prüfen

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.

Bezahlung

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.

Berechtigungen

Jeder Schlüssel trägt Berechtigungen. Voreingestellt sind Lesen und Schreiben ohne Abrechnungszugriff.

BerechtigungBedeutung
zeugnisse:readZeugnisse abfragen, auflisten, Vorschau und freigeschaltete Texte lesen.
zeugnisse:writeZeugnisse erstellen und korrigieren.
analysen:writeBestehende Zeugnisse analysieren lassen.
billingBezahllinks 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.

Fehlerbehandlung

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.

json Fehlerergebnis
{
  "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.

Limits

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.

Datenschutz

Ü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.

Support

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.

Zugang anfragen

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.

Zugang anfragen