MCP CosmosDB 是一款用于 Azure CosmosDB 数据库操作的全面 模型上下文协议 (MCP) 服务器。该服务器通过 MCP 协议提供了 8 种强大的工具,可用于文档数据库分析、容器发现和数据查询。
属性 | 详情 | 示例 |
---|---|---|
OCONNSTRING |
从 Azure 门户获取的 CosmosDB 连接字符串 | AccountEndpoint=https://...;AccountKey=...; |
COSMOS_DATABASE_ID |
要连接的数据库 ID | MyDatabase |
无需安装!配置您的 MCP 客户端:
{
"mcpServers": {
"mcp-cosmosdb": {
"command": "npx",
"args": ["-y", "hendrickcastro/MCPCosmosDB"],
"env": {
"OCONNSTRING": "AccountEndpoint=https://your-cosmos-account.documents.azure.com:443/;AccountKey=your-account-key-here;",
"COSMOS_DATABASE_ID": "your-database-name"
}
}
}
}
git clone
cd MCPCosmosDB
npm install && npm run build
然后使用本地路径进行配置:
{
"mcpServers": {
"mcp-cosmosdb": {
"command": "node",
"args": ["path/to/MCPCosmosDB/dist/server.js"],
"env": {
"OCONNSTRING": "your-connection-string",
"COSMOS_DATABASE_ID": "your-database-name"
}
}
}
}
MCP CosmosDB 为 Azure CosmosDB 操作提供了 8 种全面的工具:
mcp_list_databases
列出 CosmosDB 账户中的所有数据库。
mcp_list_containers
列出当前数据库中的所有容器。
mcp_container_info
获取特定容器的详细信息,包括分区键、索引策略和吞吐量设置。
mcp_container_stats
获取容器的统计信息,包括文档计数、大小估计和分区键分布。
mcp_execute_query
使用参数和性能指标对 CosmosDB 容器执行 SQL 查询。
mcp_get_documents
从容器中检索文档,可选择进行过滤和指定分区键。
mcp_get_document_by_id
通过文档 ID 和分区键检索特定文档。
mcp_analyze_schema
分析容器中的文档模式结构,以了解数据模式。
// 列出所有容器
const containers = await mcp_list_containers();
// 获取容器信息
const containerInfo = await mcp_container_info({
container_id: "users"
});
// 获取容器统计信息
const stats = await mcp_container_stats({
container_id: "users",
sample_size: 1000
});
// 执行 SQL 查询
const result = await mcp_execute_query({
container_id: "products",
query: "SELECT * FROM c WHERE c.category = @category AND c.price > @minPrice",
parameters: { "category": "electronics", "minPrice": 100 },
max_items: 50
});
// 获取过滤后的文档
const documents = await mcp_get_documents({
container_id: "orders",
filter_conditions: { "status": "completed", "year": 2024 },
limit: 100
});
// 获取特定文档
const document = await mcp_get_document_by_id({
container_id: "users",
document_id: "user-123",
partition_key: "user-123"
});
// 分析模式
const schema = await mcp_analyze_schema({
container_id: "products",
sample_size: 500
});
变量 | 描述 | 默认值 |
---|---|---|
COSMOS_ENABLE_ENDPOINT_DISCOVERY |
启用自动端点发现 | true |
COSMOS_MAX_RETRY_ATTEMPTS |
请求的最大重试次数 | 9 |
COSMOS_MAX_RETRY_WAIT_TIME |
最大重试等待时间(毫秒) | 30000 |
COSMOS_ENABLE_CROSS_PARTITION_QUERY |
启用跨分区查询 | true |
生产环境:
{
"env": {
"OCONNSTRING": "AccountEndpoint=https://mycompany-prod.documents.azure.com:443/;AccountKey=your-production-key;",
"COSMOS_DATABASE_ID": "ProductionDB"
}
}
CosmosDB 模拟器(本地):
{
"env": {
"OCONNSTRING": "AccountEndpoint=https://localhost:8081/;AccountKey=C2y6yDjf5/R+ob0N8A7Cgv30VRDJIWEHLM+4QDU5DE2nQ9nDuVTqobD4b8mGGyPMbIZnqyMsEcaGQy67XIw/Jw==;",
"COSMOS_DATABASE_ID": "TestDB"
}
}
高级配置:
{
"env": {
"OCONNSTRING": "AccountEndpoint=https://mycompany.documents.azure.com:443/;AccountKey=your-key;",
"COSMOS_DATABASE_ID": "MyDatabase",
"COSMOS_MAX_RETRY_ATTEMPTS": "15",
"COSMOS_MAX_RETRY_WAIT_TIME": "60000"
}
}
OCONNSTRING
格式是否包含 AccountEndpoint
和 AccountKey
COSMOS_DATABASE_ID
是否与现有数据库匹配COSMOS_MAX_RETRY_WAIT_TIME
或检查网络enable_cross_partition: true
partition_key
npm test # 运行测试
npm run build # 构建项目
npm start # 开发模式
src/
├── tools/ # 工具实现
│ ├── containerAnalysis.ts # 容器操作
│ ├── dataOperations.ts # 数据查询
│ └── types.ts # 类型定义
├── db.ts # CosmosDB 连接
├── server.ts # MCP 服务器设置
└── tools.ts # 工具定义
⚠️ 重要提示
- 容器 ID:使用与 CosmosDB 中完全一致的名称
- 分区键:为获得最佳性能,请务必指定
- 跨分区查询:可能会产生较高费用,请使用过滤器
- 请求费用:监控 RU 消耗
- 安全性:安全存储连接字符串
git checkout -b feature/name
)npm test
)git commit -m 'Add feature'
)本项目采用 MIT 许可证 - 有关详细信息,请参阅 LICENSE 文件。
cosmosdb
azure-cosmosdb
nosql
document-database
database-analysis
database-tools
azure
database-management
database-operations
data-analysis
model-context-protocol
mcp-server
mcp-tools
ai-tools
claude-desktop
cursor-ide
anthropic
llm-integration
ai-database
intelligent-database
typescript
nodejs
npm-package
cli-tool
database-client
nosql-client
database-sdk
rest-api
json-api
database-connector
container-analysis
document-operations
sql-queries
schema-analysis
query-execution
database-search
data-exploration
database-insights
partition-management
throughput-analysis
database-development
data-science
business-intelligence
database-migration
schema-documentation
performance-analysis
data-governance
database-monitoring
troubleshooting
automation
🎯 MCP CosmosDB 通过模型上下文协议提供全面的 Azure CosmosDB 数据库分析。非常适合使用 CosmosDB 的开发人员和数据分析师! 🚀