Google ADK+Bright Data MCP集成
📖 特色文章: 使用MCP工具构建ADK(v1.2.0+)代理 作者:Arjun Prabhulal
谷歌代理开发工具包(ADK)v1.2.0+的全面实现,与Bright Data的模型上下文协议(MCP)服务器集成,具有智能网络搜索和数据提取功能。
🚀 主要特点
- 现代ADK集成:使用ADK v1.2.0+,简化MCP工具注册
- 实时网络搜索:由Bright Data MCP提供技术支持,提供最新、准确的信息
- 多个接口:Web UI、CLI和编程访问
🏗️ 建筑
此项目演示了从ADK v0.5.0到v1.2.0+的更改:
ADK v0.5.0(传统版)
# Complex async executor pattern (deprecated)
def create_mcp_tool_executor():
async def mcp_tool_executor(**kwargs):
tools, exit_stack = await MCPToolset.from_server(...)
try:
return await try_tools_sequentially(tools, kwargs, exit_stack)
finally:
await exit_stack.aclose()
return mcp_tool_executorADK v1.2.0+(现代版)
# Simplified direct tool registration
tools = MCPToolset(
connection_params=StdioServerParameters(
command='npx',
args=["-y", "@brightdata/mcp"],
env={"API_TOKEN": os.getenv("API_TOKEN")}
)
)
root_agent = Agent(
model="gemini-2.0-flash",
tools=[tools] # Direct tool registration
)📋 先决条件
🛠️ 安装
1.克隆存储库
git clone https://github.com/arjunprabhulal/adk-mcp-brightdata.git
cd adk-mcp-brightdata2.设置虚拟环境
# Mac/Linux
python -m venv venv
source venv/bin/activate
# Windows
python -m venv venv
venv\Scripts\activate3.安装依赖项
# Install Python packages
pip install google-adk google-generativeai mcp python-dotenv rich
# Install Bright Data MCP Server
npm install -g @brightdata/mcp4.环境配置
创建一个 .env 项目根目录中的文件:
# Google API Key from https://aistudio.google.com/app/apikey
GOOGLE_API_KEY="your_google_api_key_here"
# Bright Data credentials from https://brightdata.com/cp/zones
API_TOKEN="your_brightdata_api_token"
WEB_UNLOCKER_ZONE="your_web_unlocker_zone" # Optional
# Optional: Customize agent configuration
GEMINI_MODEL="gemini-2.0-flash" # Default model
AGENT_NAME="search_assistant" # Agent identifier
AGENT_DESCRIPTION="Your custom description" # Agent description
# Optional: Customize MCP server configuration
MCP_COMMAND="npx" # Command to run MCP server
MCP_PACKAGE="@brightdata/mcp" # MCP package name🎯 用法
选项1:Web界面
adk web访问web UI http://localhost:8000
选项2:命令行
adk run search这提供了对ADK代理实现的直接访问。
📁 项目结构
adk-mcp-brightdata/
├── search/
│ ├── __init__.py
│ ├── agent.py # Core ADK agent implementation
│ └── prompt.py # Agent instructions and prompts
├── .env # Environment variables
├── requirements.txt # Python dependencies
└── README.md🔧 核心实施
代理配置
from google.adk.agents import Agent
from google.adk.tools.mcp_tool.mcp_toolset import MCPToolset, StdioServerParameters
tools = MCPToolset(
connection_params=StdioServerParameters(
command='npx',
args=["-y", "@brightdata/mcp"],
env={
"API_TOKEN": os.getenv("API_TOKEN"),
"WEB_UNLOCKER_ZONE": os.getenv("WEB_UNLOCKER_ZONE")
}
)
)
root_agent = Agent(
model="gemini-2.0-flash",
name="search_assistant",
description="Google ADK Agent integrated with MCP for intelligent web search assistance.",
instruction=PROMPT,
tools=[tools],
)🔧 技术特性
ADK集成优势
- 简化工具注册:直接MCPToolset集成
- 自动资源管理:无需手动清理
- 错误处理:内置超时和连接管理
- 异步支持:正确的异步执行模式
⚠️ 已知问题
MCP会话超时(ADK v1.2.0+)
问题:默认超时时间为5秒 mcp_session_manager.py
临时变通办法:虚拟环境中的更新超时:
# File: .venv/lib/python3.12/site-packages/google/adk/tools/mcp_tool/mcp_session_manager.py
session = await self._exit_stack.enter_async_context(
ClientSession(
*transports[:2],
read_timeout_seconds=timedelta(seconds=60), # Changed from 5 to 60
)
)🚀 ADK v1.2.0的主要改进+
- 简化工具注册:直接MCPToolset集成
- 更清洁的代码:不再有复杂的异步执行器
- 更好的错误处理:改进了超时和连接管理
- 增强的性能:简化工具执行
- 开发者体验:更直观的代理构建
🤝 贡献
- 分叉存储库
- 创建要素分支(
git checkout -b feature/amazing-feature) - 提交您的更改(
git commit -m 'Add amazing feature') - 推到分支(
git push origin feature/amazing-feature) - 打开拉取请求
📚 额外资源
- 文章: 使用MCP工具构建ADK(v1.2.0+)代理
- 谷歌ADK文档: 代理开发工具包
- 明亮数据MCP: MCP服务器文档
- 模型上下文协议: MCP规范
📄 许可证
此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。
👤 作者
阿琼·普拉布拉尔
