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 daemon。

為什麼重要 – 現代基於 LLM 的 agent 經常需要來自網路的最新資訊。大多數商業 API 需要付費金鑰與速率限制。Open‑WebSearch 移除了這個障礙:它在不使用任何 API keys 的情況下抓取公開搜尋引擎,支援代理伺服器(proxy)配置以應對受限網路,並且在網站阻擋簡單 HTTP 請求時可以退回到使用無頭瀏覽器(Playwright)。這使得它成為自主 agent、RAG pipeline 或任何需要即時網路查詢的工作流中的實用構建組件。

運作方式

  • 搜尋search endpoint 會聯繫指定的引擎,彙整標題、URL、以及摘要片段(snippets),並以 JSON 回傳。你可以透過環境變數選擇預設引擎或限制允許的清單。
  • 抓取 – 搜尋之後,你可以呼叫 fetch‑web(一般頁面)或專門的抓取器(fetchGithubReadme, fetchCsdnArticle, 等)來取得全文內容。當 Playwright 可用時,抓取器可以渲染 JavaScript 密集型頁面,並重複使用來自持久化瀏覽器設定檔的 cookies。
  • 部署選項
    • MCP server – 直接連接到 Claude Desktop, Cherry Studio, VS Code extensions, 等。
    • 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 mode, 等)。這使得它很容易適應公司內部的防火牆,或啟用/禁用無頭瀏覽器退回機制。

典型使用案例

  1. 一個 LLM agent 接收到使用者查詢,例如 “Find recent papers on diffusion models.”
  2. Agent 呼叫 Open‑WebSearch MCP tool search(或 CLI)並帶入查詢內容。
  3. 服務回傳一組 URL 與摘要片段。
  4. Agent 挑選最有潛力的結果,並呼叫 fetchWebContent(或專門的抓取器)來取得全文。
  5. 取得的內容被餵回給 LLM 以進行摘要或引用。

核心優勢

  • 無需 API keys – 直接使用公開搜尋引擎即可運作。

  • 多引擎支援 – 為特定區域或語言選擇最佳引擎。

  • 支援代理伺服器 – 內建 HTTP proxy 處理機制,以應對審查或公司網路。

  • Playwright fallback – 處理需要 JavaScript 渲染或 cookies 的網站。

  • Agent‑friendly – 提供標準的 MCP tool 介面與簡單的 HTTP API。

限制

  • 依賴於抓取公開搜尋頁面,因此高頻率使用可能會觸發速率限制或驗證碼(captchas)。
  • 目前僅實作了部分引擎;尚未支援 Google。
  • 瀏覽器退回機制需要額外的 Playwright 安裝或現有的遠端瀏覽器。

總結 – Open‑WebSearch 提供了一個輕量級、無需金鑰的橋樑,連接 LLM agent 與即時網路,使其成為任何需要最新資訊的 RAG 或自主 agent 技術棧中的實用組件。


快速開始

# 透過 npx 執行服務(無需安裝)
DEFAULT_SEARCH_ENGINE=duckduckgo npx open-websearch@latest

# 或者啟動 daemon 以進行重複呼叫
npm install -g open-websearch
open-websearch serve   # then POST /search to http://localhost:3000

進一步閱讀 – 請參閱 README 中的 Features, CLI and Local Daemon, Installation Guide, 以及 Docker Deployment 章節,以獲取詳細的命令與環境變數選項。

相關

  • 專案
  • 專案
  • 專案
  • 專案
  • 專案