准备工作
- 实验会创建一个 Google Cloud 项目和一些资源,供您使用限定的一段时间
- 实验有时间限制,并且没有暂停功能。如果您中途结束实验,则必须重新开始。
- 在屏幕左上角,点击开始实验即可开始
Install ADK and set up your environment
/ 50
Create API key and deploy ADK agent
/ 50
在本实验中,您将探索 Model Context Protocol (MCP),这是一种开放标准,可实现外部服务、数据源、工具和应用之间的无缝集成。您将了解如何使用现有 MCP 服务器提供的工具将 MCP 集成到 ADK 智能体中,以增强 ADK 工作流。此外,您还将了解如何通过定制的 MCP 服务器公开 load_web_page 等 ADK 工具,实现与 MCP 客户端的更广泛集成。
什么是 Model Context Protocol (MCP)?
Model Context Protocol (MCP) 是一种开放标准,旨在规范 Gemini 和 Claude 等大语言模型 (LLM) 与外部应用、数据源和工具之间的通信方式。您可以将其视为一种通用连接机制,能简化 LLM 获取上下文、执行操作以及与各种系统交互的方式。
MCP 采用客户端-服务器架构,定义了 MCP 服务器如何公开数据(资源)、交互式模板(提示)和可执行函数(工具),以及 MCP 客户端(可以是 LLM 宿主应用,也可以是 AI 智能体)如何使用这些数据、模板和函数。
本实验涵盖了两大集成模式:
在本实验中,您将学习如何完成以下操作:
请阅读以下说明。实验会以定时的方式进行,且您无法暂停实验。定时器(点击“开始实验”即可启动)会显示云资源可供您使用的时间。
Qwiklabs 实操实验可让您在真实的云环境中开展实验活动,免受模拟或演示环境的局限。为此,我们会向您提供新的临时凭据,您可以在该实验的规定时间内通过此凭据登录和访问 Google Cloud Platform。
要完成此实验,您需要:
注意:如果您已拥有个人 GCP 帐号或项目,请不要使用其进行此实验。
点击开始实验按钮。如果该实验需要付费,系统会打开一个对话框供您选择支付方式。左侧是“实验详细信息”窗格,其中包含以下各项:
点击打开 Google Cloud 控制台(如果您使用的是 Chrome 浏览器,请右键点击并选择在无痕式窗口中打开链接)。
该实验会启动资源并打开另一个标签页,显示“登录”页面。
提示:将这些标签页安排在不同的窗口中,并排显示。
如有必要,请复制下方的用户名,然后将其粘贴到登录对话框中。
您也可以在“实验详细信息”窗格中找到“用户名”。
点击下一步。
复制下面的密码,然后将其粘贴到欢迎对话框中。
您也可以在“实验详细信息”窗格中找到“密码”。
点击下一步。
继续在后续页面中点击以完成相应操作:
片刻之后,系统会在此标签页中打开 Google Cloud 控制台。
在本实验环境中,系统已为您启用 Vertex AI API、Routes API 和 Directions API。
在 Google Cloud 控制台窗口处于选中状态时,按下键盘上的 G 键,然后按下 S 键,打开 Cloud Shell。或者,您也可以点击 Cloud 控制台右上角的“激活 Cloud Shell”按钮 ()。
点击继续。
如果系统提示您为 Cloud Shell 授权,请点击授权。
在 Cloud Shell 终端面板的右上角,点击在新窗口中打开按钮 。
在 Cloud Shell 终端中,输入以下内容以打开 Cloud Shell 编辑器并进入主目录:
关闭屏幕右侧显示的任何其他教程或 Gemini 面板,以便为代码编辑器留出更多窗口空间。
在本实验的其余部分,您可以在此窗口中将 Cloud Shell 编辑器和 Cloud Shell 终端用作 IDE。
在 Cloud Shell 终端中运行以下命令,以安装 ADK。
将以下命令粘贴到 Cloud Shell 终端中,以便从 Cloud Storage 存储桶中复制文件并将其解压缩,从而创建包含本实验代码的项目目录:
使用以下命令安装实验所需的其他组件/依赖项:
点击检查我的进度,验证已完成以下目标:
本部分展示了如何将外部 Google Maps MCP 服务器中的工具集成到 ADK 智能体中。当 ADK 智能体需要使用由公开 MCP 接口的现有服务提供的功能时,这是最常见的集成模式。您将看到如何将 MCPToolset 类直接添加到智能体的 tools 列表中,从而无缝连接 MCP 服务器、发现其工具,并让这些工具可供智能体使用。这些示例主要侧重于 adk web 开发环境中的交互。
MCPToolset 类是 ADK 用于集成 MCP 服务器工具的主要机制。当您将 MCPToolset 实例添加到智能体的 tools 列表时,它会自动处理与指定 MCP 服务器的交互。其工作原理如下:
MCPToolset 会建立并管理与 MCP 服务器的连接。这可以是本地服务器进程(使用 StdioServerParameters 通过标准输入/输出进行通信),也可以是远程服务器(将 SseServerParams 用于服务器发送的事件)。当智能体或应用终止时,MCPToolset 还会处理此连接的安全关停。MCPToolset 会通过 list_tools MCP 方法向 MCP 服务器查询有哪些工具可用。然后,它会将这些发现的 MCP 工具的架构转换为与 ADK 兼容的 BaseTool 实例。LlmAgent,就像它们是原生 ADK 工具一样。LlmAgent 决定使用其中一种工具时,MCPToolset 会通过 MCP 的 call_tool 方法将调用透明地代理到 MCP 服务器,发送必要的实参,并将服务器的响应返回给智能体。tool_filter 形参从 MCP 服务器中选择特定的工具子集,而不是向智能体公开所有工具。在这个子部分中,您将生成一个名为 GOOGLE_MAPS_API_KEY 的新 API 密钥。
打开显示 Google Cloud 控制台的浏览器标签页(而不是 Cloud Shell 编辑器)。
您可以关闭此浏览器标签页上的 Cloud Shell 终端窗格,为控制台留出更大空间。
在页面顶部的搜索栏中搜索凭证。从结果中选择相应凭证。
在凭证页面上,点击页面顶部的 + 创建凭证,然后选择 API 密钥。
API 密钥已创建对话框会显示您新创建的 API 密钥。请务必将此密钥保存到本地,以便稍后在实验中使用。
点击对话框中的关闭。
默认情况下,新创建的密钥将命名为 API Key 1。选择该密钥,将其重命名为 GOOGLE_MAPS_API_KEY,然后点击保存。
在这个子部分中,您会将智能体配置为针对 Google 地图使用 MCPToolset,从而使智能体能够无缝提供路线和基于位置的信息。
在 Cloud Shell 编辑器的文件资源管理器窗格中,找到 adk_mcp_tools 文件夹。点击将其打开。
前往 adk_mcp_tools/google_maps_mcp_agent 目录。
将以下命令粘贴到纯文本文件中,然后将 YOUR_ACTUAL_API_KEY 值更新为您在上一步中生成并保存的 Google 地图 API 密钥:
复制更新后的命令并粘贴到 Cloud Shell 终端中,运行该命令,写入一个 .env 文件,该文件将为此智能体目录提供身份验证详细信息。
运行以下命令,将 .env 文件复制到您将在本实验中使用的另一个智能体目录中:
接下来,在 agent.py 文件的指定位置添加以下代码,将 Google 地图工具添加到您的智能体中。这样一来,您的智能体就可以针对 Google 地图使用 MCPToolset,从而提供路线或基于位置的信息。
在 adk_mcp_tools 项目目录中,使用以下命令启动智能体开发套件开发者界面:
输出:
如需在新标签页中查看网页界面,请点击终端输出中的 http://127.0.0.1:8000 链接。
系统随即会打开一个新的浏览器标签页,其中包含 ADK 开发者界面。从左侧的选择智能体下拉菜单中,选择 google_maps_mcp_agent。
开始与智能体对话,并运行以下提示:
输出:
点击带有闪电符号(表示函数调用)的智能体对话气泡旁的智能体图标。系统随即会打开相应事件的“事件”检查器:
请注意,这张智能体图中显示了多个不同的工具,这些工具由扳手表情符号 (🔧) 标识。虽然您只导入了一个 MCPToolset,但该工具集附带了您在此处看到的各种工具,例如 maps_place_details 和 maps_directions。
在请求标签页中,您可以看到该请求的结构。您可以使用事件检查器顶部的箭头来浏览智能体的思路、函数调用和回答。
当您完成对该智能体的提问后,关闭开发者界面浏览器标签页。
返回 Cloud Shell 终端面板,然后按 Ctrl+C 停止服务器。
点击检查我的进度以验证是否完成了以下目标:
在本部分中,您将了解如何通过定制的 MCP 服务器公开 ADK load_web_page 工具。您可以利用这种模式封装现有的 ADK 工具,并使任何标准 MCP 客户端应用都能访问这些工具。
返回 Cloud Shell 编辑器标签页,然后选择 adk_mcp_tools/adk_mcp_server 目录。
我们已为您准备好一个名为 adk_server.py 的 Python 文件,并添加了注释。请花些时间查看该文件,通过阅读注释来了解代码如何封装工具并将其作为 MCP 服务器提供。请留意代码以何种方式允许 MCP 客户端列出可用工具,异步调用 ADK 工具,同时以符合 MCP 规范的格式处理请求与响应。
点击 adk_mcp_server 目录中的 agent.py 文件。
更新 adk_server.py 文件的路径。
接下来,在 agent.py 文件的指定位置添加以下代码,将 MCPToolset 添加到您的智能体中。ADK 智能体充当 MCP 服务器的客户端。此 ADK 智能体将使用 MCPToolset 连接您的 adk_server.py 脚本。
如需运行 MCP 服务器,请在 Cloud Shell 终端中运行以下命令,以启动 adk_server.py 脚本:
输出:
点击 Cloud Shell 终端窗口顶部的 按钮,打开一个新的 Cloud Shell 终端标签页。
在 Cloud Shell 终端中,从 adk_mcp_tools 项目目录中,使用以下命令启动智能体开发套件开发者界面:
如需在新标签页中查看网页界面,请点击终端输出中的 http://127.0.0.1:8000 链接。
从左侧的选择智能体下拉菜单中,选择 adk_mcp_server。
向智能体查询:
输出:
具体过程:
web_reader_mcp_client_agent) 使用 MCPToolset 连接到 adk_server.py。call_tool 请求,执行 ADK load_web_page 工具,然后返回结果。adk_server.py 的 Cloud Shell 终端标签页中,看到来自 ADK 网页界面(及其终端)和 adk_server.py 终端的日志。这表明 ADK 工具可以封装在 MCP 服务器中,供各种符合 MCP 规范的客户端(包括 ADK 智能体)访问。
本实验结束时,您将了解如何使用 MCPToolset 类将外部 Model Context Protocol (MCP) 工具集成到 ADK 智能体中。您已了解如何连接到 MCP 服务器、在智能体中使用其工具,以及通过自定义 MCP 服务器公开 load_web_page 等 ADK 工具。借助这些技能,您可以利用强大的外部服务来扩展 ADK 智能体,从而改进 Web 开发工作流。
上次更新手册的时间:2025 年 10 月 6 日
上次测试实验的时间:2025 年 10 月 6 日
版权所有 2020 Google LLC 保留所有权利。Google 和 Google 徽标是 Google LLC 的商标。其他所有公司名和产品名可能是其各自相关公司的商标。
此内容目前不可用
一旦可用,我们会通过电子邮件告知您
太好了!
一旦可用,我们会通过电子邮件告知您
一次一个实验
确认结束所有现有实验并开始此实验