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.
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:
| Feld | Bedeutung |
|---|---|
| Client-ID | Die ID der Anwendung, die Du im Ziel-System angelegt hast. Pflichtfeld. |
| Client-Secret | Das 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-Endpunkt | Die Adresse, auf die meinGPT die Anmeldung leitet, z. B. https://dein-server.de/oauth/authorize. Muss https sein. |
| Token-Endpunkt | Die Adresse, an der meinGPT den Code gegen ein Token tauscht, z. B. https://dein-server.de/oauth/token. Muss https sein. |
| Authentifizierung am Token-Endpunkt | Wie 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.
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.
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.
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.
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)emailusernameaud(Organization-ID)organizationNameroleteams
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
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.