> ## Documentation Index
> Fetch the complete documentation index at: https://docs.devin.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Devin mit MongoDB verbinden

> Verbinden Sie Devin mit MongoDB Atlas – über einen Datenbanknutzer mit eingeschränkten Rechten, ein Atlas-Dienstkonto, mongosh und die Atlas CLI in einem Blueprint oder über den MongoDB-MCP-Server.

Devin kann mit Ihren MongoDB-Daten so arbeiten wie ein Engineer mit einer schreibgeschützten Verbindungszeichenfolge: nachsehen, was Collections tatsächlich enthalten, herausfinden, warum eine Abfrage langsam ist, eine Migration in einer Sandbox-Datenbank durchspielen und einen PR öffnen. In dieser Anleitung richten Sie das mit Identitäten ein, die Sie eigens für Devin erstellen – so läuft Devin nie unter dem Konto eines Ihrer Engineers.

<Note>
  Alles bleibt in Ihrem Atlas-Konto: ein Datenbanknutzer, ein Dienstkonto, MongoDB-Tools, die über einen [Umgebungs-Blueprint](/de/onboard-devin/environment/blueprints) installiert werden, und optional ein MCP-Server. Beginnen Sie mit minimalen Rechten (schreibgeschützter Zugriff auf die Produktion) und erweitern Sie die Rollen später. Die Rollen legen die Grenzen fest, und Sie ändern sie direkt in Atlas, ohne Devin anpassen zu müssen.
</Note>

<h2 id="two-planes-two-identities">
  Zwei Ebenen, zwei Identitäten
</h2>

| Ebene | Worauf zugegriffen wird | Identität von Devin | Anmeldedaten |
| - | - | - | - |
| **Datenebene** | Datenbanken, Dokumente, Indizes, `explain()` | Ein **Datenbanknutzer** | Nutzername und Passwort in einer Verbindungszeichenfolge |
| **Control Plane** | Cluster, Search-Indizes, Performance Advisor, Slow-Query-Logs, Datenbanknutzer, Zugriffslisten | Ein **Atlas-Dienstkonto** | OAuth-2.0-Client-ID und Client-Secret |

Ein Datenbanknutzer kann die Atlas Administration API nicht aufrufen, und ein Dienstkonto kann über die API keine Dokumente lesen. Die meisten Teams starten zunächst nur mit der Datenebene und ergänzen das Dienstkonto, sobald Devin den Performance Advisor oder Slow-Query-Logs benötigt (dedizierte Cluster, ab M10). Zwei Hinweise:

* Ein Dienstkonto, das Datenbanknutzer anlegen darf (`GROUP_OWNER`, `GROUP_DATABASE_ACCESS_ADMIN`), kann sich selbst eine Identität auf der Datenebene ausstellen. Genau das macht der MongoDB-MCP-Server, wenn er eine Verbindung zu einem Cluster herstellen soll (Option B).
* Slow-Query-Daten enthalten die tatsächlichen Werte aus den Abfragen.

<h2 id="choose-how-devin-connects">
  Verbindungsart für Devin wählen
</h2>

Alle drei Wege nutzen denselben Netzwerkzugriff (Schritt 1) und dieselben Identitäten (Schritt 2); sie unterscheiden sich darin, welche Zugangsdaten Devin selbst erhält.

| Weg | Am besten geeignet für | Setup |
| - | - | - |
| [**Option A: CLI in einem Blueprint**](#option-a-cli-in-a-blueprint) | Aufgaben, die Devin in einem Repo ausführt und wiederholt: Migrationen, Backfills, Seed-Daten, Tests mit realitätsnah strukturierten Daten | Vier Devin Secrets und ein kurzer Blueprint. Beginnen Sie hier. |
| [**Option B: MongoDB-MCP-Server**](#option-b-mongodb-mcp-server) | Schema-Erkennung sowie Query- und Index-Analyse als Tools, abgesichert durch die Guardrails `--readOnly` und `--indexCheck` | Ein benutzerdefinierter STDIO-MCP-Server mit denselben Anmeldedaten. Ergänzt Option A. |
| [**Option C: MongoDB-Atlas-Plugin**](#option-c-mongodb-atlas-plugin) | Fragen zu Atlas und projektweite Lesezugriffe, ohne MongoDB-Anmeldedaten in der Sitzung zu speichern | Marketplace-Plugin, OAuth-Anmeldung als dedizierter Atlas-Nutzer; Org-Zugriffsmodus auf **Read** gesetzt. |

<h2 id="why-connect-devin-to-mongodb">
  Warum Devin mit MongoDB verbinden?
</h2>

* **Das Schema steckt in den Dokumenten.** MongoDB hat kein `information_schema`, und Mongoose- oder Prisma-Modelle weichen mit der Zeit von den tatsächlich gespeicherten Daten ab. Devin zieht Stichproben aus den Live-Collections und arbeitet mit der realen Struktur.
* **Langsame Abfragen werden in einer einzigen Sitzung vollständig behoben.** Devin liest den Performance Advisor und das Slow-Query-Log, führt `explain()` auf der echten Collection aus, findet den Code, der die Abfrage absetzt, und öffnet einen PR mit dem Fix und dem vorgeschlagenen Index.
* **Die Rollen des Datenbanknutzers bestimmen, worauf Devin zugreifen darf.** Starten Sie in der Produktion schreibgeschützt und nutzen Sie eine `devin_dev`-Sandbox für Schreibvorgänge. Jede Aktion wird in den Atlas-Logs unter Devins eigener Identität protokolliert.

<h2 id="prerequisites">
  Voraussetzungen
</h2>

**Atlas**

* Ein Projekt mit einem Cluster.
* `Organization Owner` zum Erstellen eines Dienstkontos; `Project Owner` für den Datenbanknutzer und die Zugriffslisten.

**Devin**

* Berechtigung zum Bearbeiten des [Umgebungs-Blueprints](/de/onboard-devin/environment/blueprints) und zum Hinzufügen von [Secrets](/de/product-guides/secrets).
* Für die MCP-Varianten die Berechtigung **Manage MCP Servers**.

**Netzwerk**

* Die IP-Adressen von Devin sind in der IP-Zugriffsliste des Projekts eingetragen (Schritt 1).
* Wenn Sie eine Devin-[Netzwerkrichtlinie](/de/product-guides/security-profiles) verwenden, lassen Sie `*.mongodb.net` und `cloud.mongodb.com` zu, außerdem die Hosts, von denen der Blueprint Pakete installiert: `pgp.mongodb.com` und `repo.mongodb.org` (Option A) bzw. `registry.npmjs.org` und `nodejs.org` (Option B). Der Treiber verbindet sich über Port 27017, nicht über 443. Da Richtlinieneinträge Hostnamen oder CIDRs sind, muss kein Port angegeben werden. Für Snapshot-Builds gilt dieselbe Richtlinie.

<h2 id="step-1-open-network-access">
  Schritt 1: Netzwerkzugriff freigeben
</h2>

Atlas lehnt Verbindungen von IPs ab, die nicht in der IP-Zugriffsliste des Projekts stehen. Fügen Sie die unter [IP-Allowlisting](/de/admin/common-issues#ip-allowlisting) aufgeführten IPs hinzu – nicht aus dem Gedächtnis. Dedizierte Mandanten haben eigene ausgehende Verbindungen (Egress); stimmen Sie sich dazu mit Ihrem Account-Team ab.

```bash theme={null}
atlas accessLists create <ip> --type ipAddress --comment "Devin" --projectId <project-id>
atlas accessLists create <cidr> --type cidrBlock --comment "Devin" --projectId <project-id>
```

Die Liste enthält sowohl einzelne Adressen als auch einen CIDR-Bereich. Verwenden Sie `--type ipAddress` für einzelne Adressen und `--type cidrBlock` für den Bereich.

Wenn Ihre Organisation eine API-Zugriffsliste für Dienstkonten vorschreibt, fügen Sie dieselben IP-Adressen in Atlas auf der Seite des Dienstkontos hinzu. Aufrufe von einer IP-Adresse, die nicht in der Liste steht, schlagen mit `403` fehl.

<h2 id="step-2-create-devins-identities">
  Schritt 2: Identitäten für Devin erstellen
</h2>

<h3 id="database-user">
  Datenbanknutzer
</h3>

Lesezugriff auf Produktionsdatenbanken, Lese-/Schreibzugriff in einer Sandbox, beschränkt auf namentlich festgelegte Cluster:

```bash theme={null}
atlas dbusers create \
  --username devin-sessions \
  --password "<generated-password>" \
  --role read@analytics,read@billing,readWrite@devin_dev \
  --scope <cluster-name> \
  --projectId <project-id>
```

Ohne `--scope` kann der Nutzer auf alle Cluster im Projekt zugreifen. Verwenden Sie eine [benutzerdefinierte Datenbankrolle](https://www.mongodb.com/docs/atlas/security-add-mongodb-roles/), wenn sich die gewünschte Einschränkung mit den integrierten Rollen nicht abbilden lässt. Generieren Sie das Passwort mit einem Passwort-Manager und achten Sie darauf, dass es nicht im Shell-Verlauf landet. Kopieren Sie die Verbindungszeichenfolge dieses Nutzers; geben Sie Devin nicht den Admin-Nutzer des Clusters.

<h3 id="service-account-only-if-devin-needs-the-control-plane">
  Dienstkonto (nur wenn Devin die Control Plane benötigt)
</h3>

Erstellen Sie es in Atlas unter **Identity & Access > Applications** auf Organisationsebene. Beginnen Sie mit Lesezugriff und wählen Sie für das Client-Secret die kürzeste Gültigkeitsdauer, die Ihr Rotationszyklus zulässt.

| | Rollen | Begründung |
| - | - | - |
| **Gewähren** | `ORG_MEMBER` für die Organisation; `GROUP_READ_ONLY` und `GROUP_DATA_ACCESS_READ_ONLY` für jedes Projekt | Schreibgeschützte Ausgangsbasis |
| **Nur bei Bedarf hinzufügen** | `GROUP_SEARCH_INDEX_EDITOR` | Devin verwaltet Search-Indizes |
| **Niemals** | `GROUP_OWNER`, `GROUP_DATABASE_ACCESS_ADMIN` | Mit jeder dieser Rollen könnte Devin seinen eigenen Zugriff erweitern |

<Warning>
  Die Zeile **Niemals** ist vor allem bei Option B entscheidend. Wenn das Dienstkonto Datenbanknutzer anlegen kann, erstellt das Tool `atlas-connect-cluster` des MCP-Servers einen temporären Nutzer für den gesamten Cluster (`readAnyDatabase` bzw. `readWriteAnyDatabase` ohne `--readOnly`) und umgeht damit die datenbankspezifischen Rollen für `devin-sessions`. Dieser Nutzer bleibt 4 Stunden lang bestehen, sofern ihn das MCP-Disconnect-Tool nicht vorher löscht.
</Warning>

<h2 id="step-3-connect-devin">
  Schritt 3: Devin verbinden
</h2>

<h3 id="option-a-cli-in-a-blueprint">
  Option A: CLI in einem Blueprint
</h3>

<h4 id="1-add-devin-secrets">
  1. Devin Secrets hinzufügen
</h4>

Auf dem Tab **Secrets** des Blueprints:

| Secret | Wert |
| - | - |
| `MONGODB_URI` | Die Verbindungszeichenfolge für `devin-sessions`, z. B. `mongodb+srv://devin-sessions:<password>@cluster0.abcde.mongodb.net/`. Das Passwort muss prozentkodiert sein. |
| `MONGODB_ATLAS_CLIENT_ID` | Client-ID des Dienstkontos (`mdb_sa_id_...`), falls Sie die Control Plane verwenden |
| `MONGODB_ATLAS_CLIENT_SECRET` | Client-Secret des Dienstkontos |
| `MONGODB_ATLAS_PROJECT_ID` | Standard-Projekt-ID |

Secrets werden pro Sitzung injiziert, daher ist beim Rotieren eines Werts kein Rebuild nötig. Die Atlas CLI liest Client-ID und Secret aus diesen Umgebungsvariablen, ein `atlas auth login` entfällt also. Bei der ersten Verwendung legt sie ein Zugriffstoken in `~/.config/atlascli/config.toml` im Cache ab. Innerhalb einer Sitzung ist das unproblematisch, erstellen Sie diese Datei aber niemals in `initialize`.

<h4 id="2-add-the-blueprint">
  2. Blueprint hinzufügen
</h4>

```yaml theme={null}
initialize:
  - name: Install the Atlas CLI and mongosh
    run: |
      curl -fsSL https://pgp.mongodb.com/server-8.0.asc \
        | sudo gpg --batch --yes -o /usr/share/keyrings/mongodb-server-8.0.gpg --dearmor
      echo "deb [ arch=amd64,arm64 signed-by=/usr/share/keyrings/mongodb-server-8.0.gpg ] https://repo.mongodb.org/apt/ubuntu jammy/mongodb-org/8.0 multiverse" \
        | sudo tee /etc/apt/sources.list.d/mongodb-org-8.0.list
      sudo apt-get update
      sudo apt-get install -y mongodb-atlas-cli mongodb-mongosh
      atlas --version && mongosh --version

knowledge:
  - name: mongodb-access
    contents: |
      Connect to MongoDB with `mongosh "$MONGODB_URI"`; the URI is a Devin Secret. The Atlas CLI
      authenticates as a service account from MONGODB_ATLAS_CLIENT_ID and MONGODB_ATLAS_CLIENT_SECRET,
      with MONGODB_ATLAS_PROJECT_ID as the default project. Do not run `atlas auth login`, do not ask
      for a username, password, or API key, and never write the connection string into a file, script,
      log, or PR. Production databases are read-only; write only to the devin_dev database. Ship
      schema, index, and migration changes through a pull request.
```

Ersetzen Sie `jammy`, falls Ihr Image nicht auf Ubuntu 22.04 basiert.

Der `knowledge`-Block ist wichtiger als die Installation: Ohne ihn führen Sitzungen `atlas auth login` aus (ein Browser-Ablauf, den niemand abschließen kann) oder fragen nach einer Verbindungszeichenfolge, die bereits in der Umgebung vorhanden ist.

<Warning>
  Schreiben Sie in `initialize` keine Anmeldedaten auf die Festplatte. Eine `~/.mongoshrc.js`, eine `~/.config/atlascli/config.toml` oder eine exportierte URI in `~/.bashrc` landet im Snapshot und steht damit jeder künftigen Sitzung zur Verfügung.
</Warning>

<h4 id="3-build-the-snapshot">
  3. Snapshot erstellen
</h4>

Speichern Sie den Blueprint, warten Sie auf den Status **Success** und starten Sie dann eine neue Sitzung. Bereits laufende Sitzungen verwenden weiterhin den alten Snapshot.

<h3 id="option-b-mongodb-mcp-server">
  Option B: MongoDB-MCP-Server
</h3>

Der offizielle [`mongodb-mcp-server`](https://github.com/mongodb-js/mongodb-mcp-server) läuft als lokaler Prozess innerhalb der Sitzung und verwendet die Identitäten aus Schritt 2. Damit seine Guardrails greifen, fügen Sie ihn als benutzerdefinierten MCP-Server hinzu (**Customize > MCPs > Add MCP > Add custom MCP**, Transport **STDIO**) und nicht über das `mongodb`-Plugin aus dem Marketplace, dessen Manifest `--readOnly` und `--indexCheck` nicht bereitstellt.

| Feld | Wert |
| - | - |
| Command | `npx` |
| Arguments | `-y mongodb-mcp-server@<version> --readOnly --indexCheck` |
| Environment | `MDB_MCP_CONNECTION_STRING` (derselbe Wert wie `MONGODB_URI`); optional `MDB_MCP_API_CLIENT_ID` und `MDB_MCP_API_CLIENT_SECRET` für Atlas-Tools |

Pinnen Sie `<version>` auf ein Release an, das Sie getestet haben, denn `npx` lädt das Paket bei jedem Sitzungsstart neu herunter. Mit dem schreibgeschützten Dienstkonto aus Schritt 2 gibt `atlas-connect-cluster` `401` zurück. Devin greift stattdessen über die `preconfigured`-Verbindung aus `MDB_MCP_CONNECTION_STRING` auf die Daten zu – das ist so vorgesehen.

* `--readOnly` registriert keine Create-, Update- und Delete-Tools und lehnt Aggregationen ab, die `$out` oder `$merge` enthalten. Ohne diese Option werden solche Aggregationen nach einer Bestätigungsabfrage ausgeführt – oder ganz ohne Bestätigung, wenn der MCP-Client keine Abfragen unterstützt. Verwenden Sie die Option für alles, was auf die Produktionsumgebung zugreift.
* `--indexCheck` lehnt Abfragen ab, deren Plan einen Collection-Scan vorsieht. Dies ist ein Performance-Guardrail: Schlägt `explain` selbst fehl, wird die Abfrage trotzdem ausgeführt.

Der Server erfordert Node `^20.19.0 || ^22.13.0 || >=24.0.0`. Prüfen Sie `node --version` in einer Sitzung. Ist die Version älter oder befindet sich `npx` nicht im Pfad, den der MCP-Prozess sieht, fügen Sie Node zum Blueprint hinzu:

```yaml theme={null}
initialize:
  - name: Install Node.js for the MongoDB MCP server
    uses: github.com/actions/setup-node@v4
    with:
      node-version: "22"
```

<Warning>
  Verwenden Sie den schreibgeschützten Datenbank-Nutzer auch mit `--readOnly`. Devin kann mit demselben Nutzer auch `mongosh "$MONGODB_URI"` ausführen – die eigentliche Schutzgrenze bilden daher die Rollen des Nutzers.
</Warning>

<h3 id="option-c-mongodb-atlas-plugin">
  Option C: MongoDB Atlas-Plugin
</h3>

Das **MongoDB Atlas**-[Plugin](/de/product-guides/plugins) verbindet Devin mit dem gehosteten MCP-Server von MongoDB (`mcp.mongodb.com`) und installiert die Agent-Skills von MongoDB. Devin agiert mit den Atlas-Rollen des Nutzers, der sich anmeldet – begrenzt durch den AI-Client-Zugriffsmodus der Organisation.

1. Ein Organization Owner aktiviert den [AI-Client-Zugriff](https://www.mongodb.com/docs/mcp-server/remote-mcp/manage-ai-client-access/) (**Organization Settings > App Connections**) und setzt den Zugriffsmodus auf **Read**, damit keine Schreib-Tools registriert werden. Die Einstellung gilt für alle AI-Clients in der Organisation, nicht nur für Devin.
2. Erstellen Sie einen dedizierten Atlas-Nutzer für Devin mit `GROUP_READ_ONLY` und `GROUP_DATA_ACCESS_READ_ONLY` – ausschließlich in Projekten, die er lesen darf. `GROUP_DATA_ACCESS_READ_ONLY` gewährt Lesezugriff auf Dokumente in allen Datenbanken des Projekts und ist damit weiter gefasst als der Nutzer `devin-sessions`.
3. Installieren Sie das Plugin und führen Sie den OAuth-Login einmalig unter **Customize > MCPs** durch – angemeldet als dieser Nutzer, nicht als Sie selbst.
4. [Pinnen Sie das Plugin an einen Commit an](/de/product-guides/plugins#pinning-a-plugin), sobald es funktioniert.

<Note>
  Der Datenverkehr stammt aus der gehosteten Infrastruktur von MongoDB und Devin, nicht aus der Sitzung. Die IP-Listen aus Schritt 1 und Ihre Netzwerkrichtlinie greifen daher nicht. Der Zugriff endet nach 7 Tagen Inaktivität oder 30 Tage nach der Anmeldung, je nachdem, was zuerst eintritt; melden Sie sich anschließend erneut an. Durch das Widerrufen des Zugriffs werden weder Datenbanknutzer noch andere vom Client erstellte Artefakte gelöscht – überprüfen Sie diese daher.
</Note>

<h3 id="rebuilds-and-version-pinning">
  Rebuilds und Versions-Pinning
</h3>

Der Blueprint installiert die Version, die `apt` zum Build-Zeitpunkt bezieht, und bei Option B lädt `npx` `mongodb-mcp-server` bei jedem Start einer Sitzung neu herunter. Pinnen Sie beide an (`mongodb-atlas-cli=<version>`, `mongodb-mongosh=<version>`, `mongodb-mcp-server@<version>`), sobald sie funktionieren, und aktualisieren Sie die Versionen gezielt. Das Rotieren eines Secrets erfordert keinen Rebuild, das Ändern eines installierten Tools dagegen schon.

<h2 id="step-4-set-permissions">
  Schritt 4: Berechtigungen festlegen
</h2>

Die Authentifizierung legt fest, wer Devin ist; Datenbank- und Atlas-Rollen legen fest, worauf Devin zugreifen darf. MCP-Flags und Knowledge-Anweisungen sind lediglich zusätzliche Hilfsmittel, nicht die eigentliche Sicherheitsgrenze.

| Profil | Typische Aufgaben | Rollen des Datenbank-Nutzers | Rollen des Dienstkontos |
| - | - | - | - |
| **Explore** (hier beginnen) | Schema dokumentieren, langsame Abfragen erklären, Indizes per PR vorschlagen | `read` auf Produktionsdatenbanken | `GROUP_READ_ONLY` + `GROUP_DATA_ACCESS_READ_ONLY` |
| **Build** | Migrationen, Pipelines und Seed-Daten mit realitätsnah strukturierten Daten schreiben und testen | Explore, zusätzlich `readWrite@devin_dev` | Wie bei Explore |
| **Operate** | Indizes oder Atlas-Search-Indizes für bestimmte Collections erstellen | Explore, zusätzlich eine benutzerdefinierte Rolle, die `createIndex` für diese Collections gewährt | Explore, zusätzlich `GROUP_SEARCH_INDEX_EDITOR` |

Für Explore genügt für vorgeschlagene Indizes `GROUP_READ_ONLY` (Abfragewerte werden maskiert zurückgegeben). Für die Liste langsamer Abfragen, Beispiel-Abfragewerte und Log-Downloads ist zusätzlich `GROUP_DATA_ACCESS_READ_ONLY` erforderlich; die in der Hilfe der Atlas CLI geforderte Rolle `GROUP_DATA_ACCESS_READ_WRITE` wird nicht benötigt. Nur mit `GROUP_READ_ONLY` meldet das MCP-Tool `atlas-get-performance-advisor` „No slow query logs found“ statt `401` – ein leeres Ergebnis kann also auf ein Rollenproblem hindeuten.

<Tip>
  Code wird weiterhin über Pull-Requests ausgeliefert. Devin liest die Produktionsdaten, um das Problem zu verstehen, und validiert die Korrektur in `devin_dev`; die Migration oder der Index gelangt über Ihren regulären Review-Prozess in die Produktion.
</Tip>

<h2 id="step-5-verify">
  Schritt 5: Überprüfen
</h2>

Starten Sie eine neue Sitzung und bitten Sie Devin, Folgendes auszuführen:

**Konnektivität.** Welcher Nutzer, welche Rollen und (falls konfiguriert) ob die Authentifizierung über die Atlas CLI funktioniert:

```bash theme={null}
mongosh "$MONGODB_URI" --quiet --eval 'JSON.stringify(db.runCommand({connectionStatus: 1}), null, 2)'
atlas clusters list --projectId "$MONGODB_ATLAS_PROJECT_ID"
```

**Berechtigungsgrenze.** Der erste Insert sollte fehlschlagen (`not authorized on <prod-db> to execute command` auf dedizierten Clustern, `user is not allowed to do action [insert] on [<prod-db>.devin_probe]` auf M0/Flex), der zweite sollte gelingen:

```bash theme={null}
mongosh "$MONGODB_URI" --quiet --eval 'db.getSiblingDB("<prod-db>").devin_probe.insertOne({probe: 1})'
mongosh "$MONGODB_URI" --quiet --eval 'db.getSiblingDB("devin_dev").devin_probe.insertOne({probe: 1}); db.getSiblingDB("devin_dev").devin_probe.drop()'
```

Prüfen Sie, ob die Rollen in `connectionStatus` dem Profil entsprechen, das Sie erteilt haben; dass eine Verbindung offen ist, sagt allein wenig aus. Um den MCP-Server zu testen, bitten Sie Devin, über die MCP-Tools Datenbanken aufzulisten (dabei wird die Verbindung `preconfigured` verwendet) und anschließend ein Dokument einzufügen: Mit `--readOnly` gibt es kein `insert-many`-Tool, und eine Aggregation mit `$out` wird abgelehnt.

<h2 id="troubleshooting">
  Fehlerbehebung
</h2>

| Symptom | Gilt für | Ursache und Lösung |
| - | - | - |
| Zeitüberschreitung bei der Verbindung oder Fehlermeldung zur IP-Zugriffsliste | A, B | Die IPs von Devin fehlen in der IP-Zugriffsliste des Projekts (die häufigste Fehlerursache), oder Ihre Netzwerkrichtlinie blockiert `*.mongodb.net` auf TCP 27017. |
| `querySrv ENOTFOUND _mongodb._tcp.<host>` | A, B | DNS ist blockiert oder der Hostname ist falsch. Lassen Sie `*.mongodb.net` in der Netzwerkrichtlinie zu. |
| `Authentication failed` oder `bad auth : authentication failed` | A, B | Falsches Passwort oder falsche `authSource`. |
| `MongoParseError: Protocol and host list are required` | A, B | Das Passwort in der URI enthält `@`, `/` oder `+` und ist nicht prozentkodiert. Kodieren Sie es – es handelt sich nicht um einen Authentifizierungsfehler. |
| `not authorized on <db> to execute command` oder `user is not allowed to do action` | A, B | Angemeldet, aber nicht berechtigt. Das ist zu erwarten, wenn Devin in die Produktionsumgebung schreibt; andernfalls erweitern Sie die Rollen des Nutzers. |
| Atlas CLI meldet `unauthorized` oder schlägt `atlas auth login` vor | A, B | Secrets des Dienstkontos fehlen, sind falsch oder abgelaufen, oder die Rolle des Dienstkontos erlaubt diese Aktion nicht (der MCP-Server meldet dies ebenfalls als ungültige Anmeldedaten). Prüfen Sie die Rolle, bevor Sie Secrets rotieren. Führen Sie `atlas auth login` nicht aus. |
| Atlas CLI gibt nach der Authentifizierung `403` zurück | A, B | In der API-Zugriffsliste des Dienstkontos fehlen die IPs von Devin (Schritt 1). |
| Devin führt `atlas auth login` aus oder fragt nach einer Verbindungszeichenfolge | A | Der `knowledge`-Block fehlt, oder die Secrets sind nicht in dem Blueprint hinterlegt, den die Sitzung verwendet. |
| Blueprint-Build schlägt bei `apt-get` fehl, oder der MCP-Server startet nicht | A, B | In der Netzwerkrichtlinie fehlen `pgp.mongodb.com`, `repo.mongodb.org`, `registry.npmjs.org` oder `nodejs.org`, oder Node ist älter als 20.19 (prüfen Sie dies mit `node --version`). |
| MCP lehnt eine Abfrage ab, weil sie keinen Index verwendet | B | `--indexCheck` funktioniert wie vorgesehen. Fügen Sie den Index per PR hinzu, oder führen Sie die Abfrage mit `mongosh` gegen `devin_dev` aus. Abfragen, die einen Collation-Index benötigen, werden immer abgelehnt, da das MCP-Tool `find` kein Collation-Argument unterstützt. |
| Atlas-Tools fehlen oder Schreib-Tools werden angezeigt | C | Der AI-Client-Zugriff ist deaktiviert, der Zugriffsmodus ist auf **Read and write** gesetzt, oder der angemeldete Atlas-Nutzer hat umfassendere Rollen als vorgesehen. Prüfen Sie den Modus unter **App Connections** und wer die OAuth-Anmeldung durchgeführt hat. |
| Anmeldedaten funktionieren in einer Sitzung, in der nächsten aber nicht | A | Im Snapshot befindet sich eine veraltete Konfigurationsdatei aus einem früheren `initialize`. Entfernen Sie sie aus dem Blueprint und führen Sie einen Rebuild durch. |

<h2 id="limitations">
  Einschränkungen
</h2>

**Gespeicherte Anmeldedaten sind erforderlich.** Devins kurzlebiges [OIDC-Token](/de/product-guides/oidc) lässt sich derzeit nicht mit MongoDB verwenden, da die Administration API ausschließlich Secrets von Dienstkonten oder API-Schlüssel akzeptiert. Atlas [Workload Identity Federation](https://www.mongodb.com/docs/atlas/workload-oidc/) deckt zwar die Datenebene auf dedizierten Clustern ab, erfordert jedoch einen Token-Callback auf Treiberebene und wurde noch nicht mit Devins Issuer getestet. Wenn Sie es ausprobieren möchten, wenden Sie sich an Ihr Account-Team.

**Self-hosted MongoDB.** Die Schritte für die Datenebene (Datenbanknutzer, `MONGODB_URI`, `mongosh`, MCP-Server) gelten unverändert. Ein Atlas-Dienstkonto und eine IP-Zugriffsliste gibt es hier nicht; der Netzwerkzugriff erfolgt über Ihr [VPN](/de/onboard-devin/vpn) oder Ihre eigene Allowlist.

<h2 id="support">
  Support
</h2>

Informationen zu Atlas finden Sie in der [Atlas-Sicherheitsdokumentation](https://www.mongodb.com/docs/atlas/setup-cluster-security/) und in der [Dokumentation zum MongoDB MCP-Server](https://www.mongodb.com/docs/mcp-server/). Bei Fragen zu Devin wenden Sie sich an [support@cognition.ai](mailto:support@cognition.ai) oder an Ihr Account-Team.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.