Zum Hauptinhalt springen

MCP-Server hinzufügen

Über die Befehlszeile

Der schnellste Weg, einen MCP-Server hinzuzufügen:
Der Transporttyp wird automatisch erkannt: Eine URL weist auf HTTP (Streamable HTTP) hin, nachgestellte Argumente (oder --command) auf stdio.
Remote-MCP-Server verwenden standardmäßig Streamable HTTP. Wenn der Server mit einem HTTP-4xx-Fehler antwortet, fällt die CLI unter derselben URL auf SSE zurück. Setze "transport": "sse" bei Bedarf explizit — siehe unten Legacy-SSE-Fallback.
Standardmäßig werden Server im lokalen Geltungsbereich gespeichert (.devin/config.local.json, von Git ignoriert). Verwende -s/--scope, um das zu ändern:
Sie können Server auch über die Befehlszeile verwalten:

Über die Konfigurationsdatei

Füge Server direkt im Abschnitt mcpServers deiner Konfigurationsdatei hinzu:
Server auf Projektebene werden über die Versionsverwaltung mit deinem Team geteilt.

Optionen für die Serverkonfiguration

MCP-Server können auf zwei Arten konfiguriert werden: als lokaler Befehl (stdio-Transport) oder als Remote-Server (HTTP-Transport).

Lokaler Befehl (stdio)

Remote-Server (Streamable HTTP)

Beispiele

Führen Sie nach dem Hinzufügen eines OAuth-basierten Servers devin mcp login notion aus, um die Authentifizierung durchzuführen. Weitere Informationen finden Sie unten unter Authentifizierung.
Führen Sie nach dem Hinzufügen devin mcp login atlassian aus, um die Authentifizierung durchzuführen. Jeder MCP-Client (Windsurf, Claude Code, Devin CLI) verwaltet seine eigene OAuth-Sitzung. Sie müssen sich also separat anmelden, auch wenn Sie sich bereits in einem anderen Tool authentifiziert haben.

Authentifizierung

Einige Remote-MCP-Server erfordern eine OAuth-Authentifizierung. Nachdem du deiner Konfiguration einen OAuth-basierten Server hinzugefügt hast, melde dich mit dem Befehl login an:
Zum Beispiel:
Dadurch öffnet sich ein Browserfenster, in dem du den Zugriff autorisieren kannst. Die OAuth-Token werden lokal gespeichert und automatisch erneuert. Du kannst optional bestimmte OAuth-Geltungsbereiche anfordern:
So entfernen Sie gespeicherte Anmeldedaten für einen Server:
Wenn der Server OAuth unterstützt, werden Sie bei der ersten Verwendung des Servers außerdem automatisch zur Authentifizierung aufgefordert.

Vorregistrierte OAuth-Clients

Die meisten OAuth-basierten MCP-Server unterstützen die dynamische Client-Registrierung (DCR), sodass Devin CLI sich automatisch registriert und Sie keine Client-Zugangsdaten angeben müssen. Einige Anbieter (z. B. GitHub) unterstützen DCR nicht und erfordern stattdessen einen vorregistrierten OAuth-Client. Geben Sie für diese die Client-ID an — und ein Client-Secret, falls es sich um einen vertraulichen Client handelt — über oauthClientId / oauthClientSecret:
Wenn oauthClientId gesetzt ist, überspringt Devin CLI die dynamische Client-Registrierung und verwendet während des OAuth-Ablaufs Ihren vorregistrierten Client. Führen Sie devin mcp login <name> aus (oder authentifizieren Sie sich bei der ersten Verwendung), um sich wie gewohnt anzumelden. Sie können diese Werte auch über die Befehlszeile festlegen, wenn Sie einen Server hinzufügen oder sich bei einem Server anmelden:
oauthClientId / oauthClientSecret sind OAuth-Client-Anmeldedaten, die während des Autorisierungsflusses verwendet werden. Sie sind keine allgemeinen Anmeldedaten für einzelne Requests — wenn ein Server ein statisches Token erwartet, verwende stattdessen headers (HTTP) oder env (stdio).
Checke kein Client-Secret in eine gemeinsam genutzte Konfiguration ein. Referenziere es über eine Umgebungsvariable (${env:VAR}), lies es aus einer Datei (${file:/path}) oder speichere es in .devin/config.local.json (gitignored). Siehe unten den Abschnitt “Secrets verwalten”.

OAuth-Ressourcenüberschreibung

Während der OAuth-Autorisierung und des Token-Austauschs sendet Devin CLI einen RFC 8707-resource-Parameter, damit der Autorisierungsserver auf eine Zielgruppe beschränkte Tokens ausstellen kann. Standardmäßig ist der Wert die URL des MCP-Servers. Überschreiben Sie ihn mit oauthResource:
Das Feld kann sich auf drei Arten verhalten:
  • Nicht festgelegt (Standard): resource wird auf die URL des MCP-Servers gesetzt.
  • Nicht leerer Wert: ersetzt den Standard durch Ihren Wert (z. B. eine bestimmte Anwendungs-ID-URI).
  • Leere Zeichenfolge (""): lässt den Parameter resource sowohl aus der Autorisierungs-URL als auch aus dem Token-Austausch vollständig weg.
Sie können es auch über die Befehlszeile festlegen, wenn Sie einen Server hinzufügen oder sich bei einem Server anmelden:
Wie andere OAuth-Felder unterstützt oauthResource die Auflösung von ${env:VAR} und ${file:/path}.

Aktivieren und Deaktivieren von Servern

Sie können einen MCP-Server vorübergehend deaktivieren, ohne seine Konfiguration zu entfernen. Ein deaktivierter Server wird bei der Tool-Erkennung übersprungen — seine Tools werden nicht angezeigt, und der Serverprozess wird nicht gestartet.
Dies setzt das Flag "disabled": true für den Server-Eintrag in der Konfigurationsdatei. Verwenden Sie -s/--scope, um einen bestimmten Geltungsbereich festzulegen:
Sie können das Flag auch direkt in Ihrer Konfigurationsdatei setzen:
Das Deaktivieren ist nützlich, wenn Sie die Konfiguration eines Servers (einschließlich Umgebungsvariablen und OAuth-Anmeldedaten) beibehalten, ihn aber vorübergehend nicht verwenden möchten — zum Beispiel, um die Startzeit zu verkürzen oder ein Problem zu isolieren.

Secrets verwalten

Committe niemals API keys oder Secrets in die Versionsverwaltung. Verwende .devin/config.local.json für sensible Werte.
Für Teamprojekte wird folgendes Vorgehen empfohlen:
  1. Definiere den Server in .devin/config.json mit Platzhaltern oder ohne Umgebungsvariablen
  2. Jedes Teammitglied fügt seine persönlichen Keys in .devin/config.local.json hinzu
Die lokale Konfigurationsdatei wird automatisch von Git ausgeschlossen.

MCP-Berechtigungen

Sie können in Ihrer Berechtigungskonfiguration bestimmte MCP-Tools vorab genehmigen, ablehnen oder jedes Mal eine Rückfrage erzwingen:
Muster für den Berechtigungsabgleich:

Einschränkungen auf Organisationsebene

Wenn Sie Teil eines Enterprise-Teams sind, kann Ihr Admin einschränken, mit welchen MCP-Servern Sie eine Verbindung herstellen können. Ein von Ihnen konfigurierter Server kann blockiert werden, wenn MCP für Ihr Team deaktiviert ist oder wenn er weder auf der Allowlist Ihres Teams noch in einer erzwungenen MCP Registry enthalten ist — in diesem Fall wird keine Verbindung hergestellt und seine Tools sind nicht verfügbar. Weitere Informationen finden Sie unter Team Settings — MCP Registry.

Fehlerbehebung

Wenn beim Verbinden mit einem Remote-MCP-Server Fehler wie Auth required oder AuthRequired angezeigt werden, erfordert der Server eine OAuth-Authentifizierung.Führen Sie Folgendes aus:
Jeder MCP-Client authentifiziert sich unabhängig. Selbst wenn Sie sich bereits in Windsurf oder Claude Code authentifiziert haben, müssen Sie devin mcp login für Devin CLI separat ausführen.Um Ihren Authentifizierungsstatus zu prüfen, versuchen Sie, die Anmeldedaten zu entfernen und erneut hinzuzufügen:
Prüfen Sie, ob der Befehl außerhalb von Devin CLI funktioniert:
Prüfen Sie, ob alle erforderlichen Umgebungsvariablen gesetzt sind.
Bitten Sie den Agenten, die MCP-Server und Tools aufzulisten. Möglicherweise braucht der Server einen Moment für die Initialisierung.
Prüfen Sie Ihre Berechtigungskonfiguration. MCP-Tools fragen standardmäßig nach einer Bestätigung. Fügen Sie sie zu permissions.allow hinzu, um sie automatisch zu genehmigen.
Einige Autorisierungsserver lehnen OAuth-Anfragen ab, die den RFC-8707-Parameter resource enthalten. Setzen Sie oauthResource auf eine leere Zeichenfolge, um den Parameter wegzulassen:
Authentifizieren Sie sich dann erneut:
Unter OAuth-Ressourcenüberschreibung finden Sie die vollständige Übersicht über das Verhalten von oauthResource.
Beim Verbinden mit einem HTTP-Server versucht Devin CLI zuerst Streamable HTTP. Wenn der Server mit einem HTTP-4xx-Fehler antwortet (z. B. 404 oder 405), wird automatisch auf Legacy SSE unter derselben konfigurierten URL zurückgegriffen. Dies entspricht den Hinweisen zur Abwärtskompatibilität in der MCP-Spezifikation.Der Fallback wird nur bei 4xx-Antworten ausgelöst — Verbindungsfehler, Timeouts und 5xx-Antworten werden direkt gemeldet, ohne einen SSE-Versuch.Wenn sich der SSE-Endpunkt Ihres Servers unter einem anderen Pfad befindet (z. B. /sse statt /mcp), setzen Sie "transport": "sse" mit der SSE-URL, um direkt eine Verbindung herzustellen, ohne es zuerst über Streamable HTTP zu versuchen.Wenn beide Transportarten fehlschlagen, enthält die Fehlermeldung Details aus beiden Versuchen, um die Fehlerbehebung zu erleichtern.