WebSearch MCP Server

io.github.daidaiJ由 GitHub 账号 daidaiJ 发布v3.10.3更新于 Oct 31, 2026

Zero-API-key MCP search server: multi-engine web/academic search, PDF parsing, secure web fetch

概览

AI 生成的概览

本地运行的 Go 版 MCP 服务器,无需 API Key 即可为助手提供多引擎网页与学术搜索、网页抓取和 PDF 解析。

可以做什么
  • 在百度、Bing、DuckDuckGo 等多个通用引擎上搜索,并在本地完成融合排序、评分与缓存
  • 并行检索九个学术引擎,按 DOI 跨引擎去重
  • 抓取并清洗网页正文,内置 SSRF 防护,失败时回退 Jina Reader
  • 本地解析 PDF,扫描件可回退 OCR,长结果可分段读回
  • 可选通过 OpenAI 兼容接口生成摘要,并可借助 Everything 索引检索本地文件
适用场景
适合需要网页或学术调研、网页抓取与 PDF 阅读,又不想购买搜索 API Key 的场景,尤其在国内访问厂商搜索服务不稳定时。也适合希望搜索、评分与缓存都留在本机的用户。
运行要求
以本地进程方式运行,需下载对应平台(macOS、Linux、Windows)的二进制包;未声明需要 API Key 或环境变量。可选功能需额外准备:付费引擎的 API Key、用于摘要的 OpenAI 兼容接口、用于 OCR 的 MinerU,以及用于本地文件检索的 Everything HTTP Server。需要网络访问。
安装前请注意
查询会发送给第三方搜索引擎,默认 mcphub 模式下还会发往托管 MCP 上游,搜索词会离开本机。可选的 API Key 与本机控制台管理员口令保存在配置文件中。控制台首次启动默认启用,可修改白名单配置;除非重新配置,否则仅监听本机回环地址。若开放到其他网卡而未设置 auth_token,存在风险。

安装

在 SourceWeft 中

  1. 打开 控制台中的 WebSearch MCP Server,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。

其他 MCP 客户端

参照 仓库 中的启动说明。

README

websearch-mcpserver

轻量级 Web Search MCP Server — 零 API Key 即可运行

English · 中文

[Go] [Release] [MCP] [Zero API Key] [MIT]

[多引擎搜索融合示意:百度 / Bing / DuckDuckGo / API 引擎 / 9 大学术源汇入本地编排,输出搜索结果、论文、网页 PDF 与本地文件]

用 Go 编写的 MCP 搜索服务。内置百度网页、Bing、DuckDuckGo 等通用引擎、Parallel / AnySearch / Exa / Firecrawl 四个零 Key 托管 MCP 上游和 9 个学术引擎,搜索、评分、缓存全部在本地完成。可作为 MCP 工具接入 Claude Code、Qwen Code、Cursor,也可作为 Go 模块嵌入自有服务。

免费、国内可用、结果可直接给 LLM 消费。 无 Key 也能搜;有 Key 才用 Key。


架构一览

分层设计:客户端最多面对 5 个 MCP 工具;引擎组由 mode 组装;评分、缓存、代理、抓取都在本进程内完成,查询不会经过第三方聚合服务。

[系统组成架构:接入层、检索协议层与 dashboard、编排层、9 个通用引擎与 9 个学术引擎、支撑组件]

层做什么
接入Claude Code / Qwen Code / Cursor / HTTP API / 嵌入 Go 模块
协议/mcp 最多五个工具 · /searxng/search 兼容 LiteLLM · /__admin 进程管理 · /dashboard 可选本机控制台 · /metrics Prometheus 观测
编排factory / mode 组装 · hybrid / apipool / mcphub · enhance(RRF / Boost / MMR)
引擎通用:百度网页 / 千帆 / Bing / DDG / Tavily / Exa / AnySearch / 豆包 / 元宝 / TinyFish / Keenable + 4 个托管 MCP 上游;学术 9 源并行
支撑SQLite 缓存、系统代理自动检测、webfetch(SSRF 防护)、MinerU、LLM 流式摘要、Everything

更完整的回退链、代理检测与嵌入方式见 docs/architecture.md。


面向 LLM 的工具链

五个检索工具互相衔接;已保存的长搜索、网页/PDF 正文通过 cleanfetch 分段读回,无需客户端访问容器文件。读取从 offset=0 开始,按 next_offset 续读到 eof=true。

[smartsearch → academicsearch → cleanfetch → pdf_parser 工具链,以及 file_search 本地文件检索]


核心特性

能力说明
零 Key 搜索推荐 mcphub:Parallel / AnySearch / Exa / Firecrawl 托管 MCP 级联,失败冷却后切换,无需 API Key;engine 模式则走百度网页 + Bing 等本地引擎
多引擎融合多种搜索模式、9 个通用引擎 + 4 个托管 MCP 上游 + 9 个学术引擎,主引擎失败自动回退
相关性评分RRF 融合排名 + 词汇对齐 / 域名品质 / 共识 / 权威 / 时效加分,低分自动裁剪;MMR 打散转载 / 镜像
响应透明失败清单、日期与检索溯源;请求取消贯穿各引擎并带单引擎软超时;超限搜索保留候选预览,完整结果落盘后提供 result_ref,通过 cleanfetch 的引用读取模式分段读取
学术搜索9 大学术引擎并行,按引用数 / 期刊权威 / PDF 可用性 / 新鲜度评分;DOI 跨引擎去重
网页抓取cleanfetch 内置 SSRF / DNS rebinding 防护与超大文件预检,失败回退 Jina Reader;可选 fetch_mode 复用托管 MCP 抓取
PDF 解析本地 PDF 文本优先提取,扫描件可回退 MinerU OCR;远程 MinerU 返回含图片 ZIP 地址;原文件超出单任务上限(默认 600 页)时本地 qpdf 裁切所选页,可配置自动分批与单次页数预算后分批上传;MinerU 等待可调,超时保留状态与任务引用,可续查原任务
LLM 摘要可选接入 OpenAI 兼容 API 生成结构化摘要,支持流式推送
系统代理Clash 等开启系统代理后,海外引擎 / Jina Reader 自动走代理
本地文件检索file_search 基于 Everything 索引毫秒级定位本地文件,目录白名单防越界,词汇对齐二次过滤防上下文爆炸(需 Everything HTTP Server)
本机控制台可选 dashboard.enabled,/dashboard/ 只读观测界面:调用统计、来源健康、失败分类、白名单配置修改,以及 Prometheus 格式的 GET /metrics(默认关闭)
轻量部署单二进制、无 CGO、引用计数进程管理,可嵌入 Go 模块
中文 / 英文`language: auto

搜索与评分管线

结果不是原始聚合。多引擎回传后在本地做去重、融合排名和多样性重排,再可选生成摘要:

[查询经 factory/mode、并发检索、去重、RRF、Boost、阈值、MMR 后返回]


设计背景与目标

现成的 MCP 搜索方案各有短板:厂商服务(Tavily / Exa 等)要 Key、按量付费、数据过第三方、国内访问不稳;自建 SearXNG 要维护 Python 服务,结果是未优化的原始聚合。本项目把这些能力收回本地:单二进制自带多引擎融合、9 大学术源、抓取与 PDF 解析,让搜索成为 LLM 的免费、国内可用、结果可直接消费的基础能力。

完整的立项动机、与现成方案的逐维度对比、以及设计原则(本地优先隐私默认 / 零成本起步 / 丰简由人 / 解耦可组合 / 面向 LLM 的完整工具链 / 场景化优化)见 docs/design.md。


快速开始

bash
# 1. 下载: https://github.com/daidaiJ/websearch-mcpserver/releases#    推荐整包(Windows .zip / Linux+macOS .tar.gz):含两个二进制、样例配置与 skills/# 2. 启动(无需手写配置,无需 API Key)# Windows 开机自启动 可选./websearch-mcpserver.exe install##    首次 install 会在可执行文件目录自动生成一份可编辑的预设 config.yaml 和 autostart.vbs./websearch-mcpserver start# 或者点击autostart.vbs# 3. 注册到 MCP 客户端(见 docs/installation.md)

「零配置」= 首次启动自动生成与 config.example.yaml 相同的预设 config.yaml,改端口 / Key / 模式都改这一份文件。默认只监听 127.0.0.1;开放网卡(host: 0.0.0.0)时建议配置 auth_token 保护业务端点。

想用零 Key 托管 MCP 级联,把该文件的 mode 改为 mcphub 即可(mcp_hub.enabled 默认为开)。

或通过 MCP Hooks 实现会话自动启停(Qwen Code 示例,完整说明见 docs/installation.md):

json
{  "hooks": {    "SessionStart": [{ "matcher": "*", "hooks": [{ "type": "command", "command": "/path/to/websearch-mcpserver start", "timeout": 10000 }] }],    "SessionEnd":   [{ "matcher": "*", "hooks": [{ "type": "command", "command": "/path/to/websearch-mcpserver stop",  "timeout": 10000 }] }]  }}

搜索模式速览

mode 一个字段决定引擎组合:零 Key 推荐 mcphub(托管 MCP 级联,失败冷却 + 本地引擎/Bing 降级);有 API Key 推荐 apipool(多供应商 Key 池轮转,失败自动切换,网页引擎兜底)。engine 适合只依赖本地网页引擎、不需要 MCP 的场景;baidu / tavily / exa / anysearch / doubao / yuanbao 为单供应商直连(有 Key 才参与,主引擎失败自动回退);hybrid 全引擎并发;mcphub 支持 rotation_engines 把本地引擎加入轮转、按代理可用性自动启用/跳过需代理上游。无 Key 时单供应商模式自动降级为 engine。

各模式的参与引擎、获取 Key 入口、sk_list 多 Key 轮询与逐引擎限流口径见 docs/search.md。

mcphub 的四个内置 preset:

preset默认需代理特点
parallel否直连可用,延迟最低
anysearch否国内直连友好,中文结果稳定
exa是匿名限流较低
firecrawl是匿名额度按出口 IP 分配
  • 级联顺序默认 parallel → anysearch → exa → firecrawl,单次请求命中一个;失败冷却 60s 后切换,这是路由与降级,多家的结果不会合并返回。
  • 全部失败后按 fallback_engines(默认 bing → so360,未启用的引擎自动跳过,so360 默认关闭)降级,最终仍由 smartsearch 回退 Bing。
  • 每个上游可配 api_key / sk_list,留空走匿名档;鉴权失败自动换下一把 Key,连接/超时则冷却该 server 并级联;exa / firecrawl 仅在检测到代理时参与轮转,代理恢复后自动回归。
  • rotation_engines 可把本地引擎(如 so360)加入主轮转,分摊匿名限流。
  • fetch_mode: off / fallback / prefer 让 cleanfetch 复用同一批 MCP 抓取(mode=mcphub 时共用搜索 Hub 的冷却与 Key 池);PDF 仍走本地解析,SSRF / HEAD 预检不跳过。

本机控制中心(可选,默认关闭)

dashboard.enabled: true 后,本机浏览器访问 http://127.0.0.1:8338/dashboard/。四个页面:总览 KPI 与客户端用量归组、搜索源健康与失败构成、请求级调用链(可筛选、可导出 CSV)、备份后写入白名单配置;全程被动观测,失败分类只报告,不干预调用。

[控制中心总览]

启用即把 dashboard.example.yaml 复制为 config.yaml 同目录的 dashboard.yaml(首次 start / install 自动生成并默认启用,含随机本机管理员口令);删除该文件并重启即完整回退,运行时零遥测开销。隐私默认:查询只存哈希 + 主题等脱敏元数据,密钥与查询原文永不落库、接口永不回显;默认仅本机 loopback 可读,写操作需 admin_password。另提供 GET /metrics(Prometheus/OpenMetrics 文本,只读、只含脱敏聚合),需 dashboard.enabled: true,未启用返回 503。

页面明细、全部配置键、快捷方式落位、安全模型与调用归属见 docs/dashboard.md。


文档导航

各文档均为中文默认,同名 .en.md 为英文版。

读者文档内容
👤 人类用户docs/HUMAN_GUIDE.md人类阅读版:文档导读、模式选择、调优路线、排障速查
🤖 AI Agentdocs/AGENT_GUIDE.md省 token 版:部署速查、工具参数速查、机器契约、错误速诊
📚 参考docs/installation.md安装部署(二进制 4 平台 / GHCR linux amd64+arm64 / 源码 / 客户端注册)、运维与排障
📚 参考docs/configuration.md完整配置参考、环境变量覆盖、默认值速查
📚 参考docs/search.md搜索模式详解、引擎对照、相关性评分、MCP 工具参数
📚 参考docs/architecture.md架构设计、回退链、代理检测、缓存、Go 模块嵌入、web-researcher 扩展
📚 参考docs/design.md设计背景与目标:立项动机、与现成方案对比、设计原则
📚 参考docs/api.mdGo Module API 与 HTTP API(MCP / SearXNG / Admin 端点)
📚 参考docs/dashboard.md本机控制中心:全部配置键、写操作安全模型、隐私边界
📚 参考docs/developers.md开发者指南:包结构、接口契约、工具调用链、改动落点
📚 参考CHANGELOG.md版本变更日志

相关项目

来源:README.MD,提交 f792e04

工具

0
SourceWeft 曾在隔离沙箱中以无凭据方式启动该软件包一次,以列出其工具,但未能完成:该软件包类型无法在沙箱中运行。

版本历史

10
  1. v3.10.3最新Oct 31, 2026
  2. v3.10.2Oct 25, 2026
  3. v3.10.1Oct 25, 2026
  4. v3.10.0Oct 24, 2026
  5. v3.9.0Oct 22, 2026
  6. v3.8.1Oct 15, 2026
  7. v3.8.0Oct 14, 2026
  8. v3.7.0Oct 10, 2026
  9. v3.6.0Sep 23, 2026
  10. v3.5.0Sep 16, 2026

评分

已满足适用检查项的 50%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通25 分

    请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。

  • 已声明认证方式10 分

    请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。

  • 已列出工具15 分

    请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。

  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分