用途
MongoDB Lens 是一个本地 Model Context Protocol(MCP)服务器,为 MongoDB 数据库提供全面的访问能力。用户可以通过自然语言,借助大语言模型(LLM)执行查询、运行聚合、优化性能等操作。它作为 MCP 服务器,需与支持 MCP 的客户端(如 Claude Desktop、Cursor 等)配合使用。
主要能力
MongoDB Lens 提供大量“工具”,覆盖 MongoDB 的日常管理与开发场景:
- 连接与数据库管理:add-connection-alias、connect-mongodb、connect-original、use-database、create-database、current-database、list-connections、list-databases、list-collections、databases、collections。
- 数据与查询:find-documents、count-documents、distinct-values、text-search、geo-query、collation-query、aggregate-data、explain-query、analyze-query-patterns、aggregation-builder、query-builder。
- 写入与修改:insert-document、update-document、delete-document(需确认)、bulk-operations(破坏性操作需确认)、transaction(ACID 事务)。
- 集合与索引:create-collection、drop-collection(需确认)、rename-collection(删除目标时需确认)、create-index、drop-index(需确认)、collection-indexes、drop-database(需确认)。
- 模式与验证:analyze-schema、compare-schemas、collection-schema、generate-schema-validator、validate-collection、collection-validation、schema-analysis、schema-versioning。
- 用户与安全:create-user、drop-user(需确认)、database-users、security-audit。
- 性能与状态:get-stats、collection-stats、performance-metrics、server-status、replica-status、shard-status、database-health-check、index-recommendation、query-optimizer。
- 数据导入导出与文件:export-data(JSON/CSV)、gridfs-operation。
- 实时监控:watch-changes、database-triggers。
- 其他辅助:clear-cache、stored-functions、backup-strategy、migration-guide、mongo-shell、multi-tenant-design、sql-to-mongodb。
此外还包含资源(如 collection-indexes、collection-schema、collection-stats、collection-validation、collections、database-triggers、database-users、databases、performance-metrics、replica-status、server-status、stored-functions)以及提示(如 aggregation-builder、backup-strategy、data-modeling、database-health-check、index-recommendation、migration-guide、mongo-shell、multi-tenant-design、query-builder、query-optimizer、schema-analysis、schema-versioning、security-audit、sql-to-mongodb)。
其他特性
MongoDB Lens 还具备:
- 配置文件:通过 ~/.mongodb-lens.[jsonc|json] 进行自定义,支持 .json 与 .jsonc 格式。
- 环境变量覆盖:以 CONFIG_* 形式覆盖配置,环境变量优先级高于配置文件。
- 确认系统:破坏性操作采用两步验证。
- 多连接:定义并切换命名 URI 别名。
- 组件禁用:可选择性禁用工具、提示或资源。
- 连接弹性:自动重连,带指数退避。
- 查询保护:可配置限制与性能保护。
- 错误处理:完善的 JSONRPC 错误码与消息。
- 模式推断:通过智能采样进行高效模式分析。
- 凭据保护:日志中连接字符串密码混淆。
- 内存管理:对大操作自动监控与清理。
- 智能缓存:针对模式、索引、字段和集合的优化缓存。
- 向后兼容:同时支持现代与旧版 MongoDB。
MongoDB Lens 在创建的每个数据库中插入一个元数据集合,其中存储一个包含上下文信息的文档,作为数据库来源的永久记录,同时确保新的空数据库在 MongoDB 存储中持久保留。当用户向新数据库添加自己的集合后,可通过 drop-collection 工具安全移除该元数据集合(例如:“Drop the new database's metadata collection” ➥ 使用 drop-collection 工具,需确认)。
使用方式
安装与运行
MongoDB Lens 可通过以下方式安装运行:
- NPX(需已安装 Node.js):npx -y mongodb-lens;若遇权限错误,可先运行 npx clear-npx-cache。
- Docker Hub(需 Docker):docker run --rm -i --network=host furey/mongodb-lens(原文仅给出方式,具体镜像运行命令以官方为准)。
- Node.js 源码:
- git clone https://github.com/furey/mongodb-lens.git
- cd /path/to/mongodb-lens
- 确认 Node.js 版本:node --version(理想 >= v22.x,兼容 >= v18.x)
- 安装依赖:npm ci
- 启动:node mongodb-lens.js(默认连接 mongodb://localhost:27017)或 node mongodb-lens.js mongodb://your-connection-string
- Docker 源码:
- 确认 Docker:docker --version(理想 >= v27.x)
- 构建镜像:docker build -t mongodb-lens .
- 运行:docker run --rm -i --network=host mongodb-lens(默认连接)或 docker run --rm -i --network=host mongodb-lens mongodb://your-connection-string
安装验证:向服务器 stdio 粘贴并运行一段 JSONRPC 消息,服务器应返回 MongoDB 实例中的数据库列表。
旧版 MongoDB
若连接的 MongoDB 版本 < 4.0,最新 MongoDB Lens 使用的 Node.js 驱动不兼容(驱动 4.0.0+ 需 MongoDB 4.0+)。需使用 3.x 系列驱动(如 3.7.4 兼容 MongoDB 3.6):
- 修改 package.json:将 "mongodb": "^6.15.0" 改为 "mongodb": "^3.7.4"(或兼容版本)
- 安装依赖:npm install
- 启动:node mongodb-lens.js mongodb://older-mongodb-instance
- 可能还需回退某次提交以恢复 useNewUrlParser 和 useUnifiedTopology 配置选项。
- 若使用 NPX 或 Docker,需使用以兼容驱动发布的旧版 MongoDB Lens,如 MongoDB Lens 8.3.0 使用驱动 3.7.4,通过版本标签指定。
配置
- 连接字符串:服务器接受一个 MongoDB 连接字符串作为唯一参数。示例:mongodb://localhost:27017;mongodb://username:password@hostname:27017/mydatabase?authSource=admin;mongodb://hostname:27017/mydatabase?retryWrites=true&w=majority。未提供时尝试本地连接。
- 配置文件:支持 ~/.mongodb-lens.jsonc(优先)或 ~/.mongodb-lens.json,可选。可通过 CONFIG_PATH 环境变量自定义路径。使用 config:create 脚本自动生成配置,支持指定输出位置。
- 多连接:在配置文件中将 mongoUri 设为别名-URI 对象,列表第一项为启动默认连接;可用自然语言切换(如“Connect to backup”“Connect to atlas”),也可用 add-connection-alias 在运行时添加别名。
- 环境变量覆盖:以 CONFIG_* 命名,优先级高于配置文件;布尔值用字符串 'true'/'false',数值用字符串,嵌套对象或数组用 JSON 字符串。跨平台可使用 cross-env。
MCP 客户端设置
以 Claude Desktop 为例:安装 Claude Desktop;打开 claude_desktop_config.json(不存在则创建):macOS 路径 ~/Library/Application Support/Claude/claude_desktop_config.json;Windows 路径 %APPDATA%\Claude\claude_desktop_config.json。其他 MCP 客户端(如 Cursor)设置方式以各自文档为准。
适用场景
需要以自然语言方式探索、查询、优化和管理 MongoDB 数据库的开发者、DBA 或数据分析人员;希望借助 LLM 快速执行聚合、模式分析、性能诊断、SQL 转 MongoDB、多租户设计等任务的场景。
限制
- 破坏性操作(删除、删除集合/数据库/索引/用户等)需要确认。
- 旧版 MongoDB(< 4.0)需手动改用 3.x 驱动并可能需要回退代码调整,或使用旧版 MongoDB Lens。
- 必须配合支持 MCP 的客户端使用。
- 具体收费、价格等信息暂未提供。