使用 MCP 将货币工具添加到代理

实验 20 分钟 universal_currency_alt 1 个点数 show_chart 入门级
info 此实验可能会提供 AI 工具来支持您学习。
此内容尚未针对移动设备进行优化。
为获得最佳体验,请在桌面设备上访问通过电子邮件发送的链接。

GML016

Google Cloud 自学实验的徽标

概览

大语言模型 (LLM) 功能强大,但仍面临两大瓶颈:知识库在训练后即固化,且缺乏与现实世界交互的能力,无法访问实时数据,也无法执行如预订会议或更新客户记录等操作。

这时,Model Context Protocol (MCP) 就派上用场了!MCP 是一种旨在打破 LLM 瓶颈的开放标准。

为什么要使用 MCP?

MCP 为 LLM 与外部数据、应用和服务之间的通信提供一种安全且标准化的“语言”。它充当桥梁,使 AI 代理不再局限于静态知识,而成为一个能够检索当前信息并执行操作的动态代理,从而提升其准确性、实用性与自动化能力。

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

目标

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

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

设置和要求

  • 实验是计时的,并且无法暂停。计时器在您点击开始实验后即开始计时。
  • 随附的云终端已预先配置了 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.13 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_VERTEXAI=True" >> .env echo "MODEL={{{project_0.startup_script.gemini_flash_model_id | gemini_flash_model_id}}}" >> .env

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

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

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

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

任务 2. 运行基准代理(“更新前”)

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

    adk run currency_agent
  2. 通过输入以下提示与代理进行交互:

    What's the exchange rate between USD and EUR?

    代理应提供美元与欧元之间的实时汇率。

  3. 试试其他提示:

    What's the exchange rate between USD and CNY?

    代理应提供美元与人民币之间的实时汇率。

  4. 通过输入以下提示与代理进行交互:

    What's the price of Bitcoin?

    从回答中,您应该可以看出,代理只了解法定货币(即,它无法提供有关加密货币的任何当前数据)。

任务 3. 修改代理

在此任务中,您将修改货币代理,使其能够使用 Model Context Protocol (MCP) 服务器。可以将其理解为:通过公开的 Coinbase API 调用一个独立的“货币服务器”,以获取代理本身无法访问的汇率。

  1. 点击左侧窗格中的文件资源管理器图标,然后前往 currency-agent/mcp-server 项目文件夹。

  2. 文件资源管理器中,打开 mcp-server 目录中的 server.py 文件,在第 52 行插入以下代码,然后保存更改:

    @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 工具,从而能够回答有关其他货币的问题,而不仅仅是法定货币!

  1. 输入 exit,并在系统提示输入会话 ID 时输入 1

点击检查我的进度,验证已完成以下目标: 修改 ADK 代理以使用 MCP。

恭喜!

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

上次更新手册的时间:2026 年 1 月 21 日

上次测试实验的时间:2026 年 1 月 21 日

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

准备工作

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

使用无痕浏览模式

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

登录控制台

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

此内容目前不可用

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

太好了!

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

一次一个实验

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

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

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