使用说明

项目简介

MongoDB Lens 是一个本地 Model Context Protocol (MCP) 服务器,它允许您使用自然语言通过大型语言模型 (LLM) 访问 MongoDB 数据库。通过 MongoDB Lens,您可以执行查询、运行聚合、优化性能等等。它充当 LLM 客户端和 MongoDB 数据库之间的桥梁,将自然语言请求转换为 MongoDB 操作。

主要功能点

  • 资源 (Resources): 提供关于 MongoDB 数据库和集合的元数据和统计信息,例如:
    • 数据库列表和集合列表
    • 集合的模式 (Schema) 信息和统计数据
    • 索引信息和验证规则
    • 服务器状态和用户角色等
  • 工具 (Tools): 提供一系列预定义工具,允许 LLM 客户端执行各种 MongoDB 操作,例如:
    • 数据查询 (find-documents) 和计数 (count-documents)
    • 数据聚合 (aggregate-data)
    • 模式分析 (analyze-schema)
    • 索引创建 (create-index) 和查询性能分析 (explain-query)
    • 数据导出 (export-data) 和导入 (bulk-operations)
    • 集合和数据库管理 (create-collection, drop-collection, use-database)
  • Prompt 模板 (Prompts): 提供预定义的 Prompt 模板,帮助 LLM 客户端更有效地与 MongoDB 数据库交互,例如:
    • 查询构建助手 (query-builder) 和聚合管道构建助手 (aggregation-builder)
    • 索引推荐 (index-recommendation) 和查询优化建议 (query-optimizer)
    • 数据建模建议 (data-modeling) 和安全审计 (security-audit)

安装步骤

MongoDB Lens 可以通过 Docker 或 Node.js 两种方式安装。

Docker 安装:

  1. 确保您已安装 Docker。
  2. 克隆仓库到本地:
    git clone https://github.com/furey/mongodb-lens
    cd mongodb-lens
  3. 构建 Docker 镜像:
    docker build -t mongodb-lens .
  4. 运行 Docker 容器 (默认连接到本地 MongoDB):
    docker run --rm -i --network=host mongodb-lens
    或者,使用自定义 MongoDB 连接字符串:
    docker run --rm -i --network=host mongodb-lens mongodb://您的MongoDB连接字符串

Node.js 安装:

  1. 确保您已安装 Node.js (版本 >= 22.*) 和 npm。
  2. 克隆仓库到本地:
    git clone https://github.com/furey/mongodb-lens
    cd mongodb-lens
  3. 安装 Node.js 依赖:
    npm ci
  4. 启动服务器 (默认连接到本地 MongoDB):
    node mongodb-lens.js
    或者,使用自定义 MongoDB 连接字符串:
    node mongodb-lens.js mongodb://您的MongoDB连接字符串

服务器配置

MCP 客户端需要配置 MongoDB Lens 服务器的启动命令和参数才能连接。以下是 Claude Desktop 客户端的配置示例 (JSON 格式):

Docker 配置示例:

{
  "mcpServers": {
    "mongodb-lens": {
      "command": "docker",
      "args": [
        "run",
        "--rm",
        "-i",
        "--network=host",
        "-e",
        "VERBOSE_LOGGING=true",
        "mongodb-lens",
        "mongodb://您的MongoDB连接字符串"  //  请替换为您的 MongoDB 连接字符串,例如 mongodb://localhost:27017
      ]
    }
  }
}
  • 'command': 设置为 "docker",表示使用 Docker 运行 MongoDB Lens。
  • 'args': 参数列表,包括:
    • '"run"': Docker 运行命令。
    • '"--rm"': 容器退出后自动删除。
    • '"-i"': 允许与容器进行交互。
    • '"--network=host"': 使用 host 网络模式,允许容器直接访问 host 的网络。
    • '"-e", "VERBOSE_LOGGING=true"': 设置环境变量 'VERBOSE_LOGGING' 为 'true',启用详细日志 (可选)。
    • '"mongodb-lens"': Docker 镜像名称。
    • '"mongodb://您的MongoDB连接字符串"': MongoDB 连接字符串,请根据您的 MongoDB 实例修改此连接字符串。如果 MongoDB Lens 和客户端在同一台机器上,并且 MongoDB 运行在默认端口,可以省略此参数,连接字符串默认为 'mongodb://localhost:27017'。

Node.js 配置示例:

{
  "mcpServers": {
    "mongodb-lens": {
      "command": "/您的Node.js安装路径/node",  // 请替换为您的 Node.js 可执行文件的绝对路径,例如 /usr/local/bin/node
      "args": [
        "/您的mongodb-lens.js文件路径/mongodb-lens.js",  // 请替换为 mongodb-lens.js 文件的绝对路径,例如 /Users/yourname/mongodb-lens/mongodb-lens.js
        "mongodb://您的MongoDB连接字符串"   //  请替换为您的 MongoDB 连接字符串,例如 mongodb://localhost:27017
      ],
      "env": {
        "VERBOSE_LOGGING": "true"   // 设置环境变量 VERBOSE_LOGGING 为 true,启用详细日志 (可选)
      }
    }
  }
}
  • 'command': 设置为 Node.js 可执行文件的绝对路径,例如 '/usr/bin/node' 或 'C:\Program Files\nodejs\node.exe'。
  • 'args': 参数列表,包括:
    • '"/您的mongodb-lens.js文件路径/mongodb-lens.js"': 'mongodb-lens.js' 文件的绝对路径。
    • '"mongodb://您的MongoDB连接字符串"': MongoDB 连接字符串,请根据您的 MongoDB 实例修改此连接字符串。如果 MongoDB Lens 和客户端在同一台机器上,并且 MongoDB 运行在默认端口,可以省略此参数,连接字符串默认为 'mongodb://localhost:27017'。
  • 'env': 环境变量设置,'"VERBOSE_LOGGING": "true"' 启用详细日志 (可选)。

基本使用方法

  1. 安装并配置 MongoDB Lens 服务器 (按照上述安装步骤和服务器配置说明进行)。

  2. 配置 MCP 客户端 (例如 Claude Desktop 或 MCP Inspector),将 MCP 服务器配置指向 MongoDB Lens 服务器的启动命令和参数。

  3. 启动 MCP 客户端

  4. 在 MCP 客户端中与 MongoDB Lens 交互。您可以使用自然语言向客户端提问,例如:

    • "列出所有数据库"
    • "切换到 sample_mflix 数据库"
    • "sample_mflix 数据库里 movies 集合有多少电影?"
    • "查找评分最高的 5 部电影"
    • "分析 movies 集合的 schema"

    客户端会将您的自然语言问题转换为 MCP 请求发送给 MongoDB Lens 服务器,服务器执行相应的 MongoDB 操作并将结果返回给客户端。

注意:

  • 请确保 MongoDB Lens 服务器能够连接到您的 MongoDB 数据库。
  • 请根据您的 MCP 客户端的要求配置 MCP 服务器连接信息。
  • 详细的使用示例和查询示例请参考仓库的 README.md 文件。

信息

分类

数据库与文件