乐于分享
好东西不私藏

一个给 AI 编程助手用的本地网络工具箱,能搜、能抓、能爬、能提取,免费且不用 API 密钥

一个给 AI 编程助手用的本地网络工具箱,能搜、能抓、能爬、能提取,免费且不用 API 密钥

wigolo 是一个本地优先的 MCP 服务器,为 AI 编程代理提供“上网的能力”,如搜索、抓取、爬取、提取和研究等全套网页工具,无需任何 API 密钥、零成本、数据完全留在本地。

它直接对标 Firecrawl、Exa、Tavily 等付费服务,通过 18 个搜索引擎融合、本地 ML 重排序和按需浏览器降级,在质量持平的同时省去了所有计量账单。

通过 MCP 协议暴露 10 个工具

工具分别是:

🔎 搜索(search)

18 个引擎并行融合搜索,支持本地交叉编码器重排序(RRF)。

📄 获取(fetch)

通过分层路由加载任意 URL:HTTP → TLS 模拟 → 无头浏览器分层路由,自动应对反爬虫策略和单页应用(SPA),输出 Markdown 与元数据。

🕸️ 爬取(crawl)

多页面爬取,支持 BFS、DFS、Sitemap 或仅映射模式。内置按域名限速、robots.txt 遵守和模板去重。

🧩 提取(extract)

从页面中提取结构化数据:表格、元数据、JSON-LD、品牌标识、命名模式(文章/食谱/产品等),或任意自定义 JSON Schema。

💾 缓存(cache)

查询所有已访问过的内容——支持关键词(BM25)或混合检索(BM25 + 本地向量)。同时提供统计、清除和变更检测功能。

🧲 相似查找(find_similar)

通过关键词 + 语义 + 实时网络的三路融合,找到与某个 URL 或概念相似的页面。

🧠 研究(research)

将一个问题分解为子查询 → 并行获取来源 → 合成一份带引用的报告(或由宿主 LLM 撰写的结构化简报)。

🤖 智能体(agent)

自主收集循环:规划 → 搜索 → 获取 → 提取 → 合成,带有步骤日志、时间预算和可选的输出模式。

🔁 差异对比 & 监控(diff + watch)

精确查看页面自上次访问后的变化;按计划重新检查并将变更推送到 Webhook。

这些工具的设计哲学是:确定性代码优于模型调用——排名融合、去重、模式匹配、哈希等操作从不触及 LLM,模型仅用于可选的判断和合成环节。所有数据(缓存、嵌入向量、模型、配置)都存储在 ~/.wigolo/ 下,除非你主动开启 LLM 合成功能,否则不会有任何数据离开你的机器。

怎么跑起来

wigolo 是一个通过标准输入输出做 JSON-RPC 通信的 Node.js 进程。本地集成了无头浏览器池、SQLite 和本地机器学习模型——BGE-small 用来生成嵌入向量,MiniLM 用来做结果重排。

支持 macOS、Linux 和 Windows,需要 Node 20 以上,约 1.5GB 磁盘空间存放本地模型和浏览器,也能用 Docker 跑。

大部分核心工作在本地完成,不依赖任何大模型。用户可以选择性接入 Ollama 本地模型或者 Gemini、Claude、OpenAI 这些云端服务来做最终报告的文本总结。兼容主流的 AI 编辑器和客户端。

项目由开发者 KnockOutEZ 用 Node.js 构建,AGPL-3.0 协议开源。

地址:https://github.com/KnockOutEZ/wigolo