Airbnb MCP ADK代理
一个由谷歌代理开发工具包(ADK)和Gemini 2.0 Flash构建的人工智能代理,与Airbnb模型上下文协议(MCP)服务器集成,实现与Airbnb房源和服务的自主交互。
概述
该项目演示了如何创建一个智能代理,该代理可以使用标准化的MCP协议搜索Airbnb房源并与之交互。该代理使用谷歌的ADK框架和Gemini 2.0 Flash进行自然语言处理和决策,而MCP服务器为Airbnb的数据服务提供了一个标准化的接口。
特性
- 人工智能驱动的搜索:Airbnb房源的自然语言查询
- MCP集成:工具交互的标准化协议
- 谷歌ADK:利用Gemini 2.0 Flash进行智能响应
- 自主操作:代理可以执行搜索并提供建议
- 可扩展架构:易于添加更多MCP服务器或工具
建筑
该项目包括:
mcp_airbnb.py:使用Google ADK实现主代理main.py:简单入口点(当前为占位符)- MCP服务器:外部Airbnb MCP服务器(
@openbnb/mcp-server-airbnb) - Google ADK:基于Gemini 2.0 Flash模型的代理框架
先决条件
- Python 3.12或更高版本
- Node.js 20.x或更高版本(适用于MCP服务器)
- Gemini的Google API密钥
- uv(Python包管理器,可选但推荐)
安装
- 克隆存储库:
git clone
cd Airbnb_mcp_adk- 安装Python依赖项:
cd mcp_airbnb
uv sync # or pip install -r requirements.txt- 安装Node.js依赖项:
MCP服务器需要Node.js。如果未安装:
# On Ubuntu/Debian
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
sudo apt-get install -y nodejs- 设置环境变量:
创建 .env 文件在 mcp_airbnb 目录:
GOOGLE_API_KEY=your_google_api_key_here用法
运行代理
从 mcp_airbnb 目录:
python mcp_airbnb.py代理人将:
- 连接到Airbnb MCP服务器
- 加载可用工具
- 处理预定义的查询
- 返回搜索结果
自定义查询
修改 input_query 变量in mcp_airbnb.py 要更改搜索查询,请执行以下操作:
input_query = "Find luxury apartments in New York for 3 nights"使用紫外线(推荐)
uv run mcp_airbnb.py配置
Google API密钥
从获取Google API密钥 谷歌AI工作室 并将其设置在您的 .env 文件。
MCP服务器选项
代理连接到 @openbnb/mcp-server-airbnb 具有以下默认选项:
- 忽略robots.txt以获得更广泛的访问权限
- 通过npx运行,便于执行
项目结构
Airbnb_mcp_adk/
├── LICENSE
├── README.md
└── mcp_airbnb/
├── main.py # Simple entry point
├── mcp_airbnb.py # Main agent implementation
├── pyproject.toml # Python project configuration
└── README.md # Module-specific documentation依赖项
python
google-adk:代理开发工具包python-dotenv:环境变量管理httpx:HTTP客户端mcp:模型上下文协议库
Node.js
@openbnb/mcp-server-airbnb:Airbnb MCP服务器npx:Node.js包运行器
发展
添加新工具
要使用其他MCP服务器扩展代理:
- 导入新工具集
- 将其添加到代理的工具列表中
- 更新指令提示
自定义代理
修改 LlmAgent 配置于 get_agent_async():
- 更改模型
- 更新说明
- 添加更多工具
故障排除
常见问题
- “没有这样的文件或目录:'npx'”
- 安装Node.js 20.x或更高版本
- AttributeError:类型对象“MCPToolset”没有属性“from_server”
- 确保您使用的是正确的ADK版本 - 检查代码使用情况 McpToolset 而不是弃用 MCPToolset
- 超时错误
- 检查互联网连接 - 验证MCP服务器是否可访问
- API关键错误
- 确保 GOOGLE_API_KEY 设定在 .env - 验证密钥是否具有Gemini API访问权限
日志
代理提供详细的日志记录:
- MCP服务器连接状态
- 刀具装载信息
- 搜索结果和处理
许可证
有关详细信息,请参阅LICENSE文件。
贡献
- 分叉存储库
- 创建要素分支
- 进行更改
- 提交拉取请求
致谢
- 谷歌代理开发工具包(ADK)
- 模型上下文协议(MCP)
- Airbnb MCP服务器@openbnb
- Gemini 2.0闪存型号
