mcpField
M
MongoDB Lens

MongoDB Lens

ローカル
npmjs.comデータベース20879 週間前に更新

MongoDB Lens について

MongoDB Lens は、AI アシスタントが自然言語で MongoDB データベースを操作できるようにするローカル動作の MCP サーバーです。クエリ、集計、スキーマ分析、パフォーマンス調査を一つにまとめたい開発者や運用担当者向けで、破壊的な操作には二段階の確認が求められます。

主な機能

  1. 01自然言語によるクエリと集計パイプラインの実行
  2. 02クエリパターン分析とインデックス提案
  3. 03スキーマ推論・比較とバリデータ生成
  4. 04破壊的操作に対する二段階の確認
  5. 05名前付き接続エイリアスと自動再接続

活用シーン

  1. 01AI クライアントからの MongoDB データの探索とクエリ
  2. 02低速なクエリの分析とインデックス推奨の取得
  3. 03確認を経たうえでの一括書き込みや削除の実行

MCP 対応

MCP サーバーとして、MongoDB を操作するためのツール、リソース、プロンプトを MCP クライアントに公開します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

インストール方法は未掲載です

このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。

リポジトリ

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

MongoDB Lens

License Docker Hub Version NPM Version Buy Me a Coffee

MongoDB Lens は、LLM を介した自然言語を使用して MongoDB データベースにフル機能でアクセスし、クエリの実行、集計処理の実行、パフォーマンスの最適化などを行える、ローカルの Model Context Protocol(MCP)サーバーです。

目次

クイックスタート

機能

ツール
  • 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 Schema バリデーターを生成します
  • geo-query: さまざまな演算子を使用して地理空間クエリを実行します
  • get-stats: データベースまたはコレクションの統計情報を取得します
  • gridfs-operation: GridFS バケットを使用して大きなファイルを管理します
  • insert-document: 1つ以上のドキュメントをコレクションに挿入します
  • list-collections: 現在のデータベース内のコレクションを確認します
  • list-connections: 利用可能なすべての MongoDB 接続エイリアスを表示します
  • list-databases: アクセス可能なすべてのデータベースを表示します
  • rename-collection: 既存のコレクションの名前を変更します(変更先を削除する場合は確認が必要です)
  • shard-status: データベースとコレクションのシャーディング設定を表示します
  • text-search: テキストインデックスが設定されたフィールドを対象に全文検索を実行します
  • transaction: 複数の操作を1つの ACID トランザクション内で実行します
  • update-document: 指定した条件に一致するドキュメントを更新します
  • use-database: 指定したデータベースコンテキストに切り替えます
  • validate-collection: データの不整合を確認します
  • watch-changes: コレクションのリアルタイムの変更を監視します
リソース
プロンプト
  • 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 コレクションには、データベースの由来を示す永続的な記録となるコンテキスト情報を含むドキュメントが1つ保存され、新しく作成された空のデータベースが MongoDB のストレージシステムに保持されるようにします。

メタデータドキュメントの例
{
    "_id" : ObjectId("67d5284463788ec38aecee14"),
    "created" : {
        "timestamp" : ISODate("2025-03-15T07:12:04.705Z"),
        "tool" : "MongoDB Lens v5.0.7",
        "user" : "anonymous"
    },
    "mongodb" : {
        "version" : "3.6.23",
        "connectionInfo" : {
            "host" : "unknown",
            "readPreference" : "primary"
        }
    },
    "database" : {
        "name" : "example_database",
        "description" : "Created via MongoDB Lens"
    },
    "system" : {
        "hostname" : "unknown",
        "platform" : "darwin",
        "nodeVersion" : "v22.14.0"
    },
    "lens" : {
        "version" : "5.0.7",
        "startTimestamp" : ISODate("2025-03-15T07:10:06.084Z")
    }
}

新しいデータベースに独自のコレクションを追加した後は、drop-collection ツールを使用して metadata コレクションを安全に削除できます。

  • 「新しいデータベースのメタデータコレクションを削除する」
    ➥ drop-collection ツールを使用します(確認あり)

インストール

MongoDB Lens は、いくつかの方法でインストールして実行できます。

インストール:NPX

メモ


NPX を使用するには、Node.js がシステムにインストールされ、実行されている必要があります(Volta の使用をおすすめします)。

MongoDB Lens を実行する最も簡単な方法は、NPX を使用することです。

まず、Node.js がインストールされていることを確認します。

node --version # Ideally >= v22.x but MongoDB Lens is >= v18.x compatible

次に、NPX 経由で MongoDB Lens を実行します。

# Using default connection string mongodb://localhost:27017
npx -y mongodb-lens

# Using custom connection string
npx -y mongodb-lens mongodb://your-connection-string

# Using "@latest" to keep the package up-to-date
npx -y mongodb-lens@latest

ヒント


npx で権限エラーが発生した場合は、npx -y mongodb-lens を実行する前に npx clear-npx-cache を実行してみてください(キャッシュをクリアしてパッケージを再ダウンロードします)。

インストール:Docker Hub

メモ


Docker Hub を使用するには、Docker がシステムにインストールされ、実行されている必要があります。

まず、Docker がインストールされていることを確認します。

docker --version # Ideally >= v27.x

次に、Docker Hub 経由で MongoDB Lens を実行します。

# Using default connection string mongodb://localhost:27017
docker run --rm -i --network=host furey/mongodb-lens

# Using custom connection string
docker run --rm -i --network=host furey/mongodb-lens mongodb://your-connection-string

# Using "--pull" to keep the Docker image up-to-date
docker run --rm -i --network=host --pull=always furey/mongodb-lens
インストール:ソースから Node.js

メモ


ソースから Node.js を使用するには、システムに Node.js がインストールされ、実行されている必要があります(Volta の使用をおすすめします)。

  1. MongoDB Lens リポジトリをクローンします:
    git clone https://github.com/furey/mongodb-lens.git
    
  2. クローンしたリポジトリのディレクトリに移動します:
    cd /path/to/mongodb-lens
    
  3. Node.js がインストールされていることを確認します:
    node --version # Ideally >= v22.x but MongoDB Lens is >= v18.x compatible
    
  4. Node.js の依存関係をインストールします:
    npm ci
    
  5. サーバーを起動します:
    # 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 がインストールされ、実行されている必要があります。

  1. MongoDB Lens リポジトリをクローンします:
    git clone https://github.com/furey/mongodb-lens.git
    
  2. クローンしたリポジトリのディレクトリに移動します:
    cd /path/to/mongodb-lens
    
  3. Docker がインストールされていることを確認します:
    docker --version # Ideally >= v27.x
    
  4. Docker イメージをビルドします:
    docker build -t mongodb-lens .
    
  5. コンテナを実行します:
    # 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 メッセージをサーバーの標準入出力に貼り付けて実行します:

{"method":"resources/read","params":{"uri":"mongodb://databases"},"jsonrpc":"2.0","id":1}

サーバーは、MongoDB インスタンス内のデータベースの一覧を次のように返します:

{"result":{"contents":[{"uri":"mongodb://databases","text":"Databases (12):\n- admin (180.00 KB)\n- config (108.00 KB)\n- local (40.00 KB)\n- sample_airbnb (51.88 MB)\n- sample_analytics (9.46 MB)\n- sample_geospatial (980.00 KB)\n- sample_guides (40.00 KB)\n- sample_mflix (108.90 MB)\n- sample_restaurants (7.73 MB)\n- sample_supplies (968.00 KB)\n- sample_training (40.85 MB)\n- sample_weatherdata (2.69 MB)"}]},"jsonrpc":"2.0","id":1}

MongoDB Lens のインストールが完了し、MCP リクエストを受け付ける準備ができました。

インストール:旧バージョンの MongoDB

バージョンが < 4.0 の MongoDB インスタンスに接続する場合、最新バージョンの MongoDB Lens が使用する MongoDB Node.js ドライバーには互換性がありません。具体的には、MongoDB Node.js ドライバーのバージョン 4.0.0 以降では、MongoDB バージョン 4.0 以降が必要です。

古い MongoDB インスタンスで MongoDB Lens を使用するには、MongoDB Node.js ドライバーの 3.x 系のバージョン(例:MongoDB 3.6 と互換性のある 3.7.4)を使用する必要があります。

旧バージョンの MongoDB:ソースから実行
  1. MongoDB Lens リポジトリをクローンします:
    git clone https://github.com/furey/mongodb-lens.git
    
  2. クローンしたリポジトリのディレクトリに移動します:
    cd /path/to/mongodb-lens
    
  3. 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
      ...
    }
    
  4. Node.js の依存関係をインストールします:
    npm install
    
  5. 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 を実行するには、バージョンタグを指定します。

npx -y [email protected]

Docker の場合も同様です。

docker run --rm -i --network=host furey/mongodb-lens:8.3.0

設定

設定:MongoDB 接続文字列

サーバーは唯一の引数として MongoDB 接続文字列を受け取ります。

NPX の使用例:

npx -y mongodb-lens@latest mongodb://your-connection-string

MongoDB 接続文字列の形式は次のとおりです。

mongodb://[username:password@]host[:port][/database][?options]

接続文字列の例:

  • ローカル接続:
    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)の両方の設定ファイル形式に対応しています。

設定ファイルの例
{
  "mongoUri": "mongodb://localhost:27017",         // Default MongoDB connection string or object of alias-URI pairs
  "connectionOptions": {
    "maxPoolSize": 20,                             // Maximum number of connections in the pool
    "retryWrites": false,                          // Whether to retry write operations
    "connectTimeoutMS": 30000,                     // Connection timeout in milliseconds
    "socketTimeoutMS": 360000,                     // Socket timeout in milliseconds
    "heartbeatFrequencyMS": 10000,                 // How often to ping servers for status
    "serverSelectionTimeoutMS": 30000              // Timeout for server selection
  },
  "defaultDbName": "admin",                        // Default database if not specified in URI
  "connection": {
    "maxRetries": 5,                               // Maximum number of initial connection attempts
    "maxRetryDelayMs": 30000,                      // Maximum delay between retries
    "reconnectionRetries": 10,                     // Maximum reconnection attempts if connection lost
    "initialRetryDelayMs": 1000                    // Initial delay between retries
  },
  "disabled": {
    "tools": [],                                   // Array of tools to disable or true to disable all
    "prompts": [],                                 // Array of prompts to disable or true to disable all
    "resources": []                                // Array of resources to disable or true to disable all
  },
  "enabled": {
    "tools": true,                                 // Array of tools to enable or true to enable all
    "prompts": true,                               // Array of prompts to enable or true to enable all
    "resources": true                              // Array of resources to enable or true to enable all
  },
  "cacheTTL": {
    "stats": 15000,                                // Stats cache lifetime in milliseconds
    "fields": 30000,                               // Fields cache lifetime in milliseconds
    "schemas": 60000,                              // Schema cache lifetime in milliseconds
    "indexes": 120000,                             // Index cache lifetime in milliseconds
    "collections": 30000,                          // Collections list cache lifetime in milliseconds
    "serverStatus": 20000                          // Server status cache lifetime in milliseconds
  },
  "enabledCaches": [                               // List of caches to enable
    "stats",                                       // Statistics cache
    "fields",                                      // Collection fields cache
    "schemas",                                     // Collection schemas cache
    "indexes",                                     // Collection indexes cache
    "collections",                                 // Database collections cache
    "serverStatus"                                 // MongoDB server status cache
  ],
  "memory": {
    "enableGC": true,                              // Whether to enable garbage collection
    "warningThresholdMB": 1500,                    // Memory threshold for warnings
    "criticalThresholdMB": 2000                    // Memory threshold for cache clearing
  },
  "logLevel": "info",                              // Log level (info or verbose)
  "disableDestructiveOperationTokens": false,      // Whether to skip confirmation for destructive ops
  "watchdogIntervalMs": 30000,                     // Interval for connection monitoring
  "defaults": {
    "slowMs": 100,                                 // Threshold for slow query detection
    "queryLimit": 10,                              // Default limit for query results
    "allowDiskUse": true,                          // Allow operations to use disk for large datasets
    "schemaSampleSize": 100,                       // Sample size for schema inference
    "aggregationBatchSize": 50                     // Batch size for aggregation operations
  },
  "security": {
    "tokenLength": 4,                              // Length of confirmation tokens
    "tokenExpirationMinutes": 5,                   // Expiration time for tokens
    "strictDatabaseNameValidation": true           // Enforce strict database name validation
  },
  "tools": {
    "transaction": {
      "readConcern": "snapshot",                   // Read concern level for transactions
      "writeConcern": {
        "w": "majority"                            // Write concern for transactions
      }
    },
    "bulkOperations": {
      "ordered": true                              // Whether bulk operations execute in order
    },
    "export": {
      "defaultLimit": -1,                          // Default limit for exports (-1 = no limit)
      "defaultFormat": "json"                      // Default export format (json or csv)
    },
    "watchChanges": {
      "maxDurationSeconds": 60,                    // Maximum duration for change streams
      "defaultDurationSeconds": 10                 // Default duration for change streams
    },
    "queryAnalysis": {
      "defaultDurationSeconds": 10                 // Default duration for query analysis
    }
  }
}

デフォルトでは、MongoDB Lens は次の場所で設定ファイルを検索します。

  • まず ~/.mongodb-lens.jsonc を検索し、次に
  • 前者が存在しない場合は ~/.mongodb-lens.json にフォールバックします

設定ファイルのパスを変更するには、環境変数 CONFIG_PATH に任意のファイルパスを設定します。

NPX の使用例:

CONFIG_PATH='/path/to/config.json' npx -y mongodb-lens@latest

Docker Hub の使用例:

docker run --rm -i --network=host --pull=always -v /path/to/config.json:/root/.mongodb-lens.json furey/mongodb-lens
設定:設定ファイルの生成

config:create スクリプトを使用して、設定ファイルを自動生成できます。

# NPX Usage (recommended)
npx -y mongodb-lens@latest config:create

# Node.js Usage
npm run config:create

# Force overwrite existing files
npx -y mongodb-lens@latest config:create -- --force
npm run config:create -- --force

このスクリプトは、上記の設定ファイルの例を抽出し、~/.mongodb-lens.jsonc に保存します。

設定ファイルの生成:カスタムパス

環境変数 CONFIG_PATH を使用して、任意の出力先を指定できます。

  • CONFIG_PATH にファイル拡張子がない場合は、ディレクトリとして扱われ、.mongodb-lens.jsonc が追加されます
  • CONFIG_PATH が .json(.jsonc ではない)で終わる場合、生成されるファイルからコメントが削除されます

NPX の使用例:

# With custom path
CONFIG_PATH=/path/to/config.jsonc npx -y mongodb-lens@latest config:create

# Save to directory (will append .mongodb-lens.jsonc to the path)
CONFIG_PATH=/path/to/directory npx -y mongodb-lens@latest config:create

# Save as JSON instead of JSONC
CONFIG_PATH=/path/to/config.json npx -y mongodb-lens@latest config:create

Node.js の使用例:

# With custom path
CONFIG_PATH=/path/to/config.jsonc node mongodb-lens.js config:create

# Save to directory (will append .mongodb-lens.jsonc to the path)
CONFIG_PATH=/path/to/directory node mongodb-lens.js config:create

# Save as JSON instead of JSONC
CONFIG_PATH=/path/to/config.json node mongodb-lens.js config:create
設定:複数の MongoDB 接続

MongoDB Lens は、設定ファイルでエイリアスを指定して複数の MongoDB URI を設定できます。これにより、わかりやすい名前を使って異なる MongoDB インスタンスを簡単に切り替えられます。

複数の接続を設定するには、mongoUri 設定にエイリアスと URI のペアを含むオブジェクトを指定します。

{
  "mongoUri": {
    "main": "mongodb://localhost:27017",
    "backup": "mongodb://localhost:27018",
    "atlas": "mongodb+srv://username:[email protected]/mydb"
  }
}

この設定では、次のようになります。

  • リストの最初の URI(例:main)が、起動時のデフォルト接続になります
  • 自然言語を使って接続を切り替えられます:「backup に接続」または「atlas に接続」
  • 元の構文も引き続き使用できます:「mongodb://localhost:27018 に接続」
  • list-connections ツールには、利用可能なすべての接続エイリアスが表示されます

メモ


コマンドライン引数で接続を指定する場合は、完全な MongoDB URI か、設定ファイルで定義したエイリアスのどちらも使用できます。

ヒント


実行時に接続エイリアスを追加するには、add-connection-alias ツールを使用します。

設定:環境変数による上書き

MongoDB Lens は、設定値を環境変数で上書きできます。

環境変数は設定ファイルの設定より優先されます。

設定の環境変数には、次の命名規則を使用します。

CONFIG_[SETTING PATH, SNAKE CASED, UPPERCASED]

上書きの例:

設定項目環境変数による上書き
mongoUriCONFIG_MONGO_URI
logLevelCONFIG_LOG_LEVEL
defaultDbNameCONFIG_DEFAULT_DB_NAME
defaults.queryLimitCONFIG_DEFAULTS_QUERY_LIMIT
tools.export.defaultFormatCONFIG_TOOLS_EXPORT_DEFAULT_FORMAT
connectionOptions.maxPoolSizeCONFIG_CONNECTION_OPTIONS_MAX_POOL_SIZE
connection.reconnectionRetriesCONFIG_CONNECTION_RECONNECTION_RETRIES

環境変数の値には、次の形式を使用します。

  • ブール値の設定には、文字列の 'true' または 'false' を使用します。
  • 数値の設定には、数値を表す文字列を使用します。
  • ネストされたオブジェクトや配列には、JSON 文字列を使用します。

NPX の使用例:

CONFIG_DEFAULTS_QUERY_LIMIT='25' npx -y mongodb-lens@latest

Docker Hub の使用例:

docker run --rm -i --network=host --pull=always -e CONFIG_DEFAULTS_QUERY_LIMIT='25' furey/mongodb-lens
設定:クロスプラットフォーム環境変数

Windows、macOS、Linux で環境変数を一貫して使用するには、cross-env の使用を検討してください。

  1. cross-env をグローバルにインストールします。
    # Using NPM
    npm install -g cross-env
    
    # Using Volta (see: https://volta.sh)
    volta install cross-env
    
  2. このドキュメントの例にある 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

MongoDB Lens を Claude Desktop で使用するには、次の手順に従います。

  1. Claude Desktop をインストールします
  2. claude_desktop_config.json を開きます(存在しない場合は作成します)。
    • macOS:~/Library/Application Support/Claude/claude_desktop_config.json
    • Windows:%APPDATA%\Claude\claude_desktop_config.json
  3. 設定オプションに従って、MongoDB Lens サーバーの設定を追加します
  4. Claude Desktop を再起動します
  5. MongoDB データについて Claude との会話を始めます
Claude Desktop の設定オプション

各オプションで、以下の操作を行います。

  • 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(推奨)
{
  "mcpServers": {
    "mongodb-lens": {
      "command": "/path/to/npx",
      "args": [
        "-y",
        "mongodb-lens@latest",
        "mongodb://your-connection-string"
      ]
    }
  }
}
オプション 2:Docker Hub イメージ
{
  "mcpServers": {
    "mongodb-lens": {
      "command": "docker",
      "args": [
        "run", "--rm", "-i",
        "--network=host",
        "--pull=always",
        "furey/mongodb-lens",
        "mongodb://your-connection-string"
      ]
    }
  }
}
オプション 3:ローカルの Node.js インストール
{
  "mcpServers": {
    "mongodb-lens": {
      "command": "/path/to/node",
      "args": [
        "/path/to/mongodb-lens.js",
        "mongodb://your-connection-string"
      ]
    }
  }
}
オプション 4:ローカルの Docker イメージ
{
  "mcpServers": {
    "mongodb-lens": {
      "command": "docker",
      "args": [
        "run", "--rm", "-i",
        "--network=host",
        "mongodb-lens",
        "mongodb://your-connection-string"
      ]
    }
  }
}
クライアントのセットアップ:MCP Inspector

MCP Inspector は、MCP サーバーのテストとデバッグ用に設計されたツールです。

メモ


MCP Inspector はポート 3000 でプロキシサーバーを、ポート 5173 でウェブクライアントを起動します。

NPX の使用例:

  1. MCP Inspector を実行します。
    # デフォルトの接続文字列 mongodb://localhost:27017 を使用
    npx -y @modelcontextprotocol/inspector npx -y mongodb-lens@latest
    
    # カスタム接続文字列を使用
    npx -y @modelcontextprotocol/inspector npx -y mongodb-lens@latest mongodb://your-connection-string
    
    # カスタムポートを使用
    SERVER_PORT=1234 CLIENT_PORT=5678 npx -y @modelcontextprotocol/inspector npx -y mongodb-lens@latest
    
  2. MCP Inspector を開きます:http://localhost:5173

MCP Inspector は、コレクション名やクエリフィールドのオートコンプリートを含む、MongoDB Lens のすべての機能に対応しているはずです。

詳しくは、MCP Inspector をご覧ください。

クライアントのセットアップ:その他の MCP クライアント

MongoDB Lens は、MCP 対応のあらゆるクライアントで使用できます。

詳しくは、MCP Documentation: Example Clients をご覧ください。

データ保護

MongoDB Lens の使用中にデータを保護するには、以下を検討してください。

データ保護:読み取り専用ユーザーアカウント

MongoDB Lens をデータベースに接続する際に実行できる操作は、MongoDB 接続文字列でユーザーに付与されている権限によって決まります。用途に応じて読み取り専用ユーザーを使用すれば、意図しない書き込みや削除を防ぎ、MongoDB Lens によるデータのクエリを許可しながら、データの変更を禁止できます。

設定するには、対象のデータベースに対して read ロールを付与したユーザーを作成します。MongoDB shell では、次のようなコマンドを実行します。

use admin

db.createUser({
  user: 'readonly',
  pwd: 'eXaMpLePaSsWoRd',
  roles: [{ role: 'read', db: 'mydatabase' }]
})

次に、その認証情報を MongoDB 接続文字列に適用します。

mongodb://readonly:eXaMpLePaSsWoRd@localhost:27017/mydatabase

読み取り専用の認証情報を使用することは、セキュリティ境界を適用するためのシンプルで効果的な方法です。特に、スキーマを調べたり、アドホッククエリを実行したりする際に有効です。

データ保護:データベースのバックアップを使用する

MongoDB Lens を使用する際は、別の MongoDB インスタンスにホストされたデータのバックアップコピーへの接続をご検討ください。

まず、mongodump を使ってバックアップを作成します。次に、新しい MongoDB インスタンス(例:27018 など別のポート)を起動し、mongorestore を使ってそのインスタンスにバックアップを復元します。起動したら、MongoDB Lens の接続文字列をバックアップインスタンスのもの(例:mongodb://localhost:27018/mydatabase)に設定します。

この方法を使えば、稼働中のデータを誤って破損させるリスクを避けながら、複雑な操作や破壊的な操作をテストできるサンドボックスを用意できます。

データ保護:データフローに関する考慮事項
データフローに関する考慮事項:システム内でのデータの流れ

リモート LLM プロバイダー(Claude Desktop 経由の Anthropic など)と MCP サーバーを使用する場合、機密情報が意図せず漏えいするのを防ぐには、システム内でデータがどのように流れるかを理解することが重要です。

MCP クライアントを通じて MongoDB 関連のクエリを送信すると、次のようなことが起こります。

メモ


この例ではローカルの MongoDB インスタンスを使用していますが、同じ原則はリモートの MongoDB インスタンスにも当てはまります。

sequenceDiagram
    actor User
    box Local Machine #d4f1f9
        participant Client as MCP Client
        participant Lens as MongoDB Lens
        participant MongoDB as MongoDB Instance
    end
    box Remote Server #ffe6cc
        participant LLM as Remote LLM Provider
    end

    User->>Client: 1. Submit request<br>"Show me all users older than 30"
    Client->>LLM: 2. User request + available tools
    Note over LLM: Interprets request<br>Chooses appropriate tool
    LLM->>Client: 3. Tool selection (find-documents)
    Client->>Lens: 4. Tool run with parameters
    Lens->>MongoDB: 5. Database query
    MongoDB-->>Lens: 6. Database results
    Lens-->>Client: 7. Tool results (formatted data)
    Client->>LLM: 8. Tool results
    Note over LLM: Processes results<br>Formats response
    LLM-->>Client: 9. Processed response
    Client-->>User: 10. Final answer
  1. リクエストを送信します
    ➥ 例:「30 歳を超えるユーザーをすべて表示して」
  2. クライアントがリクエストをリモート LLM に送信します
    ➥ LLM プロバイダーは、入力した正確な文言と、利用可能な MCP ツールおよびそのパラメーターの一覧を受け取ります。
  3. リモート LLM がリクエストを解釈します
    ➥ 意図を判断し、適切なパラメーターを指定して特定の MCP ツールを使用するようクライアントに指示します。
  4. クライアントが MongoDB Lens にツールの実行を依頼します
    ➥ これは stdio を介して、ローカルマシン上で行われます。
  5. MongoDB Lens が MongoDB データベースにクエリを実行します
  6. MongoDB Lens が MongoDB のクエリ結果を取得します
  7. MongoDB Lens がデータをクライアントに返します
    ➥ クライアントは MongoDB Lens によってフォーマットされた結果を受け取ります。
  8. クライアントがデータをリモート LLM に転送します
    ➥ LLM プロバイダーには、MongoDB Lens から返された正確なデータが渡ります。
  9. リモート LLM がデータを処理します
    ➥ 結果をさらに要約したり、フォーマットしたりする場合があります。
  10. リモート 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 段階の手順が必要です。

  1. 最初のツール呼び出し:5 分後に有効期限が切れる 4 桁の確認トークンを返します
  2. 2 回目のツール呼び出し:有効なトークンが指定されている場合、操作を実行します

確認手順の例については、確認保護機能の使用を参照してください。

確認が必要なツールは次のとおりです。

  • drop-user:データベースユーザーを削除します
  • drop-index:インデックスを削除します(パフォーマンスに影響する可能性があります)
  • drop-database:データベースを完全に削除します
  • drop-collection:コレクションとすべてのドキュメントを削除します
  • delete-document:1 つ以上のドキュメントを削除します
  • bulk-operations:削除操作を含む場合
  • rename-collection:対象のコレクションが存在し、削除される場合

この保護機能は、タイプミスや意図しないコマンドによる偶発的なデータ損失を防ぐことを目的としています。有害な可能性のある操作を実行する前に、その結果を認識できるようにする安全策です。

メモ


データ損失が許容される管理環境で作業している場合は、MongoDB Lens を設定して確認を省略し、破壊的操作をすぐに実行できます。

破壊的操作の確認を省略する

トークン確認システムを省略したい場合があります。

環境変数 CONFIG_DISABLE_DESTRUCTIVE_OPERATION_TOKENS を true に設定すると、確認なしで破壊的操作をすぐに実行できます。

# Using NPX
CONFIG_DISABLE_DESTRUCTIVE_OPERATION_TOKENS=true npx -y mongodb-lens@latest

# Using Docker
docker run --rm -i --network=host --pull=always -e CONFIG_DISABLE_DESTRUCTIVE_OPERATION_TOKENS='true' furey/mongodb-lens

警告


確認トークンを無効にすると、重要な安全機構が取り除かれます。このオプションは、開発やテストなど、データ損失が許容される管理環境でのみ使用することを強くおすすめします。ご自身の責任で無効にしてください。

データ保護:破壊的操作の無効化
ツールの無効化

MongoDB Lens には、データを変更または削除できるツールがいくつか含まれています。特定のツールを無効にするには、設定ファイルの disabled.tools 配列に追加してください。

{
  "disabled": {
    "tools": [
      "drop-user",
      "drop-index",
      "drop-database",
      "drop-collection",
      "delete-document",
      "bulk-operations",
      "rename-collection"
    ]
  }
}

メモ


リソースとプロンプトも、disabled.resources および disabled.prompts の設定で無効にできます。

高リスクツール

これらのツールは即座にデータ損失を引き起こす可能性があるため、機密性の高い環境では無効化を検討してください。

  • drop-user:データベースユーザーとそのアクセス権限を削除します
  • drop-index:インデックスを削除します(クエリのパフォーマンスに影響する可能性があります)
  • drop-database:データベース全体を完全に削除します
  • drop-collection:コレクションとそのすべてのドキュメントを完全に削除します
  • delete-document:指定した条件に一致するドキュメントを削除します
  • bulk-operations:設定によっては、一括削除を実行できます
  • rename-collection:ターゲットを削除するオプションを使用すると、既存のコレクションを上書きする可能性があります
中リスクツール

これらのツールはデータを変更できますが、通常は即座にデータ損失を引き起こしません。

  • create-user:ユーザーを作成します。付与する権限によっては、さらなる変更が可能になる場合があります
  • transaction:複数の操作をトランザクション内で実行します(複雑な変更が発生する可能性があります)
  • update-document:ドキュメントを更新します。既存のデータが上書きされる可能性があります
読み取り専用設定

完全な読み取り専用設定にするには、破壊的な操作を行う可能性のあるツールをすべて無効にします。

{
  "disabled": {
    "tools": [
      "drop-user",
      "drop-index",
      "create-user",
      "transaction",
      "create-index",
      "drop-database",
      "drop-collection",
      "insert-document",
      "update-document",
      "delete-document",
      "bulk-operations",
      "create-database",
      "gridfs-operation",
      "create-collection",
      "rename-collection",
      "create-timeseries"
    ]
  }
}

この設定では、変更を一切行わずに MongoDB Lens でデータのクエリと分析を行えるため、偶発的なデータ損失を防ぐための多層的な保護が得られます。

コンポーネントの選択的な有効化

コンポーネントの無効化に加えて、設定ファイルの enabled 設定を使用して、有効にするコンポーネントを正確に指定できます(ほかのコンポーネントはすべて暗黙的に無効になります)。

{
  "enabled": {
    "tools": [
      "use-database",
      "find-documents",
      "count-documents",
      "aggregate-data"
    ]
  },
  "disabled": {
    "resources": true,
    "prompts": true
  }
}

重要


コンポーネントが enabled と disabled の両方のリストに含まれている場合は、enabled 設定が優先されます。

チュートリアル

このチュートリアルでは、サンプルデータを含む MongoDB コンテナをセットアップし、自然言語クエリを使って MongoDB Lens から操作する方法を説明します。

  1. サンプルデータコンテナを起動する
  2. サンプルデータをインポートする
  3. MongoDB Lens を接続する
  4. クエリの例
  5. 確認による保護機能の利用
チュートリアル:1. サンプルデータコンテナを起動する

メモ


このチュートリアルでは、システムに Docker がインストールされ、実行中であることを前提としています。

重要


Docker でポート 27017 を使用するコンテナがすでに実行中の場合は、先に停止してください。

  1. サンプルデータコンテナを初期化します。
    docker run --name mongodb-sampledata -d -p 27017:27017 mongo:6
    
  2. コンテナが問題なく実行されていることを確認します。
    docker ps | grep mongodb-sampledata
    
チュートリアル:2. サンプルデータをインポートする

MongoDB が提供するいくつかのサンプルデータセットを使用して、MongoDB Lens を試します。

  1. サンプルデータセットをダウンロードします。
    curl -LO https://atlas-education.s3.amazonaws.com/sampledata.archive
    
  2. サンプルデータセットをサンプルデータコンテナにコピーします。
    docker cp sampledata.archive mongodb-sampledata:/tmp/
    
  3. サンプルデータセットを 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 が使用されます。

Claude Desktop の設定例:

{
  "mcpServers": {
    "mongodb-lens": {
      "command": "/path/to/npx",
      "args": [
        "-y",
        "mongodb-lens@latest"
      ]
    }
  }
}
チュートリアル:4. クエリの例

MCP クライアントを起動して MongoDB Lens に接続した状態で、次のクエリの例を試してみてください:

クエリの例:基本的なデータベース操作
  • 「すべてのデータベースを一覧表示して」
    ➥ list-databases ツールを使用します
  • 「現在使用しているデータベースは何?」
    ➥ current-database ツールを使用します
  • 「sample_mflix データベースに切り替えて」
    ➥ use-database ツールを使用します
  • 「test_db という新しいデータベースを作成して」
    ➥ create-database ツールを使用します
  • 「analytics_db という別のデータベースを作成して、そこに切り替えて」
    ➥ switch=true を指定して create-database ツールを使用します
  • 「test_db を削除して」
    ➥ drop-database ツールを使用します(確認が必要です)
クエリの例:コレクションの管理
  • 「現在のデータベースにはどのコレクションがある?」
    ➥ list-collections ツールを使用します
  • 「user_logs コレクションを作成して」
    ➥ create-collection ツールを使用します
  • 「user_logs を system_logs に名前変更して」
    ➥ rename-collection ツールを使用します
  • 「system_logs を削除して」
    ➥ drop-collection ツールを使用します(確認が必要です)
  • 「movies コレクションのデータの整合性を確認して」
    ➥ validate-collection ツールを使用します
クエリの例:ユーザー管理
  • 「分析用の読み取り専用ユーザーを作成して」
    ➥ create-user ツールを使用します
  • 「inactive_user アカウントを削除して」
    ➥ drop-user ツールを使用します(確認が必要です)
クエリの例:データのクエリ
  • 「movies コレクション内のドキュメント数をすべて数えて」
    ➥ count-documents ツールを使用します
  • 「IMDB 評価が最も高い映画を上位 5 件表示して」
    ➥ find-documents ツールを使用します
  • 「年代別にグループ化した映画の集計データを表示して」
    ➥ aggregate-data ツールを使用します
  • 「映画が制作された国を重複なしで一覧表示して」
    ➥ distinct-values ツールを使用します
  • 「タイトルに godfather を含む映画を検索して」
    ➥ text-search ツールを使用します
  • 「適切な照合順序を使用して、姓が müller のドイツ人ユーザーを検索して」
    ➥ collation-query ツールを使用します
クエリの例:スキーマ分析
  • 「movies コレクションのスキーマ構造は?」
    ➥ analyze-schema ツールを使用します
  • 「users と comments のスキーマを比較して」
    ➥ compare-schemas ツールを使用します
  • 「movies コレクション用のスキーマバリデーターを生成して」
    ➥ generate-schema-validator ツールを使用します
  • 「movies コレクションでよく使われるクエリパターンを分析して」
    ➥ analyze-query-patterns ツールを使用します
使用例:データの変更
  • "新しい映画ドキュメントを挿入:<your field data>"
    ➥ insert-document ツールを使用
  • "1994年のすべての映画に「classic」フラグを追加して更新"
    ➥ update-document ツールを使用
  • "評価が0の映画をすべて削除"
    ➥ delete-document ツールを使用(確認あり)
  • "映画コレクションに次の一括操作を実行:<your JSON data>"
    ➥ bulk-operations ツールを使用

ヒント


配列操作、ビット演算、その他の複雑な更新など、MongoDB の特殊な操作には、update-document ツールの update および options パラメーターを使って MongoDB のネイティブ演算子を使用してください。

使用例:パフォーマンスとインデックス管理
  • "映画コレクションの title フィールドにインデックスを作成"
    ➥ create-index ツールを使用
  • "ratings_idx インデックスを削除"
    ➥ drop-index ツールを使用(確認あり)
  • "1995年の映画を検索する実行計画を説明"
    ➥ explain-query ツールを使用
  • "現在のデータベースの統計情報を取得"
    ➥ target=database を指定して get-stats ツールを使用
  • "映画コレクションの統計情報を表示"
    ➥ target=collection を指定して get-stats ツールを使用
使用例:地理空間と特殊な操作
  • "sample_geospatial データベースに切り替えてから、座標 [-80.12, 26.46] から10km以内にある難破船をすべて検索"
    ➥ geo-query ツールを使用
  • "sample_analytics データベースに切り替えてから、アカウント間で資金を移動するトランザクションを実行:<account ids>"
    ➥ transaction ツールを使用
  • "センサーの読み取り値用の時系列コレクションを作成"
    ➥ create-timeseries ツールを使用
  • "users コレクションの変更を30秒間監視"
    ➥ watch-changes ツールを使用
  • "images GridFS バケット内のファイルをすべて一覧表示"
    ➥ operation=list を指定して gridfs-operation ツールを使用
使用例:エクスポート、管理、その他の機能
  • "sample_mflix データベースに切り替えてから、'tomatoes.critic.rating' に基づく上位20件の映画を、title、year、rating フィールドを含む CSV としてエクスポート(単一のコードブロックで出力)"
    ➥ export-data ツールを使用
  • "sample_analytics データベースに切り替えてから、シャーディングの状態を確認"
    ➥ shard-status ツールを使用
  • "コレクションのキャッシュをクリア"
    ➥ target=collections を指定して clear-cache ツールを使用
  • "すべてのキャッシュをクリア"
    ➥ clear-cache ツールを使用
  • "sample_weatherdata データベースに切り替えてから、現在の状態に関するインタラクティブなレポートを生成"
    ➥ 多数のツールを使用
使用例:接続管理
  • "mongodb://localhost:27018 に接続"
    ➥ connect-mongodb ツールを使用
  • "mongodb+srv://username:[email protected]/mydb に接続"
    ➥ connect-mongodb ツールを使用
  • "元の mongodb インスタンスに再接続"
    ➥ connect-original ツールを使用
  • "接続を検証せずにレプリカセットに接続:<replica set details>"
    ➥ validateConnection=false を指定して connect-mongodb ツールを使用
  • "mongodb://username:password@prod-server:27017/mydb に接続エイリアス「prod」を追加"
    ➥ add-connection-alias ツールを使用
チュートリアル:5. 確認保護の利用

MongoDB Lens には、破壊的な操作が行われる可能性がある場合の安全対策が含まれています。実際の動作は次のとおりです。

  1. コレクションの削除を要求します:
    "Drop the collection named test_collection"
    
  2. 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.
    
  3. 確認トークンを送信して操作を確定します:
    "9876"
    
  4. MongoDB Lens が操作を実行します:
    Collection 'test_collection' has been permanently deleted.
    

この2段階の手順により、明示的な確認が必要となり、誤ってデータを失うことを防ぎます。

メモ


データの損失が許容される管理された環境で作業している場合は、MongoDB Lens を設定して破壊的な操作の確認を省略し、すぐに操作を実行できます。

テストスイート

MongoDB Lens には、ツール、リソース、プロンプト全体の機能を検証するためのテストスイートが含まれています。

テストスイート:テストの実行

テストスイートには CONFIG_MONGO_URI 環境変数が必要です。この変数には次の値を設定できます。

  • MongoDB 接続文字列(例:mongodb://localhost:27017)
  • mongodb-memory-server(インメモリテスト用)
# Run Tests with MongoDB Connection String
CONFIG_MONGO_URI=mongodb://localhost:27017 node mongodb-lens.test.js

# Run Tests with In-Memory MongoDB (requires mongodb-memory-server)
CONFIG_MONGO_URI=mongodb-memory-server node mongodb-lens.test.js

テストを実行するには、次のスクリプトを利用できます。

npm test                        # Fails if no CONFIG_MONGO_URI provided
npm run test:localhost          # Uses mongodb://localhost:27017
npm run test:localhost:verbose  # Runs with DEBUG=true for verbose output
npm run test:in-memory          # Uses mongodb-memory-server
npm run test:in-memory:verbose  # Runs with DEBUG=true for verbose output

メモ


テストスイートは一時的なデータベースとコレクションを作成し、テストの完了後にクリーンアップします。

テストスイート:コマンドラインオプション
オプション説明
--list実行せずに、利用可能なすべてのテストを一覧表示します
--test=<n>名前を指定して特定のテストを実行します(カンマ区切り)
--group=<n>特定のグループのテストをすべて実行します(カンマ区切り)
--pattern=<glob>パターンに一致するテストを実行します(カンマ区切り)
テストスイート:例
# List All Available Tests
npm test -- --list

# Run Only Connection-Related Tests (:27017)
npm run test:localhost -- --group=Connection\ Tools

# Test Specific Database Operations (In-Memory)
npm run test:in-memory -- --test=create-database\ Tool,drop-database\ Tool

# Test All Document-Related Tools (:27017)
npm run test:localhost -- --pattern=document

# Run Resource Tests Only (In-Memory)
npm run test:in-memory -- --group=Resources

# Run Specific Tests Only (In-Memory)
npm run test:in-memory -- --test=aggregate-data\ Tool,find-documents\ Tool

免責事項

MongoDB Lens:

  • MIT Licenseのもとでライセンスされています。
  • MongoDB, Inc. とは提携しておらず、同社から承認も受けていません。
  • AI の支援を受けて作成されており、誤りが含まれる可能性があります。
  • 教育および実験のみを目的としています。
  • 現状有姿で提供され、保証はありません。ご自身の責任でご利用ください。

サポート

MongoDB Lens が役に立った場合は、次の方法で私の活動をご支援ください。

Buy Me a Coffee | GitHub Sponsorship

ご協力いただくことで、このツールの開発と改善を続け、新機能の追加により多くの時間を充て、コミュニティにとって価値あるリソースであり続けることができます。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。