这是一个模型上下文协议(MCP)服务器,使LLMs能够直接与MongoDB数据库交互。通过自然语言查询集合、检查模式并管理数据。
模型上下文协议(MCP)是由Anthropic开发的一个开放标准,它创建了一种通用方式让AI系统连接到外部数据源和工具。MCP在以下之间建立了一个标准化通信渠道:
MCP的主要优点包括:
开始之前,请确保您有:
您可以运行以下命令来验证您的Node.js安装:
node --version # 应显示v18.0.0或更高版本
要开始,请找到您的MongoDB连接URL,并将此配置添加到您的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.ai是一个MCP服务器注册平台,简化了发现和安装过程。要通过Smithery自动安装MongoDB MCP Server for Claude Desktop:
npx -y @smithery/cli install mongo-mcp --client claude
要在Cursor.ai中使用MongoDB MCP:
mongodbnpxmongo-mcp mongodb://<username>:<password>@<host>:<port>/<database>?authSource=admin注意:Cursor目前仅支持Agent in Composer功能中的MCP工具。
如果您没有可用的MongoDB服务器并且想要创建一个示例沙盒,请按照以下步骤操作:
docker-compose up -d
npm run seed
将此配置添加到您的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"
]
}
}
}
种子脚本创建了三个带有示例数据的集合:
尝试这些提示以探索功能:
"数据库中有哪些集合?"
"显示用户集合的模式"
"查找所有在旧金山的用户"
"查找所有在库且价格低于$1000的电子产品"
"显示来自用户john@example.com的所有订单"
"列出评分高于4.5的产品"
"用户集合上存在哪些索引?"
"在产品集合上为'类别'字段创建索引"
"列出所有集合上的所有索引"
"在产品集合中插入一个名为'游戏笔记本电脑'的新产品"
"更新ID为X的订单状态为'已发货'"
"查找并删除所有缺货的产品"
该服务器提供了这些工具用于数据库交互:
listCollections: 列出数据库中的可用集合find: 查询文档,带过滤和投影insertOne: 将单个文档插入集合updateOne: 更新集合中的单个文档deleteOne: 从集合中删除单个文档createIndex: 在集合上创建新索引dropIndex: 从集合中移除索引indexes: 列出集合的索引该项目使用以下构建:
要设置开发环境:
# 安装依赖
npm install
# 构建项目
npm run build
# 在开发模式下运行
npm run dev
# 运行测试
npm test
当使用此MCP服务器与您的MongoDB数据库时:
readPreference=secondary)⚠️ 重要:配置数据库访问时始终遵循最小权限原则。
MongoDB MCP服务器:
所有操作都经过适当验证,以防止注入攻击等安全问题。
您可以多种方式部署此MCP服务器:
npm install -g @coderay/mongo-mcp-server连接错误
身份验证问题
authSource=admin)工具执行问题
# macOS
tail -n 20 -f ~/Library/Logs/Claude/mcp*.log
性能问题
遇到问题时:
欢迎贡献!请随时提交Pull Request。
git checkout -b feature/amazing-feature)git commit -m 'Add some amazing feature')git push origin feature/amazing-feature)本项目采用MIT许可 - 详情请参阅LICENSE文件。