MongoDB MCP 服务器

一个基于Node.js、MongoDB和MCP SDK构建的模型上下文协议服务器,使大型语言模型能够通过结构化、验证和模块化工具对MongoDB数据库执行实时CRUD操作。

  • by ujjawalptdr
  • JavaScript
  • 本地部署
  • 更新于
在 GitHub 查看 ujjawalptdr/Mongo-MCP-Server

使用说明

🧠 MongoDB MCP 服务器

A. 模型上下文协议(MCP) 用(某种技术或语言)构建的服务器 Node.js, MongoDB(注:MongoDB是一个开源的跨平台分布式数据库系统,通常直接以其英文名称作为中文名称使用),以及 MCP SDK(MCP软件开发工具包),使得/能够 大型语言模型(LLMs) 执行;表演;进行 实时的增删改查(CRUD)操作 通过结构化、经过验证且模块化的工具来操作MongoDB数据库。


🚀 概述

这个 MongoDB MCP 服务器 作为连接(两端)的中间件层 人工智能模型(大型语言模型) 并且 MongoDB 数据库。
它提供了一套动态的MCP工具,使大型语言模型(LLMs)能够直接 创建、读取、更新、删除和管理 数据库文档——全部通过结构化、模式验证的协议进行管理。

这个项目展示了人工智能如何安全、智能地与数据库进行交互 模型上下文协议(MCP)。


✨ 主要特性

  • 🔗(这个符号在中文里通常表示链接,但直接翻译时没有对应的中文文字,所以保持原样) 大型语言模型(LLM)集成: 使语言模型能够在MongoDB上执行实时的增删改查(CRUD)操作。
  • ⚙️ 表示“齿轮”或“机械装置”的符号,常用于表示与机械、技术或设置相关的概念。在中文中,这个符号本身没有直接的翻译,但可以根据上下文理解为“齿轮”、“机械装置”或“设置”等含义。 模块化MCP工具: 每个操作都被定义为一个可重用的、独立的工具。
  • 🧩 这个符号在中文里通常被用作“拼图”或“碎片”的象征,也可以泛指需要拼凑或组合起来的部分。在没有具体上下文的情况下,可以简单地翻译为“拼图”或“碎片”。 基于Zod的验证: 确保所有输入都结构清晰、安全且符合模式规范。
  • ⚡(闪电符号,无具体含义,可表示快速、能量、惊喜等概念,根据上下文灵活翻译) 异步处理程序: 设计注重性能、可扩展性和错误恢复能力。
  • 🔁 翻译为中文是:重新播放(循环) 持久的MongoDB连接: 保持单一客户端实例以实现高效访问。
  • 🧠 表示“大脑”或“思考”。 人工智能驱动的运营: 使人工智能系统能够以情境化和智能化的方式管理数据。

🧰 可用工具

工具名称 描述
创作者信息 获取创作者的详细信息。
获取文档 通过唯一ID检索文档。
列出文档列出MongoDB集合中的所有文档。
创建文档在指定的集合中创建一个新文档。
更新文档 通过ID更新现有文档。
删除文档 从集合中按ID删除文档。
清除集合从集合中移除所有文档。

🛠️ 技术栈

  • Node.js – 运行时环境
  • MongoDB(注:MongoDB是一个开源的数据库管理系统,属于NoSQL数据库,常用于处理大量数据和高并发场景) – NoSQL数据库
  • 模型上下文协议(MCP)软件开发工具包(SDK) – 大语言模型(LLM)集成的服务器框架
  • 佐德 – 输入验证库
  • dotenv(用于加载环境变量的库/工具) – 环境变量管理

⚙️ 安装

# Clone the repository
git clone https://github.com/ujjawalptdr/mongodb-mcp-server.git

# Navigate into the project
cd Mongo-MCP-Server

# Install dependencies
npm install

🧾 配置

创建一个 .env 项目根目录中的文件:

MONGODB_URI=mongodb://localhost:27017 (your_MongoDB_URI)
DB_NAME=<your_database_name>

▶️ 使用方法

运行MCP服务器

node src/server.js

你会看到:

✅ Connected to MongoDB: <your_database_name>
🧠 MongoDB MCP Server running...

服务器提供了一套工具,这些工具可以被 大型语言模型(LLMs)或MCP兼容客户端 如AI助手、Copilot、Claude或自定义应用程序。


🧠 它的工作原理

  1. MCP SDK(MCP软件开发工具包) 负责处理大型语言模型(LLM)与服务器之间的通信。
  2. 每次数据库操作(如 createDocument 或者 listDocuments) 被定义为一个 工具 (用词)严谨的 Zod 验证.
  3. 大型语言模型(LLMs)可以通过协议调用这些工具来查询、插入、更新或删除数据。
  4. 服务器确保数据完整性,并返回格式化的响应,以便大型语言模型(LLM)进行解析。

💡 工具定义示例

server.tool(
  "createDocument",
  "Insert a document into MongoDB",
  {
    collectionName: z.string(),
    data: z.record(z.any()),
  },
  mongoHandlers.createDocument
);

🧱 项目结构

📦 mongo-MCP-Server
├── 📦 src          # MCP Server configuration and tool registration
    ├── 📜 server.js             # MCP Server configuration
    ├── 📜 mongoHandlers.js      # CRUD logic and MongoDB connection
    ├── 📜 mcpServerMongo.js      # MCP Server configuration and tool registration
├── 📜 package.json
├── 📜 package-lock.json
├── 📜 .gitignore
├── 📜 .env                  # Environment variables
└── 📜 README.md             # Documentation

⚡ 示例操作

动作 示例
创造 { "collectionName": "users", "data": { "name": "Ujjawal", "role": "Developer" } }
阅读 { "collectionName": "users", "documentId": "6529a..." }
列表 { "collectionName": "users", "limit": 10 }
更新 { "collectionName": "users", "documentId": "6529a...", "updateData": { "role": "Admin" } }
删除 { "collectionName": "users", "documentId": "6529a..." }
清晰 { "collectionName": "users" }

🧩 未来增强功能

  • 🧠 添加对高级查询过滤器和聚合管道的支持。
  • 🔄 实现自动重连和连接健康状态监控。
  • ⚙️ 对于频繁的文档检索,引入缓存以提高性能。
  • 🧰 扩展MCP工具以支持多数据库或跨集合操作。
  • 🔐 集成可选身份验证,以确保AI与数据库之间的安全通信。

👨‍💻 创作者信息

乌贾瓦尔·帕蒂达尔
全栈开发人员 | 问题解决者 🔗 GitHub


📜 许可证

这个项目是开源的,并且遵循以下(许可协议/条款)可供使用 麻省理工学院许可证。


MongoDB MCP 服务器 – 桥接(或连接) 人工智能 与;和;带有 实时数据库控制 通过 模型上下文协议。