[Onboard][Part Four] Mcp Server for Azure DocumentDB (Document)#2054
Open
xingfan-git wants to merge 32 commits intomainfrom
Open
[Onboard][Part Four] Mcp Server for Azure DocumentDB (Document)#2054xingfan-git wants to merge 32 commits intomainfrom
xingfan-git wants to merge 32 commits intomainfrom
Conversation
…/github.com/microsoft/mcp into users/xingfan/onboardingvcoremcp_database
Contributor
There was a problem hiding this comment.
Pull request overview
Adds a new Azure DocumentDB (with MongoDB compatibility) tool area to Azure.Mcp.Server, including document/index/database/collection operations plus diagnostics, and wires it into discovery/docs/testing/packaging.
Changes:
- Introduces the
documentdbarea (commands, options, service contract, JSON context/response plumbing) and registers it in Azure.Mcp.Server. - Adds unit + live tests and test resource provisioning scripts (bicep + post-deploy initialization).
- Updates server docs/tool discovery metadata (README, azmcp-commands, e2e prompts, consolidated-tools) and build/packaging logic for MongoDB.Driver trimming constraints.
Reviewed changes
Copilot reviewed 85 out of 85 changed files in this pull request and generated 6 comments.
Show a summary per file
| File | Description |
|---|---|
| tools/Azure.Mcp.Tools.DocumentDb/tests/test-resources.bicep | Provisions DocumentDB mongoCluster test resource + outputs connection details |
| tools/Azure.Mcp.Tools.DocumentDb/tests/test-resources-post.ps1 | Post-deploy init using mongosh to seed DB/collection |
| tools/Azure.Mcp.Tools.DocumentDb/tests/Azure.Mcp.Tools.DocumentDb.UnitTests/Others/GetStatsCommandTests.cs | Unit tests for stats command |
| tools/Azure.Mcp.Tools.DocumentDb/tests/Azure.Mcp.Tools.DocumentDb.UnitTests/Others/CurrentOpsCommandTests.cs | Unit tests for current ops command |
| tools/Azure.Mcp.Tools.DocumentDb/tests/Azure.Mcp.Tools.DocumentDb.UnitTests/Index/ListIndexesCommandTests.cs | Unit tests for listing indexes |
| tools/Azure.Mcp.Tools.DocumentDb/tests/Azure.Mcp.Tools.DocumentDb.UnitTests/Index/DropIndexCommandTests.cs | Unit tests for dropping indexes |
| tools/Azure.Mcp.Tools.DocumentDb/tests/Azure.Mcp.Tools.DocumentDb.UnitTests/Index/CreateIndexCommandTests.cs | Unit tests for creating indexes |
| tools/Azure.Mcp.Tools.DocumentDb/tests/Azure.Mcp.Tools.DocumentDb.UnitTests/Document/UpdateDocumentsCommandTests.cs | Unit tests for document updates |
| tools/Azure.Mcp.Tools.DocumentDb/tests/Azure.Mcp.Tools.DocumentDb.UnitTests/Document/InsertDocumentsCommandTests.cs | Unit tests for document insert modes |
| tools/Azure.Mcp.Tools.DocumentDb/tests/Azure.Mcp.Tools.DocumentDb.UnitTests/Document/FindDocumentsCommandTests.cs | Unit tests for find documents + options |
| tools/Azure.Mcp.Tools.DocumentDb/tests/Azure.Mcp.Tools.DocumentDb.UnitTests/Document/FindAndModifyCommandTests.cs | Unit tests for find-and-modify |
| tools/Azure.Mcp.Tools.DocumentDb/tests/Azure.Mcp.Tools.DocumentDb.UnitTests/Document/ExplainQueryCommandTests.cs | Unit tests for explain query |
| tools/Azure.Mcp.Tools.DocumentDb/tests/Azure.Mcp.Tools.DocumentDb.UnitTests/Document/DeleteDocumentsCommandTests.cs | Unit tests for deletes |
| tools/Azure.Mcp.Tools.DocumentDb/tests/Azure.Mcp.Tools.DocumentDb.UnitTests/Document/CountDocumentsCommandTests.cs | Unit tests for counting documents |
| tools/Azure.Mcp.Tools.DocumentDb/tests/Azure.Mcp.Tools.DocumentDb.UnitTests/Document/AggregateCommandTests.cs | Unit tests for aggregations |
| tools/Azure.Mcp.Tools.DocumentDb/tests/Azure.Mcp.Tools.DocumentDb.UnitTests/Database/ListDatabasesCommandTests.cs | Unit tests for database listing/details |
| tools/Azure.Mcp.Tools.DocumentDb/tests/Azure.Mcp.Tools.DocumentDb.UnitTests/Database/DropDatabaseCommandTests.cs | Unit tests for dropping DBs |
| tools/Azure.Mcp.Tools.DocumentDb/tests/Azure.Mcp.Tools.DocumentDb.UnitTests/Collection/SampleDocumentsCommandTests.cs | Unit tests for sampling documents |
| tools/Azure.Mcp.Tools.DocumentDb/tests/Azure.Mcp.Tools.DocumentDb.UnitTests/Collection/RenameCollectionCommandTests.cs | Unit tests for renaming collections |
| tools/Azure.Mcp.Tools.DocumentDb/tests/Azure.Mcp.Tools.DocumentDb.UnitTests/Collection/DropCollectionCommandTests.cs | Unit tests for dropping collections |
| tools/Azure.Mcp.Tools.DocumentDb/tests/Azure.Mcp.Tools.DocumentDb.UnitTests/Azure.Mcp.Tools.DocumentDb.UnitTests.csproj | Adds unit test project |
| tools/Azure.Mcp.Tools.DocumentDb/tests/Azure.Mcp.Tools.DocumentDb.LiveTests/assets.json | Adds assets repo metadata for tests |
| tools/Azure.Mcp.Tools.DocumentDb/tests/Azure.Mcp.Tools.DocumentDb.LiveTests/DocumentDbCommandTests.cs | Live tests calling MCP tools + MongoDB seeding helpers |
| tools/Azure.Mcp.Tools.DocumentDb/tests/Azure.Mcp.Tools.DocumentDb.LiveTests/Azure.Mcp.Tools.DocumentDb.LiveTests.csproj | Adds live test project |
| tools/Azure.Mcp.Tools.DocumentDb/src/Services/IDocumentDbService.cs | Service contract for DocumentDB operations |
| tools/Azure.Mcp.Tools.DocumentDb/src/Options/** | Options model types for all commands |
| tools/Azure.Mcp.Tools.DocumentDb/src/Options/BaseDocumentDbOptions.cs | Base options including connection string |
| tools/Azure.Mcp.Tools.DocumentDb/src/Models/DocumentDbResponse.cs | Unified response envelope for commands/services |
| tools/Azure.Mcp.Tools.DocumentDb/src/GlobalUsings.cs | Adds global System.CommandLine using |
| tools/Azure.Mcp.Tools.DocumentDb/src/DocumentDbSetup.cs | DI registrations + command group wiring for documentdb |
| tools/Azure.Mcp.Tools.DocumentDb/src/Commands/Others/GetStatsCommand.cs | Stats command implementation |
| tools/Azure.Mcp.Tools.DocumentDb/src/Commands/Others/CurrentOpsCommand.cs | Current ops command implementation |
| tools/Azure.Mcp.Tools.DocumentDb/src/Commands/Index/ListIndexesCommand.cs | List indexes command implementation |
| tools/Azure.Mcp.Tools.DocumentDb/src/Commands/Index/DropIndexCommand.cs | Drop index command implementation |
| tools/Azure.Mcp.Tools.DocumentDb/src/Commands/Index/CreateIndexCommand.cs | Create index command implementation |
| tools/Azure.Mcp.Tools.DocumentDb/src/Commands/DocumentDbOptionDefinitions.cs | Central option definitions (names/descriptions/allowed values) |
| tools/Azure.Mcp.Tools.DocumentDb/src/Commands/DocumentDbJsonContext.cs | STJ source-gen context + response serialization helper |
| tools/Azure.Mcp.Tools.DocumentDb/src/Commands/DocumentDbHelpers.cs | BSON/JSON parsing helpers |
| tools/Azure.Mcp.Tools.DocumentDb/src/Commands/Document/* | Document commands (find/count/insert/update/delete/aggregate/fam/explain) |
| tools/Azure.Mcp.Tools.DocumentDb/src/Commands/Database/* | Database commands (list/drop) |
| tools/Azure.Mcp.Tools.DocumentDb/src/Commands/Collection/* | Collection commands (rename/drop/sample) |
| tools/Azure.Mcp.Tools.DocumentDb/src/Commands/BaseDocumentDbCommand.cs | Base command wiring for connection-string option + status mapping |
| tools/Azure.Mcp.Tools.DocumentDb/src/Azure.Mcp.Tools.DocumentDb.csproj | New tool project references + MongoDB.Driver dependency + trim settings |
| tools/Azure.Mcp.Tools.DocumentDb/src/AssemblyInfo.cs | InternalsVisibleTo for unit tests |
| servers/Azure.Mcp.Server/src/Resources/consolidated-tools.json | Adds consolidated tool mappings for DocumentDB + extends db “meta-tool” mapping |
| servers/Azure.Mcp.Server/src/Program.cs | Registers DocumentDbSetup area |
| servers/Azure.Mcp.Server/docs/e2eTestPrompts.md | Adds e2e prompts for DocumentDB commands |
| servers/Azure.Mcp.Server/docs/azmcp-commands.md | Adds CLI command docs for DocumentDB area |
| servers/Azure.Mcp.Server/changelog-entries/*.yaml | Changelog entries for new DocumentDB functionality |
| servers/Azure.Mcp.Server/README.md | Adds prompt examples for DocumentDB |
| servers/Azure.Mcp.Server/Azure.Mcp.Server.slnx | Adds new tool/test projects into solution |
| eng/scripts/New-BuildInfo.ps1 | Disables trimming for servers that depend on MongoDB.Driver |
| Directory.Packages.props | Adds central package version for MongoDB.Driver |
| .github/CODEOWNERS | Adds ownership for DocumentDb tool area |
...s.DocumentDb/tests/Azure.Mcp.Tools.DocumentDb.UnitTests/Document/ExplainQueryCommandTests.cs
Show resolved
Hide resolved
tools/Azure.Mcp.Tools.DocumentDb/src/Commands/Document/FindDocumentsCommand.cs
Show resolved
Hide resolved
tools/Azure.Mcp.Tools.DocumentDb/src/Commands/Document/FindAndModifyCommand.cs
Outdated
Show resolved
Hide resolved
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What does this PR do?
This PR added MCP tools for managing Azure DocumentDB (with MongoDB compatibility) document. It implements:
Also this PR modified the option file structure for documentdb tools: tools/Azure.Mcp.Tools.DocumentDb/src/Options
Refine args naming, unify tools description, remove redundant e2etestprompt samples
[Any additional context, screenshots, or information that helps reviewers]Documentation:
Azure DocumentDB (with MongoDB compatibility) documentation
GitHub issue number?
[MCP Server Request] DocumentDB previously known as Azure Cosmos DB for MongoDB (vCore)
Pre-merge Checklist
servers/Azure.Mcp.Server/CHANGELOG.mdand/orservers/Fabric.Mcp.Server/CHANGELOG.mdfor product changes (features, bug fixes, UI/UX, updated dependencies)servers/Azure.Mcp.Server/README.mdand/orservers/Fabric.Mcp.Server/README.mddocumentationeng/scripts/Process-PackageReadMe.ps1. See Package README/servers/Azure.Mcp.Server/docs/azmcp-commands.mdand/or/docs/fabric-commands.md.\eng\scripts\Update-AzCommandsMetadata.ps1to update tool metadata in azmcp-commands.md (required for CI)ToolDescriptionEvaluatorand obtained a score of0.4or more and a top 3 ranking for all related test promptsconsolidated-tools.jsonbreaking-changelabel/servers/Azure.Mcp.Server/docs/e2eTestPrompts.mdcrypto mining, spam, data exfiltration, etc.)/azp run mcp - pullrequest - liveto run Live Test Pipeline