hybrid server
The server is able to function both locally and remotely, depending on the configuration or use case.
Integrations
Provides full featured access to MongoDB databases using natural language via LLMs to perform queries, run aggregations, optimize performance, and more. The server connects to MongoDB instances to allow exploration, querying, and management of databases, collections, and documents.
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
: コレクションからインデックスを削除します(確認が必要です)drop-user
: データベースユーザーを削除します(確認が必要です)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
[!NOTE] NPX を使用するには、システムにNode.jsがインストールされ、実行されている必要があります (推奨: Voltaの使用)。
MongoDB Lens を実行する最も簡単な方法は、NPX を使用することです。
まず、Node.js がインストールされていることを確認します。
次に、NPX 経由で MongoDB Lens を実行します。
[!TIP]
npx
で権限エラーが発生した場合はnpx -y mongodb-lens
を実行する前にnpx clear-npx-cache
を実行してみてください (これによりキャッシュがクリアされ、パッケージが再ダウンロードされます)。
インストール: Docker Hub
[!NOTE] Docker Hub を使用するには、システムにDockerがインストールされ、実行されている必要があります。
まず、Docker がインストールされていることを確認します。
次に、Docker Hub 経由で MongoDB Lens を実行します。
インストール: ソースからの Node.js
[!NOTE] ソースからの Node.js では、システムにNode.jsがインストールされ、実行されている必要があります (提案: Voltaの使用)。
- MongoDB Lens リポジトリをクローンします。Copy
- クローンされたリポジトリ ディレクトリに移動します。Copy
- Node.js がインストールされていることを確認します。Copy
- Node.js の依存関係をインストールします。Copy
- サーバーを起動します。Copy
インストール: ソースからの Docker
[!NOTE] ソースからの Docker では、システムにDockerがインストールされ、実行されている必要があります。
- MongoDB Lens リポジトリをクローンします。Copy
- クローンされたリポジトリ ディレクトリに移動します。Copy
- Docker がインストールされていることを確認します。Copy
- Docker イメージをビルドします。Copy
- コンテナを実行します。Copy
インストール検証
インストールを確認するには、次の 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 リポジトリをクローンします。Copy
- クローンされたリポジトリ ディレクトリに移動します。Copy
package.json
を変更します。Copy- Node.js の依存関係をインストールします。Copy
- MongoDB Lensを起動します:Copy
これにより、MongoDB インスタンスと互換性のある古いバージョンのドライバーが使用されます。
[!NOTE]
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 構成ファイルによる広範なカスタマイズをサポートしています。
[!NOTE] 設定ファイルはオプションです。設定ファイルが指定されていない場合、MongoDB Lens はデフォルト設定で実行されます。
[!TIP] 設定ファイルには、カスタマイズしたい設定のみを記述してください。省略された値については、MongoDB Lens はデフォルト設定を使用します。
[!TIP] 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
ツールは利用可能なすべての接続エイリアスを表示します
[!NOTE] コマンドライン引数を使用して接続を指定する場合は、完全な MongoDB URI または構成ファイルで定義されたエイリアスのいずれかを使用できます。
[!TIP] 実行時に接続エイリアスを追加するには、
add-connection-alias
ツールを使用します。
設定: 環境変数のオーバーライド
MongoDB Lens は、構成設定の環境変数のオーバーライドをサポートしています。
環境変数は構成ファイルの設定よりも優先されます。
構成環境変数は次の命名パターンに従います。
オーバーライドの例:
設定 | 環境変数のオーバーライド |
---|---|
mongoUri | CONFIG_MONGO_URI |
logLevel | CONFIG_LOG_LEVEL |
defaultDbName | CONFIG_DEFAULT_DB_NAME |
defaults.queryLimit | CONFIG_DEFAULTS_QUERY_LIMIT |
tools.export.defaultFormat | CONFIG_TOOLS_EXPORT_DEFAULT_FORMAT |
connectionOptions.maxPoolSize | CONFIG_CONNECTION_OPTIONS_MAX_POOL_SIZE |
connection.reconnectionRetries | CONFIG_CONNECTION_RECONNECTION_RETRIES |
環境変数の値の場合:
- ブール設定の場合は、文字列値
'true'
または'false'
を使用します。 - 数値設定の場合は文字列表現を使用します。
- ネストされたオブジェクトまたは配列の場合は、JSON 文字列を使用します。
NPXの使用例:
Docker Hub の使用例:
設定: クロスプラットフォーム環境変数
Windows、macOS、Linux 間で一貫した環境変数の使用を実現するには、 cross-env
の使用を検討してください。
- クロス環境をグローバルにインストールします。Copy
- このドキュメントの例にある NPX または Node.js 環境変数にプレフィックスを付けます。Copy
クライアントのセットアップ
クライアントのセットアップ: 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
- macOS:
- 設定オプションに従ってMongoDB Lensサーバー設定を追加します。
- Claudeデスクトップを再起動します
- MongoDBデータについてClaudeと会話を始めましょう
クロードデスクトップの設定オプション
各オプションについて:
mongodb://your-connection-string
を MongoDB 接続文字列に置き換えるか、省略してデフォルトのmongodb://localhost:27017
を使用します。- カスタム設定ファイルを使用するには、
CONFIG_PATH
環境変数を設定します。 - 環境変数を含めるには:
- NPX または Node.js の場合は、キーと値のペアを含む
"env": {}
を追加します。例:Copy - Docker の場合は
-e
フラグを追加します。例:Copy
- NPX または Node.js の場合は、キーと値のペアを含む
オプション 1: NPX (推奨)
オプション2: Docker Hubイメージ
オプション3: ローカルNode.jsインストール
オプション4: ローカルDockerイメージ
クライアント設定: MCP Inspector
MCP Inspector は、 MCP サーバーのテストとデバッグ用に設計されたツールです。
[!NOTE] MCP Inspector は、ポート 3000 でプロキシ サーバーを起動し、ポート 5173 で Web クライアントを起動します。
NPXの使用例:
- MCP Inspector を実行します。Copy
- 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 関連のクエリを送信すると、次のことが起こります。
[!NOTE] この例ではローカル 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
: 対象のコレクションが存在し、削除される場合
この保護メカニズムは、入力ミスや意図しないコマンドによる偶発的なデータ損失を防ぐことを目的としています。これは、潜在的に危険な操作を実行する前に、その結果を認識できるようにするセーフティネットです。
[!NOTE] データ損失が許容される制御された環境で作業している場合は、確認をバイパスして破壊的な操作を直ちに実行するように MongoDB Lens を構成できます。
破壊的な操作の確認をバイパスする
トークン確認システムをバイパスする必要がある場合があります。
確認なしに破壊的な操作を直ちに実行するには、環境変数CONFIG_DISABLE_DESTRUCTIVE_OPERATION_TOKENS
をtrue
に設定します。
[!警告] 確認トークンを無効にすると、重要な安全メカニズムが失われます。このオプションは、開発やテストなど、データ損失が許容される管理された環境でのみ使用することを強くお勧めします。無効化は自己責任で行ってください。
データ保護:破壊的な操作の無効化
ツールの無効化
MongoDB Lensには、データを変更または削除できるツールがいくつか含まれています。特定のツールを無効にするには、設定ファイルのdisabled.tools
配列にそのツールを追加してください。
[!NOTE] リソースとプロンプトは、
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
設定を使用して、有効にするコンポーネントを正確に指定します (他のすべてのコンポーネントは暗黙的に無効になります)。
[!IMPORTANT] コンポーネントが
enabled
とdisabled
リストの両方に表示される場合は、enabled
設定が優先されます。
チュートリアル
次のチュートリアルでは、サンプル データを使用して MongoDB コンテナーを設定し、MongoDB Lens を使用して自然言語クエリを通じてコンテナーを操作する方法について説明します。
チュートリアル: 1. サンプルデータコンテナを起動する
[!NOTE] このチュートリアルでは、システムにDockerがインストールされ、実行されていることを前提としています。
[!IMPORTANT] Docker がすでにポート 27017 でコンテナーを実行している場合は、続行する前に停止してください。
- サンプル データ コンテナを初期化します。Copy
- コンテナが問題なく実行されていることを確認します。Copy
チュートリアル: 2. サンプルデータのインポート
MongoDB は、MongoDB Lens を探索するために使用するサンプル データセットをいくつか提供しています。
- サンプル データセットをダウンロードします。Copy
- サンプル データセットをサンプル データ コンテナーにコピーします。Copy
- サンプル データセットを MongoDB にインポートします。Copy
これにより、いくつかのデータベースがインポートされます。
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
[!TIP] 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
ツールを使用します
[!TIP] 特殊な 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: password@cluster.mongodb.net /mydb に接続」 ➥
connect-mongodb
ツールを使用します - 「元のmongodbインスタンスに接続し直す」 ➥
connect-original
ツールを使用する - 「接続を検証せずにレプリカ セットに接続します: <レプリカ セットの詳細>」 ➥
connect-mongodb
ツールをvalidateConnection=falseで使用します - 「mongodb://username:password@prod-server:27017/mydb に接続エイリアス 'prod' を追加する」 ➥
add-connection-alias
ツールを使用する
チュートリアル: 5. 確認保護の操作
MongoDB Lensには、潜在的に破壊的な操作に対する安全機構が備わっています。実際の動作は以下のとおりです。
- コレクションの削除リクエスト:Copy
- MongoDB Lens は警告と確認トークンで応答します。Copy
- 確認トークンを送信して操作を確認します。Copy
- MongoDB Lens は次の操作を実行します。Copy
この 2 段階のプロセスでは、明示的な確認を要求することで、偶発的なデータ損失を防止します。
[!NOTE] データ損失が許容される制御された環境で作業している場合は、確認をバイパスして破壊的な操作を直ちに実行するように MongoDB Lens を構成できます。
テストスイート
MongoDB Lens には、ツール、リソース、プロンプト全体の機能を検証するためのテスト スイートが含まれています。
テストスイート: テストの実行
テスト スイートにはCONFIG_MONGO_URI
環境変数が必要です。これは次のように設定できます。
- MongoDB 接続文字列 (例
mongodb://localhost:27017
) mongodb-memory-server
(メモリ内テスト用)
便宜上、テストを実行するために次のスクリプトが利用できます。
[!NOTE] テスト スイートは、テストの完了後にクリーンアップされる一時的なデータベースとコレクションを作成します。
テストスイート: コマンドラインオプション
オプション | 説明 |
---|---|
--list | 実行せずに利用可能なすべてのテストを一覧表示する |
--test=<n> | 特定のテストを名前で実行する(カンマ区切り) |
--group=<n> | 特定のグループ内のすべてのテストを実行します(カンマ区切り) |
--pattern=<glob> | パターンに一致するテストを実行します(カンマ区切り) |
テストスイート: 例
免責事項
MongoDB レンズ:
- はMIT ライセンスに基づいてライセンスされます。
- MongoDB, Inc. と提携しておらず、また同社から承認も受けていません。
- AIの支援を受けて書かれたものであり、誤りが含まれている可能性があります。
- 教育および実験目的のみに使用されます。
- 現状のまま提供され、保証はありません。自己責任でご使用ください。
サポート
MongoDB Lens が役に立ったと思われる場合は、次の方法で私の作業をサポートすることを検討してください。
貢献のおかげで、このツールの開発と改善を継続することができ、新しい機能の追加に多くの時間を費やすことができ、コミュニティにとって貴重なリソースであり続けることができます。
This server cannot be installed
MongoDB データベース分析用のフル機能の MCP サーバー。
- Contents
- Quick Start
- Features
- Installation
- Configuration
- Client Setup
- Data Protection
- Tutorial
- Test Suite
- Disclaimer
- Support