 
MongoDB MCP 服务器
一个用于与MongoDB数据库和MongoDB Atlas交互的模型上下文协议服务器。
📚 目录
- MongoDB Atlas 工具 - MongoDB 数据库工具
- 配置选项 - Atlas API 访问 - 配置方法 - 环境变量 - 命令行参数 - MCP客户端配置 - 代理支持
先决条件
- Node.js
- 至少20.19.0 - 当使用 v22 时,至少应使用 v22.12.0 版本 - 否则任何23+版本均可
node -v- 一个MongoDB连接字符串或Atlas API凭据, _除非进行配置,否则服务器不会启动_。
- _服务帐户Atlas API凭据_ 要求使用 Atlas 工具。您可以在 MongoDB Atlas 中创建一个服务账户,并使用其凭据进行身份验证。请参阅 阿特拉斯API访问 了解更多详情。 - 如果您有一个MongoDB连接字符串,您可以直接使用它来连接到您的MongoDB实例。
设置
快速入门
🔒 安全建议1: 当使用Atlas API凭据时,请确保仅为您的服务帐户分配所需的最小权限。请参阅 Atlas API 权限 详情请见。
🔒 安全建议2: 为了增强安全性,我们强烈建议使用环境变量来传递敏感配置(如连接字符串和API凭据),而不是使用命令行参数。命令行参数可能会在进程列表中可见,并记录在各种系统位置,从而可能泄露您的机密信息。环境变量提供了一种更安全的方式来处理敏感信息。
大多数MCP客户端需要创建或修改配置文件以添加MCP服务器。
注:不同客户端的配置文件语法可能有所不同。请参考以下链接获取最新的预期语法:
- 风帆冲浪https://docs.windsurf.com/windsurf/mcp 翻译为中文是:“https://docs.windsurf.com/windsurf/mcp(网址保持不变)”。不过,如果要描述这个网址的内容或用途,可以翻译为:“这是关于Windsurf MCP(多频道处理/模块控制面板等,具体根据上下文确定)的官方文档网址。” 但直接翻译网址本身是没有意义的,所以通常我们只保留原网址
- VSCodehttps://code.visualstudio.com/docs/copilot/chat/mcp-servers 的中文翻译为:“https://code.visualstudio.com/docs/copilot/chat/mcp-servers(关于Visual Studio Code中的Copilot聊天功能的MCP服务器文档)”。不过,通常我们不会直接翻译网址,而是直接引用或说明其内容,如“关于Visual Studio Code中Copilot聊天功能的MCP服务器相关文档”。如果需要更简洁的表述,可以写为“Visual Studio Code Copilot聊天功能的MCP服务器文档链接”
- Claude Desktop(可译为“Claude桌面版”或保持原样,具体根据语境决定是否需要翻译软件名称)https://modelcontextprotocol.io/quickstart/user 翻译为中文是:“https://modelcontextprotocol.io/快速入门/用户”
- 光标https://docs.cursor.com/context/model-context-protocol 翻译为中文是:“https://docs.cursor.com/context/模型上下文协议”
默认安全通知: 以下所有示例均包含--readOnly默认情况下,为确保您的数据安全,仅提供只读访问权限。移除(或取消)--readOnly如果你需要启用写操作。
选项1:连接字符串
你可以通过环境变量传递你的连接字符串,请确保使用有效的用户名和密码。
{
"mcpServers": {
"MongoDB": {
"command": "npx",
"args": ["-y", "mongodb-mcp-server@latest", "--readOnly"],
"env": {
"MDB_MCP_CONNECTION_STRING": "mongodb://localhost:27017/myDatabase"
}
}
}
}注:连接字符串可以配置为连接到任何MongoDB集群,无论是本地实例还是Atlas集群。
选项2:Atlas API凭证
使用您的Atlas API服务帐户凭据。必须按照以下所有步骤操作 Atlas API访问 部分。
{
"mcpServers": {
"MongoDB": {
"command": "npx",
"args": ["-y", "mongodb-mcp-server@latest", "--readOnly"],
"env": {
"MDB_MCP_API_CLIENT_ID": "your-atlas-service-accounts-client-id",
"MDB_MCP_API_CLIENT_SECRET": "your-atlas-service-accounts-client-secret"
}
}
}
}选项3:使用环境变量和命令行参数的独立服务
你可以从配置文件中获取定义的环境变量,或者像下面的示例一样显式地设置它们,然后通过 npx 运行服务器。
# Set your credentials as environment variables first
export MDB_MCP_API_CLIENT_ID="your-atlas-service-accounts-client-id"
export MDB_MCP_API_CLIENT_SECRET="your-atlas-service-accounts-client-secret"
# Then start the server
npx -y mongodb-mcp-server@latest --readOnly💡 平台说明: 上述示例使用的是Unix/Linux/macOS的语法。对于Windows用户,请参阅 环境变量 对于特定平台的说明。
- 要查看完整的配置选项列表,请参阅 配置选项
- 要配置您的Atlas服务帐户凭据,请参阅 Atlas API访问
- 在MCP文件中通过环境变量设置连接字符串 例子
- 在MCP文件中通过环境变量获取Atlas API凭证 示例
选项4:使用Docker
你可以在Docker容器中运行MongoDB MCP服务器,这样既能提供隔离性,又无需本地安装Node.js。
使用环境变量运行
您可以提供MongoDB连接字符串或Atlas API凭据中的任意一种:
选项A:无需配置
docker run --rm -i \
mongodb/mongodb-mcp-server:latest选项B:使用MongoDB连接字符串
# Set your credentials as environment variables first
export MDB_MCP_CONNECTION_STRING="mongodb+srv://username:password@cluster.mongodb.net/myDatabase"
# Then start the docker container
docker run --rm -i \
-e MDB_MCP_CONNECTION_STRING \
-e MDB_MCP_READ_ONLY="true" \
mongodb/mongodb-mcp-server:latest💡 平台备注: 上述示例使用的是Unix/Linux/macOS的语法。对于Windows用户,请参阅 环境变量 针对特定平台的说明。
选项C:使用Atlas API凭据
# Set your credentials as environment variables first
export MDB_MCP_API_CLIENT_ID="your-atlas-service-accounts-client-id"
export MDB_MCP_API_CLIENT_SECRET="your-atlas-service-accounts-client-secret"
# Then start the docker container
docker run --rm -i \
-e MDB_MCP_API_CLIENT_ID \
-e MDB_MCP_API_CLIENT_SECRET \
-e MDB_MCP_READ_ONLY="true" \
mongodb/mongodb-mcp-server:latest💡 平台备注: 上述示例使用的是Unix/Linux/macOS的语法。对于Windows用户,请参阅 环境变量 针对特定平台的说明。
在MCP配置文件中的Docker
无选项:
{
"mcpServers": {
"MongoDB": {
"command": "docker",
"args": [
"run",
"--rm",
"-e",
"MDB_MCP_READ_ONLY=true",
"-i",
"mongodb/mongodb-mcp-server:latest"
]
}
}
}使用连接字符串:
{
"mcpServers": {
"MongoDB": {
"command": "docker",
"args": [
"run",
"--rm",
"-i",
"-e",
"MDB_MCP_CONNECTION_STRING",
"-e",
"MDB_MCP_READ_ONLY=true",
"mongodb/mongodb-mcp-server:latest"
],
"env": {
"MDB_MCP_CONNECTION_STRING": "mongodb+srv://username:password@cluster.mongodb.net/myDatabase"
}
}
}
}使用Atlas API凭据:
{
"mcpServers": {
"MongoDB": {
"command": "docker",
"args": [
"run",
"--rm",
"-i",
"-e",
"MDB_MCP_READ_ONLY=true",
"-e",
"MDB_MCP_API_CLIENT_ID",
"-e",
"MDB_MCP_API_CLIENT_SECRET",
"mongodb/mongodb-mcp-server:latest"
],
"env": {
"MDB_MCP_API_CLIENT_ID": "your-atlas-service-accounts-client-id",
"MDB_MCP_API_CLIENT_SECRET": "your-atlas-service-accounts-client-secret"
}
}
}
}选项5:作为HTTP服务器运行
⚠️ 安全通知: 此服务器现已支持远程连接的Streamable HTTP传输。 不建议在未实施适当的身份验证和安全措施的情况下,将HTTP传输用于生产环境。
建议的安全措施示例:
- 实现认证(例如,API网关、反向代理)
- 使用HTTPS/TLS加密
- 部署在防火墙后或私有网络中
- 实现速率限制
- 永远不要直接暴露在互联网上
如需更多详情,请参阅 MCP(多协议控制器/某特定系统或协议的缩写,具体含义需根据上下文确定)安全最佳实践。
你可以将 MongoDB MCP 服务器作为 HTTP 服务器运行,而不是使用默认的 stdio 传输方式。如果你希望通过 HTTP 与服务器进行交互,例如从网页客户端访问,或者将服务器暴露在特定端口上,这种方法非常有用。
要使用HTTP传输启动服务器,请使用 --transport http 选项:
npx -y mongodb-mcp-server@latest --transport http默认情况下,服务器将监听在 http://127.0.0.1:3000您可以使用(相关工具或设置)来自定义主机和端口 --httpHost 并且 --httpPort 选项:
npx -y mongodb-mcp-server@latest --transport http --httpHost=0.0.0.0 --httpPort=8080--httpHost(默认:127.0.0.1):HTTP 服务器绑定的主机。--httpPort(默认:3000):HTTP 服务器的端口号。
注: 默认传输方式是stdio,这适用于与大多数MCP客户端进行集成。使用http如果你需要通过HTTP与服务器进行交互,则需要传输(数据)。
🛠️ 支持的工具
工具列表
MongoDB Atlas 工具
atlas-list-orgs- 列出MongoDB Atlas组织atlas-list-projects- 列出MongoDB Atlas项目atlas-create-project- 创建一个新的MongoDB Atlas项目atlas-list-clusters- 列出MongoDB Atlas集群atlas-inspect-cluster- 检查特定的MongoDB Atlas集群atlas-create-free-cluster- 创建一个免费的MongoDB Atlas集群atlas-connect-cluster- 连接到MongoDB Atlas集群atlas-inspect-access-list- 检查能够访问MongoDB Atlas集群的IP/CIDR范围atlas-create-access-list- 为MongoDB Atlas集群配置IP/CIDR访问列表atlas-list-db-users- 列出MongoDB Atlas数据库用户atlas-create-db-user- 创建一个MongoDB Atlas数据库用户atlas-list-alerts- 列出项目中的MongoDB Atlas警报
注:只有在您设置了凭据后,才能使用atlas工具 配置 部分。
MongoDB 数据库工具
connect- 连接到MongoDB实例find- 在MongoDB集合上运行查找查询。返回的文档数量受到限制limit参数和服务器的maxDocumentsPerQuery配置(两者取较小者)。返回文档的总大小也受到限制responseBytesLimit参数和服务器的maxBytesPerQuery配置,以较小者为准。aggregate- 对MongoDB集合执行聚合操作。返回的文档数量受服务器限制maxDocumentsPerQuery配置。返回文档的总大小也受到限制responseBytesLimit参数和服务器的maxBytesPerQuery配置,以较小者为准。count- 获取MongoDB集合中的文档数量insert-one- 将单个文档插入到MongoDB集合中insert-many- 将多个文档插入到MongoDB集合中create-index- 为MongoDB集合创建索引update-one- 更新MongoDB集合中的单个文档update-many- 更新MongoDB集合中的多个文档rename-collection- 重命名MongoDB集合delete-one- 从MongoDB集合中删除单个文档delete-many- 从MongoDB集合中删除多个文档drop-collection- 从MongoDB数据库中删除一个集合drop-database- 删除MongoDB数据库list-databases- 列出MongoDB连接的所有数据库list-collections- 列出给定数据库中的所有集合collection-indexes- 描述集合的索引collection-schema- 描述集合的模式(或架构)collection-storage-size- 获取集合的大小(以MB为单位)db-stats- 返回关于MongoDB数据库的统计信息export- 导出查询或聚合结果为EJSON格式。创建一个具有唯一名称的导出文件,可通过exported-data资源。
📄 支持的资源
config- 服务器配置,由用户以环境变量或启动参数的形式提供,其中敏感参数已做遮蔽处理。可通过URI访问该资源config://config.debug- MongoDB连接问题的调试信息。记录最后一次连接尝试和错误信息。可通过URI访问该资源debug://mongodb。exported-data- 一个资源模板,用于访问使用导出工具导出的数据。该模板可通过URI访问exported-data://{exportName}哪里exportName是由导出工具生成的导出项的唯一名称。
配置
🔒 安全最佳实践: 我们强烈建议使用环境变量来存储敏感配置,如API凭据(MDB_MCP_API_CLIENT_ID,MDB_MCP_API_CLIENT_SECRET)和连接字符串(MDB_MCP_CONNECTION_STRING) 而不是命令行参数。环境变量在进程列表中不可见,为您的敏感数据提供了更好的安全性。
MongoDB MCP 服务器可以通过多种方法进行配置,以下为配置的优先级顺序(从高到低):
- 命令行参数
- 环境变量
配置选项
| CLI 选项 | 环境变量 | 默认值 | 描述 | ||
|---|---|---|---|---|---|
apiClientId | MDB_MCP_API_CLIENT_ID | 用于身份验证的Atlas API客户端ID。运行Atlas工具时必需。 (此行无实际内容,故翻译为) | |||
apiClientSecret | MDB_MCP_API_CLIENT_SECRET | Atlas API客户端密钥,用于身份验证。运行Atlas工具时必需。 (此行无实际内容,若作为格式分隔则可忽略翻译,若需说明可译为) | (无实际意义,此处为格式分隔) | ||
connectionString | MDB_MCP_CONNECTION_STRING | 用于直接数据库连接的MongoDB连接字符串。可选,如果不设置,则需要调用 connect 在与MongoDB数据交互之前,请使用工具。 (这个竖线可能表示分隔或某种特定的格式要求,但单独来看,它没有具体的翻译内容,因此可以保留原样或根据上下文进行适当处理。)在中文中,如果这是一个分隔符,可以简单地保留为“ | ”,或者根据具体语境,用“ | ”来表示分隔或某种特定的含义 | |
loggers | MDB_MCP_LOGGERS | disk,mcp | 逗号分隔值,可能的值为 mcp, disk 并且 stderr. 查看 日志记录选项 详情如下。 | ||
logPath | MDB_MCP_LOG_PATH | 查看注释\* | 用于存储日志的文件夹。 | ||
disabledTools | MDB_MCP_DISABLED_TOOLS | 将禁用的一系列工具名称、操作类型和/或工具类别。 | |||
confirmationRequiredTools | MDB_MCP_CONFIRMATION_REQUIRED_TOOLS | create-access-list, create-db-user, drop-database, drop-collection, delete-many | 一个工具名称数组,这些工具在执行前需要用户确认。 要求客户端支持 引出(或诱发). | ||
readOnly | MDB_MCP_READ_ONLY | false(当设置为true时) | 仅允许读取、连接和元数据操作类型,禁用创建/更新/删除操作。 | ||
indexCheck | MDB_MCP_INDEX_CHECK | false | 当设置为 true 时,强制查询操作必须使用索引,拒绝执行集合扫描的查询。 | ||
telemetry | MDB_MCP_TELEMETRY | 已启用 | 当设置为禁用时,禁用遥测数据收集。 | ||
transport | MDB_MCP_TRANSPORT | stdio(标准输入输出) | 可以是 'stdio' 或 'http'。 | ||
httpPort | MDB_MCP_HTTP_PORT | 3000 | 端口号。 | ||
httpHost | MDB_MCP_HTTP_HOST | 127.0.0.1 | 绑定HTTP服务器的主机。 | ||
idleTimeoutMs | MDB_MCP_IDLE_TIMEOUT_MS | 600000 | 客户端空闲超时断开连接(仅适用于HTTP传输)。 | ||
maxBytesPerQuery | MDB_MCP_MAX_BYTES_PER_QUERY | 16777216 (16MiB) | 从一个(查询/操作)返回的结果的最大字节大小 find 或者 aggregate 工具调用。这作为(某值或范围的)上限 responseBytesLimit 这些工具中的参数。 | ||
maxDocumentsPerQuery | MDB_MCP_MAX_DOCUMENTS_PER_QUERY | 100 | 一个查询最多可以返回的文档数量 find 或者 aggregate 工具调用。对于 find 工具,有效限制将是此值与工具(的某个限制值)中较小的那个 limit 参数。 | ||
notificationTimeoutMs | MDB_MCP_NOTIFICATION_TIMEOUT_MS | 540000 | 客户端意识到断开连接的通知超时时间(仅适用于HTTP传输)。 | ||
exportsPath | MDB_MCP_EXPORTS_PATH | 查看备注\* | 用于存储导出数据文件的文件夹。 | ||
exportTimeoutMs | MDB_MCP_EXPORT_TIMEOUT_MS | 300000 | 导出文件被视为过期并可进行清理的毫秒时间。 (此行为空白,无实际内容可翻译) | ||
exportCleanupIntervalMs | MDB_MCP_EXPORT_CLEANUP_INTERVAL_MS | 120000 | 删除过期导出文件的导出清理周期之间的时间(毫秒)。 | ||
atlasTemporaryDatabaseUserLifetimeMs | MDB_MCP_ATLAS_TEMPORARY_DATABASE_USER_LIFETIME_MS | 14400000 | 当连接到MongoDB Atlas集群时,临时数据库用户创建的数据库将在该时间(毫秒)内保持活跃,之后将被自动删除。 | ||
voyageApiKey | MDB_VOYAGE_API_KEY | 用于与Voyage AI通信的API密钥。用于生成向量搜索的嵌入。 |
日志记录选项
这个(或“该”) loggers 配置选项控制日志发送的位置。您可以指定一个或多个日志记录器类型,以逗号分隔的形式列出。可用选项包括:
mcp将日志发送到MCP客户端(如果客户端/传输支持)。disk将日志写入磁盘文件。日志文件存储在日志路径中(参见logPath(在上面)。stderr将日志输出到标准错误(stderr),这在调试或容器运行时非常有用。
默认值: disk,mcp (日志被写入磁盘并发送到MCP客户端)。
你可以组合多个记录器,例如:。 --loggers disk stderr 或者 export MDB_MCP_LOGGERS="mcp,stderr"。
示例:通过环境变量设置日志记录器
export MDB_MCP_LOGGERS="disk,stderr"💡 平台说明: 对于Windows用户,请参阅 环境变量 用于平台特定说明。
示例:通过命令行参数设置日志记录器
npx -y mongodb-mcp-server@latest --loggers mcp stderr日志文件位置
当使用时 disk 日志记录器,日志文件存储于:
- Windows:
%LOCALAPPDATA%\mongodb\mongodb-mcp\.app-logs - macOS/Linux:
~/.mongodb/mongodb-mcp/.app-logs
你可以通过以下方式覆盖日志目录: logPath 选项。
禁用工具
您可以通过使用(相关功能/选项)来禁用特定的工具或工具类别 disabledTools 选项。此选项接受一个字符串数组, 其中每个字符串可以是工具名称、操作类型或类别。
数组的构建方式取决于您使用的配置方法类型:
- 为了 环境变量 配置时,使用逗号分隔的字符串:
export MDB_MCP_DISABLED_TOOLS="create,update,delete,atlas,collectionSchema"。 - 对于 命令行参数 配置时,使用空格分隔的字符串:
--disabledTools create update delete atlas collectionSchema.
工具的类别:
atlas- MongoDB Atlas 工具,如列出集群、创建集群等。mongodb- MongoDB数据库工具,如find、aggregate等。
操作类型:
create- 创建资源的工具,如创建集群、插入文档等。update- 用于更新资源的工具,例如更新文档、重命名集合等。delete- 删除资源的工具,如删除文档、删除集合等。read- 用于读取资源的工具,如查找、聚合、列出集群等。metadata- 读取元数据的工具,例如列出数据库/集合/索引、推断集合模式等。connect- 工具,允许您连接或切换到MongoDB实例的连接。如果此功能被禁用,则在启动服务器时,您需要通过配置提供一个连接字符串。
需要确认
如果您的客户端支持 引出(信息/反应等)您可以设置 MongoDB MCP 服务器,在执行某些工具之前要求用户确认。
当一个工具被标记为需要确认时,服务器将向客户端发送一个询问请求。支持询问功能的客户端随后会提示用户进行确认,并将响应发送回服务器。如果客户端不支持询问功能,该工具将在没有确认的情况下执行。
你可以设置 confirmationRequiredTools 配置选项,用于指定需要确认的工具名称。默认情况下,以下工具已启用此设置: drop-database, drop-collection, delete-many, atlas-create-db-user, atlas-create-access-list。
只读模式
这个(或“该”) readOnly 配置选项允许您限制MCP服务器仅使用具有“读取”、“连接”和“元数据”操作类型的工具。启用此选项后,所有具有“创建”、“更新”或“删除”操作类型的工具将不会在服务器上注册。
这在您希望提供对MongoDB数据的访问以便进行分析,但又不允许对数据或基础设施进行任何修改的情况下非常有用。
您可以使用以下方法启用只读模式:
- 环境变量:
export MDB_MCP_READ_ONLY=true - 命令行参数:
--readOnly
💡 平台备注: 对于Windows用户,请参阅 环境变量 对于特定平台的说明。
当只读模式激活时,您会在服务器日志中看到一条消息,指示哪些工具因该限制而被阻止注册。
索引检查模式
该 indexCheck 配置选项允许您强制要求查询操作必须使用索引。启用此选项后,将拒绝执行集合扫描的查询,以确保更好的性能。
这在需要确保数据库查询得到优化的场景中非常有用。
您可以使用以下命令启用索引检查模式:
- 环境变量:
export MDB_MCP_INDEX_CHECK=true - 命令行参数:
--indexCheck
💡 平台说明: 对于Windows用户,请参阅 环境变量 针对特定平台的说明。
当启用索引检查模式时,如果查询因未使用索引而被拒绝,您将看到一条错误消息。
出口
由(系统/设备等)导出的数据 export 工具被临时存储在配置的(位置/地方) exportsPath 在运行MCP服务器的机器上,直到被导出清理过程清理掉为止。如果 exportsPath 未提供配置时,将使用以下默认值:
- Windows:
%LOCALAPPDATA%\mongodb\mongodb-mcp\exports - macOS/Linux:
~/.mongodb/mongodb-mcp/exports
这个 exportTimeoutMs 配置控制着导出数据被视为过期并可进行清理的时间。默认情况下,导出数据在5分钟后(300000毫秒)过期。
该 exportCleanupIntervalMs 配置控制着清理进程运行的频率,以删除过期的导出文件。默认情况下,清理进程每2分钟(120000毫秒)运行一次。
遥测
该 telemetry 配置选项允许您禁用遥测数据收集。启用后,MCP 服务器将收集使用数据并将其发送到 MongoDB。
您可以使用以下方法禁用遥测:
- 环境变量:
export MDB_MCP_TELEMETRY=disabled - 命令行参数:
--telemetry disabled - “DO_NOT_TRACK”环境变量:
export DO_NOT_TRACK=1
💡 平台说明: 对于Windows用户,请参阅 环境变量 针对特定平台的说明。
Atlas API 访问
要使用Atlas API工具,您需要在MongoDB Atlas中创建一个服务帐户:
ℹ️ 注: 如需了解每个Atlas操作所需最低权限的详细列表,请参阅 Atlas API 权限 以下部分。
- 创建服务账户:
- 登录到 MongoDB Atlas cloud.mongodb.com 翻译为中文是:“MongoDB 云服务平台” - 导航至访问管理器 > 组织访问 - 点击“添加新项”>“应用程序”>“服务账户” - 为您的服务帐户输入名称、描述和过期时间(例如,“MCP,MCP服务器访问,7天”) - 仅为您的用例分配所需的最小权限。 - 见 “Atlas API Permissions” 详情见下。 - 点击“创建”
要了解更多关于服务帐户的信息,请查看 MongoDB Atlas 文档.
- 保存客户端凭据:
- 创建后,您将看到客户端ID和客户端密钥 - 重要提示: 立即复制并保存客户端密钥,因为它不会再显示
- 添加访问列表条目:
- 将您的IP地址添加到API访问列表中
- 配置MCP服务器:
- 使用以下其中一种配置方法来设置您的 apiClientId 并且 apiClientSecret
根据上面的信息,执行如下指令:Atlas API 权限
安全警告: 授予组织所有者角色很少是必要的,并且可能存在安全风险。请仅为您的使用场景分配所需的最小权限。
快速参考:每项操作所需的角色
| 你想做的工作 | 最安全的角色分配(在哪里) |
|---|---|
| 列出组织/项目 | 组织成员或组织只读(组织) |
| 创建新项目 | 组织项目创建器 (Org) |
| 查看项目中的集群/数据库 | 项目只读(项目) |
| 在项目中创建/管理集群 | 项目集群管理器(项目) |
| 管理项目访问列表 | 项目IP访问列表管理员(项目) |
| 管理数据库用户 | 项目数据库访问管理员(项目) |
- 更倾向于项目级别的角色 对于大多数操作,仅分配给您需要管理或查看的特定项目。
- 避免成为组织所有者 除非您需要对组织内的所有项目和设置拥有完全的管理控制权。
如需查看完整角色列表及其权限,请参阅 Atlas 用户角色文档。
配置方法
环境变量
设置带有前缀的环境变量 MDB_MCP_ 接着是用大写字母和下划线表示的选项名称:
Linux/macOS(bash/zsh):
# Set Atlas API credentials (via Service Accounts)
export MDB_MCP_API_CLIENT_ID="your-atlas-service-accounts-client-id"
export MDB_MCP_API_CLIENT_SECRET="your-atlas-service-accounts-client-secret"
# Set a custom MongoDB connection string
export MDB_MCP_CONNECTION_STRING="mongodb+srv://username:password@cluster.mongodb.net/myDatabase"
# Set log path
export MDB_MCP_LOG_PATH="/path/to/logs"Windows 命令提示符(cmd):
set "MDB_MCP_API_CLIENT_ID=your-atlas-service-accounts-client-id"
set "MDB_MCP_API_CLIENT_SECRET=your-atlas-service-accounts-client-secret"
set "MDB_MCP_CONNECTION_STRING=mongodb+srv://username:password@cluster.mongodb.net/myDatabase"
set "MDB_MCP_LOG_PATH=C:\path\to\logs"Windows PowerShell:
# Set Atlas API credentials (via Service Accounts)
$env:MDB_MCP_API_CLIENT_ID="your-atlas-service-accounts-client-id"
$env:MDB_MCP_API_CLIENT_SECRET="your-atlas-service-accounts-client-secret"
# Set a custom MongoDB connection string
$env:MDB_MCP_CONNECTION_STRING="mongodb+srv://username:password@cluster.mongodb.net/myDatabase"
# Set log path
$env:MDB_MCP_LOG_PATH="C:\path\to\logs"MCP配置文件示例
包含环境变量的连接字符串
{
"mcpServers": {
"MongoDB": {
"command": "npx",
"args": ["-y", "mongodb-mcp-server"],
"env": {
"MDB_MCP_CONNECTION_STRING": "mongodb+srv://username:password@cluster.mongodb.net/myDatabase"
}
}
}
}使用环境变量的Atlas API凭据
{
"mcpServers": {
"MongoDB": {
"command": "npx",
"args": ["-y", "mongodb-mcp-server"],
"env": {
"MDB_MCP_API_CLIENT_ID": "your-atlas-service-accounts-client-id",
"MDB_MCP_API_CLIENT_SECRET": "your-atlas-service-accounts-client-secret"
}
}
}
}命令行参数
在启动服务器时,将配置选项作为命令行参数传递:
🔒 安全提示: 对于API凭证和连接字符串等敏感配置,请使用环境变量,而不是命令行参数。
# Set sensitive data as environment variable
export MDB_MCP_API_CLIENT_ID="your-atlas-service-accounts-client-id"
export MDB_MCP_API_CLIENT_SECRET="your-atlas-service-accounts-client-secret"
export MDB_MCP_CONNECTION_STRING="mongodb+srv://username:password@cluster.mongodb.net/myDatabase"
# Start the server with command line arguments
npx -y mongodb-mcp-server@latest --logPath=/path/to/logs --readOnly --indexCheck💡 平台说明: 上述示例使用的是Unix/Linux/macOS的语法。对于Windows用户,请参阅 环境变量 针对特定平台的说明。
MCP配置文件示例
包含命令行参数的连接字符串
🔒 安全提示: 我们不建议将连接字符串作为命令行参数传递。连接字符串可能包含凭据,这些凭据可能会在进程列表中可见,并被记录在各种系统位置,从而可能导致您的凭据泄露。相反,请进行配置(以安全方式) 通过环境变量设置连接字符串
{
"mcpServers": {
"MongoDB": {
"command": "npx",
"args": [
"-y",
"mongodb-mcp-server",
"--connectionString",
"mongodb+srv://username:password@cluster.mongodb.net/myDatabase",
"--readOnly"
]
}
}
}使用命令行参数的Atlas API凭据
🔒 安全提示: 我们不建议将Atlas API凭据作为命令行参数传递。提供的凭据可能会在进程列表和各种系统位置中可见并被记录,从而可能暴露您的凭据。相反,请进行配置 通过环境变量设置Atlas API凭证
{
"mcpServers": {
"MongoDB": {
"command": "npx",
"args": [
"-y",
"mongodb-mcp-server",
"--apiClientId",
"your-atlas-service-accounts-client-id",
"--apiClientSecret",
"your-atlas-service-accounts-client-secret",
"--readOnly"
]
}
}
}代理支持
MCP服务器将检测典型的代理环境变量并使用它们来 连接到Atlas API、您的MongoDB集群或任何其他外部调用 用于第三方服务,如OID提供者。其行为与……相同 mongosh 是的,所以相同的设置在MCP服务器上也能正常工作。
🤝贡献
有兴趣贡献吗?太棒了 请查看我们的 贡献指南 关于代码贡献、标准、添加新工具以及故障排除信息的指南。
