このガイドでは、MongoDB MCP Server を構成してAIクライアントで使用することで、 MongoDB MCP Server の使用を開始する方法を説明します。
前提条件
MongoDB MCPサーバーを使用するには、次のものが必要です。
Atlas クラスターまたは セルフホスト型MongoDBデプロイ。
詳しくは、クラスターの作成 または MongoDBのインストール を参照してください。
Node.js は、次のいずれかのバージョンを使用してインストールされています。
バージョン 20.19.0 以降。
バージョン 22 を使用する場合は、バージョン 22.12.0 以降を使用する必要があります。
それ以外の場合は、バージョン 23 以降を使用してください。
注意
あるいは、 Node.jsをインストールする必要がない場合は、 Dockerコンテナでサーバーを実行することもできます。詳しくは、 Dockerの使用 を参照してください。
インストール
Clade Code、Codex、Cursor、または Geomi を使用する場合は、 AIクライアントの公式MongoDBプラグインまたは拡張機能の一部としてMongoDB MCP Server をインストールできます。これらのバンドルには、 MongoDB MCP Server と一般的なMongoDBタスク用の事前に構築されたエージェントの能力が含まれています。詳細については、 MongoDB Agent スキーリング のドキュメントを参照してください。
クライアント | インストールオプション | 含まれたバンドル |
|---|---|---|
Clade コード | App Services プラグイン Marketplace から公式のMongoDB プラグイン をインストールします。「MongoDB と Claude を使用した MongoDB」を参照してください。 | MongoDB MCP Server と事前に構築されたエージェントの能力 .s が含まれています。 |
コーデック | Codex Plugin Marketplace から公式MongoDB Codex Plugin をインストールします。詳しくは、「 Codex を使用したMongoDB 」を参照してください。 | MongoDB MCP Server と事前にビルドされたエージェントの実力が含まれています。 |
Cursor | Cursor Plugin Marketplace から公式のMongoDB カーソル プラグイン をインストールします。詳細については、 MongoDBとカーソル を参照してください。 | MongoDB MCP Server と事前にビルドされたエージェントの実力が含まれています。 |
Gemini | 動作するMongoDBをインストールするには詳細については、「MongoDB with Gemini」を参照してください。 | MongoDB MCP Server と事前にビルドされたエージェントの実力が含まれています。 |
これらのバンドルの 1 つをインストールしたら、次のセクションに進み、 MongoDB配置のMongoDB MCP サーバーを構成します。
次のMongoDBクラスター情報も必要です。
接続文字列.「接続文字列を検索する」を参照してください。
サービス アカウントで Atlas を使用している場合は、Atlas サービス アカウントのクライアントIDとクライアントシークレットが必要です。Atlas の前提条件を確認するには、「Atlas の前提条件」を参照してください。
MCP サーバー ファイルを構成する
MongoDB MCP Server のJSON構成ファイルは、 MongoDBに接続する方法と、そのデータを MCP クライアントと共有する方法をサーバーに指示します。
最初のJSONファイルを作成するには、 MCP サーバー 設定 ユーティリティを使用します。ユーティリティは、構成プロセス全体をガイドします。次の手順に従います。
[ AIクライアント ]を選択します。
ユーティリティに表示されるサポートされているクライアントのリストから、 AIクライアントを選択します。例は、VS Code を選択します。
クライアントの例には、次のものが含まれます。
Cursor
VS Code
Crude Desktop
Clade コード
オープン コード
ウィンドウケーション
リストにないクライアントを使用している場合は、 JSONファイルを手動で設定する必要があります。詳細については、 MongoDB MCP Server マニュアル ファイル構成 を参照してください。
読み取り専用モード設定を提供します。
読み取り専用モードを使用して、MCP サーバーを読み取り操作のみを実行するように制限できます。読み取り専用モードを有効にするには、「Y」と入力します。
セキュリティのため、書込み操作を実行する必要がある場合を除き、常に読み取り専用モードを有効にしてください。書込み操作は後で有効にできます。詳細については、MCP サーバーの読み取り専用モード を参照してください。
接続文字列を入力します。
MongoDBクラスターの接続文字列を入力します。
たとえば、mongodb+srv://atlasuser:D1fficultP%40ssw0rd@mycluster.abcd1.mongodb.net/myDatabase?retryWrites=true&w=majority 。
詳しくは、接続文字列を検索するを参照してください。
Atlas サービス アカウントクライアント識別子を入力します。
サービス アカウントで Atlas クラスターを使用している場合は、Atlas サービス アカウントのクライアント識別子を入力します。
詳細については、Atlas サービス アカウント を参照してください。
Atlas サービス アカウントクライアント識別子の形式の例: mdb_sa_id_<objectId>。
ユーティリティは構成ファイルを作成します。AIクライアントで構成ファイルを使用する方法について、 手順をお読みください 。ユーティリティは、構成ファイルのロケーションも提供します。
ファイルの構成、追加設定の追加、またはファイルの手動構成の詳細については、 MongoDB MCP Server マニュアル ファイル構成 を参照してください。
MCP サーバーを使用する
AIクライアントを再起動して、前のセクションで作成または更新したJSON構成ファイルを使用します。
MongoDB MCP サーバーを構成すると、 AIクライアントからMongoDBクラスターにアクセスできるようになります。
MCPサーバーツールをテストします。
MongoDB MCP Server ツールをテストするには、 AIクライアントでプロンプトを実行します。具体的な応答は、 MongoDB配置のデータ、および使用しているAIクライアントとモデルによって異なります。次のサンプルプロンプトでは、 MCPサーバーがMongoDBデプロイへの読み取りアクセスと書き込み (write) アクセスの両方を持つことを前提としています。
まず、次のプロンプトを実行中て、操作する新しいデータベースとコレクションを作成します。
Create a new MongoDB collection named "products" and insert some sample data into the collection with the following fields: - name (string) - price (number) - category (string) - quantity (number) - inStock (boolean) I'll help you insert sample data into a MongoDB collection named "products" with the specified fields. Let me set this up for you. Ran `list-databases` - MongoDB (MCP Server) I'll create a sample database called "sample_store" and insert some product data into a "products" collection. Let's create the collection first: Ran `create-collection` - MongoDB (MCP Server) Now I'll insert sample product data into the "products" collection with all the required fields: Ran `insert-many` - MongoDB (MCP Server) Let's verify the data was inserted properly by querying the collection: Ran `find` - MongoDB (MCP Server) The sample data has been successfully inserted into the "products" collection. Here are some details of the inserted documents: Laptop: Price: $1,299.99 Category: Electronics Quantity: 15 InStock: true Smartphone: Price: $799.99 Category: Electronics Quantity: 25 InStock: true Headphones: Price: $149.99 Category: Audio Quantity: 40 InStock: true ... いくつかのサンプルデータを含むMongoDBコレクションが用意できたら、プロンプトを実行して、MCP ツールを使用してそのコレクションを操作します。
AIクライアントで次のプロンプトを実行して、 自然言語でデータを検索し、クエリを実行します。
Explain the schema of the "products" collection and provide a summary of the data.
I'll help you explain the schema of the "products" collection and provide a summary of the data. Let me interact with your MongoDB database through the MCP server to get this information. Ran `collection-schema` - MongoDB (MCP Server) Now, let me fetch some sample data from the collection to provide you with a summary: Ran `find` - MongoDB (MCP Server) Let's also get a count of the total number of documents in the collection: Ran `count` - MongoDB (MCP Server) Let me get some aggregated statistics about the data: Ran `aggregate` - MongoDB (MCP Server) Ran `aggregate` - MongoDB (MCP Server) Schema and Data Summary for the "products" Collection Schema Overview The "products" collection has the following schema: 1. _id: ObjectId - MongoDB's default unique identifier for each document 2. name: String - The name of the product 3. price: Number - The price of the product in USD 4. category: String - The category the product belongs to 5. quantity: Number - The available quantity of the product 6. inStock: Boolean - Flag indicating whether the product is in stock or not Data Summary Overall Statistics: - Total number of products: 10 - Products in stock: 8 - Products out of stock: 2 - Categories Distribution: - Electronics: 3 products (Laptop, Smartphone, Gaming Console) - Audio: 2 products (Headphones, Bluetooth Speaker) - Kitchen: 2 products (Coffee Maker, Blender) - Furniture: 1 product (Office Chair) - Home: 1 product (Desk Lamp) - Wearables: 1 product (Fitness Tracker) Price Range: - Lowest priced item: $29.99 (Desk Lamp) - Highest priced item: $1,299.99 (Laptop) Inventory Status: - Total inventory quantity: 153 items - Average price across all products: approximately $313.99 - Products with zero quantity: 2 (Fitness Tracker, Blender) - these are marked as out of stock Category Insights: - Electronics has the highest average price at approximately $866.66 - Audio products have the highest total quantity (60 items) - All zero-quantity products are correctly marked as out of stock (false) This collection appears to be a simple product catalog for a store with various categories of merchandise, including pricing and inventory information
Find all products in the "products" collection that are out of stock and update them to "in stock".
I'll help you find all products in the "products" collection that are out of stock and update them to be in stock. Let me interact with your MongoDB database through the MCP server to accomplish this. First, let's find all products that are currently out of stock: Ran `find` - MongoDB (MCP Server) Now I'll update these out-of-stock products to be in stock. For this example, I'll also set a reasonable quantity value for each item: Ran `update-many` - MongoDB (MCP Server) Let's verify the updates by checking all products that were previously out of stock: Ran `find` - MongoDB (MCP Server) Great! I've successfully: 1. Found all products that were out of stock (2 products): - Fitness Tracker (Wearables category) - Blender (Kitchen category) 2. Updated these products to: - Set them as in stock (inStock: true) - Set their quantity to 10 units each The update has been completed successfully, and both products are now marked as in stock with 10 units available for each. The MongoDB update operation matched 2 documents and modified 2 documents, confirming that all out-of-stock products have been updated as requested.
Atlas クラスターがあり、Atlas 固有の MCP ツールを有効にしている場合は、 AIクライアントで次のプロンプトを実行して、いくつかの管理タスクを実行します。
List all my organizations, projects, and clusters in Atlas.
I'll help you list all your MongoDB Atlas organizations, projects, and clusters. Let me retrieve that information for you. Ran `atlas-list-orgs` - MongoDB (MCP Server) Now that I've found your organization, let me list all the projects under it. Ran `atlas-list-projects` - MongoDB (MCP Server) Now, let me list all the clusters across all your projects: Ran `atlas-list-clusters` - MongoDB (MCP Server) Let me get more detailed information about each of your clusters: Ran `atlas-inspect-cluster` - MongoDB (MCP Server) Summary of Your Atlas Resources Organization - MongoDB (ID: <your-org-id>) Projects (2) - Sample Project (ID: <proj-id-1>) - Test Project (ID: <proj-id-2>) Clusters (2) 1. Cluster0 (in Sample Project) - Type: DEDICATED - Tier: M20 - State: UPDATING - MongoDB Version: 8.1.1 - Connection String: <connection-string-1> 2. Cluster1 (in Test Project) - Type: FREE - Tier: N/A - State: IDLE - MongoDB Version: 8.0.10 - Connection String: <connection-string-2>
Create a new database user with read-only access to the "products" collection, then add my current IP address to my cluster's access list.
I'll help you create a new database user with read-only access to the "products" collection and add your current IP address to your cluster's access list. Let me do this step-by-step. Ran `atlas-list-orgs` - MongoDB (MCP Server) First, I need to get information about your available Atlas projects to determine where to create the database user. Ran `atlas-list-projects` - MongoDB (MCP Server) Now, let's check which clusters are available: Ran `atlas-list-clusters` - MongoDB (MCP Server) Let's create a new database user with read-only access to the "products" collection in the Project with the Cluster. I'll create a user named "products_readonly": Ran `atlas-create-db-user` - MongoDB (MCP Server) Great! Now let's add your current IP address to the cluster's access list: Ran `atlas-create-access-list` - MongoDB (MCP Server) Let's verify the IP was added by checking the access list: Ran `atlas-inspect-access-list` - MongoDB (MCP Server) Perfect! Now let's also verify the user was created by listing all database users: Ran `atlas-list-db-users` - MongoDB (MCP Server) Summary of Actions Completed 1. Created a new database user: - Username: products_readonly - Password: <generated-password> (save this in a secure location) - Access: Read-only access to the "products" collection in the "sample_store" database - Project: Project (ID: <proj-id>) - Cluster: Sample Cluster 2. Added your current IP address to the cluster's access list: - IP Address: <your-ip-address> - Project: Sample Project (ID: <proj-id>) - Comment: "Added for products_readonly user" The new user can now connect to your Atlas cluster and read data from the "products" collection, but cannot modify it. Your IP address has been added to the access list, allowing you to connect to the cluster from your current location.
次のプロンプトを実行して、 MongoDBデータに関連するコードを生成します。スキーマやデータ構造などのコンテキストを提供することで、より正確なコード生成が可能になり、プロ認証の効果を高め、エージェントの機能を強化します。
Review the schema of the "products" collection, then generate a Javascript function that updates the "inStock" field to `false` when a product reaches a quantity of 0.
I'll first review the schema of the "products" collection to understand its structure, then generate a Javascript function to update the "inStock" field to false when a product reaches a quantity of 0. Ran `collection-schema` - MongoDB (MCP Server) Now let me get some sample data from the collection to better understand the current state of the documents: Ran `find` - MongoDB (MCP Server) Based on the schema and sample data, I'll now generate a Javascript function that: - Monitors the products collection - Updates the "inStock" field to false when a product's quantity reaches 0 - Provides appropriate error handling and logging Here's the Javascript function: ``` /** * Updates the inStock field to false when a product's quantity reaches 0 * * This function can be used in two ways: * 1. As a one-time update to sync all products (updateAllProducts) * 2. As an automated trigger after any update operation (setupUpdateTrigger) * * @param {Object} client - MongoDB client instance * @param {string} dbName - Database name (default: 'sample_store') * @param {string} collectionName - Collection name (default: 'products') * @returns {Promise} Promise that resolves when the operation completes */ async function updateProductStockStatus(client, dbName = 'sample_store', collectionName = 'products') { try { // Get reference to the database and collection const db = client.db(dbName); const collection = db.collection(collectionName); // Find all products with quantity 0 but still marked as in stock const result = await collection.updateMany( { quantity: 0, inStock: true }, { $set: { inStock: false } } ); console.log(`Updated ${result.modifiedCount} products to out of stock`); return result; } catch (err) { console.error('Error updating product stock status:', err); throw err; } } /** * Sets up a change stream to automatically update inStock status * when quantity changes to 0 * * @param {Object} client - MongoDB client instance * @param {string} dbName - Database name (default: 'sample_store') * @param {string} collectionName - Collection name (default: 'products') * @returns {ChangeStream} The change stream object */ async function setupUpdateTrigger(client, dbName = 'sample_store', collectionName = 'products') { ... (truncated)
トラブルシューティング
MCPサーバーの構成に問題がある場合は、 「 MongoDB MCP サーバーのトラブルシューティング 」を参照してください。
次のステップ
完全な構成オプションと利用可能なツールについては、「 MCP サーバーと接続、およびサポートされているツールの構成 」を参照してください。
その他の使用例については、 MongoDB MCP Server の使用例 を参照してください。