谷歌地图ADK-MCP代理
MapsAgent和MapsMCPAgent
项目概述
该项目实现了两个智能代理, MapsAgent,旨在使用各种谷歌地图平台API和“MapsMCPAgent”帮助用户绘制地图、导航和查找地点 模型上下文协议(MCP) 框架与 @modelcontextprotocol/server-google-maps 工具集,允许代理与众多谷歌地图服务动态交互。
该代理的主要目标是为访问谷歌地图功能提供一个自然语言界面,使其更容易检索地理信息,而无需直接调用API。
特性
- 自然语言理解: 解释与地图、位置和路线相关的用户查询。
- 谷歌地图平台集成: 通过MCP工具集使用一套全面的Google Maps API,包括:
- API指南 - 距离矩阵API - 地图高程API - 地理编码API - 地理定位 - 映射JavaScript API(数据提供,而非直接执行) - 道路API - API时区 - 放置API(包括新版本) - 地图静态API/街景静态API(用于图像生成,如果已实现) - 空气质量API、Solar API、鸟瞰API、Pollen API(如果启用和使用) - 路线优化API
- 可扩展架构: 建立在
LlmAgent和MCPToolset框架,允许使用更多工具或不同的LLM轻松扩展。 - 云原生: 旨在在谷歌云环境中有效运行,利用环境变量进行安全的API密钥管理。
项目结构
agent.py:包含核心LlmAgent定义、代理说明和配置MCPToolset连接到谷歌地图服务器。customfunctions.py:一个包含Python函数的辅助模块,用于使用googlemaps图书馆。requirements.txt:列出所有Python依赖项。
入门指南
按照以下说明设置和运行 MapsAgent 本地或部署它。
先决条件
- 谷歌云项目: 一个活跃的谷歌云项目(例如。,
mcp-map-agent). - 已启用计费: 确保您的Google Cloud项目已启用计费功能。
- 谷歌地图平台API: 在您的谷歌云项目中启用必要的谷歌地图平台API。至少,您需要:
- API指南 - 地理编码API - 地点API - Vertex AI API (用于基础LLM服务)
- 谷歌地图平台API密钥: 有效的API密钥,可访问已启用的谷歌地图平台API。
- 为了安全管理,强烈建议将此密钥限制为仅适用于必要的API,并在适用的情况下限制为特定的IP地址或HTTP引用者。 - 建立Java脚本API的链接引用:https://developers.google.com/maps/documentation/javascript/get-api-key#create-api密钥
- Node.js和npm: 必需的
@modelcontextprotocol/server-google-maps工具集。 - Python 3.8+: Python运行环境
agent.py. gcloudCLI: 已通过您的Google Cloud帐户身份验证,并设置了正确的项目。
安装
- 克隆存储库:
git clone https://github.com/your-username/your-repo-name.git
cd your-repo-name(替换 your-username 和 your-repo-name 使用您的实际存储库详细信息。)
- 安装Python依赖项:
pip install requirements.txt(你需要 google-cloud-aiplatform 和 model-context-protocol 至少。)
- 安装MCP谷歌地图服务器(通过npm):
这 MCPToolset 将管理运行此操作,但是 npm 需要能够找到它。这一步通常由以下人员动态处理 npx 当工具首次被调用时。
pip安装mcp
pip安装谷歌地图
配置
- 设置您的谷歌地图平台API密钥:
这 MapsAgent 期望通过环境变量提供API密钥。
# For Linux/macOS
export GOOGLE_MAPS_API_KEY="YOUR_ACTUAL_GOOGLE_MAPS_API_KEY"
# For Windows Command Prompt
set GOOGLE_MAPS_API_KEY="YOUR_ACTUAL_GOOGLE_MAPS_API_KEY"
# For Windows PowerShell
$env:GOOGLE_MAPS_API_KEY="YOUR_ACTUAL_GOOGLE_MAPS_API_KEY"替换 YOUR_ACTUAL_GOOGLE_MAPS_API_KEY 使用有效的API密钥。
- 确保
gcloud已通过身份验证:
如果您还没有,请验证您的 gcloud CLI并设置您的项目:
gcloud auth login
gcloud config set project Google-Maps-ADK-Agents
gcloud auth application-default login # For local dev with client libraries用法
与互动 MapsAgent,你通常会跑步 agent.py 并向其提供用户查询。
- 运行代理:
python agent.py- 与客服互动:
曾经 agent.py 正在运行,它将监听输入。您可以键入与地图、方向或地点相关的查询。
查询示例:
- “从法国巴黎到德国柏林的路线是什么?” - “在时代广场附近找咖啡店。” - “珠穆朗玛峰的海拔是多少?” - “告诉我日本东京的时区。” - “埃菲尔铁塔的地址是什么?” - “从班加罗尔前往浦那。提供路线信息、天气信息、空气质量信息、海拔和地理坐标信息、驾驶导航地图详细信息、重要热点和咖啡馆。 - 我目前在Satara,想在shirdi导航。给我指路和计划。
贡献
欢迎投稿!请按照以下步骤操作:
- 分叉存储库。
- 创建新分支(
git checkout -b feature/your-feature-name). - 进行更改并提交(
git commit -m 'Add new feature'). - 推到分支(
git push origin feature/your-feature-name). - 打开拉取请求。
许可证
此项目根据\[您选择的许可证,例如MIT许可证\]获得许可-请参阅 LICENSE 文件以获取详细信息。
联系
如有疑问或问题,请在GitHub存储库中打开问题或联系\[您的姓名/电子邮件/链接\]。 链接:https://google.github.io/adk-docs/tools/mcp-tools/
