Claude Media
MongoDB Atlasのクラスタ管理をClaudeに任せる — 作成とスケーリング

MongoDB Atlasのクラスタ管理をClaudeに任せる — 作成とスケーリング

MongoDB Atlas MCPのクラスタ作成・スケーリング・一時停止・Stream Processing管理を、自然言語で操作する手順をまとめます。

MongoDB MCPサーバーには、コレクション操作用のツールとは別に、Atlasのクラスタそのものを操作する20以上のツールが用意されています。クラスタの作成・スケーリング・一時停止に加え、Kafkaパイプラインを扱うAtlas Stream Processingのワークスペース管理まで、すべて自然言語で頼めます。接続の確立はMongoDB MCPサーバーの接続手順、書き込みを止める設定は読み取り専用設定の記事にまとめており、この記事はAtlas管理API経由でのインフラ操作に絞ります。

前提条件

クラスタの作成・スケーリング・一時停止・再開はいずれも書き込み操作です。--readOnlyは付けず、Atlas APIのサービスアカウントで接続します。

手順

サービスアカウントの用意

  1. 1

    サービスアカウントを作る

    Atlasの「Access Manager > Organization Access」で、「Add New > Applications > Service Accounts」を選びます。名前・説明・有効期限を入力して作成します(READMEの例は有効期限7日)。Client Secretは作成直後にしか表示されないので、その場で保存します。

  2. 2

    APIアクセスリストにIPを足す

    接続元のIPアドレスをAPIのアクセスリストに追加します。

  3. 3

    ロールを最小限で割り当てる

    クラスタ管理はProject Cluster Manager、Stream Processingの操作はProject Stream Processing Ownerが推奨ロールです。プロジェクトを新規作成するならOrg Project Creatorが要ります。Organization Ownerは避け、プロジェクト単位のロールを選びます。

  4. 4

    認証情報を環境変数で渡す

    MDB_MCP_API_CLIENT_IDとMDB_MCP_API_CLIENT_SECRETに入れます。コマンドライン引数で渡すとプロセス一覧から見えてしまいます。

この記事のツール名は、自分のマシンで動かすmongodb-mcp-serverのものです。READMEには、OAuthで接続するAtlasマネージドのMCPサーバーも別の選択肢として載っています。

無料クラスタを1コマンドで作る

検証用にすぐ試したいだけなら、atlas-create-free-clusterが最短です。

検証用にAtlasの無料クラスタを1つ作って、サンプルデータセットも入れておいて

atlas-create-free-clusterでクラスタを作成したあと、atlas-load-sample-datasetがAtlasの標準サンプルデータセットを非同期でロードします。ロードには1〜5分かかり、jobIdを使って進捗状態(WORKING・COMPLETED・FAILED)を再確認できます。

本番用クラスタを作成する

本番向けにインスタンスサイズやレプリカ構成を指定する場合はatlas-create-clusterを使います。対応レンジはM10からM80で、レプリカセットとシングルシャードのどちらかを選べます。

M10のレプリカセットをAWSのap-northeast-1リージョンに作成して

コンピュートのオートスケーリングは既定で有効になり、最小インスタンスサイズは指定したサイズ、最大は2段階上のティアに自動設定されます。ディスクのオートスケーリングも常に有効です。CMK(顧客管理キー)による保管時暗号化にも対応していますが、プロジェクト側に有効な暗号化設定が事前に必要です。

起動待ちとスケーリング

手順

作成から接続までの流れ

  1. 1

    atlas-create-clusterを呼ぶ

    呼び出しはすぐ返り、クラスタは利用可能になっていません。

  2. 2

    atlas-inspect-clusterで状態を見る

    「さっき作ったクラスタの状態を確認して」と頼みます。状態がIDLEになるまで繰り返し確認します。

  3. 3

    接続文字列を使う

    IDLEになって初めて接続文字列が使えます。

スケーリングはatlas-upgrade-clusterが担当します。

このクラスタをM30にスケールアップして

targetTier・computeAutoScaling・minInstanceSize・maxInstanceSizeのうち、少なくとも1つを指定する必要があります。無料クラスタやFlexクラスタの場合、アップグレード先はFlexまたはM10 Dedicatedに限られます。atlas-upgrade-clusterはプロバイダとリージョンを1回の質問でまとめて聞き、あいまいな地名はatlas-get-regionsで対応リージョンを引いて解決します。

使わないときはクラスタを止める

atlas-pause-resume-clusterは、Dedicated(M10以上)クラスタの一時停止・再開に使えるツールです。開発・検証用のクラスタを夜間や週末だけ止めておくといった運用がしやすくなります。

検証用のクラスタを一時停止して。今夜は使わないから

無料クラスタやFlexクラスタはこの一時停止の対象外です。コストを抑えたいだけの検証用途では、必要なときだけatlas-create-free-clusterで作り直す方法もあります。

Stream Processingをワークスペース単位で操作する

Atlas Stream Processingは、Kafkaのようなストリーミングデータをパイプラインとして処理する機能です。典型的な操作順序は「ワークスペース作成→接続追加→プロセッサ配置」で、対応するツールもこの順で用意されています。

ap-northeast-1にStream Processingのワークスペースを新規作成して

atlas-streams-buildはワークスペース・接続・プロセッサ・プライベートリンクの4種類のリソースをresourceパラメータで使い分けて作成します。作った後の状態確認や診断はatlas-streams-discoverが担当し、「なぜこのプロセッサが失敗しているか」のような診断的な問いかけにも対応します。

このプロセッサが失敗している原因を診断して

稼働中のプロセッサを止めたり、パイプラインの内容を書き換えたりする操作はatlas-streams-manageです。典型的な変更手順は「プロセッサ停止→プロセッサ修正→プロセッサ再開」の順で、atlas-streams-discoverで状態を確認してからatlas-streams-manageを呼ぶ流れです。ワークスペースやプロセッサを削除するatlas-streams-teardownは、実行前に対象のプロセッサ数・接続数を要約し、依存関係にあるプロセッサをできる範囲で明示したうえで安全確認を行います。

クラスタの状態を監視する

クラスタを作った後の運用でも、Atlas管理ツールは役立ちます。atlas-list-clustersでプロジェクト内のクラスタを一覧し、atlas-get-performance-advisorでインデックスの改善提案や遅いクエリのサンプルを取得できます。

このプロジェクトのクラスタで、パフォーマンスアドバイザーが出している索引の提案を教えて

atlas-get-performance-advisorは、推奨インデックス・不要インデックスの削除提案・スキーマの改善案・直近の遅いクエリログ(最大50件)をまとめて返します。トリガーされたアラートを確認したい場合はatlas-list-alertsを使います。既定ではOPEN状態のアラートのみが対象で、TRACKINGやCLOSEDまで見たい場合はステータスを指定します。

今アラートが出ているものを一覧して。解決済みのものは除いて

組織やプロジェクトの構造そのものを把握したいときはatlas-list-orgs・atlas-list-projects・atlas-list-db-usersが使えます。新しいプロジェクトを作るatlas-create-projectや、プロジェクトにデータベースユーザーを追加するatlas-create-db-userも同じツール群に含まれており、atlas-create-db-userは既定のconfirmationRequiredToolsの対象です。

Atlas Localでローカルにマネージド相当の環境を作る

クラウドのAtlasクラスタとは別に、ローカル環境にAtlas相当のデプロイメントを作る「Atlas Local」(Docker Hubのmongodb/mongodb-atlas-local)向けのツール群もあります。atlas-local-create-deploymentでローカルデプロイメントを作成し、atlas-local-connect-deploymentで接続します。

ローカルにAtlas Localのデプロイメントを1つ立てて、ベクター検索も試したい

既定のイメージタグはpreviewで、ベクター検索を含むAuto-Embed機能を試すにはVoyage AIのAPIキー(voyageApiKey)が必要です。クラウド側のクラスタを使わずに試したい場合は、Atlas Localも候補になります。使い終えたデプロイメントはatlas-local-delete-deploymentで削除し、一覧はatlas-local-list-deploymentsで確認できます。

課金に直結する操作ほど確認が薄い

MongoDB MCPサーバーは既定でatlas-create-access-list・atlas-create-db-user・drop-database・drop-collection・delete-many・drop-index・atlas-streams-manage・atlas-streams-teardownの8つをconfirmationRequiredToolsに含め、elicitation対応クライアントでは実行前に確認プロンプトを挟みます。

一方で、atlas-create-cluster・atlas-upgrade-cluster・atlas-pause-resume-clusterはこのデフォルトリストに入っていません。Stream Processingのワークスペースを作るatlas-streams-buildも同じです。M10以上のクラスタを作ってスケールアップする操作が、既定では無確認で動きます。確認を挟みたいときは、confirmationRequiredToolsにこれらのツール名を自分で足します。下の例は既定の8つも並べ直しています。

claude mcp add-json mongodb-atlas \
  '{"command":"npx","args":["-y","mongodb-mcp-server@latest"],"env":{"MDB_MCP_API_CLIENT_ID":"your-client-id","MDB_MCP_API_CLIENT_SECRET":"your-client-secret","MDB_MCP_CONFIRMATION_REQUIRED_TOOLS":"atlas-create-access-list,atlas-create-db-user,drop-database,drop-collection,delete-many,drop-index,atlas-streams-manage,atlas-streams-teardown,atlas-create-cluster,atlas-upgrade-cluster,atlas-pause-resume-cluster"}}' \
  -s user

クラスタ作成そのものを封じる選択肢

確認プロンプトを追加するのではなく、クラスタの作成・スケーリング自体をツールとして公開しないという選択肢もあります。disabledToolsには、ツール名だけでなくcreate・update・deleteのような操作種別と、atlas・mongodbというカテゴリ単位での指定ができます。

{
  "disabledTools": ["atlas-create-cluster", "atlas-upgrade-cluster", "atlas-pause-resume-cluster"]
}

create・update・deleteのような操作種別を指定すると、Atlasのクラスタ操作だけでなくドキュメントの挿入や更新まで一括で止まります。READMEのcreateの説明には「create cluster, insert document」の両方が挙がっているためです。クラスタ操作だけを隠したいときは、上のようにツール名で指定します。環境変数なら次の形です。

export MDB_MCP_DISABLED_TOOLS="atlas-create-cluster,atlas-upgrade-cluster,atlas-pause-resume-cluster"

環境変数はカンマ区切り、コマンドライン引数は--disabledTools create update delete atlasのようにスペース区切りです。上のJSONは、MDB_MCP_CONFIGで読み込む設定ファイルに書く形です。

くらべる

確認を挟むか、ツールを隠すか

confirmationRequiredTools

確認を挟む

Claudeに任せつつ、実行前に承認画面を出したい運用向けです。応答待ちは既定で300000ミリ秒(5分)です。

disabledTools

ツールを隠す

調査や監視だけをさせ、インフラの変更は人間が手でやる運用向けです。ツールが公開されないので、Claudeから呼ぶこと自体ができません。

課金に直結する操作をツール公開の段階で止めるか、確認プロンプトで止めるかという判断軸は、Kubernetes MCPサーバーの権限設計で扱った--read-onlyとdisable_destructiveの使い分けとも共通しています。

よくあるつまずき

  • Atlasのツールが一覧に出ない: 原因は3通りあります。READMEによると、Atlasのツールは認証情報を設定したときだけ使えます。--readOnlyを付けるとcreate・update・deleteの操作種別のツールは登録されません。disabledToolsでatlasやcreateを指定した場合も同じです
  • 確認プロンプトが出ずに実行された: 確認はelicitation対応のクライアントだけで働きます。非対応のクライアントでは、confirmationRequiredToolsに入れたツールも確認なしで動きます
  • Atlas Localのデプロイで自動埋め込みが使えない: ベクター検索のAuto-Embedつきでデプロイを作るにはVoyage AIのAPIキーが必要です。MDB_MCP_VOYAGE_API_KEYか--voyageApiKeyで渡します
  • リージョン名を曖昧に指定してツールが止まる: atlas-upgrade-clusterでは、プロバイダとリージョンの両方が確定していないと、Claudeはまとめて聞き返します。地名があいまいなときはatlas-get-regionsで候補を引いて解決します

まとめ

Claudeに任せる範囲を決める最初の分かれ目は、確認プロンプトで見張るか、ツール自体を隠すかです。迷うなら、読み取り系のツールだけで始め、書き込みは用途が固まってから足す進め方もあります。

この記事を共有:XはてブLinkedIn