atlas-mcp-server について
atlas-mcp-serverは、AIエージェントや他のMCPクライアントをMongoDBデータベースとAtlasに接続します。データベースおよびAtlasの操作を提供し、読み取り専用モードや複数の認証・実行方法に対応しています。
主な機能
- 01コレクションデータの検索と集計
- 02スキーマ、インデックス、統計情報の確認
- 03データベースオブジェクトの作成、更新、削除
- 04MongoDB URIまたはAtlas認証情報で接続
- 05ローカルまたはDockerで実行
活用シーン
- 01コレクションを調べて条件付き検索を実行
- 02インデックスとデータベース統計を確認
- 03MCPクライアントからドキュメントやコレクションを管理
MCP 対応
MCPクライアント向けに、検索、集計、メタデータ確認、データ変更などのMongoDBデータベースおよびAtlas操作ツールを提供します。ローカル実行に加え、Atlasのホスト型リモート接続も利用できます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
18掲載時のツール一覧 · 3 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| connectionId | string | はい | |
| database | string | はい | |
| pipeline | array | はい | |
| responseBytesLimit | number | いいえ |
詳細
MongoDB MCP Server
MongoDB データベースおよび MongoDB Atlas と連携するための Model Context Protocol サーバーです。
クイックスタート
AI エージェント向けの公式 MongoDB プラグインを使用する
MongoDB MCP Server には、AI エージェント向けの公式 MongoDB プラグインが同梱されています。以下のプラグインを利用できます。
mongodb-atlas — OAuth を使用して、MongoDB がホストする Atlas MCP サーバーに接続します。ローカルで何かを実行する必要はなく、AI エージェントから MongoDB Atlas に接続する際に推奨される方法です。
- Cursor:マーケットプレイス
- VSCode:拡張機能ビュー(
⇧⌘X/Ctrl+Shift+X)を開き、@agentPluginsを検索してmongodb-atlasをインストールします。 - Claude:マーケットプレイス
- Codex:
/pluginsを開き、mongodb-atlasをインストールします。 - GitHub Copilot CLI:
copilot plugin install mongodb-atlasを実行します。 - Grok:Grok Build で
/marketplaceを開き、mongodb-atlasをインストールします。
mongodb — MongoDB MCP サーバーをローカルで実行し、任意のセルフマネージドデプロイメントに接続します。
- Cursor:マーケットプレイス
- Claude:マーケットプレイス
- Gemini:マーケットプレイス
- Codex:
codex plugin marketplace add mongodb/agent-skillsを実行し、/pluginsを開いてmongodbをインストールします。 - GitHub Copilot CLI:
copilot plugin install mongodbを実行します。 - Grok:Grok Build で
/marketplaceを開き、mongodbをインストールします。
セットアップスクリプトを使用する
次のコマンドを実行すると、ローカル MCP サーバーを手動でセットアップできます。
npx -y mongodb-mcp-server@latest setup
MongoDB 接続文字列または Atlas API 認証情報の設定を含む、対話形式のセットアップ手順が開始されます。
より高度なセットアップオプションについては、以下の手動セットアップセクションを参照してください。
MongoDB MCP Server のセットアップスキルを使用する
MongoDB MCP Server のセットアップスキルを追加して使用すると、AI エージェントを使ってローカル MCP サーバーを設定できます。
npx skills add https://github.com/mongodb/agent-skills --skill mongodb-mcp-setup
手動設定を使用する
MongoDB MCP Server を手動で設定する方法については、手動セットアップを参照してください。
📚 目次
前提条件
メモ
Node 20.x のサポートは非推奨となっており、今後のリリースで削除されます。Node 22.13 以降にアップグレードしてください。移行の詳細については https://nodejs.org/en/blog/migrations/v20-to-v22 を参照してください。
-
Node.js
- v22.13.0 以降。
node -vで確認してください。
- v22.13.0 以降。
-
MongoDB 接続文字列または Atlas API 認証情報。
- Atlas ツールを使用するには、**サービスアカウントの Atlas API 認証情報**が必要です。MongoDB Atlas でサービスアカウントを作成し、その認証情報を使って認証できます。詳しくはAtlas API アクセスを参照してください。
- MongoDB 接続文字列がある場合は、それを直接使用して MongoDB インスタンスに接続できます。
手動セットアップ
🔒 セキュリティに関する推奨事項 1: Atlas API の認証情報を使用する場合は、サービスアカウントに必要最小限の権限のみを割り当ててください。詳細については、Atlas API の権限を参照してください。
🔒 セキュリティに関する推奨事項 2: セキュリティを強化するため、接続文字列や API の認証情報などの機密性の高い設定は、コマンドライン引数ではなく、環境変数を使用して渡すことを強くおすすめします。コマンドライン引数はプロセス一覧に表示されたり、さまざまなシステム上の場所に記録されたりするため、秘密情報が漏えいする可能性があります。環境変数を使用すると、機密情報をより安全に扱えます。
ほとんどの MCP クライアントでは、MCP サーバーを追加するために設定ファイルを作成または変更する必要があります。
注:設定ファイルの構文はクライアントによって異なる場合があります。最新の想定構文については、次のリンクを参照してください。
デフォルトの安全に関する注意事項: 以下のすべての例には、安全な読み取り専用アクセスを確保するため、デフォルトで
--readOnlyが含まれています。書き込み操作を有効にする必要がある場合は、--readOnlyを削除してください。
オプション 1:接続文字列
接続文字列は環境変数を介して渡せます。有効なユーザー名とパスワードを使用してください。
{
"mcpServers": {
"MongoDB": {
"command": "npx",
"args": ["-y", "mongodb-mcp-server@latest", "--readOnly"],
"env": {
"MDB_MCP_CONNECTION_STRING": "mongodb://localhost:27017/myDatabase"
}
}
}
}
注:接続文字列は、ローカルインスタンスでも Atlas クラスターでも、任意の MongoDB クラスターに接続するよう設定できます。
オプション 2:MongoDB Atlas 管理の MCP サーバーに接続する
MongoDB Atlas を使用する場合は、AI エージェントに mongodb-atlas プラグインをインストールする方法がおすすめです。このプラグインは OAuth 認証を自動的に処理します。
手動で設定する場合は、OAuth を使用して Atlas リモート MCP サーバーをセットアップする方法について、クライアント別の手順を参照してください。または、サービスアカウントの認証情報を使用して mongodb-atlas-mcp-remote パッケージで接続することもできます。セットアップ手順については、パッケージの READMEを参照してください。
注: HTTP 経由で静的 API キーを使用して、リモート MongoDB MCP サーバーに認証することはできません。次のいずれかを行う必要があります。
- OAuth フローに対応したクライアントを使用する。
mongodb-atlas-mcp-remoteの stdio サーバーを使用する。このサーバーには、静的なMDB_MCP_API_CLIENT_IDおよびMDB_MCP_API_CLIENT_SECRET環境変数を使用して認証できます。
サービスアカウントの認証情報を使用して mongodb-atlas-mcp-remote の stdio サーバーに接続するには、クライアントの MCP 設定に追加します。
{
"mcpServers": {
"mongodb-atlas-mcp-remote": {
"type": "stdio",
"command": "npx",
"args": ["-y", "mongodb-atlas-mcp-remote@latest"],
"env": {
"MDB_MCP_API_CLIENT_ID": "$CLIENT_ID",
"MDB_MCP_API_CLIENT_SECRET": "$SECRET"
}
}
}
}
オプション 3:Atlas API の認証情報
Atlas API サービスアカウントの認証情報を使用します。Atlas API アクセスセクションのすべての手順に従う必要があります。
{
"mcpServers": {
"MongoDB": {
"command": "npx",
"args": ["-y", "mongodb-mcp-server@latest", "--readOnly"],
"env": {
"MDB_MCP_API_CLIENT_ID": "your-atlas-service-accounts-client-id",
"MDB_MCP_API_CLIENT_SECRET": "your-atlas-service-accounts-client-secret"
}
}
}
}
オプション 4:環境変数とコマンドライン引数を使用するスタンドアロンサービス
設定ファイルで定義した環境変数を読み込むか、以下の例のように明示的に設定して、npx 経由でサーバーを実行できます。
# Set your credentials as environment variables first
export MDB_MCP_API_CLIENT_ID="your-atlas-service-accounts-client-id"
export MDB_MCP_API_CLIENT_SECRET="your-atlas-service-accounts-client-secret"
# Then start the server
npx -y mongodb-mcp-server@latest --readOnly
💡 プラットフォームに関する注意: 上記の例では、Unix/Linux/macOS の構文を使用しています。Windows をお使いの場合は、プラットフォーム固有の手順について[環境変数](#environment-variables)を参照してください。
- 設定オプションの一覧については、[設定オプション](#configuration-options)を参照してください
- Atlas Service Accounts の認証情報の設定については、[Atlas API アクセス](#atlas-api-access)を参照してください
- MCP ファイル内の環境変数を使用した接続文字列の[例](#connection-string-with-environment-variables)
- MCP ファイル内の環境変数を使用した Atlas API 認証情報の[例](#atlas-api-credentials-with-environment-variables)
オプション 5:Docker の使用
MongoDB MCP Server は Docker コンテナで実行できます。これにより分離された環境で実行でき、ローカルへの Node.js のインストールも不要です。
環境変数を使用して実行する
MongoDB の接続文字列、または Atlas API 認証情報のいずれかを指定できます。
オプション A:設定なし
docker run --rm -i \
mongodb/mongodb-mcp-server:latest
オプション B:MongoDB 接続文字列を使用
# Set your credentials as environment variables first
export MDB_MCP_CONNECTION_STRING="mongodb+srv://username:[email protected]/myDatabase"
# Then start the docker container
docker run --rm -i \
-e MDB_MCP_CONNECTION_STRING \
-e MDB_MCP_READ_ONLY="true" \
mongodb/mongodb-mcp-server:latest
💡 プラットフォームに関する注意: 上記の例では、Unix/Linux/macOS の構文を使用しています。Windows をお使いの場合は、プラットフォーム固有の手順について[環境変数](#environment-variables)を参照してください。
オプション C:Atlas API 認証情報を使用
# Set your credentials as environment variables first
export MDB_MCP_API_CLIENT_ID="your-atlas-service-accounts-client-id"
export MDB_MCP_API_CLIENT_SECRET="your-atlas-service-accounts-client-secret"
# Then start the docker container
docker run --rm -i \
-e MDB_MCP_API_CLIENT_ID \
-e MDB_MCP_API_CLIENT_SECRET \
-e MDB_MCP_READ_ONLY="true" \
mongodb/mongodb-mcp-server:latest
💡 プラットフォームに関する注意: 上記の例では、Unix/Linux/macOS の構文を使用しています。Windows をお使いの場合は、プラットフォーム固有の手順について[環境変数](#environment-variables)を参照してください。
MCP 設定ファイルでの Docker
オプションなし:
{
"mcpServers": {
"MongoDB": {
"command": "docker",
"args": [
"run",
"--rm",
"-e",
"MDB_MCP_READ_ONLY=true",
"-i",
"mongodb/mongodb-mcp-server:latest"
]
}
}
}
接続文字列を使用する場合:
{
"mcpServers": {
"MongoDB": {
"command": "docker",
"args": [
"run",
"--rm",
"-i",
"-e",
"MDB_MCP_CONNECTION_STRING",
"-e",
"MDB_MCP_READ_ONLY=true",
"mongodb/mongodb-mcp-server:latest"
],
"env": {
"MDB_MCP_CONNECTION_STRING": "mongodb+srv://username:[email protected]/myDatabase"
}
}
}
}
Atlas API 認証情報を使用する場合:
{
"mcpServers": {
"MongoDB": {
"command": "docker",
"args": [
"run",
"--rm",
"-i",
"-e",
"MDB_MCP_READ_ONLY=true",
"-e",
"MDB_MCP_API_CLIENT_ID",
"-e",
"MDB_MCP_API_CLIENT_SECRET",
"mongodb/mongodb-mcp-server:latest"
],
"env": {
"MDB_MCP_API_CLIENT_ID": "your-atlas-service-accounts-client-id",
"MDB_MCP_API_CLIENT_SECRET": "your-atlas-service-accounts-client-secret"
}
}
}
}
HTTP 互換性
カスタム HTTP クライアントやホストについては、プロトコルヘッダー、リダイレクト、レガシーセッション、リクエストサイズの制限などを含む、ライブラリガイドの[HTTP 互換性要件](MCP_SERVER_LIBRARY.md#http-compatibility)を参照してください。
🛠️ サポートされているツール
ツール一覧
MongoDB Database Tools
aggregate- MongoDB コレクションに対して集計を実行しますaggregate-db- MongoDB データベースに対して集計を実行しますcollection-indexes- コレクションのインデックスを説明しますcollection-schema- コレクションのスキーマを説明しますcollection-storage-size- コレクションのサイズを取得しますconnect- MongoDB インスタンスに接続しますcount- db.collection.count() を使用して MongoDB コレクション内のドキュメント数を取得します。query は任意のフィルターパラメーターですcreate-collection- データベースに新しいコレクションを作成します。データベースが存在しない場合は、自動的に作成されます。create-index- コレクションのインデックスを作成しますdb-stats- 単一のデータベースの使用状況を反映する統計情報を返しますdelete-many- フィルターに一致するすべてのドキュメントを MongoDB コレクションから削除しますdisconnect- MongoDB 接続を閉じ、その connectionId を無効にします。drop-collection- データベースからコレクションまたはビューを削除します。このメソッドは、削除したコレクションに関連付けられたインデックスもすべて削除します。drop-database- 指定されたデータベースを削除し、関連するデータファイルも削除しますdrop-index- 指定されたデータベースとコレクションのインデックスを削除します。explain- 評価対象のメソッドについて、クエリオプティマイザーが選択した最適なプランの実行を説明する統計情報を返しますexport- クエリまたは集計結果を、指定された EJSON 形式でエクスポートします。find- MongoDB コレクションに対して find クエリを実行しますinsert-many- MongoDB コレクションにドキュメントの配列を挿入します。ドキュメントのリストが com.mongodb/maxRequestPayloadBytes を超える場合は、バッチに分けて挿入することを検討してください。list-collections- 指定されたデータベースのすべてのコレクションを一覧表示しますlist-connections- アクティブな MongoDB 接続とその connectionId を一覧表示します。これを使用して、以前に確立した connectionId を確認できます。list-databases- MongoDB 接続のすべてのデータベースを一覧表示しますmongodb-logs- mongod の最新のログイベントを返しますrename-collection- MongoDB データベース内のコレクションの名前を変更しますupdate-many- コレクション内の、指定されたフィルターに一致するすべてのドキュメントを更新します。ドキュメントのリストが com.mongodb/maxRequestPayloadBytes を超える場合は、バッチに分けて更新することを検討してください。
MongoDB Atlas Tools
atlas-connect-cluster- MongoDB Atlas クラスターに接続し、ほかの MongoDB ツールに渡すconnectionIdを取得します。呼び出すたびに新しい独立した接続が確立され、複数の接続を同時にアクティブにできます。atlas-create-access-list- MongoDB Atlas クラスターへのアクセスを許可する IP/CIDR 範囲を設定します。atlas-create-cluster- MongoDB Atlas クラスター(M10~M80、レプリカセットまたは単一シャード)を作成します。コンピューティングの自動スケーリングはデフォルトで有効です。最小インスタンスサイズは選択したインスタンスサイズに設定され、最大サイズはその 2 階層上に設定されます。ディスクの自動スケーリングは常に有効です。カスタマー管理キー(CMK)による保存時の暗号化がサポートされています。CMK プロバイダーには、プロジェクト内ですでに有効な保存時の暗号化設定が必要です。このツールはすぐに応答を返します。クラスターが準備できたかどうかは、atlas-inspect-clusterツールでクラスターの状態(IDLE)をポーリングして確認してください。クラスターがIDLE状態になるまでは、接続文字列を利用できません。atlas-create-db-user- MongoDB Atlas データベースユーザーを作成します。atlas-create-free-cluster- 無料の MongoDB Atlas クラスターを作成します。atlas-create-project- MongoDB Atlas プロジェクトを作成します。atlas-get-performance-advisor- MongoDB Atlas のパフォーマンスアドバイザーによる推奨事項と提案を取得します。対象となる操作には、推奨インデックス、インデックス削除の提案、スキーマの提案、および最新の低速クエリログのサンプル(最大 50 件)が含まれます。atlas-get-regions- クラウドプロバイダーでサポートされている MongoDB Atlas のリージョンを一覧表示します。atlas-inspect-access-list- MongoDB Atlas クラスターへのアクセスが許可されている IP/CIDR 範囲を調べます。atlas-inspect-cluster- MongoDB Atlas クラスターのメタデータを調べます。atlas-list-alerts- MongoDB Atlas プロジェクトで発生したアラートを一覧表示します。これは Atlas が発生させたアラートであり、アラートを定義するアラート設定ではありません。デフォルトではOPENのアラートが対象です。ほかのアラートを確認するには、ステータスにTRACKINGまたはCLOSEDを指定してください。atlas-list-clusters- MongoDB Atlas クラスターを一覧表示します。atlas-list-db-users- MongoDB Atlas データベースユーザーを一覧表示します。atlas-list-orgs- MongoDB Atlas 組織を一覧表示します。atlas-list-projects- MongoDB Atlas プロジェクトを一覧表示します。atlas-load-sample-dataset- MongoDB のサンプルデータセットを Atlas クラスターに読み込むか、すでに開始した読み込みのステータスを確認します。新しい読み込みを開始するには、clusterNameを指定してください。読み込みは非同期で実行され、応答にはjobIdと初期状態が含まれます。進行状況を確認するには、このツールを再度jobIdとともに呼び出してください(サンプルデータセットの読み込みには通常 1~5 分かかります)。状態はWORKING、COMPLETED、またはFAILEDです。atlas-pause-resume-cluster- 専用の MongoDB Atlas クラスター(M10 以上)を一時停止または再開します。atlas-streams-build- Atlas Stream Processing リソースを作成します。「Kafka パイプラインをセットアップする」「ワークスペースを作成する」「接続を追加する」「プロセッサーをデプロイする」場合に使用します。resource='workspace'を指定すると、新しいワークスペースを作成します(クラウドプロバイダー、リージョン、階層を指定してください)。resource='connection'を指定すると、既存のワークスペースにデータソースまたはシンクを追加します。resource='processor'を指定すると、パイプラインを含むストリームプロセッサーをデプロイします。resource='privatelink'を指定すると、プライベートネットワークをセットアップします。一般的なワークフローは、ワークスペースの作成 → 接続の追加 → プロセッサーのデプロイです。atlas-streams-discover- Atlas Stream Processing リソースを検出して調べます。「プロセッサーが失敗する原因を調べる」「使用中のワークスペースを確認する」「プロセッサーの統計を表示する」「プロセッサーの健全性を確認する」場合にも使用します。list-workspacesを使用すると、プロジェクト内のすべてのワークスペースを確認できます。特定のリソースの詳細を確認するには、inspect アクションを使用してください。diagnose-processorを使用すると、状態、統計、接続の健全性、最近のエラーを含む総合的な健全性レポートを取得できます。get-networkingを使用すると、PrivateLink とアカウントの詳細を確認できます。atlas-streams-manage- Atlas Stream Processing リソースを管理します。プロセッサーの開始・停止、パイプラインの変更、設定の更新ができます。「パイプラインを変更する」「プロセッサーをスケールアップする」「ワークスペースの階層を更新する」場合にも使用します。一般的なワークフローは、action='stop-processor'→action='modify-processor'→action='start-processor'です。管理する前に、atlas-streams-discoverのアクションinspect-processorを使用して状態を確認してください。atlas-streams-teardown- Atlas Stream Processing リソースを削除します。「ワークスペースを削除する」「ソースの接続を解除する」「すべてのプロセッサーを削除する」「Streams 環境をクリーンアップする」場合にも使用します。削除前に基本的な安全確認を行います。プロセッサーと接続の数を要約し、可能な場合はプロセッサーが参照する接続を示します。また、削除を試みた際にプロセッサーが実行中であれば、API エラーを表示します。削除前にatlas-streams-discoverを使用してリソースを確認してください。atlas-upgrade-cluster- MongoDB Atlas クラスターをアップグレードまたはスケールします。Free クラスターと Flex クラスターは、Flex または M10 Dedicated にアップグレードできます。Dedicated クラスターは別のインスタンスサイズにスケールでき、コンピューティングの自動スケーリング設定も更新できます。Dedicated クラスターをスケールする際は、targetTier、computeAutoScaling、minInstanceSize、maxInstanceSizeのいずれかを指定する必要があります。M10 Dedicated にアップグレードする場合、コンピューティングの自動スケーリングはデフォルトで有効になります。最小インスタンスサイズは選択したインスタンスサイズに設定され、最大サイズはその 2 階層上に設定されます(上書きしない場合)。LLM への注意:プロバイダーとリージョンがまだわからない場合は、このツールを呼び出す前に、両方をまとめて質問してください。自然言語で示された場所や不確かなリージョンコードを解決するには、このツールを呼び出す前にatlas-get-regionsを使用してください。 注:atlas ツールは、configuration セクションで認証情報を設定した場合にのみ使用できます。
MongoDB Atlas Local ツール
atlas-local-connect-deployment- MongoDB Atlas Local デプロイメントに接続し、他の MongoDB ツールに渡すための connectionId を取得しますatlas-local-create-deployment- MongoDB Atlas ローカルデプロイメントを作成します。デフォルトのイメージは preview です。ユーザーがイメージタグを指定しない場合は、デフォルトで preview が使用されることを伝え、詳細について次のリンクを提示してください:https://hub.docker.com/r/mongodb/mongodb-atlas-localatlas-local-delete-deployment- MongoDB Atlas ローカルデプロイメントを削除しますatlas-local-list-deployments- MongoDB Atlas ローカルデプロイメントを一覧表示します
MongoDB アシスタントツール
list-knowledge-sources- MongoDB アシスタントのナレッジベースで利用可能なデータソースを一覧表示します。利用可能なデータソースを調べたり、search-knowledge で使用する検索フィルターパラメーターを確認したりする際に使用します。search-knowledge- MongoDB アシスタントのナレッジベース内の情報を検索します。これには、公式ドキュメント、専門家による厳選されたガイダンス、MongoDB が提供するその他のリソースが含まれます。データソースとバージョンによるフィルタリングに対応しています。
📄 サポート対象のリソース
config- サーバー設定です。ユーザーが環境変数または起動引数で指定した値が含まれ、機密パラメーターは伏せられます。このリソースには URIconfig://configからアクセスできます。debug- MongoDB 接続の問題に関するデバッグ情報です。直近の接続試行とエラー情報を追跡します。このリソースには URIdebug://mongodbからアクセスできます。exported-data- エクスポートツールでエクスポートしたデータにアクセスするためのリソーステンプレートです。このテンプレートには、エクスポートツールで生成された一意の名前を持つエクスポートを指定して、URIexported-data://{exportName}からアクセスできます。
設定
🔒 セキュリティのベストプラクティス: API 認証情報(
MDB_MCP_API_CLIENT_ID、MDB_MCP_API_CLIENT_SECRET)や接続文字列(MDB_MCP_CONNECTION_STRING)などの機密設定には、コマンドライン引数ではなく環境変数を使用することを強く推奨します。環境変数はプロセス一覧に表示されず、機密データをより安全に保護できます。
MongoDB MCP サーバーは複数の方法で設定できます。優先順位は次のとおりです(高い順)。
- コマンドライン引数
- 環境変数
- 設定ファイル
設定オプション
| 環境変数/CLI オプション | デフォルト | 説明 |
|---|---|---|
MDB_MCP_AGGREGATION_COUNT_MAX_TIME_MS_CAP / --aggregationCountMaxTimeMsCap | <not set> | 非推奨です。代わりに aggregationCountTimeoutMs を使用してください。 |
MDB_MCP_AGGREGATION_COUNT_TIMEOUT_MS / --aggregationCountTimeoutMs | 60000 | 集計操作のカウントフェーズにおける最大時間(ミリ秒)です。結果が上限に達したかどうかを判断する際、ドキュメントのカウントにかかる時間を制限するために使用されます。 |
MDB_MCP_ALLOW_REQUEST_OVERRIDES / --allowRequestOverrides | false | true に設定すると、リクエストヘッダーおよびクエリパラメーターを使用して設定値を上書きできます。 |
MDB_MCP_API_CLIENT_ID / --apiClientId | <not set> | 認証用の Atlas API クライアント ID です。Atlas ツールの実行に必要です。 |
MDB_MCP_API_CLIENT_SECRET / --apiClientSecret | <not set> | 認証用の Atlas API クライアントシークレットです。Atlas ツールの実行に必要です。 |
MDB_MCP_ASSISTANT_BASE_URL / --assistantBaseUrl | "https://knowledge.mongodb.com/api/v1/" | MongoDB Assistant API のベース URL です。 |
MDB_MCP_ATLAS_TEMPORARY_DATABASE_USER_LIFETIME_MS / --atlasTemporaryDatabaseUserLifetimeMs | 14400000 | MongoDB Atlas クラスターへの接続時に作成される一時データベースユーザーが、自動的に削除されるまでアクティブである時間(ミリ秒)です。 |
MDB_MCP_CONFIRMATION_REQUIRED_TOOLS / --confirmationRequiredTools | "atlas-create-access-list,atlas-create-db-user,drop-database,drop-collection,delete-many,drop-index,atlas-streams-manage,atlas-streams-teardown" | 実行前にユーザーの確認が必要なツール名をカンマ区切りで指定します。クライアントがエリシテーションをサポートしている必要があります。 |
MDB_MCP_CONNECTION_IDLE_TIMEOUT_MS / --connectionIdleTimeoutMs | 600000 | MongoDB 接続が使用されない状態(その接続に触れるツール呼び出しがない状態)で、基盤となる接続プールとサーバー側の状態を解放するために閉じられるまでの時間(ミリ秒)です。接続スコープにかかわらず、接続ごとに適用されます。事前設定済みの接続は対象外で、リーパーはこの間隔で実行されます。リーパーを無効にするには 0 を設定します。負の値は指定できません。 |
MDB_MCP_CONNECTION_SCOPE / --connectionScope | "session" | 実行時に作成される MongoDB 接続の可視範囲です。'session'(デフォルト)では、各 MCP セッションからは自身が作成した接続(および共有の 'preconfigured' 接続)のみが見え、セッション終了時に接続が閉じられます。'global' では、すべてのセッションで接続が共有され、セッションのローテーション後も維持されます。非推奨です。MCP プロトコルはセッションレスに移行中のため、このオプションはまもなく削除され、接続スコープのデフォルトは 'global' になります。サーバーを共有するユースケースでは、Atlas-Managed MCP サーバーを使用するか、@mongodb-js/mcp-cli パッケージを使用して認証済みライブラリを構築してください。注:セッションレス(2026-07-28)HTTP パスでは、mcp-session-id のないリクエストは共有の ('global') スコープにフォールバックし、リクエスト間で接続を維持できます。従来のセッションありのパスでは、常にサーバー発行のセッションが使用されます。 |
MDB_MCP_CONNECTION_STRING / --connectionString | <not set> | データベースに直接接続するための MongoDB 接続文字列です。省略可能です。設定しない場合は、MongoDB データを操作する前に接続ツールを呼び出す必要があります。 |
MDB_MCP_DANGEROUS_HOST_BINDING / --dangerousHostBinding | false | true に設定すると、HTTP サーバー(および監視サーバー)を 0.0.0.0、LAN IP、空のホスト(すべてのインターフェース)などのループバック以外のホストにバインドできます。ループバック以外のホストにバインドすると、サーバーがネットワーク全体に公開され、不正アクセスを許す可能性があります。デフォルトでは無効です。この値が true でない限り、サーバーはループバック以外のホストでの起動を拒否します。 |
MDB_MCP_DISABLE_SERVER_SIDE_JS / --disableServerSideJs | true | true に設定すると、クエリフィルターおよび集計パイプラインでサーバー側 JavaScript 演算子($where、$function、$accumulator など)の使用を禁止します。 |
MDB_MCP_DISABLE_UNTRUSTED_DATA_WARNING / --disableUntrustedDataWarning | false | true に設定すると、ツールの応答には、潜在的に信頼できないデータ(ドキュメントやクエリ結果など)が、区切り文字で囲まれたりプロンプトインジェクションの警告が付与されたりせず、そのまま含まれます。 |
MDB_MCP_DISABLED_TOOLS / --disabledTools | "" | 無効にするツール名、操作タイプ、および/またはツールのカテゴリをカンマ区切りで指定します。 |
MDB_MCP_DRY_RUN / --dryRun | false | true の場合、サーバーをドライモードで実行します。設定と有効なツールを出力してから、サーバーを起動せずに終了します。 |
MDB_MCP_ELICITATION_TIMEOUT_MS / --elicitationTimeoutMs | 300000 | エリシテーションリクエスト(ツールの確認プロンプトなど)にユーザーが応答するまでの時間(ミリ秒)です。時間内に応答がない場合は失敗します。 |
MDB_MCP_EVICTION_IDLE_GRACE_M_S / --evictionIdleGraceMS | 120000 | HTTP トランスポートの maxSessions 上限に達したときに、最長時間未使用のセッションを退避できる状態になるまでに必要なアイドル時間です(transport が 'http' の場合のみ使用)。値が idleTimeoutMs を超える場合、idleTimeoutMs に切り詰められます。 |
MDB_MCP_EXPORT_CLEANUP_INTERVAL_MS / --exportCleanupIntervalMs | 120000 | 期限切れのエクスポートファイルを削除するエクスポートクリーンアップサイクルの間隔(ミリ秒)です。 |
MDB_MCP_EXPORT_TIMEOUT_MS / --exportTimeoutMs | 300000 | エクスポートが期限切れと見なされ、クリーンアップの対象となるまでの時間(ミリ秒)です。 |
MDB_MCP_EXPORTS_PATH / --exportsPath | 下記参照* | エクスポートされたデータファイルを保存するフォルダーです。 |
MDB_MCP_EXTERNALLY_MANAGED_SESSIONS / --externallyManagedSessions | false | true の場合、2025 年当時の HTTP トランスポートでは、'mcp-session-id' ヘッダーを通じて外部から指定されたセッション ID を受け入れます。外部 ID が指定されている場合、初期化リクエストは省略可能です。暗黙的に再初期化されたセッションでは、セッションストアからクライアントが以前にネゴシエートした機能が復元されます。 |
MDB_MCP_HEALTH_CHECK_HOST / --healthCheckHost | <not set> | 非推奨です。代わりに monitoringServerHost を使用してください。healthCheck HTTP サーバーをバインドするホストアドレスです(transport が 'http' の場合のみ使用)。指定する場合は、healthCheckPort も設定する必要があります。 |
MDB_MCP_HEALTH_CHECK_PORT / --healthCheckPort | <not set> | 非推奨です。代わりに monitoringServerPort を使用してください。healthCheck HTTP サーバーのポート番号です(transport が 'http' の場合のみ使用)。指定する場合は、healthCheckHost も設定する必要があります。 |
MDB_MCP_HTTP_BODY_LIMIT / --httpBodyLimit | 102400 | HTTP リクエストボディの最大サイズ(バイト)です(transport が 'http' の場合のみ使用)。この値は、Express.js の json() ミドルウェアにオプションの limit パラメーターとして渡されます。 |
MDB_MCP_HTTP_HEADERS / --httpHeaders | "{}" | リクエスト時に HTTP サーバーが検証するヘッダーです(transport が 'http' の場合のみ使用)。 |
MDB_MCP_HTTP_HOST / --httpHost | "127.0.0.1" | HTTP サーバーをバインドするホストアドレスです(transport が 'http' の場合のみ使用)。 |
MDB_MCP_HTTP_PORT / --httpPort | 3000 | HTTP サーバーのポート番号です(transport が 'http' の場合のみ使用)。ランダムなポートを使用するには 0 を指定します。 |
MDB_MCP_HTTP_RESPONSE_TYPE / --httpResponseType | "sse" | ツールの応答に使用する HTTP レスポンスタイプです。'sse' は Server-Sent Events、'json' は標準の JSON レスポンスを表します。 |
MDB_MCP_IDLE_TIMEOUT_MS / --idleTimeoutMs | 600000 | クライアントが切断されるまでのアイドルタイムアウトです(http トランスポートにのみ適用)。 |
MDB_MCP_INDEX_CHECK / --indexCheck | false | true に設定すると、クエリ操作でインデックスの使用を必須とし、コレクションスキャンを実行するクエリを拒否します。 |
MDB_MCP_LOG_PATH / --logPath | 下記参照* | ログを保存するフォルダーです。 |
MDB_MCP_LOGGERS / --loggers | "disk,mcp" 下記参照* | ロガーの種類をカンマ区切りで指定します。 |
MDB_MCP_MAX_ACTIVE_CONNECTIONS / --maxActiveConnections | 10 | 1 つのスコープ(デフォルトでは MCP セッション。connectionScope を参照)が開いたまま保持できる MongoDB 接続の最大数です。上限を超えると、スコープ内で最も長時間使用されていない接続が閉じられ、その connectionId は無効化されます。事前設定済みの接続は上限に含まれません。 |
MDB_MCP_MAX_BYTES_PER_QUERY / --maxBytesPerQuery | 16777216 | find または aggregate ツール呼び出しの結果の最大サイズ(バイト)です。これらのツールの responseBytesLimit パラメーターの上限として機能します。 |
MDB_MCP_MAX_DOCUMENTS_PER_QUERY / --maxDocumentsPerQuery | 100 | find または aggregate ツール呼び出しで返すことができるドキュメントの最大数です。find ツールでは、有効な上限はこの値とツールの limit パラメーターのうち小さい方になります。 |
MDB_MCP_MAX_SESSIONS / --maxSessions | 1000 | HTTP トランスポートがメモリ内に保持する同時セッションの最大数です(transport が 'http' の場合のみ使用)。各セッションはサーバーインスタンス、トランスポート、タイマーをそれぞれ保持するため、デプロイ環境で利用可能なメモリに基づいて値を選択してください。デフォルト値は保守的な安全策であり、推奨される本番環境向けの値ではありません。 |
MDB_MCP_MAX_TIME_M_S / --maxTimeMS | <not set> | 非推奨です。代わりに timeoutMs を使用してください。MongoDB サーバー上で操作を実行できる最大時間(ミリ秒)です。 |
MDB_MCP_MCP_CLIENT_LOG_LEVEL / --mcpClientLogLevel | "debug" | MCP クライアントに転送するログメッセージの最小重要度レベルです。 |
MDB_MCP_MONITORING_SERVER_FEATURES / --monitoringServerFeatures | "health-check" | 監視サーバーで公開する機能です(transport が 'http' で、monitoringServerHost/monitoringServerPort が設定されている場合のみ使用)。 |
MDB_MCP_MONITORING_SERVER_HOST / --monitoringServerHost | <not set> | 監視 HTTP サーバーをバインドするホストアドレスです(transport が 'http' の場合のみ使用)。指定する場合は、monitoringServerPort も設定する必要があります。 |
MDB_MCP_MONITORING_SERVER_PORT / --monitoringServerPort | <not set> | 監視 HTTP サーバーのポート番号です(transport が 'http' の場合のみ使用)。指定する場合は、monitoringServerHost も設定する必要があります。 |
MDB_MCP_NOTIFICATION_TIMEOUT_MS / --notificationTimeoutMs | 540000 | クライアントが切断を認識できるようにするための通知タイムアウトです(http トランスポートにのみ適用)。 |
MDB_MCP_PREVIEW_FEATURES / --previewFeatures | "" | 有効にするプレビュー機能をカンマ区切りで指定します。 |
MDB_MCP_QUERY_COUNT_MAX_TIME_MS_CAP / --queryCountMaxTimeMsCap | <not set> | 非推奨です。代わりに queryCountTimeoutMs を使用してください。 |
MDB_MCP_QUERY_COUNT_TIMEOUT_MS / --queryCountTimeoutMs | 10000 | find 操作のカウントフェーズにおける最大時間(ミリ秒)です。結果が上限に達したかどうかを判断する際、ドキュメントのカウントにかかる時間を制限するために使用されます。 |
MDB_MCP_READ_ONLY / --readOnly | false | true に設定すると、読み取り、接続、メタデータの操作タイプのみを許可し、作成/更新/削除操作を無効にします。 |
MDB_MCP_TELEMETRY / --telemetry | "enabled" | disabled に設定すると、テレメトリーの収集を無効にします。 |
MDB_MCP_TIMEOUT_MS / --timeoutMs | <not set> | MongoDB 操作の実行を許可する最大時間(ミリ秒)です。各接続でドライバーの timeoutMS(クライアント側操作タイムアウト、CSOT)として適用されます。サーバーの選択やネットワークのラウンドトリップを含む、操作全体の時間を制限します。 |
MDB_MCP_TRANSPORT / --transport | "stdio" | 'stdio' または 'http' のいずれかです。 |
MDB_MCP_VOYAGE_API_KEY / --voyageApiKey | "" | Voyage AI 埋め込みサービスの API キーです(自動埋め込みベクトル検索機能を備えた Atlas Local デプロイメントの作成に必要です)。 |
ロガーのオプション
loggers 設定オプションは、ログの送信先を制御します。ロガーの種類を1つ以上、カンマ区切りのリストで指定できます。使用可能なオプションは次のとおりです。
mcp:ログを MCP クライアントに送信します(クライアント/トランスポートが対応している場合)。disk:ログをディスク上のファイルに書き込みます。ログファイルはログパスに保存されます(上記のlogPathを参照)。stderr:ログを標準エラー出力(stderr)に出力します。デバッグ時やコンテナー内での実行時に便利です。
デフォルト: disk,mcp(ログはディスクに書き込まれ、MCP クライアントに送信されます)。
複数のロガーを組み合わせることができます。例:--loggers disk stderr または export MDB_MCP_LOGGERS="mcp,stderr"。
例:環境変数でロガーを設定する
export MDB_MCP_LOGGERS="disk,stderr"
💡 プラットフォームに関する注意: Windows ユーザー向けのプラットフォーム固有の手順については、環境変数を参照してください。
例:コマンドライン引数でロガーを設定する
npx -y mongodb-mcp-server@latest --loggers mcp stderr
ログファイルの保存場所
disk ロガーを使用する場合、ログファイルは次の場所に保存されます。
- Windows:
%LOCALAPPDATA%\mongodb\mongodb-mcp\.app-logs - macOS/Linux:
~/.mongodb/mongodb-mcp/.app-logs
logPath オプションでログディレクトリを変更できます。
🔒 セキュリティガイドライン: MCP サーバーを実行するユーザーアカウントには、
logPathディレクトリへの読み取り権限と書き込み権限の両方が必要です。ログファイルへの不正アクセスを防ぐため、適切なファイルシステム権限を設定して、このディレクトリを適切に保護してください。
無効化するツール
disabledTools オプションを使用して、特定のツールまたはツールのカテゴリを無効にできます。このオプションには文字列の配列を指定します。
各文字列には、ツール名、操作の種類、またはカテゴリを指定できます。
配列の指定方法は、使用する設定方法によって異なります。
- 環境変数による設定では、カンマ区切りの文字列を使用します:
export MDB_MCP_DISABLED_TOOLS="create,update,delete,atlas,collectionSchema"。 - コマンドライン引数による設定では、スペース区切りの文字列を使用します:
--disabledTools create update delete atlas collectionSchema。
ツールのカテゴリ:
atlas- クラスターの一覧表示、クラスターの作成など、MongoDB Atlas のツール。mongodb- 検索、集計など、MongoDB データベースのツール。
操作の種類:
create- クラスターの作成、ドキュメントの挿入など、リソースを作成するツール。update- ドキュメントの更新、コレクションの名前変更など、リソースを更新するツール。delete- ドキュメントの削除、コレクションの削除など、リソースを削除するツール。read- 検索、集計、クラスターの一覧表示など、リソースを読み取るツール。metadata- データベース/コレクション/インデックスの一覧表示、コレクションスキーマの推論など、メタデータを読み取るツール。connect- MongoDB インスタンスへの接続または接続先の切り替えを可能にするツール。この項目を無効にした場合、サーバーの起動時に設定から接続文字列を指定する必要があります。
確認を要求する
クライアントがelicitationに対応している場合、MongoDB MCP サーバーを設定して、特定のツールを実行する前にユーザーの確認を要求できます。
確認が必要なツールとしてマークされている場合、サーバーはクライアントに elicitation リクエストを送信します。elicitation に対応しているクライアントは、ユーザーに確認を求め、その応答をサーバーに送り返します。クライアントが elicitation に対応していない場合、ツールは確認なしで実行されます。
confirmationRequiredTools 設定オプションを使用して、確認を必要とするツール名を指定できます。デフォルトでは、次のツールでこの設定が有効になっています:drop-database、drop-collection、delete-many、drop-index、atlas-create-db-user、atlas-create-access-list、atlas-streams-manage、atlas-streams-teardown。
また、aggregate および aggregate-db ツールは、confirmationRequiredTools に含まれているかどうかにかかわらず、$out または $merge ステージを含むパイプラインを実行する前に、常に確認を要求します。これらのステージはコレクションに書き込みます。$out はコレクションの内容を完全に置き換えます。そのため、この確認では、影響を受けるコレクションと、そこで行われる操作が示されます。書き込みステージを含まないパイプラインでは確認は求められません。
いずれかのツールを confirmationRequiredTools に追加すると、より広い範囲に適用されます。その場合、すべての呼び出しで標準のツールレベルのメッセージによる確認が事前に求められ、書き込みステージで二度目の確認が求められることはありません。
読み取り専用モード
readOnly 設定オプションを使用すると、MCP サーバーで「read」、「connect」、「metadata」の操作タイプを持つツールのみを使用するよう制限できます。有効にすると、「create」、「update」、「delete」の操作タイプを持つツールはすべて、サーバーに登録されません。
これは、データやインフラストラクチャへの変更を許可せずに、分析のために MongoDB データへのアクセスを提供したい場合に便利です。
次の方法で読み取り専用モードを有効にできます。
- 環境変数:
export MDB_MCP_READ_ONLY=true - コマンドライン引数:
--readOnly
💡 プラットフォームに関する注意: Windows ユーザーは、プラットフォーム固有の手順について環境変数を参照してください。
読み取り専用モードが有効な場合、この制限により登録されなかったツールを示すメッセージがサーバーログに表示されます。
インデックスチェックモード
indexCheck 設定オプションを使用すると、クエリ操作でインデックスを使用するよう強制できます。有効にすると、コレクションスキャンを実行するクエリは、パフォーマンス向上のため拒否されます。
これは、データベースクエリが最適化されていることを確実にしたい場合に便利です。
次の方法でインデックスチェックモードを有効にできます。
- 環境変数:
export MDB_MCP_INDEX_CHECK=true - コマンドライン引数:
--indexCheck
💡 プラットフォームに関する注意: Windows ユーザーは、プラットフォーム固有の手順について環境変数を参照してください。
インデックスチェックモードが有効な場合、インデックスを使用していないためにクエリが拒否されると、エラーメッセージが表示されます。
エクスポート
export ツールでエクスポートされたデータは、エクスポートのクリーンアップ処理で削除されるまで、MCP サーバーの実行マシン上にある、設定済みの exportsPath に一時的に保存されます。exportsPath の設定が指定されていない場合は、次のデフォルト値が使用されます。
- Windows:
%LOCALAPPDATA%\mongodb\mongodb-mcp\exports - macOS/Linux:
~/.mongodb/mongodb-mcp/exports
exportTimeoutMs の設定では、エクスポートされたデータが期限切れとみなされ、クリーンアップの対象となるまでの時間を指定します。デフォルトでは、エクスポートは 5 分(300000ms)後に期限切れになります。
exportCleanupIntervalMs の設定では、期限切れのエクスポートファイルを削除するクリーンアップ処理の実行頻度を指定します。デフォルトでは、2 分(120000ms)ごとにクリーンアップが実行されます。
🔒 セキュリティガイドライン: MCP サーバーを実行するユーザーアカウントには、
exportsPathディレクトリへの読み取り権限と書き込み権限の両方が必要です。機密性の高い MongoDB データが含まれている可能性のあるエクスポートファイルへの不正アクセスを防ぐため、適切なファイルシステム権限を設定し、このディレクトリを安全に保護してください。エクスポート先を選択する際はデータの機密性を考慮し、必要に応じて権限を制限してください。
テレメトリー
telemetry 設定オプションを使用すると、テレメトリーの収集を無効にできます。有効にすると、MCP サーバーは使用状況データを収集し、MongoDB に送信します。
テレメトリーは、次の方法で無効にできます。
- 環境変数:
export MDB_MCP_TELEMETRY=disabled - コマンドライン引数:
--telemetry disabled - DO_NOT_TRACK 環境変数:
export DO_NOT_TRACK=1
💡 プラットフォームに関する注意: Windows ユーザー向けのプラットフォーム固有の手順については、環境変数を参照してください。
プレビュー機能の有効化
MongoDB MCP Server には、開発中で、今後のリリースで変更される可能性がある機能が含まれる場合があります。これらの機能は「プレビュー機能」とみなされ、デフォルトでは有効になっていません。一般に、これらの機能は十分にテストされていますが、正式リリースで提供予定のすべての機能が揃っていない場合や、一般公開する前にフィードバックの収集を目的としている場合があります。1 つ以上のプレビュー機能を有効にするには、previewFeatures 設定オプションを使用します。
- 環境変数で設定する場合は、カンマ区切りの文字列を使用します:
export MDB_MCP_PREVIEW_FEATURES="feature1,feature2"。 - コマンドライン引数で設定する場合は、スペース区切りの文字列を使用します:
--previewFeatures feature1 feature2。
利用可能なプレビュー機能の一覧:
mcpUI- MCP サーバーとやり取りするための、オプションのウェブベース UI を有効にします。
監視サーバー(ヘルスチェックとメトリクス)
--transport http を指定して実行すると、ヘルスチェックとメトリクス用に独立した監視 HTTP サーバーを公開できます。このサーバーは、monitoringServerHost と monitoringServerPort の両方が設定されている場合にのみ起動し、メインの httpHost/httpPort とは別のホスト/ポートでリッスンします。
公開する機能は monitoringServerFeatures で制御します(デフォルト:health-check)。利用可能な機能とエンドポイントは次のとおりです。
| 機能 | エンドポイント | 説明 |
|---|---|---|
health-check | /health | サーバーのステータスを示す JSON ボディとともに 200 OK を返します。ライブネスプローブに役立ちます。 |
metrics | /metrics | Prometheus のテキスト形式でサーバーのメトリクスを返します。 |
/health のレスポンスには Cache-Control: no-store が設定され、次の形式になります(プロセスが稼働している間、status は常に "ok" です)。
{
"status": "ok",
"version": "1.13.0",
"uptimeSeconds": 42,
"timestamp": "2026-06-20T12:00:00.000Z"
}
例:監視サーバーを有効にしてサーバーを起動し、ヘルスチェックエンドポイントを呼び出します。
npx -y mongodb-mcp-server@latest --transport http --httpHost 0.0.0.0 --httpPort 3000 --monitoringServerHost 0.0.0.0 --monitoringServerPort 8080 &
curl http://0.0.0.0:8080/health
# => {"status":"ok","version":"1.13.0","uptimeSeconds":42,"timestamp":"2026-06-20T12:00:00.000Z"}
両方のエンドポイントを公開するには、機能を明示的に指定します。
npx -y mongodb-mcp-server@latest --transport http --monitoringServerHost 0.0.0.0 --monitoringServerPort 8080 --monitoringServerFeatures health-check,metrics
💡 Note:
healthCheckHost/healthCheckPortは、monitoringServerHost/monitoringServerPortの非推奨エイリアスです。引き続き同じ/healthエンドポイントを提供します。
Atlas API へのアクセス
Atlas API ツールを使用するには、MongoDB Atlas でサービスアカウントを作成する必要があります。
ℹ️ Note: 各 Atlas 操作に必要な最小権限の詳細については、以下の[Atlas API の権限](#atlas-api-permissions)セクションを参照してください。
- サービスアカウントを作成する:
- cloud.mongodb.com で MongoDB Atlas にログインします
- Access Manager > Organization Access に移動します
- Add New > Applications > Service Accounts をクリックします
- サービスアカウントの名前、説明、有効期限を入力します(例:「MCP, MCP Server Access, 7 days」)
- ユースケースに必要な最小限の権限のみを割り当ててください。
- 詳細は[Atlas API の権限](#atlas-api-permissions)を参照してください。
- 「Create」をクリックします
サービスアカウントの詳細については、MongoDB Atlas のドキュメントを確認してください。
-
クライアント認証情報を保存する:
- 作成後、クライアント ID とクライアントシークレットが表示されます
- 重要: クライアントシークレットは再表示されないため、すぐにコピーして保存してください
-
アクセスリストエントリを追加する:
- API アクセスリストに IP アドレスを追加します
-
MCP サーバーを設定する:
- 以下の設定方法のいずれかを使用して、
apiClientIdとapiClientSecretを設定します
- 以下の設定方法のいずれかを使用して、
Atlas API の権限
セキュリティ警告: Organization Owner ロールの付与が必要になることはほとんどなく、セキュリティリスクとなる可能性があります。ユースケースに必要な最小限の権限のみを割り当ててください。
クイックリファレンス:操作ごとに必要なロール
| 実行したい操作 | 割り当てる最も安全なロール(対象) |
|---|---|
| 組織/プロジェクトを一覧表示する | 組織メンバーまたは組織読み取り専用(組織) |
| 新しいプロジェクトを作成する | 組織プロジェクト作成者(組織) |
| プロジェクト内のクラスター/データベースを表示する | プロジェクト読み取り専用(プロジェクト) |
| プロジェクト内のクラスターを作成/管理する | プロジェクトクラスター管理者(プロジェクト) |
| プロジェクトのアクセスリストを管理する | プロジェクト IP アクセスリスト管理者(プロジェクト) |
| データベースユーザーを管理する | プロジェクトデータベースアクセス管理者(プロジェクト) |
| ストリーム処理リソースを管理する | プロジェクトストリーム処理オーナー(プロジェクト) |
- ほとんどの操作では、プロジェクトレベルのロールを優先してください。管理または表示する必要がある特定のプロジェクトにのみ割り当ててください。
- 組織内のすべてのプロジェクトと設定に対する完全な管理権限が必要な場合を除き、組織オーナーは避けてください。
ロールとその権限の一覧については、Atlas ユーザーロールのドキュメントを参照してください。
設定方法
設定ファイル
設定を JSON ファイルに保存し、MDB_MCP_CONFIG 環境変数を使用して読み込みます。
🔒 セキュリティのベストプラクティス: 機密フィールドには、設定ファイルや
--configCLI 引数よりもMDB_MCP_CONFIG環境変数を使用してください。コマンドライン引数はプロセス一覧に表示されます。
🔒 ファイルのセキュリティ: 設定ファイルの所有権と権限が適切に設定され、MongoDB MCP サーバーを実行するユーザーだけがアクセスできることを確認してください。
Linux/macOS:
chmod 600 /path/to/config.json chown your-username /path/to/config.jsonWindows: ファイルを右クリックし、[プロパティ]→[セキュリティ]を選択して、自分のユーザーアカウントのみにアクセスを制限します。
設定を含む JSON ファイルを作成します(すべてのキーで camelCase を使用します)。
{
"connectionString": "mongodb://localhost:27017",
"readOnly": true,
"loggers": ["stderr", "mcp"],
"apiClientId": "your-atlas-service-accounts-client-id",
"apiClientSecret": "your-atlas-service-accounts-client-secret",
"maxDocumentsPerQuery": 100
}
Linux/macOS(bash/zsh):
export MDB_MCP_CONFIG="/path/to/config.json"
npx -y mongodb-mcp-server@latest
Windows コマンドプロンプト(cmd):
set "MDB_MCP_CONFIG=C:\path\to\config.json"
npx -y mongodb-mcp-server@latest
Windows PowerShell:
$env:MDB_MCP_CONFIG="C:\path\to\config.json"
npx -y mongodb-mcp-server@latest
環境変数
MDB_MCP_ の後に、オプション名を大文字とアンダースコアでつないで環境変数を設定します。
Linux/macOS(bash/zsh):
# Set Atlas API credentials (via Service Accounts)
export MDB_MCP_API_CLIENT_ID="your-atlas-service-accounts-client-id"
export MDB_MCP_API_CLIENT_SECRET="your-atlas-service-accounts-client-secret"
# Set a custom MongoDB connection string
export MDB_MCP_CONNECTION_STRING="mongodb+srv://username:[email protected]/myDatabase"
# Set log path
export MDB_MCP_LOG_PATH="/path/to/logs"
Windows コマンドプロンプト(cmd):
set "MDB_MCP_API_CLIENT_ID=your-atlas-service-accounts-client-id"
set "MDB_MCP_API_CLIENT_SECRET=your-atlas-service-accounts-client-secret"
set "MDB_MCP_CONNECTION_STRING=mongodb+srv://username:[email protected]/myDatabase"
set "MDB_MCP_LOG_PATH=C:\path\to\logs"
Windows PowerShell:
# Set Atlas API credentials (via Service Accounts)
$env:MDB_MCP_API_CLIENT_ID="your-atlas-service-accounts-client-id"
$env:MDB_MCP_API_CLIENT_SECRET="your-atlas-service-accounts-client-secret"
# Set a custom MongoDB connection string
$env:MDB_MCP_CONNECTION_STRING="mongodb+srv://username:[email protected]/myDatabase"
# Set log path
$env:MDB_MCP_LOG_PATH="C:\path\to\logs"
MCP 設定ファイルの例
環境変数を使用した接続文字列
{
"mcpServers": {
"MongoDB": {
"command": "npx",
"args": ["-y", "mongodb-mcp-server"],
"env": {
"MDB_MCP_CONNECTION_STRING": "mongodb+srv://username:[email protected]/myDatabase"
}
}
}
}
環境変数を使用した Atlas API 認証情報
{
"mcpServers": {
"MongoDB": {
"command": "npx",
"args": ["-y", "mongodb-mcp-server"],
"env": {
"MDB_MCP_API_CLIENT_ID": "your-atlas-service-accounts-client-id",
"MDB_MCP_API_CLIENT_SECRET": "your-atlas-service-accounts-client-secret"
}
}
}
}
コマンドライン引数
サーバーの起動時に、設定オプションをコマンドライン引数として渡します。
🔒 セキュリティに関する注意: API 認証情報や接続文字列などの機密設定には、コマンドライン引数ではなく環境変数を使用してください。
# Set sensitive data as environment variable
export MDB_MCP_API_CLIENT_ID="your-atlas-service-accounts-client-id"
export MDB_MCP_API_CLIENT_SECRET="your-atlas-service-accounts-client-secret"
export MDB_MCP_CONNECTION_STRING="mongodb+srv://username:[email protected]/myDatabase"
# Start the server with command line arguments
npx -y mongodb-mcp-server@latest --logPath=/path/to/logs --readOnly --indexCheck
💡 プラットフォームに関する注意: 上記の例では Unix/Linux/macOS の構文を使用しています。Windows ユーザー向けのプラットフォーム固有の手順については、環境変数を参照してください。
MCP 設定ファイルの例
コマンドライン引数を使用した接続文字列
🔒 セキュリティに関する注意: 接続文字列をコマンドライン引数として渡すことは推奨しません。接続文字列に含まれる認証情報がプロセス一覧に表示されたり、さまざまなシステムの場所に記録されたりして、認証情報が漏えいする可能性があります。代わりに、環境変数で接続文字列を設定してください。
{
"mcpServers": {
"MongoDB": {
"command": "npx",
"args": [
"-y",
"mongodb-mcp-server",
"mongodb+srv://username:[email protected]/myDatabase",
"--readOnly"
]
}
}
}
コマンドライン引数を使用した Atlas API 認証情報
🔒 セキュリティに関する注意: Atlas API 認証情報をコマンドライン引数として渡すことは推奨しません。指定した認証情報がプロセス一覧に表示されたり、さまざまなシステムの場所に記録されたりして、認証情報が漏えいする可能性があります。代わりに、環境変数で Atlas API 認証情報を設定してください。
{
"mcpServers": {
"MongoDB": {
"command": "npx",
"args": [
"-y",
"mongodb-mcp-server",
"--apiClientId",
"your-atlas-service-accounts-client-id",
"--apiClientSecret",
"your-atlas-service-accounts-client-secret",
"--readOnly"
]
}
}
}
プロキシのサポート
MCP サーバーは標準のプロキシ環境変数を検出し、Atlas Administration API、MongoDB クラスターへの接続、OIDC ID プロバイダー、MongoDB Assistant など、サポート対象の送信接続でそれらを使用します。動作は mongosh と同じです(どちらも @mongodb-js/devtools-proxy-support に依存しています)。そのため、mongosh で機能するプロキシ設定は、こちらでも機能します。
環境変数
サーバーの起動前に、該当する変数を設定してください。一般的な *_PROXY 変数が使用されます。
| 変数 | 用途 |
|---|---|
HTTPS_PROXY | HTTPS リクエスト(Atlas API、OIDC、Assistant)に使用するプロキシ |
HTTP_PROXY | 通常の HTTP リクエストに使用するプロキシ |
ALL_PROXY | すべてのプロトコルで使用するフォールバックプロキシ |
NO_PROXY | プロキシを経由しないホスト/ドメインをコンマ区切りで指定したリスト |
# Route outbound traffic through a corporate proxy, except internal hosts
export HTTPS_PROXY="http://proxy.example.com:8080"
export NO_PROXY="localhost,127.0.0.1,*.internal.example.com"
接続文字列でのプロキシ設定
MongoDB クラスターへの接続に限り、環境変数を使用する代わりに、接続文字列で SOCKS5 プロキシを直接設定できます。
mongodb+srv://<host>/?proxyHost=127.0.0.1&proxyPort=1080&proxyUsername=user&proxyPassword=pass
サポートされているパラメーター:proxyHost、proxyPort、proxyUsername、proxyPassword。
認証局
@mongodb-js/devtools-proxy-support が処理する HTTP(S) リクエスト(Atlas API、OIDC、MongoDB Assistant)では、バンドルされた CA に加えて、オペレーティングシステムの証明書ストアも信頼されます。これは mongosh と同様の動作であり、OS レベルでインストールされた企業のルート証明書が自動的に認識されます。
🚀パブリッククラウドへのデプロイ
deploy/ 以下のデプロイ用アセットを使用して、MongoDB MCP Server をお好みのクラウドプロバイダーにデプロイできます。各ガイドでは、前提条件、設定、デプロイを効率化する自動化スクリプトについて説明しています。
Azure
Azure の詳しい手順については、deploy/azure/README.md を参照してください。
デプロイ時の制約
CLI ツール(mongodb-mcp-server / npx mongodb-mcp-server)は、実行ユーザーだけがプリンシパルとなる、単一ユーザー向けのローカルホスト(またはプライベート)デプロイを想定して設計されています。組み込みの認証機能はなく、MCP プロトコルでは検証済みのエンドユーザー ID を伝達しません。複数のユーザーへのサービス提供を目的としていません。呼び出し元を識別したり、接続の分離を制御したりする認証ミドルウェアは、その前段にありません。
そのため、ネットワークに公開する場合、または共有サーバーとして実行する場合は、分離を保証する責任を負います。
- インターネットへの公開: 認証なしで
0.0.0.0/::(またはループバック以外のホスト)にバインドすると、設定された接続文字列に対して(破壊的な操作も含む)MongoDB の操作を実行できる、未認証のエンドポイントが公開されます。意図的にループバック以外のホストにバインドする場合は、MDB_MCP_DANGEROUS_HOST_BINDING=trueを設定する必要があります(設定オプションを参照)。 - 複数ユーザーの分離: 接続のスコープは、(近く削除される予定の)
connectionScopeオプションによって決まり、そのデフォルトはglobalに移行中です。つまり、すべてのリクエストが同じスコープを共有します。セッションレスの経路でスコープを特定するmcp-session-idヘッダーはクライアントが指定するものであり、セキュリティ境界にはなりません。また、このヘッダーを含まないリクエストは共有スコープに入ります。そのため、複数のユーザーが互いの接続を参照して操作でき、Atlas の一時データベースユーザーの認証情報もその対象となります。サーバーは呼び出し元を識別しません。適切に分離するには、mcp-session-idヘッダーを制御する認証済みミドルウェアを設定するか、@mongodb-js/mcp-*ライブラリパッケージを使用して独自のスコープ機構を用意してください。
認証と ID 管理のレイヤーを独自に前段へ追加せずに、CLI ツールを共有のインターネット公開エンドポイントとして実行しないでください。
ライブラリを使って独自の認証を追加する
マルチテナント環境や一般公開するデプロイでは、代わりに @mongodb-js/mcp-* ライブラリパッケージを使用して、認証付きのソリューションを構築してください。
- 認証/ユーザー ID の確認は独自のプロキシまたはミドルウェアで行い、検証済みのプリンシパルを
authInfo経由でリクエストに渡します(SDK のcreateMcpHandlerとレガシーハンドラーはいずれもこれを引き継ぎます)。 - 検証済みのエンドユーザー ID(例:OIDC の
subクレーム)をキーとするconnectionScopeポリシーを指定して、各ユーザーの接続と認証情報を分離します。マルチユーザーのトラフィックで共有のglobalスコープにフォールバックさせないでください。
すでに MongoDB Atlas をお使いですか? マルチテナントで Atlas クラスターを利用する場合、最も簡単な代替策は MongoDB Atlas-Managed MCP server です。ホスト型の認証済みデプロイで、独自に用意する必要なく、ユーザーごとの ID(OAuth/サービスアカウント)を処理します。上記のオプション 2をご覧ください。
埋め込み API、createHttpTransportRunnerFromConfig/CliMcpHttpServer、connectionScope ポリシーの拡張ポイント、およびコピーして使えるユーザーごとのスコープ設定例については、MCP_SERVER_LIBRARY.mdをご覧ください。
🤝貢献
貢献に興味がありますか?ぜひご参加ください。コードへの貢献、標準、新しいツールの追加、トラブルシューティングの情報については、貢献ガイドをご確認ください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。