The MCP CosmosDB server enables comprehensive management and analysis of Azure CosmosDB databases through the Model Context Protocol, providing 8 key tools:
• List Databases - Enumerate all databases in your CosmosDB account • List Containers - Display all containers within a database • Container Information - Get detailed metadata including partition key, indexing policy, and throughput settings • Container Statistics - Analyze document count, estimated size, and partition key distribution • Execute SQL Queries - Run custom SQL queries with parameters, result limits, and cross-partition support • Get Documents - Retrieve documents with filtering, partition key specification, and result limiting • Get Document by ID - Fetch specific documents using their unique ID and partition key • Schema Analysis - Examine document structure and data types to identify patterns and anomalies
Allows direct execution from GitHub repository using npx, with configuration instructions for connecting to various MCP clients.
Leverages Node.js runtime for server operations, requiring Node.js 18+ for execution and compatibility.
Built with TypeScript for type safety and modern JavaScript features, providing strongly-typed interfaces for database operations.
MCP CosmosDB - Azure CosmosDB MCP Server
A comprehensive Model Context Protocol (MCP) server for Azure CosmosDB database operations. This server provides 8 powerful tools for document database analysis, container discovery, and data querying through the MCP protocol.
🚀 Quick Start
Prerequisites
- Node.js 18+ and npm
- Azure CosmosDB database with connection string
- MCP-compatible client (Claude Desktop, Cursor IDE, etc.)
⚙️ Configuration
Required Environment Variables
Variable | Description | Example |
---|---|---|
OCONNSTRING | CosmosDB connection string from Azure Portal | AccountEndpoint=https://...;AccountKey=...; |
COSMOS_DATABASE_ID | Database ID to connect to | MyDatabase |
Installation Options
Option 1: NPX (Recommended)
No installation needed! Configure your MCP client:
Option 2: Local Development
Then configure with local path:
🛠️ Available Tools
MCP CosmosDB provides 8 comprehensive tools for Azure CosmosDB operations:
1. 🗄️ List Databases - mcp_list_databases
List all databases in the CosmosDB account.
2. 📦 List Containers - mcp_list_containers
List all containers in the current database.
3. 📋 Container Information - mcp_container_info
Get detailed information about a specific container including partition key, indexing policy, and throughput settings.
4. 📊 Container Statistics - mcp_container_stats
Get statistics about a container including document count, size estimation, and partition key distribution.
5. 🔍 Execute SQL Query - mcp_execute_query
Execute SQL queries against CosmosDB containers with parameters and performance metrics.
6. 📄 Get Documents - mcp_get_documents
Retrieve documents from containers with optional filtering and partition key targeting.
7. 🎯 Get Document by ID - mcp_get_document_by_id
Retrieve a specific document by its ID and partition key.
8. 🏗️ Schema Analysis - mcp_analyze_schema
Analyze document schema structure in containers to understand data patterns.
📋 Usage Examples
Container Analysis
Querying Data
Document Operations
Optional Configuration
Variable | Description | Default |
---|---|---|
COSMOS_ENABLE_ENDPOINT_DISCOVERY | Enable automatic endpoint discovery | true |
COSMOS_MAX_RETRY_ATTEMPTS | Maximum retry attempts for requests | 9 |
COSMOS_MAX_RETRY_WAIT_TIME | Maximum retry wait time (ms) | 30000 |
COSMOS_ENABLE_CROSS_PARTITION_QUERY | Enable cross-partition queries | true |
Configuration Examples
Production Environment:
CosmosDB Emulator (Local):
Advanced Configuration:
🚨 Troubleshooting
Connection Issues:
- Invalid connection string: Verify OCONNSTRING format includes AccountEndpoint and AccountKey
- Database not found: Check COSMOS_DATABASE_ID matches existing database
- Request timeout: Increase COSMOS_MAX_RETRY_WAIT_TIME or check network
Query Issues:
- Cross partition query required: Set
enable_cross_partition: true
in query parameters - Query timeout: Reduce sample sizes or add specific filters
- Partition key required: Specify partition_key for single-partition operations
CosmosDB Emulator:
- Install Azure CosmosDB Emulator
- Start emulator on port 8081
- Use default emulator connection string
- Create database and containers for testing
🧪 Development
🏗️ Architecture
Project Structure:
Key Features:
- ⚡ Connection management with retry logic
- 🛡️ Comprehensive error handling
- 📊 Performance metrics and request charges
- 🔧 Environment-based configuration
- 📋 Intelligent schema analysis
📝 Important Notes
- Container IDs: Use exact names as in CosmosDB
- Partition Keys: Required for optimal performance
- Cross-Partition Queries: Can be expensive; use filters
- Request Charges: Monitor RU consumption
- Security: Store connection strings securely
🤝 Contributing
- Fork the repository
- Create feature branch (
git checkout -b feature/name
) - Make changes and add tests
- Ensure tests pass (
npm test
) - Commit changes (
git commit -m 'Add feature'
) - Push and open Pull Request
📄 License
MIT License - see LICENSE file for details.
🏷️ Tags & Keywords
Database: cosmosdb
azure-cosmosdb
nosql
document-database
database-analysis
database-tools
azure
database-management
database-operations
data-analysis
MCP & AI: model-context-protocol
mcp-server
mcp-tools
ai-tools
claude-desktop
cursor-ide
anthropic
llm-integration
ai-database
intelligent-database
Technology: typescript
nodejs
npm-package
cli-tool
database-client
nosql-client
database-sdk
rest-api
json-api
database-connector
Features: container-analysis
document-operations
sql-queries
schema-analysis
query-execution
database-search
data-exploration
database-insights
partition-management
throughput-analysis
Use Cases: database-development
data-science
business-intelligence
database-migration
schema-documentation
performance-analysis
data-governance
database-monitoring
troubleshooting
automation
🙏 Acknowledgments
- Model Context Protocol SDK
- @azure/cosmos
- Inspired by MCPQL
🎯 MCP CosmosDB provides comprehensive Azure CosmosDB database analysis through the Model Context Protocol. Perfect for developers and data analysts working with CosmosDB! 🚀
remote-capable server
The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.
Tools
A Model Context Protocol server for Azure CosmosDB database operations that provides 8 tools for document database analysis, container discovery, and data querying.
- 🚀 Quick Start
- ⚙️ Configuration
- 🛠️ Available Tools
- 1. 🗄️ List Databases - mcp_list_databases
- 2. 📦 List Containers - mcp_list_containers
- 3. 📋 Container Information - mcp_container_info
- 4. 📊 Container Statistics - mcp_container_stats
- 5. 🔍 Execute SQL Query - mcp_execute_query
- 6. 📄 Get Documents - mcp_get_documents
- 7. 🎯 Get Document by ID - mcp_get_document_by_id
- 8. 🏗️ Schema Analysis - mcp_analyze_schema
- 📋 Usage Examples
- 🚨 Troubleshooting
- 🧪 Development
- 🏗️ Architecture
- 📝 Important Notes
- 🤝 Contributing
- 📄 License
- 🏷️ Tags & Keywords
- 🙏 Acknowledgments
Related MCP Servers
- AsecurityAlicenseAqualityThis server implements the Model Context Protocol for seamless interaction with Azure Blob Storage and Cosmos DB, enabling automatic logging and audit tracking of operations.Last updated -165PythonMIT License
- AsecurityAlicenseAqualityA Model Context Protocol server that enables AI assistants to interact with Azure DevOps services, allowing users to query work items with plans to support creating/updating items, managing pipelines, handling pull requests, and administering sprints and branch policies.Last updated -972PythonMIT License
- AsecurityAlicenseAqualityA Model Context Protocol server for querying and analyzing Azure resources at scale using Azure Resource Graph, enabling AI assistants to explore and monitor Azure infrastructure.Last updated -110TypeScriptMIT License
- -securityFlicense-qualityA Model Context Protocol server that integrates with Azure DevOps, enabling users to query work items, access backlogs, and perform various Azure DevOps operations through a standardized interface.Last updated -1Python