对于 AI 代理:可在 https://www.mongodb.com/zh-cn/docs/llms.txt 获取文档索引—通过在任何 URL 路径后添加 .md 可获取所有页面的 Markdown 版本。
Docs 菜单

MongoDB MCP Server 进行故障排除

使用此页面上的信息可帮助解决MongoDB MCP 服务器的问题。

如果 MCP 服务器出现问题,请检查 MCP 服务器日志以获取有助于解决问题的信息。

默认下,MCP 服务器将日志写入磁盘,并将日志发送到 MCP客户端。您可以更改 loggers 选项以指定日志的发送目标。有关 MCP 服务器选项的详细信息,请参阅MongoDB MCP 服务器配置选项。

下表显示了 MCP 服务器存储日志文件的默认目录:

操作系统
默认日志目录

Windows

%LOCALAPPDATA%\mongodb\mongodb-mcp\.app-logs

macOS 和 Linux

~/.mongodb/mongodb-mcp/.app-logs

要更改日志路径,设立以下选项之一:

  • logPath JSON配置文件中或启动 MCP 服务器时命令行上的选项

  • MDB_MCP_LOG_PATH 环境变量

确保您的配置文件正确,并且您为MongoDB 部署使用有效的连接字符串。

有关连接字符串格式和示例,请参阅连接字符串。

如果您使用HTTP传输并遇到连接问题:

  • 验证您的客户端连接URL是否包含 /mcp 端点路径:

    http://<server-address>:3000/mcp
  • 如果连接到远程服务器(不同的计算机、容器或云实例),请确保使用 --httpHost=0.0.0.0 启动服务器以接受远程连接:

    npx -y mongodb-mcp-server@latest --transport http --httpHost=0.0.0.0 --readOnly
  • 确保指定端口已打开并可从客户端计算机访问。

MongoDB MCP 服务器提供三类主要工具:用于管理Atlas基础架构的Atlas工具、用于管理本地部署的本地Atlas工具(类似于 Atlas CLI 提供的工具)以及用于数据操作的数据库工具。下表比较了每个工具的配置。

配置方面
Atlas 工具
本地Atlas工具
Database Tools

身份验证要求

必需: Atlas API凭证•
apiClientId(服务帐户ID)
apiClientSecret (服务帐户密钥)

必需: Docker运行时

无需额外凭证• 自动管理本地部署

可选:多种连接方法

预配置的连接字符串• 的Atlas凭证• 通过atlas-connect-cluster
工具进行运行时连接connect
• 通过 进行本地部署atlas-local-connect-deployment

连接方法

基于API连接到Atlas Management API
• 无需直接数据库连接
• 使用Atlas REST API端点


本地部署管理• 使用Docker容器
• 无需访问权限外部网络

直接连接到MongoDB 数据库。有多个选项可供使用:

已配置的连接字符串• 运行时连接提示
• Atlas 集群发现
• 本地部署连接

权限要求

服务帐户角色(Atlas项目级别):
Project Read Only (读取操作的最低要求)
Project Owner (用于集群创建/管理)
Organization Owner (用于项目创建)

系统要求:
• Docker运行时权限

本地文件系统访问权限• 容器管理功能

数据库用户角色(如果适用):
readAnyDatabase (只读模式)
readWriteAnyDatabase (完整操作)
• 特定数据库/集合的自定义角色

配置选项

环境变量:
MDB_MCP_API_CLIENT_ID
MDB_MCP_API_CLIENT_SECRET

命令行:
--apiClientId
--apiClientSecret

环境变量:
DOCKER_HOST (可选)

命令行:
• 无需特定的 MCP 配置
• 自动检测Docker运行时

环境变量(可选):
MDB_MCP_CONNECTION_STRING

命令行(可选):
• 作为位置参数的连接字符串:
--connectionString

运行时方法:
• 通过 LLM 提示符进行交互式连接
• Atlas基于档案的发现

只读模式影响

• 读取操作: ✅ 可用
• 集群检查: ✅ 可用
• 集群创建: ❌ 已禁用
• 用户管理: ❌ 已禁用

• 本地部署创建: ✅ 可用
• 部署检查: ✅ 可用
• 容器管理: ✅ 可用
• 无只读限制

• 读取操作: ✅ 可用
• 查询操作: ✅ 可用
• 聚合: ✅ 只要没有$out$merge 阶段,就可用。
• 插入/更新/删除:❌ 已禁用
• 索引创建:❌ 已禁用

工具类别

可以通过以下方式禁用:
--disabledTools atlas
MDB_MCP_DISABLED_TOOLS="atlas"

可以通过以下方式禁用:
--disabledTools atlas
MDB_MCP_DISABLED_TOOLS="atlas"

可以通过以下方式禁用:
--disabledTools mongodb
MDB_MCP_DISABLED_TOOLS="mongodb"

网络要求

到Atlas API 的出站 HTTPS:
• 标准互联网连接

本地Docker网络:
• Docker守护进程访问权限•
本地端口可用性
• 无外部网络要求

与MongoDB 集群的连接(如适用):
• Atlas:mongodb+srv:// (端口27017 )
• 分片集群(端口27016 )
• 自我管理:自定义托管/端口
• 本地部署: Docker网络
• VPC/网络访问权限根据需要

可用操作


组织管理•
项目管理• 集群生命周期(创建、检查、删除)
•数据库用户管理•
访问列表配置
•Performance Advisor建议
• 警报管理


本地部署创建和管理• 容器生命周期操作

• 本地集群配置 •
开发环境设置• 测试部署管理

• 增删改查操作(查找、插入、更新、删除)

• 聚合管道
• 索引管理• 集合和数据库管理
• 模式检查
• 向量搜索操作
• 数据导出

Error Scenarios

缺少API凭证:
Atlas工具返回:“Atlas API凭证未配置”

权限不足:
403Atlas API出现HTTP 错误


Docker不可用:"Docker 守护进程 not 运行" 或 "Docker not installed"

容器问题:端口冲突、资源限制




连接故障(如果已配置):网络超时、身份验证失败缺少数据库权限:
MongoDB授权错误

临时凭证

不适用:使用持久服务帐户凭证

不适用:本地部署使用容器托管的身份验证


自动生成的数据库用户(如适用):使用不带连接字符串的Atlas API凭证时:
• 随机用户名/密码
4
•默认为 小时过期 • 自动角色分配

数据库工具支持多种连接方法,以满足不同的使用案例和安全要求:

  • 预配置连接字符串:通过CLI、环境变量或配置文件配置 connectionString,以实现持久数据库访问权限。

  • Atlas集群连接:使用 atlas-connect-cluster 工具和Atlas API凭证自动发现并连接到Atlas集群。

  • 运行时连接:使用 connect 工具在 LLM 对话期间以交互方式提供连接字符串 — 无需预先配置。

  • 本地部署连接:将 atlas-local-connect-deployment 与Docker结合使用来创建并连接到本地Atlas部署 - 需要Docker ,但无需配置。

安全建议

  • 生产数据库:使用通过环境变量或Atlas API凭证预先配置的连接字符串,实现安全、自动化的连接。

  • 开发/测试:运行时连接或本地部署提供了灵活性,无需持久配置。

  • 聊天安全性:避免使用运行时连接方法,除非您确信聊天历史记录不会被存储或与第三方共享。