Modify an ADK Agent to use MCP

检查我的进度

/ 100

此实验可能会提供 AI 工具来支持您学习。

GML016

注意:为确保提供始终如一的高性能体验,本实验可能会对部分模型请求提供缓存响应。 Google Cloud 自学实验

概览

大语言模型 (LLM) 虽然功能强大,但却有两个主要的局限性:一是它们的知识在训练完成的那一刻起就“冻结”了;二是它们无法与外部世界交互,从而难以获取实时数据,也无法执行诸如预订会议或更新客户记录等操作。

这时,Model Context Protocol (MCP) 就派上用场了!MCP 是一种旨在解决 LLM 局限性的开放标准。

为什么要使用 MCP?

MCP 为 LLM 提供了一种安全且标准化的“语言”,使其能够与外部数据、应用和服务进行通信。它就像一座桥梁,让 AI 智能体能够跨越静态知识的鸿沟,焕发动态活力。借助 MCP,智能体可以实时获取信息并采取行动,从而变得更加精准、实用且自动化。

本实验为您提供了分步说明,指导您如何安装智能体开发套件 (ADK)、修改现有的 ADK 智能体以使用 MCP,并部署更新后的智能体,从而通过命令行界面初始化交互式会话。

探索 Gemini Enterprise Agent Ready (GEAR) 计划中的其他内容。

目标

在本实验中,您将学习如何执行以下任务:

  • 安装智能体开发套件 (ADK),并为您的项目创建虚拟环境。
  • 测试 currency-agent 系统(“更新前”状态)。
  • 修改智能体以使用 MCP 服务器。
  • 重启 MCP 服务器和智能体,使更改生效。
  • 验证对 MCP 服务器所做的更改(“更新后”)。

设置和要求

  • 实验是计时的,并且无法暂停。计时器在您点击开始后即开始计时。
  • 随附的 IDE 已预先配置了 gcloud SDK。
  • 使用终端执行命令,然后点击检查我的进度以验证您的实验成果。

配置环境并安装相关依赖项

  1. 在终端运行以下命令,以便从本实验的 Cloud Storage 存储桶中复制代码文件:

    gcloud storage cp -r gs://{{{project_0.project_id| YOUR_GCP_PROJECT_ID}}}-bucket/currency-agent .
  2. 使用以下命令设置环境并在 currency-agent 目录中创建 .env 文件:

    cd currency-agent cp /home/student/keys.json . uv venv --python 3.12 source .venv/bin/activate uv sync touch .env echo "GOOGLE_CLOUD_PROJECT={{{ project_0.project_id }}}" >> .env echo "GOOGLE_CLOUD_LOCATION=global" >> .env echo "GOOGLE_GENAI_USE_ENTERPRISE=True" >> .env echo "MODEL={{{project_0.startup_script.gemini_flash_model_id | gemini_flash_model_id}}}" >> .env

任务 1. 安装智能体开发套件 (ADK)

  1. 在新终端中(在菜单栏中选择终端 > 新终端),使用以下命令启动 MCP 服务器:

    cd currency-agent uv run mcp-server/server.py
  2. 在新终端中(在菜单栏中选择终端 > 新终端),使用以下命令启动 A2A 服务器(它在端口 10000 上启动):

    cd currency-agent uv run uvicorn currency_agent.agent:a2a_app --host localhost --port 10000

任务 2. 运行基准智能体(“更新前”)

  1. 初始终端实例中,使用以下命令启动现有的货币智能体:

    adk run currency_agent 注意:如果在启动智能体时遇到超时错误(例如 asyncio.exceptions.CancelledError),请验证 MCP 服务器(任务 1,第 1 步)和 A2A 服务器(任务 1,第 2 步)是否都在各自的终端标签页中正常运行且未报错。
  2. 等待终端中出现 [user]: 提示,然后输入以下内容与智能体进行交互:

    What's the exchange rate between USD and EUR?

该智能体应提供美元与欧元之间的实时汇率。

  1. 试试其他提示:

    What's the exchange rate between USD and CNY?

该智能体应提供美元与人民币之间的实时汇率。

  1. 通过输入以下提示与智能体进行交互:

    What's the price of Bitcoin?

从该回答中,您应该可以发现,该智能体仅了解法定货币(即,它无法提供任何有关加密货币的实时数据)。

任务 3. 修改智能体

在此任务中,您将对货币智能体进行修改,使其能够使用 Model Context Protocol (MCP) 服务器。您可以将其想象为:通过公开的 Coinbase API 调用一个独立的“货币服务器”,从而获取智能体原本无法获取的汇率数据。

  1. 点击左侧窗格中的文件资源管理器图标,然后前往 currency-agent/mcp-server 项目文件夹。
“资源管理器”图标
  1. 文件资源管理器中,打开 mcp-server 目录中的 server.py 文件,在第 53 行插入以下代码,然后保存更改:

    @mcp.tool() def get_crypto_price(currency_pair: str = "BTC-USD") -> dict: """Get the current price of a cryptocurrency pair.""" # No API key required for this public endpoint url = f"https://api.coinbase.com/v2/prices/{currency_pair}/spot" response = httpx.get(url) return response.json()["data"]

任务 4. 重启 MCP 和 A2A 服务器

  1. 切换到 MCP 服务器仍在运行的终端实例。

  2. 按 CTRL+C 以停止服务器。

  3. 仍在同一终端中,运行以下命令以重启 MCP 服务器:

    uv run mcp-server/server.py
  4. 切换到 A2A 服务器仍在运行的终端实例。

  5. 按 CTRL+C 以停止服务器。

  6. 仍在此终端中,运行以下命令以重启智能体:

    uv run uvicorn currency_agent.agent:a2a_app --host localhost --port 10000

任务 5. 运行并测试更新后的智能体(“更新后”)

  1. 切换到之前运行 currency_agent 的终端实例。

  2. 输入 exit 以结束原始会话。

  3. 执行以下命令,重新运行并测试您的智能体:

    adk run --save_session currency_agent 注意:您可以忽略与 Python 版本依赖项相关的任何警告。
  4. 请尝试输入以下提示,与智能体进行互动:

    Use the get_crypto_price tool to get me the current price of Bitcoin.

该智能体现在可以通过 MCP 访问 get_crypto_price 工具,从而能够回答有关其他货币的问题,而不仅仅是法定货币!

注意:如果遇到 429 配额错误,请等待一分钟,然后再次尝试发送请求。
  1. 输入 exit,并在系统提示输入会话 ID 时输入 1,以确保成功完成活动跟踪。

点击检查我的进度以验证是否完成了以下目标:

修改 ADK 智能体以使用 MCP。

恭喜!

您已成功部署 ADK 智能体并对其进行了修改,使其能够使用 Model Context Protocol (MCP) 服务器。

上次更新手册的时间:2026 年 5 月 22 日

上次测试实验的时间:2026 年 5 月 22 日

版权所有 2026 Google LLC 保留所有权利。Google 和 Google 徽标是 Google LLC 的商标。其他所有公司名和产品名可能是其各自相关公司的商标。

准备工作

  1. 实验会创建一个 Google Cloud 项目和一些资源,供您使用限定的一段时间
  2. 实验有时间限制,并且没有暂停功能。如果您中途结束实验,则必须重新开始。
  3. 在屏幕左上角,点击开始实验即可开始

使用无痕浏览模式

  1. 复制系统为实验提供的用户名密码
  2. 在无痕浏览模式下,点击打开控制台

登录控制台

  1. 使用您的实验凭证登录。使用其他凭证可能会导致错误或产生费用。
  2. 接受条款,并跳过恢复资源页面
  3. 除非您已完成此实验或想要重新开始,否则请勿点击结束实验,因为点击后系统会清除您的工作并移除该项目

此内容目前不可用

一旦可用,我们会通过电子邮件告知您

太好了!

一旦可用,我们会通过电子邮件告知您

一次一个实验

确认结束所有现有实验并开始此实验

使用无痕浏览模式运行实验

使用无痕模式或无痕浏览器窗口是运行此实验的最佳方式。这可以避免您的个人账号与学生账号之间发生冲突,这种冲突可能导致您的个人账号产生额外费用。