MongoDB Lens
用于 MongoDB 数据库分析的全功能 MCP 服务器。
README
MongoDB Lens
MongoDB Lens 是一个本地模型上下文协议 (MCP) 服务器,它通过 LLM 使用自然语言对 MongoDB 数据库进行全功能访问,以执行查询、运行聚合、优化性能等等。
目录
快速开始
特性
工具
add-connection-alias: 添加新的 MongoDB 连接别名aggregate-data: 执行聚合管道analyze-query-patterns: 分析实时查询并提出优化建议analyze-schema: 自动推断集合模式bulk-operations: 有效地执行多个操作(破坏性操作需要确认)clear-cache: 清除内存缓存以确保数据新鲜collation-query: 查找具有特定于语言的排序规则的文档compare-schemas: 比较两个集合之间的模式connect-mongodb: 连接到不同的 MongoDB URIconnect-original: 连接回启动时使用的原始 MongoDB URIcount-documents: 统计符合指定条件的文档create-collection: 使用自定义选项创建新集合create-database: 创建一个新数据库,可以选择切换到该数据库create-index: 创建新索引以优化性能create-timeseries: 为时序数据创建时序集合create-user: 创建具有特定角色的新数据库用户current-database: 显示当前数据库上下文delete-document: 删除符合指定条件的文档(需要确认)distinct-values: 提取任何字段的唯一值drop-collection: 从数据库中删除集合(需要确认)drop-database: 删除数据库(需要确认)drop-index: 从集合中删除索引(需要确认)drop-user: 删除数据库用户(需要确认)explain-query: 分析查询执行计划export-data: 以 JSON 或 CSV 格式导出查询结果find-documents: 运行带有过滤器、投影和排序的查询generate-schema-validator: 生成 JSON Schema 验证器geo-query: 使用各种运算符执行地理空间查询get-stats: 检索数据库或集合统计信息gridfs-operation: 使用 GridFS 存储桶管理大型文件insert-document: 将一个或多个文档插入集合list-collections: 浏览当前数据库中的集合list-connections: 查看所有可用的 MongoDB 连接别名list-databases: 查看所有可访问的数据库rename-collection: 重命名现有集合(删除目标时需要确认)shard-status: 查看数据库和集合的分片配置text-search: 在文本索引字段中执行全文搜索transaction: 在单个 ACID 事务中执行多个操作update-document: 更新符合指定条件的文档use-database: 切换到特定的数据库上下文validate-collection: 检查数据不一致性watch-changes: 监控集合的实时更改
资源
collection-indexes: 集合的索引信息collection-schema: 集合的模式信息collection-stats: 集合的性能统计信息collection-validation: 集合的验证规则collections: 当前数据库中的集合列表database-triggers: 数据库更改流和事件触发器配置database-users: 当前数据库中的数据库用户和角色databases: 所有可访问数据库的列表performance-metrics: 实时性能指标和分析数据replica-status: 副本集状态和配置server-status: 服务器状态信息stored-functions: 当前数据库中存储的 JavaScript 函数
提示
aggregation-builder: 逐步创建聚合管道backup-strategy: 自定义备份和恢复建议data-modeling: 关于特定用例的 MongoDB 模式设计的专家建议database-health-check: 全面的数据库健康评估和建议index-recommendation: 根据查询模式获取个性化的索引建议migration-guide: 逐步 MongoDB 版本迁移计划mongo-shell: 生成带有解释的 MongoDB shell 命令multi-tenant-design: 设计 MongoDB 多租户数据库架构query-builder: 用于构建 MongoDB 查询的交互式指南query-optimizer: 针对慢查询的优化建议schema-analysis: 带有建议的详细集合模式分析schema-versioning: 管理 MongoDB 应用程序中的模式演变security-audit: 数据库安全分析和改进建议sql-to-mongodb: 将 SQL 查询转换为 MongoDB 聚合管道
其他特性
其他特性:概述
MongoDB Lens 包含许多其他特性:
- 配置文件:通过
~/.mongodb-lens.[jsonc|json]进行自定义配置 - 环境变量覆盖:通过
process.env.CONFIG_*覆盖配置设置 - 确认系统:对破坏性操作进行两步验证
- 多个连接:定义并在命名的 URI 别名之间切换
- 组件禁用:有选择地禁用工具、提示或资源
- 连接弹性:具有指数退避的自动重新连接
- 查询保护:可配置的限制和性能保护
- 错误处理:全面的 JSONRPC 错误代码和消息
- 模式推断:通过智能采样进行高效的模式分析
- 凭据保护:日志中连接字符串密码的混淆
- 内存管理:大型操作的自动监控和清理
- 智能缓存:针对模式、索引、字段和集合的优化缓存
- 向后兼容:支持现代和旧版 MongoDB 版本
其他特性:新的数据库元数据
MongoDB Lens 将 metadata 集合插入到它创建的每个数据库中。
此 metadata 集合存储一个包含上下文信息的文档,该文档用作数据库来源的永久记录,同时确保新的且原本为空的数据库保留在 MongoDB 的存储系统中。
<details> <summary><strong>示例元数据文档</strong></summary>
{
"_id" : ObjectId("67d5284463788ec38aecee14"),
"created" : {
"timestamp" : ISODate("2025-03-15T07:12:04.705Z"),
"tool" : "MongoDB Lens v5.0.7",
"user" : "anonymous"
},
"mongodb" : {
"version" : "3.6.23",
"connectionInfo" : {
"host" : "unknown",
"readPreference" : "primary"
}
},
"database" : {
"name" : "example_database",
"description" : "Created via MongoDB Lens"
},
"system" : {
"hostname" : "unknown",
"platform" : "darwin",
"nodeVersion" : "v22.14.0"
},
"lens" : {
"version" : "5.0.7",
"startTimestamp" : ISODate("2025-03-15T07:10:06.084Z")
}
}
</details>
将您自己的集合添加到新数据库后,您可以安全地通过 drop-collection 工具删除 metadata 集合:
- "删除新数据库的元数据集合"<br>
<sup>➥ 使用
drop-collection工具(需要确认)</sup>
安装
MongoDB Lens 可以通过以下几种方式安装和运行:
安装:NPX
运行 MongoDB Lens 最简单的方法是使用 NPX。
首先,确保已安装 Node.js:
node --version # 理想情况下 >= v22.x,但 MongoDB Lens 与 >= v18.x 兼容
然后,通过 NPX 运行 MongoDB Lens:
# 使用默认连接字符串 mongodb://localhost:27017
npx -y mongodb-lens
# 使用自定义连接字符串
npx -y mongodb-lens mongodb://your-connection-string
# 使用 "@latest" 以保持软件包最新
npx -y mongodb-lens@latest
[!TIP]<br> 如果您在使用
npx时遇到权限错误,请尝试在运行npx -y mongodb-lens之前运行npx clear-npx-cache(这将清除缓存并重新下载软件包)。
安装:Docker Hub
[!NOTE]<br> Docker Hub 需要在您的系统上安装并运行 Docker。
首先,确保已安装 Docker:
docker --version # 理想情况下 >= v27.x
然后,通过 Docker Hub 运行 MongoDB Lens:
# 使用默认连接字符串 mongodb://localhost:27017
docker run --rm -i --network=host furey/mongodb-lens
# 使用自定义连接字符串
docker run --rm -i --network=host furey/mongodb-lens mongodb://your-connection-string
# 使用 "--pull" 以保持 Docker 镜像最新
docker run --rm -i --network=host --pull=always furey/mongodb-lens
安装:来自源代码的 Node.js
[!NOTE]<br> 来自源代码的 Node.js 需要在您的系统上安装并运行 Node.js(建议:使用 Volta)。
- 克隆 MongoDB Lens 存储库:<br>
git clone https://github.com/furey/mongodb-lens.git - 导航到克隆的存储库目录:<br>
cd /path/to/mongodb-lens - 确保已安装 Node.js:<br>
node --version # 理想情况下 >= v22.x,但 MongoDB Lens 与 >= v18.x 兼容 - 安装 Node.js 依赖项:<br>
npm ci - 启动服务器:<br>
# 使用默认连接字符串 mongodb://localhost:27017 node mongodb-lens.js # 使用自定义连接字符串 node mongodb-lens.js mongodb://your-connection-string
安装:来自源代码的 Docker
[!NOTE]<br> 来自源代码的 Docker 需要在您的系统上安装并运行 Docker。
- 克隆 MongoDB Lens 存储库:<br>
git clone https://github.com/furey/mongodb-lens.git - 导航到克隆的存储库目录:<br>
cd /path/to/mongodb-lens - 确保已安装 Docker:<br>
docker --version # 理想情况下 >= v27.x - 构建 Docker 镜像:<br>
docker build -t mongodb-lens . - 运行容器:<br>
# 使用默认连接字符串 mongodb://localhost:27017 docker run --rm -i --network=host mongodb-lens # 使用自定义连接字符串 docker run --rm -i --network=host mongodb-lens mongodb://your-connection-string
安装验证
要验证安装,请将以下 JSONRPC 消息粘贴并运行到服务器的 stdio 中:
{"method":"resources/read","params":{"uri":"mongodb://databases"},"jsonrpc":"2.0","id":1}
服务器应使用 MongoDB 实例中的数据库列表进行响应,例如:
{"result":{"contents":[{"uri":"mongodb://databases","text":"Databases (12):\n- admin (180.00 KB)\n- config (108.00 KB)\n- local (40.00 KB)\n- sample_airbnb (51.88 MB)\n- sample_analytics (9.46 MB)\n- sample_geospatial (980.00 KB)\n- sample_guides (40.00 KB)\n- sample_mflix (108.90 MB)\n- sample_restaurants (7.73 MB)\n- sample_supplies (968.00 KB)\n- sample_training (40.85 MB)\n- sample_weatherdata (2.69 MB)"}]},"jsonrpc":"2.0","id":1}
MongoDB Lens 现在已安装并准备好接受 MCP 请求。
安装:旧版 MongoDB
如果连接到版本 < 4.0 的 MongoDB 实例,则最新版本的 MongoDB Lens 使用的 MongoDB Node.js 驱动程序将不兼容。 具体来说,MongoDB Node.js 驱动程序版本 4.0.0 及更高版本需要 MongoDB 版本 4.0 或更高版本。
要将 MongoDB Lens 与旧版 MongoDB 实例一起使用,您需要使用 3.x 系列中的 MongoDB Node.js 驱动程序版本(例如,3.7.4 与 MongoDB 3.6 兼容)。
旧版 MongoDB:从源代码运行
- 克隆 MongoDB Lens 存储库:<br>
git clone https://github.com/furey/mongodb-lens.git - 导航到克隆的存储库目录:<br>
cd /path/to/mongodb-lens - 修改
package.json:<br>"dependencies": { ... - "mongodb": "^6.15.0", // 或列出的任何更新版本 + "mongodb": "^3.7.4", // 或与您的旧版 MongoDB 实例兼容的任何 3.x 版本 ... } - 安装 Node.js 依赖项:<br>
npm install - 启动 MongoDB Lens:<br>
node mongodb-lens.js mongodb://older-mongodb-instance
这将使用与您的 MongoDB 实例兼容的旧版驱动程序。
[!NOTE]<br> 您可能还需要还原此提交以添加回
useNewUrlParser和useUnifiedTopologyMongoDB 配置选项。
旧版 MongoDB:使用 NPX 或 Docker
如果您更喜欢使用 NPX 或 Docker,则需要使用已发布了兼容驱动程序的旧版 MongoDB Lens。
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。