すべては Atlas アカウント内で完結します。必要なのは、データベースユーザー、サービスアカウント、環境ブループリントでインストールする MongoDB ツール、そして必要に応じて MCP サーバーです。まずは最小限の権限 (本番環境は読み取り専用) から始め、必要に応じてロールを広げてください。アクセス範囲を決めるのはロールであり、Devin 側に手を加えることなく Atlas で変更できます。
2 つのプレーンと 2 つの ID
データベースユーザーは Atlas Administration API を呼び出せず、サービスアカウントは API 経由でドキュメントを読み取れません。多くのチームはまずデータプレーンのみで運用を始め、Devin が Performance Advisor やスロークエリログ (M10 以上の専用クラスターで利用可能) を必要とするようになった段階でサービスアカウントを追加します。ただし、次の 2 点に注意してください。
- データベースユーザーを作成できるサービスアカウント (
GROUP_OWNER、GROUP_DATABASE_ACCESS_ADMIN) は、データプレーン用の ID を自身で発行できます。実際に MongoDB MCP サーバーは、クラスターへの接続を指示されるとこれを行います (オプション B) 。 - スロークエリのデータには、クエリのリテラル値がそのまま含まれます。
Devin の接続方法を選択する
3 つの方法はいずれも同じネットワークアクセス (ステップ 1) と ID (ステップ 2) を利用します。違いは、Devin に何を保持させるかという点です。Devin を MongoDB に接続する理由
- スキーマはドキュメント自体に存在します。 MongoDB には
information_schemaがなく、Mongoose や Prisma のモデルは実際に保存されているデータとずれていきます。Devin は稼働中のコレクションからサンプルを取得し、実際のデータ構造に基づいて作業します。 - 低速クエリの調査から修正までが 1 つのセッションで完結します。 Devin は Performance Advisor とスロークエリログを読み取り、実際のコレクションに対して
explain()を実行します。さらに、そのクエリを発行しているコードを特定し、修正内容と推奨インデックスを含むプルリクエスト (PR) を作成します。 - Devin が操作できる範囲は、データベースユーザーのロールによって決まります。 まずは本番環境への権限を読み取り専用にとどめ、書き込みには
devin_devサンドボックスを使用してください。すべてのアクションは Devin 専用の ID で Atlas のログに記録されます。
前提条件
Atlas- クラスターを含むプロジェクト。
- サービスアカウントの作成には
Organization Owner、データベースユーザーとアクセスリストの設定にはProject Ownerのロール。
- プロジェクトの IP アクセスリストに Devin の IP が登録されていること (ステップ 1) 。
- Devin のネットワークポリシーを利用している場合は、
*.mongodb.netとcloud.mongodb.comに加え、ブループリントがインストール元として使用するホスト (オプション A ではpgp.mongodb.comとrepo.mongodb.org、オプション B ではregistry.npmjs.orgとnodejs.org) を許可してください。ドライバーは 443 ではなくポート 27017 で接続しますが、ポリシーの項目はホスト名または CIDR で指定するため、ポートの設定は不要です。スナップショットの build にも同じポリシーが適用されます。
ステップ 1: ネットワークアクセスを許可する
Atlas は、プロジェクトの IP アクセスリストに登録されていない IP からの接続を拒否します。記憶に頼らず、IP 許可リストの設定に記載されている IP を追加してください。専用テナントでは独自の送信元 IP が使用されるため、担当のアカウントチームに確認してください。--type ipAddress を、範囲には --type cidrBlock を利用してください。
組織でサービスアカウントに API アクセスリストの設定が求められている場合は、Atlas のサービスアカウントのページにも同じ IP を追加してください。リストに登録されていない IP からの呼び出しは 403 で失敗します。
ステップ 2: Devin の ID を作成する
データベースユーザー
本番データベースでは読み取り専用、サンドボックスでは読み書き可能とし、スコープは指定したクラスターに限定します:--scope を指定しない場合、このユーザーはプロジェクト内のすべてのクラスターにアクセスできてしまいます。組み込みのロールでアクセス範囲を表現できない場合は、カスタムデータベースロールを利用してください。パスワードはパスワードマネージャーで生成し、シェル履歴に残らないようにしてください。Devin に渡すのはこのユーザーの接続文字列です。クラスターの管理者ユーザーは渡さないでください。
サービスアカウント (Devin がコントロールプレーンを必要とする場合のみ)
Atlas の組織レベルで Identity & Access > Applications を開きます。最初は読み取り専用で始め、クライアントシークレットの有効期限は、ローテーション運用で許容できる範囲で最短のものを選択してください。ステップ 3: Devin を接続する
オプション A: ブループリントで CLI を使用する
- Devin シークレット を追加する
ブループリントの シークレット タブで、次のシークレットを追加します。
シークレットはセッションごとに注入されるため、値をローテーションしても再ビルドは不要です。Atlas CLI はクライアント ID とシークレットをこれらの環境変数から読み取るため、
atlas auth login を実行する必要はありません。初回利用時には、アクセストークンが ~/.config/atlascli/config.toml にキャッシュされます。セッション内であれば問題ありませんが、initialize でこのファイルを作成しないでください。
- ブループリントを追加する
jammy を適宜置き換えてください。
インストールよりも重要なのは knowledge ブロックです。これがないと、セッションは atlas auth login(誰も完了できないブラウザーフロー)を実行したり、すでに環境内にある接続文字列を要求したりしてしまいます。
- スナップショットを build する
ブループリントを保存し、ステータスが 成功 になるまで待ってから、新しいセッションを開始します。既に開いているセッションでは、古いスナップショットが引き続き使用されます。
オプション B: MongoDB MCP サーバー
公式のmongodb-mcp-server は、セッション内でローカルプロセスとして実行され、Step 2 で作成した ID を利用します。このサーバーの Guardrails を有効にするには、marketplace の mongodb プラグインではなく、カスタム MCP サーバーとして追加してください (Customize > MCPs > Add MCP > Add custom MCP、トランスポートは STDIO) 。marketplace のプラグインのマニフェストでは --readOnly や --indexCheck を指定できないためです。
npx はセッション開始のたびにパッケージを取得するため、<version> はテスト済みのリリースに固定してください。Step 2 で作成した読み取り専用のサービスアカウントでは、atlas-connect-cluster は 401 を返します。Devin は MDB_MCP_CONNECTION_STRING による preconfigured 接続を通じてデータにアクセスします。これが想定どおりの動作です。
--readOnlyを指定すると、create、update、delete 系のツールは登録されず、$outまたは$mergeを含む集計は拒否されます。指定しない場合、これらの集計は確認プロンプトの後に実行されます。MCP クライアントがプロンプトに対応していない場合は、確認なしで実行されます。本番環境に接続する場合は必ず指定してください。--indexCheckは、実行計画がコレクションスキャンになるクエリを拒否します。これはパフォーマンスのための Guardrails です。なお、explain自体が失敗した場合、クエリはそのまま実行されます。
^20.19.0 || ^22.13.0 || >=24.0.0 が必要です。セッション内で node --version を実行して確認してください。バージョンが古い場合や、MCP プロセスから参照されるパスに npx が含まれていない場合は、ブループリントに Node を追加します:
オプション C: MongoDB Atlas プラグイン
MongoDB Atlas プラグインは、Devin を MongoDB がホストする MCP サーバー (mcp.mongodb.com) に接続し、MongoDB のエージェント スキルをインストールします。Devin はサインインしたユーザーの Atlas ロールで動作しますが、その権限の上限は組織の AI クライアント アクセス モードによって決まります。
- 組織のオーナーが AI クライアント アクセスを有効にし (Organization Settings > App Connections) 、アクセス モードを Read に設定します。これにより、書き込み系のツールは登録されなくなります。この設定は Devin に限らず、組織内のすべての AI クライアントに適用されます。
- Devin 専用の Atlas ユーザーを作成し、読み取りを許可するプロジェクトに限定して
GROUP_READ_ONLYとGROUP_DATA_ACCESS_READ_ONLYを付与します。GROUP_DATA_ACCESS_READ_ONLYではプロジェクト内のすべてのデータベースのドキュメントを読み取れるため、devin-sessionsユーザーよりも権限の範囲が広くなります。 - プラグインをインストールし、Customize > MCPs で OAuth ログインを一度だけ行います。その際は、自分のアカウントではなく、作成した専用ユーザーでサインインしてください。
- 動作を確認できたら、プラグインをコミットに固定します。
通信はセッションではなく MongoDB と Devin がホストするインフラストラクチャから送信されるため、ステップ 1 の IP リストやネットワークポリシーは適用されません。アクセス権は、7 日間操作がなかった時点、またはサインインから 30 日が経過した時点のいずれか早い方で失効します。失効した場合は再度サインインしてください。なお、アクセスを取り消しても、クライアントが作成したデータベース ユーザーやその他の成果物は削除されないため、必ず確認してください。
再ビルドとバージョンの固定
ブループリントは build 時にapt が解決したバージョンをそのままインストールします。また、Option B の npx はセッションを開始するたびに mongodb-mcp-server を取得します。動作を確認できたら、両方のバージョンを固定し (mongodb-atlas-cli=<version>、mongodb-mongosh=<version>、mongodb-mcp-server@<version>) 、更新する際は意図的に行ってください。シークレットのローテーションに再ビルドは不要ですが、インストール済みのツールを変更する場合は再ビルドが必要です。
ステップ 4: 権限を設定する
認証は Devin が誰であるかを示し、データベースロールと Atlas ロールは Devin が何にアクセスできるかを決めます。MCP のフラグや Knowledge の指示はその上に重ねる補助的な仕組みであり、アクセス制御の境界ではありません。
Explore の場合、インデックスの提案に必要なのは
GROUP_READ_ONLY のみです(クエリの値はマスクされた状態で返されます)。遅いクエリの一覧、クエリ値のサンプル、ログのダウンロードには GROUP_DATA_ACCESS_READ_ONLY も必要です。Atlas CLI のヘルプでは GROUP_DATA_ACCESS_READ_WRITE が求められますが、これは不要です。GROUP_READ_ONLY のみの場合、MCP の atlas-get-performance-advisor ツールは 401 ではなく “No slow query logs found” を返します。そのため、結果が空の場合はロール設定に問題がある可能性があります。
ステップ 5: 検証
新しいセッションを開始し、Devin に以下を run するよう依頼します。 接続性。 接続しているユーザー、付与されているロール、および (設定している場合) Atlas CLI で認証できるかどうかを確認します。not authorized on <prod-db> to execute command、M0/Flex では user is not allowed to do action [insert] on [<prod-db>.devin_probe] というエラーになります) 、2 回目は成功するはずです。
connectionStatus のロールが、付与したプロファイルと一致していることを確認してください。接続が確立できただけでは、十分な確認にはなりません。MCP サーバーについては、MCP ツールを使ってデータベースを一覧表示するよう Devin に依頼し (preconfigured 接続が利用されます) 、次にドキュメントの挿入を依頼してください。--readOnly を指定している場合は insert-many ツールが存在せず、$out を含む集計も拒否されます。
トラブルシューティング
制限事項
保存済みの認証情報が必要です。 Devin の有効期間が短い OIDC トークンは、現時点では MongoDB で利用できません。Administration API が受け付けるのは、サービスアカウントのシークレットまたは APIキーのみです。Atlas の Workload Identity Federation は専用クラスターのデータプレーンに対応していますが、ドライバーレベルでのトークンコールバックが必要で、Devin の発行者 (issuer) との組み合わせはまだ検証されていません。試してみたい場合は、担当のアカウントチームにご連絡ください。 セルフホスト型の MongoDB。 データプレーンの手順 (データベースユーザー、MONGODB_URI、mongosh、MCP サーバー) はそのまま適用できます。Atlas のサービスアカウントや IP アクセスリストはないため、ネットワークアクセスには VPN または独自の許可リストを使用します。

