🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

本地网页搜索 enilmalus/offline_websearch

DeepSeek Harness
enilmalus76 天前有提交已提供中文文档扫描:无法判定

无需 API key,本地调用多引擎完成网页搜索

32.9/100
综合分
1
GitHub 星标
—
npm 周下载
—/5
用户评分

数据截至 2026/9/16 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

自动兼容检查未通过:仓库根目录及浅层子目录均无 dsh 插件清单,无法用 dsh 插件安装命令安装。以下命令仍可尝试,但可能失败。
无法用 dsh 插件命令安装(仓库内无 dsh 插件清单)
git clone https://github.com/enilmalus/offline_websearch.git
按该仓库 README 的原生方式安装;若作者另行发布了 DSH 插件包,请以其文档为准

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:需留意
是什么
dsh 原生插件 · search
装得上吗
实装验证未通过(unknown),装前请到仓库确认最近更新与 issue
L4 · 真实安装等级说明 →
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 76 天前
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →
⚠︎ 实装验证未通过(unknown · 2026/10/28) ——可能是验证环境差异,装前建议到 GitHub 仓库确认最近更新与 issue。
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查需源码安装

仓库根目录及浅层子目录均无 dsh 插件清单,无法用 dsh 插件安装命令安装

展开查看检查明细 ↓

以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。

✗npm 包offline_websearch(未发布到 npm,仅可源码安装)
✓Node 引擎未声明 engines.node
✓dsh CLI 依赖未声明 dsh 版本约束
✗入口文件缺少入口声明

源码安装时若 pnpm 拦截 prepare 脚本,按其提示在 pnpm-workspace.yaml 的 allowBuilds 中放行后重跑。

验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/10/20 16:14:42

安全扫描自动 · 静态分析源码
v2.7.0
⚪ 扫描:无法判定尚无人工评估
展开查看扫描说明与证据 ↓

已尝试扫描但取不到可分析的源码:仓库或包不存在、已删除,或为非 JS/TS 实现、未随包发布源码。无法判定,不代表安全。

  • · 包内无可扫 JS
  • · TS 源码(可能为非 JS 实现或未发布源码),无法判定
扫描于 2026/11/4(0 天前) · 范围 全包扫描(包内未声明入口) · 来源 GitHub 仓库

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

功能亮点

  • 本地调用多引擎
  • 无需APIkey搜索

README

由 DeepSeek 最新模型翻译生成
offline_websearch 一个本地部署、基于 DuckDuckGo 的 Web 搜索 MCP server。无需 API key、不依赖 Deepseek 服务端,把 web_search 工具以标准 MCP 协议暴露给任意 MCP 客户端(DeepSeek Harness / DSH、Claude Code 等)。 - ✅ 无需 API key - ✅ 无 Anthropic 依赖 - ✅ 本地客户端侧搜索(只用 DuckDuckGo 及其回退引擎) - ✅ 域名 allow/block 过滤(含子域) 它解决什么问题 Deepseek harness 原生的 WebSearch 工具依赖 Deepseek 服务端的能力,只在官方 / Vertex / Foundry 后端可用。当你把 agent 跑在第三方模型网关上(DeepSeek、Ollama、自建代理……)时,原生 WebSearch 会静默失败。本 server 把搜索放到客户端本地做,绕过这个依赖,而且免 key。
展开完整文档(README 剩余 1 节)
offline_websearch

一个本地部署、基于 DuckDuckGo 的 Web 搜索 MCP server。无需 API key、不依赖 Deepseek 服务端,把 web_search 工具以标准 MCP 协议暴露给任意 MCP 客户端(DeepSeek Harness / DSH、Claude Code 等)。

- ✅ 无需 API key
- ✅ 无 Anthropic 依赖
- ✅ 本地客户端侧搜索(只用 DuckDuckGo 及其回退引擎)
- ✅ 域名 allow/block 过滤(含子域)

它解决什么问题

Deepseek harness 原生的 WebSearch 工具依赖 Deepseek 服务端的能力,只在官方 / Vertex / Foundry 后端可用。当你把 agent 跑在第三方模型网关上(DeepSeek、Ollama、自建代理……)时,原生 WebSearch 会静默失败。本 server 把搜索放到客户端本地做,绕过这个依赖,而且免 key。

工作原理

MCP 客户端(DSH / Claude Code) │ tool call: web_search(query, ...) ▼ offline_websearch(FastMCP,stdio) │ 经 ddgs 库多引擎元搜索(见下) ▼ 标题 / URL / 摘要 文本结果

底层 ddgs 是多引擎元搜索:并行查询 DuckDuckGo、Brave、Yahoo、Startpage、Wikipedia、Mojeek、Grokipedia,合并去重后返回。只要其中一部分引擎可达,就能出结果。

环境要求

- Python ≥ 3.10
- 机器能访问上述搜索引擎(见「常见问题」里关于超时的说明)

安装(clone 之后)

git clone https://github.com/enilmalus/offline_websearch offline_websearch
cd offline_websearch

按你的环境三选一:

方式 A:直接装(Debian/Kali/Ubuntu 等 PEP 668 externally-managed 环境,无 sudo 装 venv)
python3 -m pip install --user --break-system-packages .

方式 B:venv 隔离(机器上装了 python3-venv 时)
python3 -m venv .venv
.venv/bin/pip install .

方式 C:pipx(装了 pipx 时) pipx install .

装完会得到一个 offline-websearch 命令:

- 方式 A 落在 ~/.local/bin/offline-websearch(需确保 ~/.local/bin 在 PATH)。
- 方式 B 落在 .venv/bin/offline-websearch。

验证安装:

which offline-websearch
python3 -c "from offline_websearch.server import web_search; print(web_search('hello', max_results=2))"

依赖说明:pyproject.toml 已把 mcp 钉在 >=1.2.0,__)。

@deepseek-ai/dsh-mcp-client 随 DSH 的 dsh 包(apps/cli)一起发布,一般无需单独安装。若 boot 时报解析不到,先 dsh plugin --profile web add @deepseek-ai/dsh-mcp-client。

Claude Code(可选)

claude mcp add offline_websearch -- offline-websearch

如果装进了 venv,就用 venv 里的绝对路径:

claude mcp add offline_websearch -- /path/to/offline_websearch/.venv/bin/offline-websearch

工具 API

| 参数 | 类型 | 默认 | 说明 |
| query | string | — | 搜索词(必填) |
| max_results | int | 8 | 返回条数(自动截断到 1–20) |
| allowed_domains | string[] | null | 只保留这些域名(子域也匹配) |
| blocked_domains | string[] | null | 排除这些域名 |
| region | string | wt-wt | 地区码(wt-wt = 全球,cn-zh = 中国/中文,格式 国家-语言) |

验证是否生效

1. 重启 DSH,看启动日志里 dsh-mcp-client 是否连接成功——没有 reconnecting / final failure 刷屏即连上、工具已注册。
2. 直接点工具名测,避开可能同时存在的其它搜索工具:

用 mcp__offline_websearch__web_search 搜索 "claude code mcp"

返回真实结果即生效。

常见问题

搜索超时 / Error: web search failed after 3 attempts

offline_websearch 底层 ddgs 会并行查询多个搜索引擎(DuckDuckGo、Brave、Yahoo、Startpage、Wikipedia、Mojeek、Grokipedia)。如果这些引擎在你的网络里被墙或不可达,请求会超时,server.py 重试 3 次后返回 Error: web search failed after 3 attempts: TimeoutException ...。这是网络可达性问题,不是安装或配置问题。

排查:

1. 在装了这个包的环境里直接跑一次,确认是不是网络问题:

python3 -c "from offline_websearch.server import web_search; print(web_search('test', max_results=2))"

2. 换 region(如 cn-zh)不影响底层引擎可达性——引擎还是那几个。
3. 若只有某个引擎可达(例如 Mojeek),当前 server.py 没暴露 ddgs 的 backend 参数(默认 auto = 全部引擎)。可在 server.py 里给 ddgs.text(...) 传 backend="mojeek"(或逗号分隔的引擎列表)来只走指定引擎。

import 报 No module named 'mcp.server.fastmcp'

装了 mcp 2.x(2.x 移除了 FastMCP)。降到 1.x:

python3 -m pip install --user --break-system-packages "mcp>=1.2.0,<2.0.0"

DSH 里看不到 mcp__offline_websearch__web_search

依次检查:

1. dsh-mcp-client 是否可解析(dsh plugin --profile web add @deepseek-ai/dsh-mcp-client)。
2. offline-websearch 是否在 PATH(或 command 用的绝对路径是否正确)。
3. 启动日志里 dsh-mcp-client 有没有连接错误。

License

MIT
预览分享卡片长什么样 ↓enilmalus/offline_websearch
分享 · DeepSeek Harness Hub
enilmalus/offline_websearch

无需 API key,本地调用多引擎完成网页搜索

这是你的仓库?认领条目

回到顶部