使用ADK代理和MCP工具箱查询BigQuery数据集
概述
This project demonstrates how to build a powerful agent capable of querying BigQuery datasets using the Agent Development Kit (ADK) and the
Model-Context-Protocol (MCP) Toolbox. The agent can understand natural language queries, translate them into SQL, execute them on BigQuery, and return the
results.
u 建筑
该架构由以下组件组成:\ 了解他们的要求,并协调工具来满足他们的要求。\ MCP工具箱: 通过模型上下文协议(MCP)向ADK代理公开一组工具的服务器。这些工具为代理提供\ 与BigQuery交互的能力。\ BigQuery: 谷歌的无服务器、高度可扩展的数据仓库。代理将查询存储在BigQuery中的数据集。
代理接收用户的查询,识别查询数据的意图,然后使用MCP工具箱中的适当工具对以下对象执行SQL查询\ BigQuery。
数据库代理和MCP工具箱
ADK代理商: Agent Development Kit允许开发人员构建复杂的代理,这些代理可以推理、计划和使用工具来完成复杂的任务。\ 这些代理不仅仅是简单的聊天机器人;它们可以配置特定的指令,并可以访问各种工具与外部进行交互\ 系统。
- MCP数据库工具箱: MCP工具箱充当代理和数据库之间的桥梁。它公开了数据库操作(如执行SQL\
查询)作为代理可以使用的工具。这有几个优点: - 摘要: 代理不需要知道如何连接或查询数据库的具体细节。它只需要知道如何使用工具。 - 安全: MCP工具箱可以执行安全策略,确保代理只能访问它应该访问的数据。 - 模块化: 您可以轻松地将新工具添加到工具箱中,以扩展代理的功能。
项目结构
\_\_mcp工具箱\ ── 我的经纪人/\ ——.venv/\ ├── gcp_releasenotes_agent_app/\ │ ├── agent.py\ │ │ └── ...\ └── ...\ ├── 工具箱/\ ├── tools.yaml\ └── README.md
my-agents/:包含ADK代理的源代码。- -
my-agents/gcp_releasenotes_agent_app/agent.py:代理应用程序的主要入口点。
toolbox/:包含MCP工具箱服务器的实现。\ tools.yaml:MCP工具箱提供的工具的配置文件。 * search_world_bank_intl_education:按国家名称告诉政府教育支出的数据集。 * search_release_notes_bq:数据集包含有关GCP bigquery的最新版本、功能和折旧的信息 * solar_ppotential_MountainView:数据集包含有关项目天窗的信息,该信息告诉给定pincode覆盖的总面积
README.md:此文件
入门指南
先决条件
- Python 3.10+
- 谷歌云SDK
- 访问启用了BigQuery API的Google云项目。
安装
克隆存储库:
git clone https://github.com/Madhu-712/Querying-Bigquery-datsets-using-ADK-agents-and-MCP-toolbox.git
cd Querying-Bigquery-datsets-using-ADK-agents-and-MCP-toolbox 设置Python虚拟环境:
python3 -m venv .venv
source .venv/bin/activate . 安装依赖项:
pip install -r my-agents/requirements.txt 使用Google Cloud进行身份验证:
gcloud auth application-default login 端到端实施(执行步骤)
- 启动MCP工具箱服务器:\
运行MCP工具箱服务器以公开BigQuery工具。
- 运行ADK代理:\
执行主代理脚本。这将启动会话代理。
- 与代理交互:\
现在,您可以在终端中与代理进行交互。向它询问有关BigQuery数据的问题。例如:\ “在客户表中显示客户总数。”
然后,代理将使用MCP工具箱中的工具在BigQuery上执行相应的SQL查询,并将结果返回给您。
贡献
Contributions are welcome! Please feel free to submit a pull request. - 分叉存储库。
- 创建新分支:
git checkout -b my-feature-branch - 进行更改并提交:
git commit -m 'Add some feature' - 推到分支:
git push origin my-feature-branch
许可证
该项目根据MIT许可证获得许可。请参阅 LICENSE 文件以获取详细信息。\ │
资源
(https://codelabs.developers.google.com/mcp-toolbox-bigquery-dataset#3)
