MCP-Server
Mit dem Schulungstool-MCP-Server verwalten KI-Agents Benutzer, Gruppen, Kurse und Teilnahmen Ihres Kontos über das Model Context Protocol (MCP). Er funktioniert mit jedem Client, der Remote-MCP-Server über Streamable HTTP unterstützt, etwa Claude, Claude Code, Microsoft Copilot Studio, Cursor, VS Code, Gemini CLI und n8n.
https://mcp.schulungstool.de/mcp- Transport: Streamable HTTP (kein SSE-Endpunkt)
- Authentifizierung: OAuth-Anmeldung, oder Ihr API-Schlüssel als Request-Header
- Geltungsbereich: ein Schulungstool-Konto; alle Tools arbeiten ausschließlich auf dessen Daten
Authentifizierung
Abschnitt betitelt „Authentifizierung“Es gibt zwei Wege, sich zu verbinden:
- Anmelden per OAuth (empfohlen): Server-URL eintragen und anmelden, wenn der Client danach fragt – es gibt keinen Schlüssel zu kopieren. Sie geben die Adresse Ihres Kontos ein, melden sich dort als Administrator an und geben die Verbindung mit den gewählten Zugriffsrechten frei; Tokens werden automatisch ausgestellt und erneuert. Die Verbindung erscheint im Administrationsbereich unter Einstellungen > Erweiterte Einstellungen > Entwickleroptionen und lässt sich dort jederzeit trennen.
- API-Schlüssel als Request-Header: passend, wenn gemeinsame, langlebige Zugangsdaten gewünscht sind (etwa ein Connector für die ganze Organisation) oder der Client sich nicht per OAuth anmelden kann.
API-Schlüssel als Request-Header
Abschnitt betitelt „API-Schlüssel als Request-Header“Einen Schlüssel generieren Sie in Ihrem Administrationsbereich unter Einstellungen > Erweiterte Einstellungen > Entwickleroptionen.
Konfigurieren Sie Ihren Client so, dass er den Schlüssel im Authorization-Header
mitsendet:
Authorization: Bearer <API-Schlüssel>Token <API-Schlüssel> wird ebenfalls akzeptiert. Wo ein Client den rohen Header-Wert
verlangt, tippen Sie das Präfix Bearer mit ein. Behandeln Sie den Schlüssel wie ein
Passwort: Nutzen Sie Umgebungsvariablen oder den Geheimnisspeicher Ihres Clients, und
committen Sie ihn nie in ein Repository.
Zugriffsrechte
Abschnitt betitelt „Zugriffsrechte“Die Zugriffsrechte der Verbindung
bestimmen, welche Tools funktionieren: Jedes Tool arbeitet mit genau den Rechten, die
der Schlüssel trägt oder die bei der OAuth-Freigabe gewählt wurden, nicht mehr. Die
Tool-Tabelle unten nennt je Tool das benötigte
Recht; für den vollen Werkzeugkasten braucht eine Verbindung users:write,
groups:write, courses:read und participations:write.
Nutzen Sie je Agent einen eigenen Schlüssel bzw. eine eigene Verbindung und vergeben
Sie nur, was seine Aufgaben
brauchen: Ein Agent, der nur Fragen zum Schulungsstand beantwortet, kommt mit
users:read, groups:read, courses:read und participations:read aus. Scheitert
ein Tool-Aufruf an einem fehlenden Recht, nennt der Fehler das Recht; ein
Administrator kann es im Administrationsbereich vergeben (bei OAuth-Verbindungen:
trennen und mit den benötigten Rechten neu verbinden), die Änderung gilt sofort.
Das Tool get_key_info zeigt, welche Rechte die Verbindung trägt und
welche Tools damit verfügbar sind.
Beim Verbinden per OAuth bietet die Freigabe genau die Rechte an, die die Tools nutzen können; Login-Links und das Löschen von Benutzern gehören nicht dazu.
Einrichtung je Client
Abschnitt betitelt „Einrichtung je Client“Claude (claude.ai)
Abschnitt betitelt „Claude (claude.ai)“Einstellungen > Connectoren > Eigenen Connector hinzufügen (Stand: Oktober 2026):
Name und Server-URL https://mcp.schulungstool.de/mcp eintragen.
- Mit OAuth (empfohlen): die voreingestellte Anmeldung beibehalten. Beim Verbinden öffnet sich ein Schulungstool-Fenster: Adresse des Kontos eingeben, als Administrator anmelden und die Zugriffsrechte freigeben.
- Mit API-Schlüssel: als Authentifizierung Keine Anmeldung wählen und den
Request-Header
Authorizationmit dem WertBearer <API-Schlüssel>hinterlegen (inklusive des PräfixesBearer). Request-Header für eigene Connectoren werden derzeit schrittweise freigeschaltet und stehen noch nicht in jeder Organisation zur Verfügung.
Den Connector anschließend pro Unterhaltung über das Plus-Menü aktivieren. Die Authentifizierungs-Einstellungen lassen sich nachträglich nicht ändern; legen Sie den Connector in dem Fall neu an. Auf Team- und Enterprise-Plänen teilen sich alle Mitglieder die Zugangsdaten eines organisationsweiten Connectors.
Claude Code
Abschnitt betitelt „Claude Code“Je Projekt in .mcp.json, mit dem Schlüssel in einer Umgebungsvariable:
{ "mcpServers": { "schulungstool": { "type": "http", "url": "https://mcp.schulungstool.de/mcp", "headers": { "Authorization": "Bearer ${SCHULUNGSTOOL_API_KEY}" } } }}Oder mit einem einzigen Befehl. Wichtig sind die einfachen Anführungszeichen: Sie lassen die Variable als Verweis stehen. Bei doppelten Anführungszeichen setzt die Shell den Schlüssel selbst ein, und Claude Code speichert ihn dann im Klartext in seiner lokalen Konfiguration.
claude mcp add --transport http schulungstool https://mcp.schulungstool.de/mcp \ --header 'Authorization: Bearer ${SCHULUNGSTOOL_API_KEY}'Die Verbindung prüfen Sie mit /mcp.
ChatGPT
Abschnitt betitelt „ChatGPT“Einstellungen > Connectoren > Erstellen (der Entwicklermodus muss aktiviert sein):
Name und Server-URL https://mcp.schulungstool.de/mcp eintragen und als
Authentifizierung OAuth wählen. Beim Verbinden öffnet sich ein
Schulungstool-Fenster: Adresse des Kontos eingeben, als Administrator
anmelden und die Zugriffsrechte freigeben. Ein Feld für einen statischen
API-Schlüssel-Header gibt es in ChatGPT nicht; OAuth ist dort der einzige Weg.
In ~/.cursor/mcp.json (global) oder .cursor/mcp.json (je Projekt):
{ "mcpServers": { "schulungstool": { "url": "https://mcp.schulungstool.de/mcp", "headers": { "Authorization": "Bearer <API-Schlüssel>" } } }}VS Code
Abschnitt betitelt „VS Code“Befehlspalette > MCP: Add Server > HTTP, oder in .vscode/mcp.json mit dem
Schlüssel als maskierter Input-Variable:
{ "inputs": [ { "id": "schulungstool-key", "type": "promptString", "description": "Schulungstool API-Schlüssel", "password": true } ], "servers": { "schulungstool": { "type": "http", "url": "https://mcp.schulungstool.de/mcp", "headers": { "Authorization": "Bearer ${input:schulungstool-key}" } } }}Microsoft Copilot Studio
Abschnitt betitelt „Microsoft Copilot Studio“Agent > Tools > Add a tool > New tool > Model Context Protocol: Name, Beschreibung
und Server-URL eintragen, Authentifizierung API key mit Typ Header und Header-Name
Authorization wählen, dann eine Connection anlegen und als Wert
Bearer <API-Schlüssel> eingeben. Voraussetzung ist aktive generative Orchestrierung;
DLP-Richtlinien der Power Platform können eigene Connectoren blockieren.
Gemini CLI
Abschnitt betitelt „Gemini CLI“In ~/.gemini/settings.json:
{ "mcpServers": { "schulungstool": { "httpUrl": "https://mcp.schulungstool.de/mcp", "headers": { "Authorization": "Bearer $SCHULUNGSTOOL_API_KEY" } } }}Fügen Sie einem AI-Agent-Node das Tool MCP Client Tool hinzu, tragen Sie die Endpoint-URL ein, wählen Sie die Authentifizierung Bearer und hinterlegen Sie den API-Schlüssel als Credential.
Einrichtung prüfen
Abschnitt betitelt „Einrichtung prüfen“Stellen Sie nach dem Verbinden eine risikofreie Frage, zum Beispiel:
Welche Zugriffsrechte hat mein Schulungstool-Schlüssel?
Der Agent sollte get_key_info aufrufen und die Rechte des Schlüssels auflisten; das
Tool funktioniert mit jedem gültigen Schlüssel unabhängig von dessen Rechten. Dann
steht die Verbindung.
Alle Tools liefern kompaktes JSON mit stabilen IDs. Such-Tools geben eine Seite je
Aufruf zurück; solange has_next_page wahr ist, holen Sie mit page weitere Seiten.
| Tool | Typ | Zugriffsrecht | Zweck |
|---|---|---|---|
get_key_info |
Lesen | keins | Name, Zugriffsrechte und verfügbare Tools des verbundenen API-Schlüssels |
search_users |
Lesen | users:read |
Benutzer nach Name, E-Mail oder Benutzername finden |
get_user |
Lesen | users:read, groups:read |
Benutzerdetails inklusive Gruppenmitgliedschaften |
create_user |
Schreiben | users:write |
Benutzer mit Benutzername und Startpasswort anlegen, das der Benutzer bei der ersten Anmeldung ändern muss |
invite_user |
Schreiben | users:write |
Benutzer per E-Mail einladen (versendet eine Einladungsmail) |
update_user |
Schreiben | users:write |
Felder eines bestehenden Benutzers ändern |
search_groups |
Lesen | groups:read |
Gruppen nach Name finden |
get_group |
Lesen | groups:read, users:read |
Gruppendetails inklusive einer Seite der Mitglieder |
add_group_member |
Schreiben | groups:write |
Benutzer zu einer Gruppe hinzufügen |
remove_group_member |
Schreiben | groups:write |
Benutzer aus einer Gruppe entfernen |
search_courses |
Lesen | courses:read |
Kurse nach Name oder Kategorie finden |
get_course |
Lesen | courses:read |
Kursdetails |
enroll_user |
Schreiben | participations:write |
Benutzer in einen Kurs einschreiben (legt eine Teilnahme an) |
get_participations |
Lesen | participations:read |
Teilnahmen auflisten, filterbar nach Benutzer, Kurs, Status |
get_certificate_info |
Lesen | participations:read |
Abschluss-Status und Zertifikatsverfügbarkeit einer Teilnahme |
get_key_info funktioniert mit jedem gültigen Schlüssel unabhängig von dessen
Rechten und eignet sich zugleich als Verbindungstest. Tools, die zwei Ressourcen auf
einmal lesen (etwa get_user mit den Gruppenmitgliedschaften), brauchen beide
genannten Rechte.
Beispiel-Prompts:
- „Lege einen Benutzer für Erika Musterfrau (erika.musterfrau@example.com) an und schreibe sie in den Datenschutz-Kurs ein.“
- „Welche Teilnehmer des Erste-Hilfe-Kurses haben ihn noch nicht abgeschlossen?“
- „Füge alle aus der Gruppe Vertrieb dem neuen Compliance-Kurs hinzu.“
Das Löschen von Benutzern ist über MCP bewusst nicht möglich; nutzen Sie dafür den Administrationsbereich oder die REST-API.
Limits und Verhalten
Abschnitt betitelt „Limits und Verhalten“- Die Durchsatzbegrenzung der REST-API gilt: MCP-Aufrufe zählen
wie API-Anfragen, je Konto und je Schlüssel bzw. Verbindung. Einladungen und
Einschreibungen mit E-Mail-Benachrichtigung zählen zum E-Mail-Limit; die Notiz in
enroll_userist auf 500 Zeichen begrenzt. - Schreibende Tools senden automatisch einen Idempotency-Key: Wiederholt ein Agent einen Aufruf nach einem Timeout, bekommt er das erste Ergebnis statt eines Duplikats.
- Jeder Tool-Aufruf landet im API-Protokoll Ihres Kontos mit dem User-Agent
schulungstool-mcp/<Version>; Agent-Aktivität lässt sich dort nachvollziehen. - Tool-Namen, Parameter und Ergebnisfelder behandeln wir wie API-Verträge: Breaking Changes kündigen wir im Changelog mit Übergangsfrist an.
- Der Server ist zustandslos; er speichert weder eigene Daten noch Gesprächsverläufe.
Fehlerbehebung
Abschnitt betitelt „Fehlerbehebung“- 401 Unauthorized: Der Header fehlt oder ist fehlerhaft, oder die Zugangsdaten
wurden abgelehnt. Prüfen Sie beim API-Schlüssel, ob der Wert das Präfix
Bearer(oderToken) und den vollständigen, 128 Zeichen langen Schlüssel enthält. Bei OAuth erneuert der Client ein abgelaufenes Token selbst; wurde die Verbindung im Administrationsbereich getrennt, melden Sie sich neu an. - 403 mit „Required access right“: Dem Schlüssel fehlt das Recht, das das Tool
braucht; der Fehler nennt es. Ein Administrator kann es unter Einstellungen >
Erweiterte Einstellungen > Entwickleroptionen vergeben, die Änderung gilt sofort.
get_key_infozeigt die aktuellen Rechte. - 429 Too Many Requests: Durchsatzgrenze erreicht oder zu viele fehlgeschlagene
Authentifizierungsversuche für diesen Schlüssel. Warten Sie die in
Retry-Aftergenannte Zeit ab. - Die OAuth-Anmeldung scheitert oder wiederholt sich: Stellen Sie sicher, dass die
Server-URL exakt
https://mcp.schulungstool.de/mcplautet, melden Sie sich als Administrator des Kontos an (nur Administratoren können Verbindungen freigeben) und schließen Sie die Freigabe innerhalb weniger Minuten ab. Wurde eine Verbindung im Administrationsbereich getrennt, muss sich der Client neu anmelden. - 401 mit hinterlegtem API-Schlüssel, obwohl der Schlüssel gültig ist: Prüfen Sie, ob die Authentifizierung als statischer Header konfiguriert ist (Keine Anmeldung auf claude.ai) und nicht als OAuth.
- Tool-Aufrufe scheitern mit Validierungsfehlern: Die Fehlermeldung nennt die betroffenen Felder und die nötige Korrektur; Agents beheben das in der Regel selbst.