Aas-ee/open-webSearch

Multi-engine MCP server, CLI, and local daemon for agent web search and content retrieval — skill-guided workflows, no API keys.

Open‑WebSearch – 为 AI agent 提供即插即用的网页搜索服务

是什么 – Open‑WebSearch 是一个开源工具,可以运行本地服务器(或 CLI)来查询各种公共搜索引擎(Bing, DuckDuckGo, Baidu, Brave 等),并以整洁、结构化的 JSON 格式返回结果。它还可以获取单个页面的全文(GitHub READMEs, CSDN articles, 通用 Markdown/HTML 页面)。该服务旨在通过 MCP (Model‑Center‑Protocol) 接口供 AI agent(Claude, Cursor 等)使用,但它也可以作为简单的命令行工具或长期运行的 HTTP 守护进程使用。

为什么重要 – 现代基于 LLM 的 agent 经常需要从网络获取最新信息。大多数商业 API 需要付费密钥并有频率限制。Open‑WebSearch 消除了这一障碍:它在无需任何 API 密钥的情况下抓取公共搜索引擎,支持针对受限网络的代理配置,并且在网站阻止简单 HTTP 请求时可以回退到无头浏览器(Playwright)。这使其成为自主 agent、RAG 流水线或任何需要实时网络查询的工作流的实用构建模块。

工作原理

  • 搜索search 端点会联系所选引擎,聚合标题、URL 和摘要片段,并以 JSON 格式返回。你可以通过环境变量来选择默认引擎或限制允许的列表。
  • 获取 – 搜索之后,你可以调用 fetch‑web(通用页面)或专门的获取器(fetchGithubReadme, fetchCsdnArticle 等)来检索全文。当 Playwright 可用时,获取器可以渲染 JavaScript 密集型页面并重用持久浏览器配置文件的 cookie。
  • 部署选项
    • MCP server – 直接连接到 Claude Desktop, Cherry Studio, VS Code 扩展等。
    • CLI – 单次命令,例如 open-websearch search "latest AI news" --json
    • Local daemon – 一个持续运行的 HTTP 服务(POST /search, POST /fetch‑*),可减少重复调用的启动开销。
    • Docker – 官方容器镜像 (ghcr.io/aas-ee/open-web-search) 用于快速、隔离的部署。
  • 配置 – 所有行为都由环境变量控制(默认引擎、代理设置、CORS, Playwright 模式等)。这使得它很容易适配于企业防火墙或启用/禁用无头浏览器回退机制。

典型使用场景

  1. 一个 LLM agent 接收到用户查询,例如 “查找最近关于 diffusion models 的论文。”
  2. Agent 调用 Open‑WebSearch MCP 工具 search(或 CLI)并带上查询内容。
  3. 服务返回一组 URL 和摘要片段。
  4. Agent 挑选最有希望的结果并调用 fetchWebContent(或专门的获取器)来检索全文。 5.retrieved content 被反馈回 LLM 进行总结或引用。

核心优势

  • 无需 API 密钥 – 开箱即用,支持公共搜索引擎。
  • 多引擎支持 – 为特定区域或语言选择最佳引擎。
  • 代理感知 – 内置 HTTP 代理处理,适用于受限或企业网络。
  • Playwright 回退 – 处理需要 JavaScript 渲染或 cookie 的网站。
  • Agent 友好 – 提供标准的 MCP 工具接口和简单的 HTTP API。

局限性

  • 依赖于抓取公共搜索页面,因此高频使用可能会触发频率限制或验证码。
  • 目前仅实现了部分引擎;尚未支持 Google。
  • 浏览器回退机制需要单独安装 Playwright 或现有的远程浏览器。

总结 – Open‑WebSearch 为 LLM agent 与实时网络之间提供了一个轻量级、无需密钥的桥梁,使其成为任何需要最新信息的 RAG 或自主 agent 技术栈的有用组件。


快速开始

# 通过 npx 运行服务(无需安装)
DEFAULT_SEARCH_ENGINE=duckduckgo npx open-websearch@latest

# 或者为重复调用启动守护进程
npm install -g open-websearch
open-websearch serve   # 然后 POST /search 到 http://localhost:3000

延伸阅读 – 查看 README 中的 Features, CLI and Local Daemon, Installation Guide, 和 Docker Deployment 部分以获取详细的命令和环境变量选项。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目