返回市场
搜索api-mcp代理

搜索api-mcp代理

作者:RmMargt10 星标更新:2025-05-21

项目介绍

SearchAPI MCP Agent with A2A Support

基于Agent-to-Agent (A2A) 协议的SearchAPI代理,通过模型上下文协议(MCP)系统集成多个搜索API工具。

更新日志

2024年更新

  • 修复了导入路径问题:从samples.python.agents导入改为直接从当前目录导入
  • 修复了a2a_common导入问题:改为从common模块导入
  • 移除了a2a_common依赖安装需求

概览

SearchAPI-MCP-Agent实现了A2A协议和模型上下文协议,将各种搜索操作封装成工具和资源。它充当AI助手与搜索服务之间的桥梁,支持地图搜索、航班查询、酒店预订等功能。

核心功能

  • 多MCP配置支持 作为MCP客户端,它可以同时连接并配置多个MCP服务器,扩展可用工具集。
  • 动态工具发现 自动发现并加载MCP服务器提供的工具列表,无需手动配置。
  • 智能LLM路由 Gemini模型自动将自然语言查询路由到适当的工具,并提取参数以确保成功调用。
  • 实时状态反馈 通过A2A协议提供实时工具执行状态更新和流式响应给主机代理。
  • 错误处理和恢复 自动处理API调用错误,提供友好的错误消息和回退机制。

Google搜索

  • 网页搜索结果
  • 知识图谱集成
  • 相关问题推荐
  • 搜索建议
  • 多语言支持
  • 地区特定结果
  • 时间范围过滤
  • 安全搜索选项

Google视频搜索

  • 视频内容搜索
  • 视频列表检索
  • 视频轮播支持
  • 短视频内容
  • 按时长过滤
  • 按来源过滤
  • 按上传时间排序
  • 高清预览支持

Google地图搜索

  • 搜索地点和服务
  • 获取地点详情
  • 查看用户评论
  • 获取位置坐标

Google航班搜索

  • 单程/往返航班搜索
  • 多城市行程规划
  • 航班价格日历
  • 航班筛选和排序
  • 行李限额查询
  • 航空公司选择

Google酒店搜索

  • 酒店位置搜索
  • 价格和可用性查询
  • 设施和服务筛选
  • 用户评分和评论
  • 特价查询
  • 房型选择

安装指南

环境要求

  • Python 3.9或更高版本
  • pip包管理器
  • UV包管理器(推荐)

基本安装

# 克隆仓库
git clone https://github.com/RmMargt/searchapi-mcp-agent.git
cd searchapi-mcp-agent

# 创建并激活虚拟环境
python -m venv venv
source venv/bin/activate  # Linux/Mac
# 或
.\venv\Scripts\activate  # Windows

# 安装依赖
pip install -r requirements.txt

配置环境变量

创建.env文件并设置以下环境变量:

SEARCHAPI_API_KEY=your_searchapi_key_here
GOOGLE_API_KEY=your_google_api_key_here

使用方法

启动Google A2A项目的Host Agent和SearchAPI Agent

按照以下步骤启动完整的A2A环境,包括Host Agent和SearchAPI Agent:

启动SearchAPI Agent

# 在searchapi-mcp-agent目录下
python -m searchapi_mcp_agent --host localhost --port 10001

2. 启动Host Agent(基于Google A2A项目)

# 切换到 Google A2A 示例目录
cd path/to/A2A/samples/python

# 运行Host Agent(选择一种)
uv run hosts/cli        # 命令行界面
# 或
uv run hosts/multiagent # 多代理环境

3. 在本地浏览器中访问Demo UI

如果你正在运行一个多代理环境,可以在浏览器中访问以下地址:

http://localhost:12000

在UI中,点击机器人图标添加SearchAPI Agent,使用以下地址:

http://localhost:10001/agent-card

直接发送请求

可以通过以下方式发送请求:

  1. 自然语言查询

    {
      "query": "查找从纽约到洛杉矶的航班"
    }
    

    代理将使用LLM自动将查询路由到适当的工具。

  2. 直接指定工具

    {
      "tool_name": "search_google_flights",
      "parameters": {
        "departure_id": "NYC",
        "arrival_id": "LAX",
        "outbound_date": "2024-12-01"
      }
    }
    

A2A集成

此项目完全实现了A2A协议,可以作为AI助手的服务端点。API符合A2A规范,支持任务创建、状态查询和流式响应。

A2A协议实现

  • 动态工具路由 通过自然语言处理自动识别用户意图并选择合适的搜索工具。
  • 流式响应 支持大型搜索结果的分块流式传输,提供实时反馈。
  • 任务状态更新 实时报告搜索任务的进度和状态变化。
  • 错误处理 优雅地处理搜索API错误,提供有用的错误消息。

MCP配置

Claude for Desktop配置示例

向Claude for Desktop配置文件中添加以下内容:

{
  "mcpServers": {
    "searchapi": {
      "command": "uv",
      "args": [
        "run",
        "--with",
        "mcp[cli]",
        "/path/to/searchapi-mcp-agent/mcp_server.py"
      ],
      "env": {
        "SEARCHAPI_API_KEY": "your_api_key_here",
        "GOOGLE_API_KEY": "your_google_api_key_here"
      }
    }
  }
}

配置文件位置

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json

许可证

本项目采用MIT许可证 - 详见LICENSE文件。

致谢

  • 模型上下文协议 - 协议规范
  • A2A协议 - Agent-to-Agent协议规范
  • FastMCP - Python MCP实现
  • SearchAPI.io - 搜索服务提供商
  • Google A2A - Agent-to-Agent协议参考实现

注意:此服务器与外部API交互。在确认操作之前,请始终验证请求的操作是否适当。