项目简介
MCP Search Hub 是一个智能的多源搜索聚合服务器,它作为 LLM 应用的后端,通过 Model Context Protocol (MCP) 提供统一的搜索能力。它整合了多个领先的搜索服务提供商(如 Linkup, Exa, Perplexity, Tavily, Firecrawl)的官方 MCP 服务器,并在此基础上实现了智能查询路由、结果合并、去重、缓存、成本控制和错误处理等高级功能。用户只需通过 MCP Search Hub 这个单一接口,即可利用背后多个搜索引擎的优势,获得更全面、更准确、更具成本效益的搜索结果。
主要功能点
- 多源聚合: 将 Linkup, Exa, Perplexity, Tavily, Firecrawl 等多个搜索提供商的能力集成到单一 MCP 接口下。
- 智能路由: 根据查询内容的特征(如时间敏感性、复杂度、内容类型等)自动将请求路由到一个或多个最适合的提供商。
- 结果处理: 合并来自不同提供商的结果,进行智能去重和重新排序,提供最佳的相关性。
- 成本控制: 实现查询预算限制和成本估算机制,帮助控制 API 开销。
- 缓存: 缓存重复或相似的查询结果,提高响应速度并进一步降低成本。
- 弹性与可靠性: 具备错误处理、指数退避重试和熔断机制,优雅地处理提供商故障。
- 零维护: 通过嵌入官方 MCP 服务器,当提供商更新其服务器时,MCP Search Hub 会自动获取最新功能。
- 统一接口: 对 LLM 客户端暴露标准化的 MCP JSON-RPC 接口,无需单独配置每个搜索提供商。
- 多种传输协议: 支持 HTTP 和 STDIO 两种 MCP 传输方式,方便与不同的 LLM 客户端集成。
安装步骤
MCP Search Hub 需要 Python 3.10+ 以及您计划使用的搜索提供商的 API Key。推荐使用 Docker 进行部署,或选择手动安装。
- 获取代码: 从 GitHub 克隆仓库到本地。
- 配置 API Key: 复制项目根目录下的 '.env.example' 文件为 '.env'。编辑 '.env' 文件,填入您拥有的搜索提供商的 API Key,并根据需要启用或禁用特定的提供商(设置 'PROVIDER_ENABLED=true' 或 'false')。
- 运行服务器:
- 使用 Docker (推荐): 在项目根目录运行 'docker-compose up -d'。服务器将在后台启动。
- 手动安装 (Linux/macOS):
- 创建并激活 Python 虚拟环境。
- 使用 'uv pip install -r requirements.txt' 安装依赖。
- 运行 'python -m mcp_search_hub.main' 启动服务器。
- 手动安装 (Windows): 步骤类似 Linux/macOS,使用 '.\venv\Scripts\activate' 激活虚拟环境,使用 'uv pip install -r requirements.txt' 安装依赖,使用 'python -m mcp_search_hub.main' 启动服务器。
成功启动后,如果使用 HTTP 模式(默认),可以通过访问 'http://localhost:8000/health' 检查服务器状态。
服务器配置 (MCP 客户端配置)
MCP 服务器启动后,您需要在您的 LLM 客户端中进行配置,以便客户端知道如何连接和使用它。配置信息通常以 JSON 格式提供给客户端,包含服务器的名称、连接方式(URL 或启动命令)等。
配置时需要填写以下关键信息:
- 服务器名称 ('name'): 这是在 LLM 中调用该服务器工具时使用的名称。MCP Search Hub 的推荐名称是 'search'。
- 连接参数:
- HTTP 传输 ('url'): 如果您以 HTTP 模式运行服务器(默认在 8000 端口),客户端需要配置服务器的 URL。通常是 'http://localhost:8000/mcp'。
- STDIO 传输 ('command', 'cwd'): 如果您以 STDIO 模式运行服务器,客户端需要配置启动服务器的命令行命令 ('command') 和工作目录 ('cwd')。
- 'command': 指定运行服务器的命令,例如如果您手动安装并使用 'uv' 运行,命令可能是 'uv run mcp_search_hub.main --transport stdio'。如果您使用其他方式启动,需要提供相应的命令。
- 'cwd': 指定服务器的运行目录,这应该是您克隆仓库到本地的目录路径,例如 '/path/to/mcp-search-hub'。
具体的配置格式和位置取决于您的 LLM 客户端(例如 Claude Desktop, Claude Code, VS Code 扩展等)。请参考您的客户端文档,并根据 MCP Search Hub 的名称和连接参数进行配置。
基本使用方法
成功将 MCP Search Hub 配置到您的 LLM 客户端并确保服务器正在运行后,您就可以通过客户端的工具调用功能来使用它提供的搜索能力了。
主要的搜索工具是 'search'。在您的 LLM 客户端中,您可以通过类似函数调用的方式使用它,例如:
- 询问关于最新信息的问题时,LLM 可能会自动调用 'search' 工具:'search("最新的量子计算进展是什么?")'
- 您也可以在提示词中显式要求 LLM 使用搜索工具:'请使用 search 工具查找并总结 2024 年人工智能领域的主要突破。'
MCP Search Hub 会接收到这个 'search' 调用请求,然后根据您的查询智能地选择一个或多个后端搜索提供商执行搜索,并将整合后的最佳结果返回给 LLM。LLM 客户端会接收并处理这些搜索结果,以便回答您的问题或执行其他任务。
此外,MCP Search Hub 还暴露了 'get_provider_info()' 工具,用于获取关于各个集成提供商的信息,您可以通过客户端调用此工具来了解每个提供商的能力。对于高级用户,还可以通过调用 'search' 工具时传入 'advanced' 参数,显式指定要使用的提供商、设置预算限制等。
信息
分类
AI与计算