项目简介
MCP CosmosDB 是一个专为 Azure CosmosDB 设计的 Model Context Protocol (MCP) 服务器。它将复杂的 CosmosDB 数据库操作封装成一系列LLM友好的工具,使大型语言模型(LLM)能够通过标准化的MCP协议,进行数据库发现、数据查询、模式分析等高级功能。这个服务器提供了一个安全、可扩展的框架,让LLM应用能够方便地获取和管理Azure CosmosDB的上下文信息。
主要功能点
- 数据库和容器管理: 能够列出 CosmosDB 账户中的所有数据库,以及指定数据库中的所有容器。这有助于LLM了解可用的数据存储结构。
- 容器详细信息: 获取容器的详细配置信息,包括分区键定义、索引策略以及当前的吞吐量设置,为LLM提供深入的容器洞察。
- 容器统计分析: 提供容器的统计数据,如文档总数、预估存储大小和分区键分布情况,帮助LLM评估数据规模和分布。
- SQL查询执行: 支持对 CosmosDB 容器执行灵活的 SQL 查询,并可传入参数,允许LLM精确地检索所需数据。
- 文档检索: 根据过滤条件、限制数量或文档ID和分区键,高效地检索特定文档,便于LLM获取具体的数据记录。
- 数据模式分析: 自动分析容器内文档的结构和数据类型,生成数据模式报告,帮助LLM理解数据格式和潜在的查询方式。
安装步骤
本项目是一个Node.js应用,您可以通过 'npx' 直接运行,无需在本地进行复杂的安装。如果需要进行本地开发或手动部署,请按照以下步骤操作:
-
克隆仓库: 打开您的命令行工具,执行以下命令克隆项目代码: 'git clone https://github.com/hendrickcastro/MCPCosmosDB.git' 然后进入项目目录: 'cd MCPCosmosDB'
-
安装依赖并构建: 在项目目录中,运行以下命令安装所有必要的依赖,并构建项目: 'npm install' 'npm run build'
服务器配置 (MCP客户端配置)
MCP客户端(如Claude Desktop, Cursor IDE等)需要配置以下信息才能与此MCP服务器建立连接。这是一个标准的JSON配置,您需要将 'OCONNSTRING' 和 'COSMOS_DATABASE_ID' 替换为您的实际Azure CosmosDB连接字符串和数据库ID。
{ "mcpServers": { "mcp-cosmosdb": { "command": "npx", // 用于启动MCP服务器的命令,npx可以直接运行GitHub仓库 "args": ["-y", "hendrickcastro/MCPCosmosDB"], // 传递给命令的参数,指定运行该GitHub仓库 "env": { "OCONNSTRING": "AccountEndpoint=https://your-cosmos-account.documents.azure.com:443/;AccountKey=your-account-key-here;", // 您的Azure CosmosDB连接字符串,从Azure Portal获取 "COSMOS_DATABASE_ID": "your-database-name" // 您希望服务器连接并操作的CosmosDB数据库ID } } } }
配置说明:
- 'command': 这是用于启动MCP服务器进程的命令。推荐使用 'npx',它能够直接运行远程GitHub仓库而无需预先安装。
- 'args': 传递给 'command' 的参数。'-y hendrickcastro/MCPCosmosDB' 指示 'npx' 直接执行 'hendrickcastro/MCPCosmosDB' 这个项目。
- 'env': 这是一个包含环境变量的JSON对象,用于配置CosmosDB的连接信息。
- 'OCONNSTRING': 您的Azure CosmosDB账户的完整连接字符串,其中应包含 'AccountEndpoint' 和 'AccountKey'。
- 'COSMOS_DATABASE_ID': 您希望此MCP服务器连接并进行操作的特定CosmosDB数据库的ID。
基本使用方法
配置完成后,您的MCP客户端(例如Claude Desktop或Cursor IDE)将能够自动发现并调用 MCP CosmosDB 服务器提供的工具。您可以在与LLM的对话中直接表达数据库查询或分析需求,LLM将自动利用这些工具来获取、处理或分析相关信息。
示例 (LLM调用场景):
-
列出所有容器: 如果您在与LLM对话中问道“数据库中都有哪些容器?”,LLM可能会自动调用 'mcp_list_containers' 工具来获取容器列表,并向您展示结果。
-
查询特定数据: 如果您要求LLM“查询 'products' 容器中所有价格高于100的电子产品”,LLM会智能地构建并调用 'mcp_execute_query' 工具,并传入相应的容器ID、SQL查询语句和参数,然后将查询结果呈现给您。
-
分析容器结构: 如果您想了解 'users' 容器的数据结构,可以直接向LLM提问,它将调用 'mcp_analyze_schema' 工具来获取详细的模式分析报告,帮助您理解数据字段和类型。
信息
分类
数据库与文件