Airbnb代理工具

一个基于Google Agent Development Kit (ADK)和Gemini 2.0 Flash构建的AI代理,集成Airbnb Model Context Protocol (MCP)服务器,实现与Airbnb房源和服务的自主交互。

  • by jayakumarpujar
  • Python
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 jayakumarpujar/My-Agent-Airbnb-s-MCP-Server-Google-ADK-

使用说明

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包管理器,可选但推荐)

安装

  1. 克隆存储库:

    git clone <repository-url>
    cd Airbnb_mcp_adk
    
  2. 安装Python依赖项:

    cd mcp_airbnb
    uv sync  # or pip install -r requirements.txt
    
  3. 安装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
    
  4. 设置环境变量: 创建 .env 文件在 mcp_airbnb 目录:

    GOOGLE_API_KEY=your_google_api_key_here
    

用法

运行代理

从 mcp_airbnb 目录:

python mcp_airbnb.py

代理人将:

  1. 连接到Airbnb MCP服务器
  2. 加载可用工具
  3. 处理预定义的查询
  4. 返回搜索结果

自定义查询

修改 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服务器扩展代理:

  1. 导入新工具集
  2. 将其添加到代理的工具列表中
  3. 更新指令提示

自定义代理

修改 LlmAgent 配置于 get_agent_async():

  • 更改模型
  • 更新说明
  • 添加更多工具

故障排除

常见问题

  1. “没有这样的文件或目录:'npx'”

    • 安装Node.js 20.x或更高版本
  2. AttributeError:类型对象“MCPToolset”没有属性“from_server”

    • 确保您使用的是正确的ADK版本
    • 检查代码使用情况 McpToolset 而不是弃用 MCPToolset
  3. 超时错误

    • 检查互联网连接
    • 验证MCP服务器是否可访问
  4. API关键错误

    • 确保 GOOGLE_API_KEY 设定在 .env
    • 验证密钥是否具有Gemini API访问权限

日志

代理提供详细的日志记录:

  • MCP服务器连接状态
  • 刀具装载信息
  • 搜索结果和处理

许可证

有关详细信息,请参阅LICENSE文件。

贡献

  1. 分叉存储库
  2. 创建要素分支
  3. 进行更改
  4. 提交拉取请求

致谢

  • 谷歌代理开发工具包(ADK)
  • 模型上下文协议(MCP)
  • Airbnb MCP服务器@openbnb
  • Gemini 2.0闪存型号