Skip to content

ADK 的 MongoDB MCP 工具

Supported in ADKPythonTypeScript

MongoDB MCP 服务器 将你的 ADK 智能体连接到 MongoDB 数据库和 MongoDB Atlas 集群。此集成使你的智能体能够使用自然语言查询集合、管理数据库并与 MongoDB Atlas 基础设施进行交互。

使用场景

  • 数据探索和分析:使用自然语言查询 MongoDB 集合、运行聚合和分析文档模式,而无需手动编写复杂的查询。

  • 数据库管理:通过对话命令列出数据库和集合、创建索引、管理用户并监控数据库统计信息。

  • Atlas 基础设施管理:直接从你的智能体创建和管理 MongoDB Atlas 集群、配置访问列表并查看性能建议。

前置条件

  • 对于数据库访问:MongoDB 连接字符串(本地、自托管或 Atlas 集群)
  • 对于 Atlas 管理:带有 API 凭据(客户端 ID 和密钥)的 MongoDB Atlas 服务账户

与智能体一起使用

from google.adk.agents import Agent
from google.adk.tools.mcp_tool import McpToolset
from google.adk.tools.mcp_tool.mcp_session_manager import StdioConnectionParams
from mcp import StdioServerParameters

# For database access, use a connection string:
CONNECTION_STRING = "mongodb://localhost:27017/myDatabase"

# For Atlas management, use API credentials:
# ATLAS_CLIENT_ID = "YOUR_ATLAS_CLIENT_ID"
# ATLAS_CLIENT_SECRET = "YOUR_ATLAS_CLIENT_SECRET"

root_agent = Agent(
    model="gemini-2.5-pro",
    name="mongodb_agent",
    instruction="Help users query and manage MongoDB databases",
    tools=[
        McpToolset(
            connection_params=StdioConnectionParams(
                server_params=StdioServerParameters(
                    command="npx",
                    args=[
                        "-y",
                        "mongodb-mcp-server",
                        "--readOnly",  # Remove for write operations
                    ],
                    env={
                        # For database access, use:
                        "MDB_MCP_CONNECTION_STRING": CONNECTION_STRING,
                        # For Atlas management, use:
                        # "MDB_MCP_API_CLIENT_ID": ATLAS_CLIENT_ID,
                        # "MDB_MCP_API_CLIENT_SECRET": ATLAS_CLIENT_SECRET,
                    },
                ),
                timeout=30,
            ),
        )
    ],
)
import { LlmAgent, MCPToolset } from "@google/adk";

// For database access, use a connection string:
const CONNECTION_STRING = "mongodb://localhost:27017/myDatabase";

// For Atlas management, use API credentials:
// const ATLAS_CLIENT_ID = "YOUR_ATLAS_CLIENT_ID";
// const ATLAS_CLIENT_SECRET = "YOUR_ATLAS_CLIENT_SECRET";

const rootAgent = new LlmAgent({
    model: "gemini-2.5-pro",
    name: "mongodb_agent",
    instruction: "Help users query and manage MongoDB databases",
    tools: [
        new MCPToolset({
            type: "StdioConnectionParams",
            serverParams: {
                command: "npx",
                args: [
                    "-y",
                    "mongodb-mcp-server",
                    "--readOnly", // Remove for write operations
                ],
                env: {
                    // For database access, use:
                    MDB_MCP_CONNECTION_STRING: CONNECTION_STRING,
                    // For Atlas management, use:
                    // MDB_MCP_API_CLIENT_ID: ATLAS_CLIENT_ID,
                    // MDB_MCP_API_CLIENT_SECRET: ATLAS_CLIENT_SECRET,
                },
            },
        }),
    ],
});

export { rootAgent };

可用工具

MongoDB 数据库工具

工具 描述
find 针对 MongoDB 集合运行查找查询
aggregate 针对 MongoDB 集合运行聚合
count 获取集合中的文档数量
list-databases 列出 MongoDB 连接的所有数据库
list-collections 列出给定数据库的所有集合
collection-schema 描述集合的模式
collection-indexes 描述集合的索引
insert-many 将文档插入到集合中
update-many 更新匹配过滤器的文档
delete-many 删除匹配过滤器的文档
create-collection 创建一个新集合
drop-collection 从数据库中删除一个集合
drop-database 删除一个数据库
create-index 为集合创建一个索引
drop-index 从集合中删除一个索引
rename-collection 重命名一个集合
db-stats 获取数据库的统计信息
explain 获取查询执行统计信息
export 以 EJSON 格式导出查询结果

MongoDB Atlas 工具

Note

Atlas 工具需要 API 凭据。设置 MDB_MCP_API_CLIENT_IDMDB_MCP_API_CLIENT_SECRET 环境变量以启用它们。

工具 描述
atlas-list-orgs 列出 MongoDB Atlas 组织
atlas-list-projects 列出 MongoDB Atlas 项目
atlas-list-clusters 列出 MongoDB Atlas 集群
atlas-inspect-cluster 检查集群的元数据
atlas-list-db-users 列出数据库用户
atlas-create-free-cluster 创建一个免费的 Atlas 集群
atlas-create-project 创建一个 Atlas 项目
atlas-create-db-user 创建一个数据库用户
atlas-create-access-list 配置 IP 访问列表
atlas-inspect-access-list 查看 IP 访问列表条目
atlas-list-alerts 列出 Atlas 警报
atlas-get-performance-advisor 获取性能建议

配置

环境变量

变量 描述
MDB_MCP_CONNECTION_STRING 用于数据库访问的 MongoDB 连接字符串
MDB_MCP_API_CLIENT_ID 用于 Atlas 工具的 Atlas API 客户端 ID
MDB_MCP_API_CLIENT_SECRET 用于 Atlas 工具的 Atlas API 客户端密钥
MDB_MCP_READ_ONLY 启用只读模式 (truefalse)
MDB_MCP_DISABLED_TOOLS 逗号分隔的要禁用的工具列表
MDB_MCP_LOG_PATH 日志文件的目录

只读模式

--readOnly 标志将服务器限制为仅进行读取、连接和元数据操作。这会阻止任何创建、更新或删除操作,使其能够安全地进行数据探索而没有意外修改的风险。

禁用工具

你可以使用 MDB_MCP_DISABLED_TOOLS 禁用特定工具或类别:

  • 工具名称:findaggregateinsert-many 等。
  • 类别:atlas (所有 Atlas 工具)、mongodb (所有数据库工具)
  • 操作类型:createupdatedeletereadmetadata

额外资源