使用说明
MongoDB MCP服务器
一个模型上下文协议(MCP)服务器,通过mongosh命令提供MongoDB数据库访问,具有灵活的连接管理和全面的查询功能。
特性
- 🔌 灵活的连接管理:支持多种MongoDB环境
- 🔒 安全配置:凭据的环境变量替换
- 🚀 全面的蒙古语支持:执行任何MongoDB命令或查询
- 📊 原生MongoDB语法:直接使用熟悉的MongoDB shell命令
- 📚 文档集成:收集模式的上下文感知帮助
- 🛡️ 错误处理:全面的错误报告和恢复
快速开始
1.安装
npm install @your-org/mongo-mcp-server
2.配置
在以下位置之一创建配置文件:
./mongo-connections.json(当前目录)~/.mongo-mcp/connections.json(用户主页)- 通过自定义路径
MONGO_MCP_CONFIG环境变量
配置示例:
{
"connections": {
"local": {
"name": "Local Development",
"host": "localhost",
"port": 27017,
"database": "myapp",
"options": {
"retryWrites": true
}
},
"production": {
"name": "Production",
"host": "${MONGO_PROD_HOST}",
"port": "${MONGO_PROD_PORT}",
"database": "${MONGO_PROD_DATABASE}",
"username": "${MONGO_PROD_USER}",
"password": "${MONGO_PROD_PASS}",
"authSource": "admin",
"options": {
"readPreference": "secondaryPreferred"
}
}
}
}
3.环境变量
创建一个 .env 敏感凭据文件:
MONGO_PROD_HOST=localhost
MONGO_PROD_PORT=27020
MONGO_PROD_DATABASE=marketplace
MONGO_PROD_USER=your_username
MONGO_PROD_PASS=your_password
4.运行服务器
# Development
npm run dev
# Production
npm run build
npm start
MCP工具
mongo_connect
连接到MongoDB环境。
mongo_connect({ environment: "production" })
mongo_execute
执行任何mongosh命令。
mongo_execute({
command: "db.users.find({}).limit(5)",
timeout: 30000,
explain: false
})
mongo_query
带验证的结构化查询。
mongo_query({
collection: "users",
operation: "find",
filter: { status: "active" },
options: { limit: 10, sort: { createdAt: -1 } }
})
mongo_collections
获取收藏信息。
mongo_collections({ action: "list" })
mongo_collections({ action: "describe", collection: "users" })
mongo_docs
查阅收款文件(如有)。
mongo_docs({ collection: "users", type: "schema" })
配置选项
连接属性
| 属性 | 类型 | 描述 |
|---|---|---|
name |
string | 人类可读的连接名称 |
host |
string | MongoDB主机(支持env变量: ${VAR}) |
port |
number | MongoDB端口 |
database |
string | 数据库名称 |
username |
弦? | 用户名(支持env变量) |
password |
弦? | 密码(支持环境变量) |
authSource |
弦? | 身份验证数据库 |
authMechanism |
弦? | 授权机制(例如SCRAM-SHA-256) |
options |
对象? | 其他MongoDB选项 |
notes |
弦? | 文件/注释 |
collections |
对象? | 收藏说明 |
MongoDB选项
| 选项 | 类型 | 描述 |
|---|---|---|
readPreference |
string | 读取首选项(主要、次要等) |
retryWrites |
boolean | 启用可重试写入 |
serverSelectionTimeoutMS |
number | 服务器选择超时 |
connectTimeoutMS |
number | 连接超时 |
directConnection |
boolean | 直接连接(旁路发现) |
maxPoolSize |
number | 最大连接池大小 |
环境变量替换
使用 ${VARIABLE_NAME} 连接字符串中引用环境变量的语法:
{
"host": "${MONGO_HOST}",
"username": "${MONGO_USER}",
"password": "${MONGO_PASS}"
}
安全最佳实践
- 从不提交凭据 到版本控制
- 使用环境变量 对于所有敏感数据
- 使用只读帐户 在可能的情况下
- 配置适当的超时 适用于生产环境
- 使用SSH隧道 用于远程连接
- 启用连接池 为了获得更好的性能
例子
看 examples/ 目录:
- 连接配置模板
- 环境变量示例
- 常见查询模式
- 收藏文档格式
故障排除
连接问题
- 检查环境变量:确保所有引用的变量都已设置
- 验证网络连接:测试SSH隧道和VPN连接
- 检查身份验证:验证凭据和身份验证机制
- 审核超时:调整慢速连接的超时值
常见错误
CONFIG_NOT_FOUND:在搜索路径中找不到配置文件ENV_VAR_NOT_SET:未定义引用的环境变量CONNECTION_FAILED:网络或身份验证问题NOT_CONNECTED:尝试在没有活动连接的情况下进行操作
许可证
麻省理工学院