Google Cloud MCP 工具箱演示
这个仓库包含一个小型演示代理,它使用了Google Gemini嵌入和一个 MCP 工具箱 使用MongoDB工具集实现一个“在线杂货代理”。该代理展示了如何使用向量搜索在库存中查找产品,将产品添加到购物车(MongoDB集合),以及获取购物车的总金额(对购物车集合进行聚合)。
mongodb-groceries-agent/包含演示代理实现(agent.py)并初始化包。tools.yamlMongoDB工具的工具箱工具集定义。
先决条件
在运行演示之前,请确保您的机器上已安装并可用以下内容:
- Python 3.10+(推荐使用3.11版本)
- pip(或等效的Python包管理器)
- MCP Toolbox 服务器(遵循 说明;指示;指令)
- 一个可访问GenAI服务的Google API密钥(设置为
GOOGLE_API_KEY环境变量) - 一个MongoDB部署(支持Atlas免费M0集群——以下为操作指南)
设置一个免费的MongoDB Atlas M0集群
您可以创建一个免费的(M0)MongoDB Atlas 集群。请按照以下步骤操作:
- 打开地图册 浏览器中的注册页面。
- 注册一个免费的MongoDB账户,或者如果您已有账户,请登录。
- 点击“创建集群”并选择免费套餐(M0 / 共享)。
- 选择一个云服务提供商和区域(演示中使用默认设置即可)。
- 创建数据库用户:进入“数据库访问”界面,并添加一个带有密码的用户。保存此用户名/密码——您将在连接字符串中需要它。
- 允许您的IP地址:进入“网络访问”设置,并添加您当前的IP地址或0.0.0.0/0用于测试(不建议在生产环境中使用)。
- 点击“连接”,选择“连接您的应用程序”,然后复制提供的连接字符串。
在(代码/配置中)使用连接字符串 tools.yaml 作为 uri 或者更可取的是,通过环境变量来设置它。一个示例连接字符串如下:
mongodb+srv://:
@.mongodb.net/?retryWrites=true&w=majority注:更换 `, , 并且 ` 使用来自Atlas的值。对于本地测试,您也可以使用本地MongoDB服务器。
- 将示例杂货产品数据导入一个名为(此处可填写具体名称,但原文未给出)的集合中
products在一个名为……的数据库中groceries你可以使用提供的sample_data/groceries.json文件以及 MongoDB Atlas 用户界面(UI)或mongosh来导入它。
mongoimport --uri="" --db="grocery_store" --collection="inventory" --file="grocery_store.inventory.json" --jsonArray
配置
在运行代理程序之前,请设置以下环境变量:
GOOGLE_API_KEY— 您的Google GenAI API密钥
示例(macOS / zsh):
export GOOGLE_API_KEY="your-google-api-key"运行演示代理
- 安装依赖项(如果此仓库是更大项目的一部分,请相应调整)。从项目根目录执行:
python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt # if a requirements file exists; otherwise install needed packages manually- 启动工具箱服务器:
./toolbox --tools-file "tools.yaml"- 确保Toolbox服务器正在运行且可访问于
http://127.0.0.1:5000。
- 运行代理代码(此演示文件旨在由启动代理的编排脚本导入)。要快速尝试简单运行或导入模块:
adk web根据需要调整调用方式,以将代理集成到管理代理生命周期的运行时环境中。
什么 agent.py does(助动词,用于构成疑问句、否定句等,无实际意义)
- 阅读次数
GOOGLE_API_KEY从环境中获取并设置它os.environ用于Google GenAI客户端。 - 创建一个
genai.Client()以及一个针对(某目标)的Toolbox客户端http://127.0.0.1:5000. - 提供
generate_embeddings(query)使用(某种方法或技术)来生成嵌入向量gemini-embedding-001。 - 提供
find_similar_products(query)该工具通过工具箱工具运行向量搜索find_similar_documents针对一个名为……的指数vector_index以及该领域gemini_embedding。 - 构建一个
Agent配置为使用这些工具以及一个grocery-shopping-toolset从工具箱中加载。
故障排除
- 如果你从GenAI那里收到认证错误,请确认
GOOGLE_API_KEY已设置且有效。 - 如果Toolbox客户端无法连接,请确认ToolboxSync服务器正在运行,并且在配置的地址上可访问。
- 如果出现MongoDB连接问题,请检查您的Atlas IP白名单和数据库用户凭据。
贡献者 ✨
Stanimira Vlaeva
免责声明
自行使用,风险自担;非MongoDB官方支持产品
