Custom MCP Server

Integration eigener MCP Server für erweiterte Funktionalitäten

Mit Custom MCP Servern kannst Du eigene Funktionalitäten in meinGPT integrieren. Verbinde Deinen Server über eine URL und erweitere die Fähigkeiten Deiner Assistenten.

Für interne bzw. On-Premise-Systeme nutze das übergreifende Muster On-Premise Connections.

Achtung

Für Compliance-/Regulierungszwecke: Ob Custom MCP Server in Deiner Organisation grundsätzlich erlaubt sind, entscheidet Dein Workspace-Admin zentral unter Settings → Tool-Verwaltung (Schalter „Eigene MCP"). Ist diese Capability dort deaktiviert, kannst Du zwar weiterhin einen eigenen MCP-Server unter Einstellungen → Verbindungen anlegen und speichern, er wird aber serverseitig aus jedem Chat entfernt und lässt sich nicht ausführen. Details zur Rangfolge der Tool-Rechte: Tool-Zugriffsrichtlinien.

Server-Konfiguration

Um einen Custom MCP Server zu integrieren, benötigst Du eine Endpunkt-URL. Es gibt zwei Transportmöglichkeiten:

HTTP Streaming (Empfohlen)

https://ihr-server.com/mcp

Diese Methode nutzt HTTP Streaming für eine effiziente Echtzeit-Kommunikation.

Server-Sent Events (SSE)

https://ihr-server.com/sse

Alternative Methode mit Server-Sent Events für die Kommunikation.

Server-Integration

Es gibt zwei Wege, einen Custom MCP Server hinzuzufügen:

Über die Verbindungen-Einstellungen

Öffne Einstellungen → Verbindungen, gehe zum Abschnitt Eigene MCP-Server und klicke auf MCP-Server hinzufügen. So angelegte Server stehen Dir in allen Deinen Assistenten zur Verfügung.

Direkt im Assistenten-Editor

Öffne die Tools-Konfiguration eines Assistenten und wechsle zum Tab Custom MCP. So hinzugefügte Server sind an diesen Assistenten gebunden.

Beide Wege führen zum selben Formular mit den Feldern Name, URL, Header, Autorisierung und dem Schalter Signierte Nutzeridentität. Bei der URL genügt der Endpunkt Deines Servers, meist auf /mcp; SSE-Endpunkte (/sse) funktionieren ebenfalls.

Authentifizierungsoptionen

Custom MCP Server unterstützen drei unabhängige Authentifizierungsmechanismen: statische Header, Autorisierung (OAuth) und JWT Identity Forwarding. Du kannst sie kombinieren, beachte aber den Abschnitt „Priorität" weiter unten, wenn mehrere denselben Header betreffen.

Statische Header

Füge in der MCP-Server-Konfiguration einen oder mehrere eigene HTTP-Header hinzu (z. B. Authorization: Bearer <dein-token>) unter Header. Nutze dies für Server, die durch einen statischen API-Key geschützt sind, oder durch ein statisches Token am Rand (z. B. eine WAF oder ein Reverse Proxy vor deinem MCP-Endpunkt).

Autorisierung

Das Feld Autorisierung in der MCP-Server-Konfiguration bietet drei Modi:

  • Keine – keine Anmeldung, oder die Header oben tragen bereits die Zugangsdaten.
  • OAuth: automatisch registrieren (DCR) – meinGPT registriert sich selbst beim Server; jede Person meldet sich mit dem eigenen Konto an. Funktioniert mit den meisten Servern.
  • OAuth: eigener Client – für Server ohne automatische Registrierung. Registriere meinGPT einmal in deren Admin-Konsole (Client-ID, Client-Secret, Authorization-Endpunkt, Token-Endpunkt, Authentifizierung am Token-Endpunkt); jede Person meldet sich danach mit dem eigenen Konto an.

Manueller OAuth-Client einrichten

Wählst Du OAuth: eigener Client, klappen zusätzliche Felder auf. Die Werte dafür stammen aus der Admin-Konsole des Ziel-Systems, in der Du meinGPT einmal als OAuth-Anwendung registrierst.

Die Redirect-URL, die Du dort einträgst, lautet:

https://<deine-meinGPT-Adresse>/oauth/callback

Auf der meinGPT-Cloud ist das https://app.meingpt.com/oauth/callback. Betreibst Du meinGPT unter einer eigenen Domain, nimm diese Adresse mit demselben Pfad. Ohne exakt eingetragene Redirect-URL bricht der Server die Anmeldung ab.

Danach füllst Du in meinGPT diese Felder:

FeldBedeutung
Client-IDDie ID der Anwendung, die Du im Ziel-System angelegt hast. Pflichtfeld.
Client-SecretDas zugehörige Secret. Pflichtfeld – außer bei Öffentlicher Client. Beim späteren Bearbeiten kannst Du das Feld leer lassen, um das gespeicherte Secret zu behalten.
Authorization-EndpunktDie Adresse, auf die meinGPT die Anmeldung leitet, z. B. https://dein-server.de/oauth/authorize. Muss https sein.
Token-EndpunktDie Adresse, an der meinGPT den Code gegen ein Token tauscht, z. B. https://dein-server.de/oauth/token. Muss https sein.
Authentifizierung am Token-EndpunktWie meinGPT sich am Token-Endpunkt ausweist: Client-Secret (im Body) (Standard), Client-Secret (Basic-Header) oder Öffentlicher Client (keine Authentifizierung). Welche Variante gilt, steht in der Doku des Ziel-Systems; im Zweifel zuerst den Standard probieren.
Scope (optional)Durch Leerzeichen getrennte Scopes, die meinGPT anfordern soll. Leer lassen, um es dem Server zu überlassen – nötig ist das nur bei Servern, die keinen Scope selbst aushandeln (OpenProject verlangt z. B. mcp).

Tipp

Veröffentlicht der Server seine OAuth-Metadaten, liest meinGPT beim Öffnen des Formulars die Endpunkte aus und trägt sie vor. Du siehst dann den Hinweis „Die Endpunkte unten wurden vom Server gelesen" und musst nur noch Client-ID und Secret ergänzen. Steht stattdessen „Dieser Server kann meinGPT selbst registrieren", brauchst Du den manuellen Client nicht – nimm OAuth: automatisch registrieren (DCR).

Die Zugangsdaten hängen an genau diesem Connector, nicht an der URL. Zwei Personen können denselben Server mit unterschiedlichen OAuth-Anwendungen anlegen, ohne sich gegenseitig zu überschreiben.

Das Wählen eines OAuth-Modus allein öffnet noch kein Autorisierungsfenster. Wie bei anderen Connectoren (siehe Connectoren aktivieren) startet der OAuth-Ablauf erst, wenn meinGPT den Server tatsächlich verwenden will – also wenn Du im Chat mit dem Assistenten eine Anfrage stellst, für die er das Tool aufruft. Du bekommst dann im Chat eine Aufforderung mit einer Verbinden-Schaltfläche; erst ein Klick darauf öffnet die Autorisierungsseite des MCP-Servers. Alternativ kannst Du die Verbindung ohne Chat manuell auslösen: Öffne Einstellungen → Verbindungen, suche den Connector und klicke dort auf Verbinden. Ein vollständiges Beispiel mit Screenshots findest Du unter Mit n8n MCP verbinden.

Achtung

Fehlermeldung „OAuth is disabled for this MCP URL": Die Autorisierung gilt pro Person und pro eigener Connector-Instanz, nicht global für die MCP-URL. Wenn Du diesen Fehler beim eigenen Verbindungsversuch siehst, obwohl OAuth für eine andere Person (z. B. den Ersteller des Connectors) funktioniert, steht die Autorisierung bei Deiner eigenen Verbindung (noch) auf Keine. Öffne die Connector-Konfiguration unter Einstellungen → Verbindungen, wähle dort OAuth: automatisch registrieren (DCR) oder OAuth: eigener Client und verbinde erneut. Steht dort keine eigene Konfiguration zur Verfügung, lege den Custom MCP Server mit denselben Verbindungsdaten (URL, ggf. Header) einmal selbst neu an und wähle dabei explizit einen OAuth-Modus.

Priorität

Wenn Du sowohl einen statischen Authorization-Header konfigurierst als auch die Autorisierung auf einen OAuth-Modus setzt und die Verbindung erfolgreich zustande kommt, übernimmt OAuth den Authorization-Header — Dein statischer Wert wird dann nicht gesendet. Beide Optionen schließen sich in der Konfigurationsoberfläche nicht gegenseitig aus; setze daher nicht beide für denselben Server, es sei denn, OAuth soll nach erfolgreicher Verbindung Vorrang haben. JWT Identity Forwarding ist davon nicht betroffen, da es im separaten Header X-meinGPT-JWT gesendet wird (siehe unten).

Das Formular weist Dich direkt darauf hin: Sobald ein Header Authorization heißt (Groß-/Kleinschreibung egal) und die Autorisierung nicht auf Keine steht, erscheint unter der Header-Zeile in Rot „OAuth setzt diesen Header selbst. Dieser Wert wird ignoriert.“ Speichern kannst Du trotzdem — der Hinweis blockiert nichts, denn derselbe Header ist ja legitim, sobald Du zurück auf Keine wechselst. Siehst Du ihn, hast Du die Wahl: Autorisierung auf Keine setzen, um mit dem Header zu authentifizieren, oder den Header löschen und OAuth die Arbeit machen lassen.

Server für Kolleginnen und Kollegen freigeben

Ein eigener MCP-Server gehört zunächst nur Dir: Er taucht unter Einstellungen → Verbindungen in Deinem Konto auf, und niemand sonst sieht ihn. Es gibt keine Freigabe direkt am Server – der Weg führt über einen Assistenten.

Wie sich die Verbindung danach für Deine Kolleg:innen verhält, hängt von der Authentifizierungsart ab:

  • Statischer Header (fester Token / API-Key): Die Verbindung wirkt wie eine gemeinsame, zentrale Verbindung. Sobald Du den Server mit statischem Header zu einem Assistenten hinzufügst, nutzen alle berechtigten Nutzer:innen desselben Assistenten automatisch diesen Token mit – ohne eigene Einrichtung oder Anmeldung. Du stellst damit faktisch das gemeinsame „Service-Konto" für alle bereit. Beachte: Alle agieren dann mit denselben Berechtigungen dieses Tokens; wähle ihn deshalb so eng wie möglich auf das, was tatsächlich gebraucht wird.
  • OAuth: Hier authentifiziert sich jede Person einzeln, wie im folgenden Ablauf beschrieben.
  • JWT Identity Forwarding: Wird automatisch an jede Anfrage angehängt, für wen auch immer den Assistenten gerade nutzt – dafür ist keine eigene Einrichtung, Anmeldung oder ein Verbinden-Schritt nötig. Das funktioniert unabhängig von und zusätzlich zu den beiden anderen Mechanismen: Ob JWT aktiviert ist, ändert nichts daran, ob zusätzlich eine persönliche OAuth-Anmeldung erforderlich ist.

Server an einen Assistenten hängen

Öffne die Tools-Konfiguration eines Assistenten und aktiviere dort Deinen MCP-Server.

Den Assistenten teilen

Teile den Assistenten mit einem Team oder der ganzen Organisation (siehe Assistenten). Mit dem Assistenten wird auch der Server erreichbar.

Bei OAuth: Jede Person meldet sich selbst an

Beim ersten Tool-Aufruf im Chat erscheint eine Verbinden-Schaltfläche. Jede Person durchläuft den OAuth-Ablauf mit dem eigenen Konto im Ziel-System und sieht dort nur, was sie auch sonst sehen darf. Deine Anmeldung wird nicht weitergegeben.

Bei OAuth gilt zusätzlich: Nach dem Verbinden erscheint der Server auch bei Deinen Kolleginnen und Kollegen unter Einstellungen → Verbindungen, dort mit dem Abzeichen Geteilt. Solche Einträge sind schreibgeschützt: URL, Header und Autorisierung lassen sich nicht ändern und der Eintrag nicht löschen – möglich ist nur Trennen, was die eigene Anmeldung widerruft. Konfiguration und Löschen bleiben bei der Person, die den Server angelegt hat.

Bei einem manuellen OAuth-Client gilt das genauso: Die eine hinterlegte Client-ID mit Secret ist die Registrierung von meinGPT beim Ziel-System – sie ist kein Nutzerkonto und gibt keine Daten frei. Wer den Assistenten nutzt, meldet sich damit trotzdem persönlich an.

Hinweis

Steht die Autorisierung des Servers auf Keine, entfällt Schritt 3 oben: Es gibt keine persönliche Anmeldung, an die ein „Verbunden"/„Nicht verbunden"-Status gebunden sein könnte. Sobald der Server über den Assistenten erreichbar ist, können ihn alle Personen mit Zugriff auf den Assistenten nutzen – mit denselben statischen Zugangsdaten (falls konfiguriert). Zeigt ein solcher Server dennoch Probleme, liegt es nicht an einer fehlenden persönlichen Anmeldung, sondern an Erreichbarkeit oder Konfiguration des Servers selbst (siehe „Warnung 'Einige Tools konnten nicht geladen werden'" unten).

Beispiel: OpenProject verbinden

OpenProject bietet einen MCP-Server, aber keine automatische Client-Registrierung – ein typischer Fall für den manuellen OAuth-Client. Der MCP-Server ist ein Enterprise-Add-on von OpenProject und muss dort freigeschaltet sein.

In OpenProject eine OAuth-Anwendung anlegen

Gehe zu Administration → Authentifizierung → OAuth-Anwendungen und lege eine neue Anwendung an. Trage als Redirect URL https://app.meingpt.com/oauth/callback ein (bzw. Deine eigene meinGPT-Adresse mit diesem Pfad), wähle den Scope mcp und markiere die Anwendung als Confidential. Notiere Dir Client ID und Client secret – das Secret wird nur einmal angezeigt.

In meinGPT den Server anlegen

Öffne Einstellungen → Verbindungen → Eigene MCP-Server → MCP-Server hinzufügen. Als URL trägst Du https://deine-openproject-instanz.de/mcp ein.

Autorisierung konfigurieren

Setze Autorisierung auf OAuth: eigener Client und fülle:

  • Client-ID und Client-Secret aus Schritt 1
  • Authorization-Endpunkt: https://deine-openproject-instanz.de/oauth/authorize
  • Token-Endpunkt: https://deine-openproject-instanz.de/oauth/token
  • Authentifizierung am Token-Endpunkt: Client-Secret (im Body)
  • Scope: mcp

Speichern.

Verbinden und testen

Klicke in der Zeile des Connectors auf Verbinden, melde Dich in OpenProject an und bestätige den Zugriff. Danach kannst Du den Server an einen Assistenten hängen und im Chat nach Arbeitspaketen fragen. OpenProject stellt über MCP derzeit nur lesende Werkzeuge bereit.

Signierte Nutzeridentität (optional)

Das übergreifende Konzept ist hier dokumentiert: JWT Identity Forwarding.

Für eigene MCP-Server kannst Du in der MCP-Konfiguration den Schalter Signierte Nutzeridentität aktivieren. Wenn aktiv, sendet meinGPT bei jedem Request zusätzlich:

X-meinGPT-JWT: <signed-jwt-token>

Der Token enthält u. a. folgende Claims:

  • sub (User-ID)
  • email
  • username
  • aud (Organization-ID)
  • organizationName
  • role
  • teams

Wenn Du den Token serverseitig verifizieren möchtest, nutze die zentrale Doku: JWT Identity Forwarding oder Security & Authentication Proxy.

Best Practices

  • Sicherheit: Verwende HTTPS für alle Server-Verbindungen
  • Monitoring: Überwache die Server-Performance und -Verfügbarkeit
  • Fehlerbehandlung: Implementiere Fallback-Optionen für Serverausfälle
  • Dokumentation: Dokumentiere Server-spezifische Funktionen und Parameter

Fehlerbehebung

Warnung „Einige Tools konnten nicht geladen werden"

Erscheint diese Warnung unter einer Chat-Antwort, war mindestens einer der für den Chat aktiven Custom MCP Server beim Start der Anfrage nicht ansprechbar – das ist ein anderer Fehlerfall als ein fehlgeschlagener Tool-Aufruf (siehe unten): Der Server oder seine Autorisierung hat schon vor dem ersten Aufruf nicht funktioniert, es gibt deshalb keine aufklappbare Tool-Aufruf-Kachel im Chat.

Aktuell zeigt meinGPT dabei nicht an, welcher Server betroffen ist oder woran es lag – das lässt sich derzeit nur in den Backend-Logs nachvollziehen. Prüfe zuerst selbst:

  • Verbindungsstatus: Öffne Einstellungen → Verbindungen und sieh nach, ob der betroffene Server dort noch als „Verbunden" geführt wird. Bei OAuth-Servern (automatisch registriert oder eigener Client) löscht meinGPT die gespeicherten Zugangsdaten automatisch, wenn ein Token abgelaufen ist und sich nicht erneuern lässt (z. B. weil der Server kein Refresh Token ausstellt oder das Refresh selbst fehlschlägt) – der Server steht dann wieder auf „Nicht verbunden", und ein Klick auf Verbinden meldet Dich neu an.
  • Erreichbarkeit: Ist die MCP-URL von meinGPT aus erreichbar (kein interner Hostname ohne On-Premise Connections, kein abgelaufenes TLS-Zertifikat)?
  • Bei manuellem OAuth-Client: Stimmen Token-Endpunkt, Authentifizierung am Token-Endpunkt und Scope noch mit der Admin-Konsole des Ziel-Systems überein? Wurde die Client-Registrierung dort zwischenzeitlich widerrufen oder das Secret rotiert?

Lässt sich die Ursache darüber nicht klären, wende Dich mit Organisationsname, dem Namen des betroffenen Custom MCP Servers und dem ungefähren Zeitpunkt an den Support – detailliertere Fehlermeldungen sind aktuell nur über die Backend-Logs einsehbar, nicht über die Nutzeroberfläche.

Lehnt ein MCP-Server eine Anfrage mit 401/403 oder einem authentifizierungsbezogenen Fehler ab, prüfe zuerst, welcher Auth-Mechanismus die Anfrage tatsächlich gesendet hat: Öffne Einstellungen → Verbindungen und schau Dir den Status des Connectors an. Steht er auf „Verbunden", ist OAuth aktiv und hat Vorrang vor einem konfigurierten statischen Authorization-Header (siehe „Priorität" oben) – setze die Autorisierung in der Connector-Konfiguration auf Keine, wenn Du stattdessen mit Deinem statischen Header authentifizieren möchtest, und verbinde anschließend erneut.

Schlägt ein Tool-Aufruf fehl, klicke im Chat auf die entsprechende Tool-Aufruf-Kachel, um sie aufzuklappen. Dort siehst Du die gesendete Anfrage (Request) sowie die Antwort bzw. Fehlermeldung Deines MCP-Servers im Klartext - das ist der schnellste Weg, um die Ursache eines fehlgeschlagenen Aufrufs zu identifizieren, ohne eigene Server-Logs durchsuchen zu müssen.

Nächste Schritte

War diese Seite hilfreich?