diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS
index 4e2d16a33e..4f326fbab5 100644
--- a/.github/CODEOWNERS
+++ b/.github/CODEOWNERS
@@ -65,6 +65,12 @@
# ServiceLabel: %tools-Advisor
# ServiceOwners: @ankiga-MSFT
+# PRLabel: %tools-DocumentDb
+/tools/Azure.Mcp.Tools.DocumentDb/ @microsoft/azure-mcp
+
+# ServiceLabel: %tools-DocumentDb
+# ServiceOwners: @microsoft/azure-mcp
+
# PRLabel: %tools-Aks
/tools/Azure.Mcp.Tools.Aks/ @jongio @anuchandy @microsoft/azure-mcp
diff --git a/Directory.Packages.props b/Directory.Packages.props
index 8326ef89b8..aa7fbef669 100644
--- a/Directory.Packages.props
+++ b/Directory.Packages.props
@@ -82,6 +82,7 @@
+
diff --git a/servers/Azure.Mcp.Server/Azure.Mcp.Server.slnx b/servers/Azure.Mcp.Server/Azure.Mcp.Server.slnx
index feec36b074..f4312ba1ed 100644
--- a/servers/Azure.Mcp.Server/Azure.Mcp.Server.slnx
+++ b/servers/Azure.Mcp.Server/Azure.Mcp.Server.slnx
@@ -151,6 +151,13 @@
+
+
+
+
+
+
+
diff --git a/servers/Azure.Mcp.Server/README.md b/servers/Azure.Mcp.Server/README.md
index ee7d34214e..70e553234f 100644
--- a/servers/Azure.Mcp.Server/README.md
+++ b/servers/Azure.Mcp.Server/README.md
@@ -851,6 +851,18 @@ Check out the remote hosting [azd templates](https://github.com/microsoft/mcp/bl
* "List my Advisor recommendations"
+### 🗄️ Azure Cosmos DB for MongoDB (vCore)
+
+* "Connect to my DocumentDB instance"
+* "List all databases in DocumentDB"
+* "Show me collections in database 'mydb'"
+* "Find documents in collection 'users' where status is active"
+* "Count documents in collection 'orders'"
+* "Insert a document into collection 'products'"
+* "Update documents in collection 'inventory'"
+* "Create an index on collection 'customers'"
+* "Get statistics for database 'analytics'"
+
### 🔎 Azure AI Search
* "What indexes do I have in my Azure AI Search service 'mysvc'?"
@@ -1042,6 +1054,7 @@ The Azure MCP Server provides tools for interacting with **41+ Azure service are
- 📦 **Azure Container Apps** - Container hosting
- 📦 **Azure Container Registry (ACR)** - Container registry management
- 📊 **Azure Cosmos DB** - NoSQL database operations
+- 🗄️ **Azure Cosmos DB for MongoDB (vCore)** - MongoDB vCore database operations
- 🧮 **Azure Data Explorer** - Analytics queries and KQL
- 🐬 **Azure Database for MySQL** - MySQL database management
- 🐘 **Azure Database for PostgreSQL** - PostgreSQL database management
diff --git a/servers/Azure.Mcp.Server/docs/azmcp-commands.md b/servers/Azure.Mcp.Server/docs/azmcp-commands.md
index db9267d976..e90d27b6b5 100644
--- a/servers/Azure.Mcp.Server/docs/azmcp-commands.md
+++ b/servers/Azure.Mcp.Server/docs/azmcp-commands.md
@@ -257,6 +257,51 @@ azmcp server info
azmcp advisor recommendations list --subscription
```
+### Azure Cosmos DB for MongoDB (vCore) Operations
+
+```bash
+# Connection Management
+azmcp documentdb connect --connection-string
+azmcp documentdb disconnect
+azmcp documentdb connection status
+
+# Database Operations
+azmcp documentdb database list
+azmcp documentdb database stats --db-name
+azmcp documentdb database info --db-name
+azmcp documentdb database drop --db-name
+
+# Collection Operations
+azmcp documentdb collection stats --db-name --collection-name
+azmcp documentdb collection rename --db-name --collection-name --new-collection-name
+azmcp documentdb collection drop --db-name --collection-name
+azmcp documentdb collection sample --db-name --collection-name --sample-size 10
+
+# Document Operations
+azmcp documentdb find documents --db-name --collection-name --query '{"status": "active"}'
+azmcp documentdb count documents --db-name --collection-name --query '{}'
+azmcp documentdb insert document --db-name --collection-name --document '{"name": "example"}'
+azmcp documentdb insert many --db-name --collection-name --documents '[{"name": "doc1"}, {"name": "doc2"}]'
+azmcp documentdb update document --db-name --collection-name --filter '{"_id": "123"}' --update '{"$set": {"status": "updated"}}'
+azmcp documentdb update many --db-name --collection-name --filter '{"status": "pending"}' --update '{"$set": {"status": "processed"}}'
+azmcp documentdb delete document --db-name --collection-name --filter '{"_id": "123"}'
+azmcp documentdb delete many --db-name --collection-name --filter '{"status": "archived"}'
+azmcp documentdb aggregate --db-name --collection-name --pipeline '[{"$group": {"_id": "$status", "count": {"$sum": 1}}}]'
+azmcp documentdb find and modify --db-name --collection-name --query '{"_id": "123"}' --update '{"$set": {"modified": true}}'
+
+# Query Explanation
+azmcp documentdb explain find --db-name --collection-name --query '{}'
+azmcp documentdb explain count --db-name --collection-name --query '{}'
+azmcp documentdb explain aggregate --db-name --collection-name --pipeline '[{"$match": {"status": "active"}}]'
+
+# Index Operations
+azmcp documentdb index create --db-name --collection-name --keys '{"fieldName": 1}'
+azmcp documentdb index list --db-name --collection-name
+azmcp documentdb index drop --db-name --collection-name --index-name
+azmcp documentdb index stats --db-name --collection-name
+azmcp documentdb current ops
+```
+
### Azure AI Search Operations
```bash
diff --git a/servers/Azure.Mcp.Server/docs/documentdb-mcp-commands.md b/servers/Azure.Mcp.Server/docs/documentdb-mcp-commands.md
new file mode 100644
index 0000000000..46c3eb0b14
--- /dev/null
+++ b/servers/Azure.Mcp.Server/docs/documentdb-mcp-commands.md
@@ -0,0 +1,821 @@
+# DocumentDB MCP Server Commands Documentation
+
+## Table of Contents
+
+1. [Connection Tools](#1-connection-tools)
+2. [Database Tools](#2-database-tools)
+3. [Collection Tools](#3-collection-tools)
+4. [Document Tools](#4-document-tools)
+5. [Index Tools](#5-index-tools)
+6. [Workflow Tools](#6-workflow-tools)
+
+---
+
+## 1. Connection Tools
+
+### 1.1 connect_mongodb
+
+**Name**: Connect to MongoDB
+**Description**: Connect to a MongoDB instance with a connection string
+
+**Parameters**:
+
+| Parameter | Type | Required | Description |
+|-----------|------|----------|-------------|
+| `connection_string` | `string` | Yes | MongoDB connection string (e.g., `mongodb://localhost:27017`) |
+| `test_connection` | `boolean \| string` | No | Test the connection after connecting (default: `true`) |
+
+**Returns**:
+
+```json
+{
+ "type": "text",
+ "text": "JSON formatted connection result with status information"
+}
+```
+
+---
+
+### 1.2 disconnect_mongodb
+
+**Name**: Disconnect from MongoDB
+**Description**: Disconnect from the current MongoDB instance
+
+**Parameters**: None
+
+**Returns**:
+
+```json
+{
+ "type": "text",
+ "text": "JSON formatted disconnection result"
+}
+```
+
+---
+
+### 1.3 get_connection_status
+
+**Name**: Get Connection Status
+**Description**: Get the current MongoDB connection status and details
+
+**Parameters**: None
+
+**Returns**:
+
+```json
+{
+ "type": "text",
+ "text": "JSON formatted connection status information"
+}
+```
+
+---
+
+## 2. Database Tools
+
+### 2.1 list_databases
+
+**Name**: List Databases
+**Description**: List all databases in the DocumentDB instance
+
+**Parameters**: None
+
+**Returns**:
+
+```json
+{
+ "type": "text",
+ "text": "[\"admin\", \"local\", \"mydb\"]"
+}
+```
+
+Return format: JSON array of database names
+
+---
+
+### 2.2 db_stats
+
+**Name**: Database Statistics
+**Description**: Get detailed statistics about a database's size and storage usage
+
+**Parameters**:
+
+| Parameter | Type | Required | Description |
+|-----------|------|----------|-------------|
+| `db_name` | `string` | Yes | Name of the database |
+
+**Returns**:
+
+```json
+{
+ "type": "text",
+ "text": "JSON formatted database statistics (includes dataSize, storageSize, indexSize, etc.)"
+}
+```
+
+---
+
+### 2.3 get_db_info
+
+**Name**: Get Database Info
+**Description**: Get database information including all collections and their document counts
+
+**Parameters**:
+
+| Parameter | Type | Required | Description |
+|-----------|------|----------|-------------|
+| `db_name` | `string` | Yes | Name of the database |
+
+**Returns**:
+
+```json
+{
+ "type": "text",
+ "text": {
+ "database_name": "string",
+ "collections": [
+ {
+ "name": "string",
+ "count": "number",
+ "error": "string (optional)"
+ }
+ ]
+ }
+}
+```
+
+---
+
+### 2.4 drop_database
+
+**Name**: Drop Database
+**Description**: Drop a database and all its collections
+
+**Parameters**:
+
+| Parameter | Type | Required | Description |
+|-----------|------|----------|-------------|
+| `db_name` | `string` | Yes | Name of the database to drop |
+
+**Returns**:
+
+```json
+{
+ "type": "text",
+ "text": {
+ "success": "boolean",
+ "message": "string",
+ "data": "object"
+ }
+}
+```
+
+---
+
+## 3. Collection Tools
+
+### 3.1 collection_stats
+
+**Name**: Collection Statistics
+**Description**: Get detailed statistics about a collection's size and storage usage
+
+**Parameters**:
+
+| Parameter | Type | Required | Description |
+|-----------|------|----------|-------------|
+| `db_name` | `string` | Yes | Name of the database |
+| `collection_name` | `string` | Yes | Name of the collection |
+
+**Returns**:
+
+```json
+{
+ "type": "text",
+ "text": "JSON formatted collection statistics"
+}
+```
+
+---
+
+### 3.2 rename_collection
+
+**Name**: Rename Collection
+**Description**: Rename a collection
+
+**Parameters**:
+
+| Parameter | Type | Required | Description |
+|-----------|------|----------|-------------|
+| `db_name` | `string` | Yes | Name of the database |
+| `collection_name` | `string` | Yes | Name of the collection to rename |
+| `new_collection_name` | `string` | Yes | New name for the collection |
+
+**Returns**:
+
+```json
+{
+ "type": "text",
+ "text": {
+ "message": "Collection renamed successfully"
+ }
+}
+```
+
+---
+
+### 3.3 drop_collection
+
+**Name**: Drop Collection
+**Description**: Drop a collection from a database
+
+**Parameters**:
+
+| Parameter | Type | Required | Description |
+|-----------|------|----------|-------------|
+| `db_name` | `string` | Yes | Name of the database |
+| `collection_name` | `string` | Yes | Name of the collection to drop |
+
+**Returns**:
+
+```json
+{
+ "type": "text",
+ "text": {
+ "message": "Collection dropped successfully"
+ }
+}
+```
+
+---
+
+### 3.4 sample_documents
+
+**Name**: Sample Documents
+**Description**: Retrieve sample documents from a specific collection. Useful for understanding data schema and query generation
+
+**Parameters**:
+
+| Parameter | Type | Required | Description |
+|-----------|------|----------|-------------|
+| `db_name` | `string` | Yes | Name of the database |
+| `collection_name` | `string` | Yes | Name of the collection |
+| `sample_size` | `number \| string` | No | Number of documents to sample (default: `10`) |
+
+**Returns**:
+
+```json
+{
+ "type": "text",
+ "text": "JSON array of sample documents"
+}
+```
+
+---
+
+## 4. Document Tools
+
+### 4.1 find_documents
+
+**Name**: Find Documents
+**Description**: Find documents in a collection. Supports consolidated "options" object (limit, skip, sort, projection)
+
+**Parameters**:
+
+| Parameter | Type | Required | Description |
+|-----------|------|----------|-------------|
+| `db_name` | `string` | Yes | Name of the database |
+| `collection_name` | `string` | Yes | Name of the collection to query |
+| `query` | `object \| string` | No | Query filter in MongoDB style (default: `{}`) |
+| `options` | `object \| string` | No | Query options: `limit` (default 100), `skip` (default 0), `sort`, `projection` |
+
+**Returns**:
+
+```json
+{
+ "type": "text",
+ "text": {
+ "documents": "Array