MongoDBレンズ
 
 
 
MongoDB Lens は、 LLM を介して自然言語を使用して MongoDB データベースにフル機能でアクセスし、クエリの実行、集計の実行、パフォーマンスの最適化などを実行できるローカル モデル コンテキスト プロトコル (MCP) サーバーです。
コンテンツ
クイックスタート
- MongoDBレンズをインストールする 
- MongoDBレンズの設定 
- MCP クライアント (例: Claude Desktop 、 Cursorなど)をセットアップします。 
- 自然言語クエリでMongoDBデータベースを探索する 
特徴
ツール
- add-connection-alias: 新しいMongoDB接続エイリアスを追加する
- aggregate-data: 集計パイプラインを実行する
- analyze-query-patterns: ライブクエリを分析し、最適化を提案する
- analyze-schema: コレクションスキーマを自動的に推論する
- bulk-operations: 複数の操作を効率的に実行します(破壊的な操作の場合は確認が必要です)
- clear-cache: 最新のデータを確保するためにメモリキャッシュをクリアする
- collation-query: 言語固有の照合ルールを持つ文書を検索する
- compare-schemas: 2つのコレクション間のスキーマを比較する
- connect-mongodb: 別のMongoDB URIに接続する
- connect-original: 起動時に使用した元の MongoDB URI に接続します
- count-documents: 指定された条件に一致する文書を数える
- create-collection: カスタムオプションで新しいコレクションを作成する
- create-database: 切り替えオプション付きの新しいデータベースを作成する
- create-index: パフォーマンスの最適化のために新しいインデックスを作成する
- create-timeseries: 時系列データの時系列コレクションを作成する
- create-user: 特定のロールを持つ新しいデータベースユーザーを作成する
- current-database: 現在のデータベースコンテキストを表示する
- delete-document: 指定された条件に一致するドキュメントを削除します(確認が必要です)
- distinct-values: 任意のフィールドの一意の値を抽出する
- drop-collection: データベースからコレクションを削除します(確認が必要です)
- drop-database: データベースを削除します(確認が必要です)
- drop-index: コレクションからインデックスを削除します(確認が必要です)
- explain-query: クエリ実行プランを分析する
- export-data: クエリ結果をJSONまたはCSV形式でエクスポートする
- find-documents: フィルター、投影、並べ替えを使用してクエリを実行する
- generate-schema-validator: JSON スキーマバリデータを生成する
- geo-query: さまざまな演算子を使用して地理空間クエリを実行する
- get-stats: データベースまたはコレクションの統計情報を取得する
- gridfs-operation: GridFSバケットで大きなファイルを管理する
- insert-document: コレクションに1つ以上のドキュメントを挿入する
- list-collections: 現在のデータベース内のコレクションを探索する
- list-connections: 利用可能なすべての MongoDB 接続エイリアスを表示する
- list-databases: アクセス可能なすべてのデータベースを表示する
- rename-collection: 既存のコレクションの名前を変更します (ターゲットをドロップするときに確認が必要です)
- shard-status: データベースとコレクションのシャーディング構成を表示する
- text-search: テキストインデックスフィールド全体で全文検索を実行する
- transaction: 単一のACIDトランザクションで複数の操作を実行する
- update-document: 指定された条件に一致するドキュメントを更新する
- use-database: 特定のデータベースコンテキストに切り替える
- validate-collection:データの不整合をチェックする
- watch-changes: コレクションへのリアルタイムの変更を監視する
リソース
- collection-indexes: コレクションのインデックス情報
- collection-schema: コレクションのスキーマ情報
- collection-stats: コレクションのパフォーマンス統計
- collection-validation: コレクションの検証ルール
- collections: 現在のデータベース内のコレクションのリスト
- database-triggers: データベース変更ストリームとイベントトリガーの設定
- database-users: 現在のデータベース内のデータベースユーザーとロール
- databases: アクセス可能なすべてのデータベースのリスト
- performance-metrics: リアルタイムのパフォーマンスメトリクスとプロファイリングデータ
- replica-status:レプリカセットのステータスと構成
- server-status: サーバーステータス情報
- stored-functions: 現在のデータベースに保存されているJavaScript関数
プロンプト
- aggregation-builder: 集約パイプラインのステップバイステップの作成
- backup-strategy: カスタマイズされたバックアップとリカバリの推奨事項
- data-modeling: 特定のユースケースにおける MongoDB スキーマ設計に関する専門家のアドバイス
- database-health-check: 包括的なデータベースの健全性評価と推奨事項
- index-recommendation: クエリパターンに基づいてパーソナライズされたインデックスの提案を取得します
- migration-guide: MongoDB バージョン移行計画のステップバイステップ
- mongo-shell: MongoDB シェルコマンドを説明付きで生成する
- multi-tenant-design: MongoDB マルチテナント データベース アーキテクチャの設計
- query-builder: MongoDBクエリを構築するためのインタラクティブなガイド
- query-optimizer: 遅いクエリの最適化の推奨事項
- schema-analysis: 詳細なコレクションスキーマ分析と推奨事項
- schema-versioning: MongoDB アプリケーションにおけるスキーマの進化を管理する
- security-audit: データベースのセキュリティ分析と改善の推奨事項
- sql-to-mongodb: SQLクエリをMongoDB集計パイプラインに変換する
その他の機能
その他の機能: 概要
MongoDB Lens には、他にも多数の機能が含まれています。
- 設定ファイル: - ~/.mongodb-lens.[jsonc|json]経由のカスタム設定
- 環境変数のオーバーライド: - process.env.CONFIG_*経由で設定をオーバーライドします。
- 確認システム:破壊的操作に対する2段階認証 
- 複数の接続: 名前付きURIエイリアスの定義と切り替え 
- コンポーネントの無効化: ツール、プロンプト、またはリソースを選択的に無効にする 
- 接続の復元力: 指数バックオフによる自動再接続 
- クエリセーフガード: 設定可能な制限とパフォーマンス保護 
- エラー処理: 包括的な JSONRPC エラーコードとメッセージ 
- スキーマ推論:インテリジェントなサンプリングによる効率的なスキーマ分析 
- 資格情報保護: ログ内の接続文字列パスワードの難読化 
- メモリ管理: 大規模な操作の自動監視とクリーンアップ 
- スマートキャッシュ: スキーマ、インデックス、フィールド、コレクションのキャッシュを最適化 
- 下位互換性: MongoDBの最新バージョンと旧バージョンの両方をサポート 
その他の機能: 新しいデータベースメタデータ
MongoDB Lens は、作成する各データベースにmetadataコレクションを挿入します。
このmetadataコレクションには、データベースの起源の永続的な記録として機能するコンテキスト情報を含む単一のドキュメントが格納され、新しい空のデータベースが MongoDB のストレージ システムに保持されることが保証されます。
新しいデータベースに独自のコレクションを追加したら、 drop-collectionツールを使用してmetadataコレクションを安全に削除できます。
- 「新しいデータベースのメタデータコレクションを削除する」 ➥ - drop-collectionツールを使用する(確認付き)
インストール
MongoDB Lens はいくつかの方法でインストールして実行できます。
インストール: NPX
MongoDB Lens を実行する最も簡単な方法は、NPX を使用することです。
まず、Node.js がインストールされていることを確認します。
次に、NPX 経由で MongoDB Lens を実行します。
npxで権限エラーが発生した場合はnpx -y mongodb-lensを実行する前にnpx clear-npx-cacheを実行してみてください (これによりキャッシュがクリアされ、パッケージが再ダウンロードされます)。
インストール: Docker Hub
Docker Hub を使用するには、システムにDockerがインストールされ、実行されている必要があります。
まず、Docker がインストールされていることを確認します。
次に、Docker Hub 経由で MongoDB Lens を実行します。
インストール: ソースからの Node.js
- MongoDB Lens リポジトリをクローンします。 git clone https://github.com/furey/mongodb-lens.git
- クローンされたリポジトリ ディレクトリに移動します。 cd /path/to/mongodb-lens
- Node.js がインストールされていることを確認します。 node --version # Ideally >= v22.x but MongoDB Lens is >= v18.x compatible
- Node.js の依存関係をインストールします。 npm ci
- サーバーを起動します。 # Using default connection string mongodb://localhost:27017 node mongodb-lens.js # Using custom connection string node mongodb-lens.js mongodb://your-connection-string
インストール: ソースからの Docker
ソースからの Docker では、システムにDockerがインストールされ、実行されている必要があります。
- MongoDB Lens リポジトリをクローンします。 git clone https://github.com/furey/mongodb-lens.git
- クローンされたリポジトリ ディレクトリに移動します。 cd /path/to/mongodb-lens
- Docker がインストールされていることを確認します。 docker --version # Ideally >= v27.x
- Docker イメージをビルドします。 docker build -t mongodb-lens .
- コンテナを実行します。 # Using default connection string mongodb://localhost:27017 docker run --rm -i --network=host mongodb-lens # Using custom connection string docker run --rm -i --network=host mongodb-lens mongodb://your-connection-string
インストール検証
インストールを確認するには、次の JSONRPC メッセージをサーバーの stdio に貼り付けて実行します。
サーバーは、MongoDB インスタンス内のデータベースのリストで応答します。次に例を示します。
MongoDB Lens がインストールされ、MCP リクエストを受け入れる準備が整いました。
インストール: 古い MongoDB バージョン
バージョン< 4.0の MongoDB インスタンスに接続する場合、最新バージョンの MongoDB Lens で使用される MongoDB Node.js ドライバーは互換性がありません。具体的には、MongoDB Node.js ドライバー バージョン4.0.0以降を使用するには、MongoDB バージョン4.0以上が必要です。
古い MongoDB インスタンスで MongoDB Lens を使用するには、 3.xシリーズの MongoDB Node.js ドライバー バージョン (MongoDB 3.6と互換性のある3.7.4など) を使用する必要があります。
古いMongoDBバージョン: ソースからの実行
- MongoDB Lens リポジトリをクローンします。 git clone https://github.com/furey/mongodb-lens.git
- クローンされたリポジトリ ディレクトリに移動します。 cd /path/to/mongodb-lens
- package.jsonを変更します。"dependencies": { ... - "mongodb": "^6.15.0", // Or whatever newer version is listed + "mongodb": "^3.7.4", // Or whatever 3.x version is compatible with your older MongoDB instance ... }
- Node.js の依存関係をインストールします。 npm install
- MongoDB Lensを起動します: node mongodb-lens.js mongodb://older-mongodb-instance
これにより、MongoDB インスタンスと互換性のある古いバージョンのドライバーが使用されます。
useNewUrlParserおよびuseUnifiedTopology MongoDB 構成オプションを再度追加するには、このコミットを元に戻す必要がある場合もあります。
古い MongoDB バージョン: NPX または Docker の使用
NPX または Docker を使用する場合は、互換性のあるドライバーとともに公開された古いバージョンの MongoDB Lens を使用する必要があります。
たとえば、MongoDB Lens 8.3.0 MongoDB Node.js ドライバー3.7.4使用します ( package-lock.jsonを参照)。
NPX を使用して古いバージョンの MongoDB Lens を実行するには、バージョン タグを指定します。
Docker の場合も同様です。
構成
構成: MongoDB 接続文字列
サーバーは、MongoDB 接続文字列を唯一の引数として受け入れます。
NPXの使用例:
MongoDB 接続文字列の形式は次のとおりです。
接続文字列の例:
- ローカル接続: - mongodb://localhost:27017
- adminデータベースの資格情報を使用して- mydatabaseに接続します:- mongodb://username:password@hostname:27017/mydatabase?authSource=admin
- さまざまなオプションを指定して - mydatabaseに接続します:- mongodb://hostname:27017/mydatabase?retryWrites=true&w=majority
接続文字列が指定されていない場合、サーバーはローカル接続を介して接続を試みます。
設定: 設定ファイル
MongoDB Lens は、JSON 構成ファイルによる広範なカスタマイズをサポートしています。
設定ファイルはオプションです。設定ファイルが指定されていない場合、MongoDB Lens はデフォルト設定で実行されます。
設定ファイルには、カスタマイズしたい設定のみを記述してください。省略された値については、MongoDB Lens はデフォルト設定を使用します。
MongoDB Lens は、.jsonと.jsonc (コメント付き JSON) の両方の構成ファイル形式をサポートしています。
デフォルトでは、MongoDB Lens は次の場所にある構成ファイルを検索します。
- 最初に - ~/.mongodb-lens.jsonc、その後にフォールバックします
- 前者が存在しない場合は - ~/.mongodb-lens.json
設定ファイルのパスをカスタマイズするには、環境変数CONFIG_PATH目的のファイル パスに設定します。
NPXの使用例:
Docker Hub の使用例:
構成: 構成ファイルの生成
config:createスクリプトを使用して、構成ファイルを自動的に生成できます。
このスクリプトは上記のサンプル設定ファイルを抽出し、次の場所に保存します: ~/.mongodb-lens.jsonc
設定ファイルの生成: カスタムパス
CONFIG_PATH環境変数を使用して、カスタム出力場所を指定できます。
- CONFIG_PATHファイル拡張子がない場合、ディレクトリとして扱われ、- .mongodb-lens.jsoncが追加されます。
- CONFIG_PATH``.json(- .jsoncではない)で終わる場合、生成されたファイルからコメントが削除されます。
NPXの使用例:
Node.jsの使用例:
構成: 複数の MongoDB 接続
MongoDB Lens は、設定ファイル内のエイリアスを使用して複数の MongoDB URI をサポートし、単純な名前を使用して異なる MongoDB インスタンス間を簡単に切り替えることができます。
複数の接続を構成するには、 mongoUri構成設定をエイリアス URI ペアを持つオブジェクトに設定します。
この構成では、次のようになります。
- リストの最初のURI(例: - main)が起動時のデフォルト接続になります。
- 自然言語を使用して接続を切り替えることができます: - "Connect to backup"または- "Connect to atlas"
- 元の構文は引き続き機能します: - "Connect to mongodb://localhost:27018"
- list-connectionsツールは利用可能なすべての接続エイリアスを表示します
コマンドライン引数を使用して接続を指定する場合は、完全な MongoDB URI または構成ファイルで定義されたエイリアスのいずれかを使用できます。
実行時に接続エイリアスを追加するには、add-connection-aliasツールを使用します。
設定: 環境変数のオーバーライド
MongoDB Lens は、構成設定の環境変数のオーバーライドをサポートしています。
環境変数は構成ファイルの設定よりも優先されます。
構成環境変数は次の命名パターンに従います。
オーバーライドの例:
| 設定 | 環境変数のオーバーライド | 
| 
 | 
 | 
| 
 | 
 | 
| 
 | 
 | 
| 
 | 
 | 
| 
 | 
 | 
| 
 | 
 | 
| 
 | 
 | 
環境変数の値の場合:
- ブール設定の場合は、文字列値 - 'true'または- 'false'を使用します。
- 数値設定の場合は文字列表現を使用します。 
- ネストされたオブジェクトまたは配列の場合は、JSON 文字列を使用します。 
NPXの使用例:
Docker Hub の使用例:
設定: クロスプラットフォーム環境変数
Windows、macOS、Linux 間で一貫した環境変数の使用を実現するには、 cross-envの使用を検討してください。
- クロス環境をグローバルにインストールします。 # Using NPM npm install -g cross-env # Using Volta (see: https://volta.sh) volta install cross-env
- このドキュメントの例にある NPX または Node.js 環境変数にプレフィックスを付けます。 # Example NPX usage with cross-env cross-env CONFIG_DEFAULTS_QUERY_LIMIT='25' npx -y mongodb-lens@latest # Example Node.js usage with cross-env cross-env CONFIG_DEFAULTS_QUERY_LIMIT='25' node mongodb-lens.js
クライアントのセットアップ
クライアントのセットアップ: Claude Desktop
Claude Desktop で MongoDB Lens を使用するには:
- Claude Desktopをインストールする 
- claude_desktop_config.jsonを開きます (存在しない場合は作成します)。- macOS: - ~/Library/Application Support/Claude/claude_desktop_config.json
- Windows: - %APPDATA%\Claude\claude_desktop_config.json
 
- 設定オプションに従ってMongoDB Lensサーバー設定を追加します。 
- Claudeデスクトップを再起動します 
- MongoDBデータについてClaudeと会話を始めましょう 
クロードデスクトップの設定オプション
各オプションについて:
- mongodb://your-connection-stringを MongoDB 接続文字列に置き換えるか、省略してデフォルトの- mongodb://localhost:27017を使用します。
- カスタム設定ファイルを使用するには、 - CONFIG_PATH環境変数を設定します。
- 環境変数を含めるには: - NPX または Node.js の場合は、キーと値のペアを含む - "env": {}を追加します。例:"command": "/path/to/npx", "args": [ "-y", "mongodb-lens@latest", "mongodb://your-connection-string" ], "env": { "CONFIG_LOG_LEVEL": "verbose" }
- Docker の場合は - -eフラグを追加します。例:"command": "docker", "args": [ "run", "--rm", "-i", "--network=host", "--pull=always", "-e", "CONFIG_LOG_LEVEL=verbose", "furey/mongodb-lens", "mongodb://your-connection-string" ]
 
オプション 1: NPX (推奨)
オプション2: Docker Hubイメージ
オプション3: ローカルNode.jsインストール
オプション4: ローカルDockerイメージ
クライアント設定: MCP Inspector
MCP Inspector は、 MCP サーバーのテストとデバッグ用に設計されたツールです。
MCP Inspector は、ポート 3000 でプロキシ サーバーを起動し、ポート 5173 で Web クライアントを起動します。
NPXの使用例:
- MCP Inspector を実行します。 # Using default connection string mongodb://localhost:27017 npx -y @modelcontextprotocol/inspector npx -y mongodb-lens@latest # Using custom connection string npx -y @modelcontextprotocol/inspector npx -y mongodb-lens@latest mongodb://your-connection-string # Using custom ports SERVER_PORT=1234 CLIENT_PORT=5678 npx -y @modelcontextprotocol/inspector npx -y mongodb-lens@latest
- MCP インスペクターを開く: http://localhost:5173 
MCP Inspector は、コレクション名やクエリ フィールドの自動補完など、MongoDB Lens の全機能をサポートする必要があります。
詳細については、 MCP Inspectorを参照してください。
クライアント設定: その他の MCP クライアント
MongoDB Lens は、MCP 互換のクライアントであればどれでも使用できます。
詳細については、 MCP ドキュメント: サンプルクライアントを参照してください。
データ保護
MongoDB Lens の使用中にデータを保護するには、次の点を考慮してください。
データ保護: 読み取り専用ユーザーアカウント
MongoDB Lensをデータベースに接続する際に、MongoDB接続文字列でユーザーに付与された権限によって、実行可能なアクションが決まります。ユースケースが適切であれば、読み取り専用ユーザーを設定することで、意図しない書き込みや削除を防ぎ、MongoDB Lensがデータのクエリを実行しつつ、変更できないようにすることができます。
これを設定するには、対象とするデータベースをスコープとするreadロールを持つユーザーを作成します。MongoDBシェルでは、次のコマンドを実行します。
次に、これらの資格情報を MongoDB 接続文字列に適用します。
読み取り専用資格情報を使用することは、特にスキーマを調べたりアドホック クエリを実行したりするときに、セキュリティ境界を強化するシンプルかつ効果的な方法です。
データ保護: データベースのバッ��アップの操作
MongoDB Lens を使用する場合は、別の MongoDB インスタンスでホストされているデータのバックアップ コピーに接続することを検討してください。
まずmongodumpを使ってバックアップを生成します。次に、新しいMongoDBインスタンス(例えば27018などの別のポート)を起動し、 mongorestoreを使ってバックアップを復元します。インスタンスが起動したら、MongoDB Lensをバックアップインスタンスの接続文字列(例えばmongodb://localhost:27018/mydatabase )に設定します。
このアプローチにより、ライブ データが誤って破損するリスクなしに、複雑な操作や破壊的な操作をテストできるサンドボックスが提供されます。
データ保護:データフローの考慮事項
データフローの考慮事項: データがシステム内をどのように流れるか
MCP サーバーをリモート LLM プロバイダー (Claude Desktop 経由の Anthropic など) と共に使用する場合、データがシステム内をどのように流れるかを理解することが、機密情報を意図しない漏洩から保護する鍵となります。
MCP クライアントを通じて MongoDB 関連のクエリを送信すると、次のことが起こります。
この例ではローカル MongoDB インスタンスを使用していますが、同じ原則がリモート MongoDB インスタンスにも適用されます。
- リクエストを送信します➥ 例:「30歳以上のユーザーをすべて表示」 
- クライアントがリモート LLM にリクエストを送信します➥ LLM プロバイダーは、利用可能な MCP ツールとそのパラメータのリストとともに、正確な言葉を受け取ります。 
- リモート LLM はリクエストを解釈します➥ 意図を判断し、適切なパラメータを使用して特定の MCP ツールを使用するようにクライアントに指示します。 
- クライアントは MongoDB Lens にツールの実行を要求します➥ これは、stdio 経由でローカルのマシン上で実行されます。 
- MongoDB LensはMongoDBデータベースにクエリを実行します 
- MongoDB LensはMongoDBクエリの結果を取得します 
- MongoDB Lens はデータをクライアントに送り返します➥ クライアントは MongoDB Lens によってフォーマットされた結果を受信します。 
- クライアントはデータをリモート LLM に転送します➥ LLM プロバイダーは MongoDB Lens から返された正確なデータを確認します。 
- リモート LLM はデータを処理します➥ 結果をさらに要約したりフォーマットしたりする場合があります。 
- リモート LLM は最終応答をクライアントに送信します➥ クライアントは回答を表示します。 
リモートLLMプロバイダーは、元のリクエストとMongoDB Lensからの完全なレスポンスの両方を参照します。データベースに機密性の高いフィールド(パスワード、個人情報など)が含まれている場合、対策を講じない限り、これらのデータが意図せずリモートプロバイダーに送信される可能性があります。
データフローの考慮事項: 投影による機密データの保護
機密データがリモートLLMプロバイダーに送信されないようにするには、 find-documents 、 aggregate-data 、 export-dataなどのツールを使用する際に、プロジェクションの概念を使用します。プロジェクションを使用すると、クエリ結果に含めるフィールドと除外するフィールドを指定できるため、機密情報がローカルに保持されます。
投影の使用例:
- 「30歳以上のユーザーをすべて表示しますが、投影を使用してパスワードを非表示にします。」 ➥投影を使用して - find-documentsツールを使用します
データフローの考慮事項: 接続エイリアスとパスワード
add-connection-aliasツールを使用して新しい接続エイリアスを追加する際、リモート LLM プロバイダーを使用している場合は、パスワードを含む URI にエイリアスを追加しないでください。リクエストは LLM に送信されるため、URI 内のパスワードが漏洩する可能性があります。代わりに、MongoDB Lens構成ファイルでパスワードを含むエイリアスを定義してください。そうすれば、エイリアスはローカルに保持され、LLM には送信されません。
データフローの考慮事項: 最大限の安全性を実現するためのローカル設定
このドキュメントの範囲外ですが、最高レベルのデータプライバシーを実現するには、ローカルMCPクライアントとローカルでホストされたLLMモデルの組み合わせを検討してください。このアプローチでは、すべてのリクエストとデータがローカル環境内に保持されるため、機密情報がリモートプロバイダーに送信されるリスクが排除されます。
データ保護:破壊的な操作の確認
MongoDB Lens は、潜在的に破壊的な操作に対してトークンベースの確認システムを実装しており、チェックされていないデータ損失につながる可能性のあるツールを実行するために 2 段階のプロセスを必要とします。
- 最初のツール呼び出し: 5分後に期限切れになる4桁の確認トークンを返します 
- 2回目のツール呼び出し: 有効なトークンが提供された場合に操作を実行します 
確認プロセスの例については、 「確認保護の操作」を参照してください。
確認が必要なツールは次のとおりです。
- drop-user: データベースユーザーを削除する
- drop-index: インデックスを削除します(パフォーマンスに影響する可能性があります)
- drop-database: データベースを完全に削除する
- drop-collection: コレクションとその中のすべてのドキュメントを削除する
- delete-document: 1つまたは複数のドキュメントを削除する
- bulk-operations: 削除操作を含める場合
- rename-collection: 対象のコレクションが存在し、削除される場合
この保護メカニズムは、入力ミスや意図しないコマンドによる偶発的なデータ損失を防ぐことを目的としています。これは、潜在的に危険な操作を実行する前に、その結果を認識できるようにするセーフティネットです。
データ損失が許容される制御された環境で作業している場合は、確認をバイパスして破壊的な操作を直ちに実行するように MongoDB Lens を構成できます。
破壊的な操作の確認をバイパスする
トークン確認システムをバイパスする必要がある場合があります。
確認なしに破壊的な操作を直ちに実行するには、環境変数CONFIG_DISABLE_DESTRUCTIVE_OPERATION_TOKENSをtrueに設定します。
[!警告] 確認トークンを無効にすると、重要な安全メカニズムが失われます。このオプションは、開発やテストなど、データ損失が許容される管理された環境でのみ使用することを強くお勧めします。無効化は自己責任で行ってください。
データ保護:破壊的な操作の無効化
ツールの無効化
MongoDB Lensには、データを変更または削除できるツールがいくつか含まれています。特定のツールを無効にするには、設定ファイルのdisabled.tools配列にそのツールを追加してください。
リソースとプロンプトは、disabled.resourcesおよびdisabled.prompts設定によって無効にすることもできます。
高リスクツール
これらのツールは即時のデータ損失を引き起こす可能性があるため、機密性の高い環境では無効にすることを検討する必要があります。
- drop-user: データベースユーザーとそのアクセス権限を削除します
- drop-index: インデックスを削除します(クエリのパフォーマンスに影響を与える可能性があります)
- drop-database: データベース全体を永久に削除します
- drop-collection: コレクションとそのすべてのドキュメントを完全に削除します
- delete-document: 指定された条件に一致するドキュメントを削除します
- bulk-operations: 設定により一括削除を実行できます
- rename-collection: ドロップターゲットオプションを使用するときに既存のコレクションを上書きできます
中リスクツール
これらのツールはデータを変更する可能性がありますが、通常はすぐにデータが失われることはありません。
- create-user: さらなる変更を可能にする権限を持つユーザーを作成します
- transaction: トランザクション内で複数の操作を実行します (複雑な変更が発生する可能性があります)
- update-document: 既存のデータを上書きする可能性のあるドキュメントを更新します
読み取り専用構成
完全な読み取り専用構成にするには、破壊的な可能性のあるすべてのツールを無効にします。
この構成により、MongoDB Lens は変更を防止しながらデータをクエリおよび分析できるため、偶発的なデータ損失に対する多層的な保護が提供されます。
選択的コンポーネント有効化
コンポーネントを無効にするだけでなく、構成ファイル内のenabled設定を使用して、有効にするコンポーネントを正確に指定します (他のすべてのコンポーネントは暗黙的に無効になります)。
コンポーネントがenabledとdisabledリストの両方に表示される場合は、 enabled設定が優先されます。
チュートリアル
次のチュートリアルでは、サンプル データを使用して MongoDB コンテナーを設定し、MongoDB Lens を使用して自然言語クエリを通じてコンテナーを操作する方法について説明します。
チュートリアル: 1. サンプルデータコンテナを起動する
このチュートリアルでは、システムにDockerがインストールされ、実行されていることを前提としています。
Docker がすでにポート 27017 でコンテナーを実行している場合は、続行する前に停止してください。
- サンプル データ コンテナを初期化します。 docker run --name mongodb-sampledata -d -p 27017:27017 mongo:6
- コンテナが問題なく実行されていることを確認します。 docker ps | grep mongodb-sampledata
チュートリアル: 2. サンプルデータのインポート
MongoDB は、MongoDB Lens を探索するために使用するサンプル データセットをいくつか提供しています。
- サンプル データセットをダウンロードします。 curl -LO https://atlas-education.s3.amazonaws.com/sampledata.archive
- サンプル データセットをサンプル データ コンテナーにコピーします。 docker cp sampledata.archive mongodb-sampledata:/tmp/
- サンプル データセットを MongoDB にインポートします。 docker exec -it mongodb-sampledata mongorestore --archive=/tmp/sampledata.archive
これにより、いくつかのデータベースがインポートされます。
- sample_airbnb: Airbnbのリスティングとレビュー
- sample_analytics: 顧客とアカウントのデータ
- sample_geospatial: 地理データ
- sample_mflix: 映画データ
- sample_restaurants: レストランデータ
- sample_supplies: サプライチェーンデータ
- sample_training: さまざまなアプリケーションのトレーニングデータ
- sample_weatherdata: 気象測定
チュートリアル: 3. MongoDB Lens を接続する
クイック スタートの手順に従って MongoDB Lensをインストールします。
MCP クライアントを MongoDB Lens に接続するように設定します: mongodb://localhost:27017
MCP クライアント構成から接続文字列を省略すると、接続文字列はデフォルトでmongodb://localhost:27017になります。
チュートリアル: 4. クエリの例
MCP クライアントを実行し、MongoDB Lens に接続した状態で、次のサンプルクエリを試してください。
クエリの例: 基本的なデータベース操作
- 「すべてのデータベースを一覧表示する」 ➥ - list-databasesツールを使用します
- 「現在使用しているDBは何ですか?」 ➥ - current-databaseツールを使用します
- 「sample_mflixデータベースに切り替える」 ➥ - use-databaseツールを使用する
- 「test_dbという新しいデータベースを作成する」 ➥create - create-databaseツールを使用する
- 「analytics_db という別のデータベースを作成し、それに切り替える」 ➥ switch=true で - create-databaseツールを使用する
- 「Drop test_db」 ➥ - drop-databaseツールを使用する(確認付き)
クエリ例: コレクション管理
- 「現在のデータベースにはどのようなコレクションがありますか?」 ➥ - list-collectionsツールを使用します
- 「user_logsコレクションを作成」 ➥ - create-collectionツールを使用
- 「user_logs を system_logs に名前変更」 ➥ - rename-collectionツールを使用します
- 「Drop system_logs」 ➥ - drop-collectionツールを使用する(確認あり)
- 「映画コレクションのデータの一貫性をチェックする」 ➥ - validate-collectionツールを使用する
クエリ例: ユーザー管理
- 「アナリティクス用の読み取り専用ユーザーを作成する」 ➥ - create-userツールを使用する
- 「inactive_user アカウントを削除する」 ➥ - drop-userツールを使用する(確認付き)
クエリの例: データのクエリ
- 「映画コレクション内のすべてのドキュメントを数える」 ➥ - count-documentsツールを使用
- 「IMDB評価が最も高い映画トップ5を見つける」 ➥ - find-documentsツールを使用
- 「10年ごとにグループ化された映画の集計データを表示」 ➥ - aggregate-dataツールを使用
- 「映画が制作されたすべての国をリストする」 ➥ - distinct-valuesツールを使用
- 「タイトルにゴッドファーザーを含む映画を検索」 ➥ - text-searchツールを使用
- 「適切な照合を使用して、姓がmüllerであるドイツ語のユーザーを検索する」 ➥ - collation-queryツールを使用します
クエリ例: スキーマ分析
- 「映画コレクションのスキーマ構造は何ですか?」 ➥ - analyze-schemaツールを使用します
- 「ユーザーとコメントのスキーマを比較する」 ➥ - compare-schemasツールを使用する
- 「映画コレクションのスキーマバリデータを生成する」 ➥ - generate-schema-validatorツールを使用する
- 「映画コレクションの一般的なクエリパターンを分析する」 ➥ - analyze-query-patternsツールを使用します
クエリ例: データの変更
- 「新しいムービードキュメントを挿入: <フィールドデータ>」 ➥ - insert-documentツールを使用します
- 「1994年のすべての映画を更新して「クラシック」フラグを追加する」 ➥ - update-documentツールを使用
- 「評価ゼロの映画をすべて削除」 ➥ - delete-documentツールを使用(確認あり)
- 「映画コレクションに対してこれらの一括操作を実行します: <JSONデータ>」 ➥ - bulk-operationsツールを使用します
特殊な MongoDB 操作 (配列操作、ビット演算、その他の複雑な更新など) の場合は、update-documentツールのupdateおよびoptionsパラメーターを介して MongoDB のネイティブ演算子を使用します。
クエリ例: パフォーマンスとインデックス管理
- 「映画コレクションのタイトルフィールドにインデックスを作成する」 ➥ - create-indexツールを使用します
- 「ratings_idx インデックスを削除する」 ➥ - drop-indexツールを使用する(確認あり)
- 「1995年の映画を検索するための実行プランを説明してください」 ➥ - explain-queryツールを使用します
- 「現在のデータベースの統計情報を取得する」 ➥ target=database を指定した - get-statsツールを使用します
- 「映画コレクションのコレクション統計を表示する」 ➥ - get-statsツールを target=collection とともに使用します
クエリ例: 地理空間と特殊操作
- 「sample_geospatial dbに切り替えて、座標[-80.12, 26.46]から10km以内にあるすべての難破船を検索します」 ➥ - geo-queryツールを使用します
- 「sample_analytics dbに切り替えて、アカウント間で資金を移動するトランザクションを実行します: <アカウントID>」 ➥ - transactionツールを使用します
- 「センサー読み取り値の時系列コレクションを作成する」 ➥ - create-timeseriesツールを使用します
- 「ユーザーコレクションの変更を30秒間監視する」 ➥ - watch-changesツールを使用する
- 「イメージ GridFS バケット内のすべてのファイルを一覧表示する」 ➥ 操作 = list で - gridfs-operationツールを使用します
クエリ例: エクスポート、管理、その他の機能
- 「sample_mflix dbに切り替えて、「tomatoes.critic.rating」に基づいて上位20本の映画をタイトル、年、評価フィールドを含むCSVとしてエクスポートします(単一のコードブロックで出力します)」 ➥ - export-dataツールを使用します
- 「sample_analytics dbに切り替えて、シャーディングステータスを確認します」 ➥ - shard-statusツールを使用します
- 「コレクションのキャッシュをクリアする」 ➥ target=collections を指定した - clear-cacheツールを使用します
- 「すべてのキャッシュをクリア」 ➥ - clear-cacheツールを使用
- 「sample_weatherdata dbに切り替えて、現在の状態に関するインタラクティブなレポートを生成する」 ➥多数のツールを使用する 
クエリ例: 接続管理
- 「mongodb://localhost:27018 に接続」 ➥ - connect-mongodbツールを使用します
- 「mongodb+srv://username: ➥ - connect-mongodbツールを使用します
- 「元のmongodbインスタンスに接続し直す」 ➥ - connect-originalツールを使用する
- 「接続を検証せずにレプリカ セットに接続します: <レプリカ セットの詳細>」 ➥ - connect-mongodbツールをvalidateConnection=falseで使用します
- 「mongodb://username:password@prod-server:27017/mydb に接続エイリアス 'prod' を追加する」 ➥ - add-connection-aliasツールを使用する
チュートリアル: 5. 確認保護の操作
MongoDB Lensには、潜在的に破壊的な操作に対する安全機構が備わっています。実際の動作は以下のとおりです。
- コレクションの削除リクエスト: "Drop the collection named test_collection"
- MongoDB Lens は警告と確認トークンで応答します。 ⚠️ DESTRUCTIVE OPERATION WARNING ⚠️ You've requested to drop the collection 'test_collection'. This operation is irreversible and will permanently delete all data in this collection. To confirm, you must type the 4-digit confirmation code EXACTLY as shown below: Confirmation code: 9876 This code will expire in 5 minutes for security purposes.
- 確認トークンを送信して操作を確認します。 "9876"
- MongoDB Lens は次の操作を実行します。 Collection 'test_collection' has been permanently deleted.
この 2 段階のプロセスでは、明示的な確認を要求することで、偶発的なデータ損失を防止します。
データ損失が許容される制御された環境で作業している場合は、確認をバイパスして破壊的な操作を直ちに実行するように MongoDB Lens を構成できます。
テストスイート
MongoDB Lens には、ツール、リソース、プロンプト全体の機能を検証するためのテスト スイートが含まれています。
テストスイート: テストの実行
テスト スイートにはCONFIG_MONGO_URI環境変数が必要です。これは次のように設定できます。
- MongoDB 接続文字列 (例 - mongodb://localhost:27017)
- mongodb-memory-server(メモリ内テスト用)
便宜上、テストを実行するために次のスクリプトが利用できます。
テスト スイートは、テストの完了後にクリーンアップされる一時的なデータベースとコレクションを作成します。
テストスイート: コマンドラインオプション
| オプション | 説明 | 
| 
 | 実行せずに利用可能なすべてのテストを一覧表示する | 
| 
 | 特定のテストを名前で実行する(カンマ区切り) | 
| 
 | 特定のグループ内のすべてのテストを実行します(カンマ区切り) | 
| 
 | パターンに一致するテストを実行します(カンマ区切り) | 
テストスイート: 例
免責事項
MongoDB レンズ:
- はMIT ライセンスに基づいてライセンスされます。 
- MongoDB, Inc. と提携しておらず、また同社から承認も受けていません。 
- AIの支援を受けて書かれたものであり、誤りが含まれている可能性があります。 
- 教育および実験目的のみに使用されます。 
- 現状のまま提供され、保証はありません。自己責任でご使用ください。 
サポート
MongoDB Lens が役に立ったと思われる場合は、次の方法で私の作業をサポートすることを検討してください。
貢献のおかげで、このツールの開発と改善を継続することができ、新しい機能の追加に多くの時間を費やすことができ、コミュニティにとって貴重なリソースであり続けることができます。
Related MCP Servers
- Asecurity-licenseAqualityAn MCP server that enables users to create and manage MongoDB Atlas clusters, users, and network access through natural language commands.Last updated -62011MIT License
- -security-license-qualityAn MCP server that enables large language models to interact directly with MongoDB databases, allowing them to query collections, inspect schemas, and manage data through natural language.Last updated -109MIT License
- -security-license-qualityOpen source MCP server specializing in easy, fast, and secure tools for Databases.Last updated -11,234Apache 2.0
- -security-license-qualityMongoDB MCP Server by CDataLast updated -MIT License