🗄️ MongoDB MCP Server for LLMS
一个模型上下文协议(MCP)服务器,使大型语言模型(LLM)能够直接与MongoDB数据库交互。通过自然语言查询集合、检查模式并无缝管理数据。
✨ 功能
- 🔍 集合模式检查
- 📊 文档查询和过滤
- 📈 索引管理
- 📝 文档操作(插入、更新、删除)
Demo Video
https://github.com/user-attachments/assets/2389bf23-a10d-49f9-bca9-2b39a1ebe654
🚀 快速入门
要开始使用,请找到您的mongodb连接地址,并将此配置添加到您的Claude Desktop配置文件中:
MacOS: ~/Library/Application\ Support/Claude/claude_desktop_config.json
Windows: %APPDATA%/Claude/claude_desktop_config.json
{
"mcpServers": {
"mongodb": {
"command": "npx",
"args": [
"mongo-mcp",
"mongodb://<username>:<password>@<host>:<port>/<database>?authSource=admin"
]
}
}
}
通过Smithery安装
要自动通过Smithery安装MongoDB MCP Server for Claude Desktop:
npx -y @smithery/cli install mongo-mcp --client claude
前置条件
- Node.js 18+
- npx
- Docker和Docker Compose(仅用于本地沙盒测试)
- MCP客户端(例如Claude桌面应用程序)
测试沙盒设置
如果您没有要连接的mongo db服务器,并希望创建一个示例沙盒,请按照以下步骤操作
- 使用Docker Compose启动MongoDB:
docker-compose up -d
- 用测试数据填充数据库:
npm run seed
配置Claude Desktop
将此配置添加到您的Claude Desktop配置文件中:
MacOS: ~/Library/Application\ Support/Claude/claude_desktop_config.json
Windows: %APPDATA%/Claude/claude_desktop_config.json
本地开发模式:
{
"mcpServers": {
"mongodb": {
"command": "node",
"args": [
"dist/index.js",
"mongodb://root:example@localhost:27017/test?authSource=admin"
]
}
}
}
测试沙盒数据结构
种子脚本创建了三个包含示例数据的集合:
Users
- 个人信息(姓名、邮箱、年龄)
- 嵌套地址带坐标
- 兴趣数组
- 会员日期
Products
- 产品详情(名称、SKU、类别)
- 嵌套规格
- 价格和库存信息
- 标签和评分
Orders
- 带有商品的订单详情
- 用户引用
- 运输和支付信息
- 状态跟踪
🎯 示例提示
尝试使用Claude探索这些提示的功能:
基本操作
"数据库中有哪些可用的集合?"
"显示用户集合的模式"
"查找旧金山的所有用户"
高级查询
"查找所有库存中且价格低于$1000的电子产品"
"显示来自用户john@example.com的所有订单"
"列出评分高于4.5的产品"
索引管理
"用户集合上存在哪些索引?"
"为产品集合的'category'字段创建索引"
"列出所有集合的所有索引"
文档操作
"在产品集合中插入一个名为'Gaming Laptop'的新产品"
"将订单ID X的状态更新为'shipped'"
"查找并删除所有库存不足的产品"
📝 可用工具
服务器提供这些工具用于数据库交互:
查询工具
find: 带过滤和投影查询文档listCollections: 列出可用集合insertOne: 插入单个文档updateOne: 更新单个文档deleteOne: 删除单个文档
索引工具
createIndex: 创建新索引dropIndex: 删除索引indexes: 列出集合的索引
📜 许可证
本项目根据MIT许可证授权 - 详细内容请参阅LICENSE文件。