使用说明
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 <repository-url> 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闪存型号
