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 或任何需要即時網路查詢的工作流中的實用構建組件。
運作方式
- 搜尋 –
searchendpoint 會聯繫指定的引擎,彙整標題、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, 等)。這使得它很容易適應公司內部的防火牆,或啟用/禁用無頭瀏覽器退回機制。
典型使用案例
- 一個 LLM agent 接收到使用者查詢,例如 “Find recent papers on diffusion models.”
- Agent 呼叫 Open‑WebSearch MCP tool
search(或 CLI)並帶入查詢內容。 - 服務回傳一組 URL 與摘要片段。
- Agent 挑選最有潛力的結果,並呼叫
fetchWebContent(或專門的抓取器)來取得全文。 - 取得的內容被餵回給 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 章節,以獲取詳細的命令與環境變數選項。
相關
- 專案
- 專案
- 專案
- 專案
- 專案