mcpField
W
websearch

websearch

本地服务
github.com/SK-DEV-AI搜索与检索12 天前更新

关于 websearch

websearch 是面向网络、新闻、参考资料和专业来源检索的 MCP 服务。它结合并行搜索、页面获取与浏览器交互,并支持去重、可选本地重排和基于 Groq 的综合回答。

主要功能

  1. 01并行多引擎搜索
  2. 02获取页面并回退至浏览器
  3. 03浏览器交互与截图
  4. 04结构化页面及 PDF 提取
  5. 05去重与可选结果重排
  6. 06基于 Groq 的引用综合回答

适用场景

  1. 01跨搜索引擎研究主题
  2. 02读取并提取网页内容
  3. 03检查需要浏览器交互的页面
  4. 04查找论文、漏洞或代码

MCP 相关

该服务通过 stdio 将搜索、抓取、浏览器操作、信息提取及特定来源功能作为 MCP 工具提供。MCP 客户端可通过 `run` 脚本或 `websearch-mcp` 命令连接。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"sk-dev-ai-websearch": {
"command": "uvx",
"args": [
"skdev-websearch-mcp"
],
"env": {
"GROQ_API_KEYS": "<GROQ_API_KEYS>",
"TAVILY_KEYS": "<TAVILY_KEYS>",
"NV_KEY": "<NV_KEY>",
"SE_KEY": "<SE_KEY>",
"S2_KEY": "<S2_KEY>"
}
}
}
}
启动命令uvx skdev-websearch-mcp
需要配置的环境变量
GROQ_API_KEYS密钥Optional. Groq keys for synthesis and query rewriting.
TAVILY_KEYS密钥Optional. Tavily search lane.
NV_KEY密钥Optional. NVIDIA embeddings for ranking.
SE_KEY密钥Optional. Stack Exchange key (10k/day instead of 300).
S2_KEY密钥Optional. Semantic Scholar key (1 RPS).

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
pypiskdev-websearch-mcp1.10.0

工具

11

收录的工具列表 · 更新于 3 天前

参数类型必填说明
probe_networkboolean否执行出站 HTTPS 检查(增加约 1 秒)

详细介绍

websearch MCP 服务

mcp-name: io.github.SK-DEV-AI/websearch

skills.sh · npx skills add SK-DEV-AI/skills

多引擎网页搜索与抓取 MCP 服务。并行检索 DuckDuckGo、Bing Web/News RSS、Tavily、Wikipedia、arXiv、Google News RSS、Brave(最后手段——某些网络环境下会受到速率限制)、Google AI Mode,以及按意图启用的垂直领域通道(MDN、Stack Exchange、GitHub、HN、Semantic Scholar、OSV 漏洞、grep.app/Sourcegraph 代码、GDELT 新闻);并提供共识合并去重、本地交叉编码器重排,以及带依据检查的 Groq 综合回答。

工具(10)

  • search — 用于开放式研究问题。depth=1 返回摘要,depth≥2 获取完整页面并重排。synthesize 返回带有 [N] 引用的 Groq 答案。
  • fetch — 将 URL 转换为 Markdown/文本。直接抓取;遇到受阻或需要 JS 的页面时,自动回退到 Helium CDP 浏览器。支持 PDF/EPUB/DOCX。支持分页(offset)。结构化 JSON 请使用 extract。
  • screenshot — ARIA 无障碍快照(便于大模型读取的页面文本和交互结构)。
  • browser_action — 操作真实浏览器页面(导航、点击、输入、按键、执行 JS、读取 HTML/文本、ARIA 树、截图)。页面需要交互时使用;只需阅读时请使用 fetch。
  • wikipedia — 完整的 Wikipedia API 客户端:文章、摘要、分类、链接、页面浏览量、修订版本、反向链接、地理搜索、近期更改、随机页面。
  • arxiv — 使用布尔/短语/通配符查询语法搜索 arXiv 论文(单一来源;多来源论文搜索由 codesearch papers 提供)。
  • extract — 通过 CSS(快速、免费)、大模型或正则表达式策略从页面提取结构化 JSON。重复调用会使用缓存。
  • pdf_extract — 将 PDF 转换为 Markdown/JSON/HTML。含文本层的 PDF 使用快速 PyMuPDF 路径;扫描版 PDF 则回退到 Docling+OCR。
  • map_site — 通过站点地图 XML(主要方式)和 HTML 链接回退方案调查网站页面,然后再逐页抓取。
  • ping — 检查互联网和主要搜索端点的连通性。不确定时,在执行高成本调用前使用。

设置

需要 Python 3.14+。

python3 -m venv .venv && source .venv/bin/activate
pip install -r requirements.txt
cp run.example run   # fill in your API keys (run is gitignored — never commit it)
chmod +x run

将 MCP 客户端指向 run(stdio):

{ "websearch": { "command": "/path/to/websearch/run" } }
API 密钥(run)
密钥用途是否必需?
GROQ_API_KEYS查询改写、综合回答、依据检查建议配置(不配置也可搜索,但无法生成综合回答)
TAVILY_KEYSTavily 引擎通道可选
NV_KEYNVIDIA 嵌入端点可选

其他所有服务(DDG、Bing RSS、Wikipedia、arXiv、RSS)均无需密钥。Brave 的 HTML 抓取目前在某些网络环境下会受到速率限制,因此 Bing RSS 是主要的通用网页搜索入口,Brave 仅作最后手段。

从 PyPI 安装

pip install skdev-websearch-mcp          # core install, small
pip install skdev-websearch-mcp[all]     # + browser/OCR/extract extras (multi-GB)

websearch-mcp 控制台脚本通过 stdio 使用 MCP:

{ "websearch": { "command": "websearch-mcp" } }

Docker

docker build -t websearch-mcp .
docker run --rm -i websearch-mcp

密钥在运行时传入,绝不会打包进去:-e GROQ_API_KEYS=...。 较大的可选依赖:docker build --build-arg EXTRAS="[all]" -t websearch-mcp .

备注

  • 重排器(可选,本地): 排名使用通过 Unix 套接字运行的本地 gte-reranker-modernbert-base 交叉编码器(RERANKER_MODEL 可覆盖模型)。没有它时,结果不会排序,relevance_score 0.0——其他功能仍可正常使用。
  • Helium CDP(可选): 遇到机器人拦截的页面时,如果可用,会转至 127.0.0.1:9222 上的 Chrome DevTools 浏览器;没有它时,这些页面会返回终止判定,而不会一直挂起。
  • 缓存: 抓取结果缓存 1 小时(cache_ttl=0 可强制获取最新结果)。没有数据库,除缓存目录外不保存状态。
  • 安全性: 所有用户 URL 抓取都会经过 SSRF 验证(屏蔽私有 IP + 逐跳重新验证重定向 + robots.txt 检查)。
  • Groq 模型划分: 综合 + 依据验证 + extract-llm 使用 openai/gpt-oss-120b;改写/分类/扩展/分解使用 openai/gpt-oss-20b(Groq 已停用此前的 llama-3.1-8b-instant,现在会返回 404)。配置常量为 config.py 中的 GROQ_SMART_MODEL/GROQ_CHEAP_MODEL。
  • 无需密钥的通道(均仅提供参考): OSV.dev 漏洞垂直领域 + NVD CVE 补充信息;grep.app MCP 代码搜索(备用:Sourcegraph);Bing Web RSS + Bing News RSS(Brave 抓取受速率限制,部分网络会遇到 GDELT 429 错误);Wikipedia 垂直领域;Jina Reader 的 CDP 前置层;enrich() 中的 Wayback CDX 历史记录恢复;map_site 中 Common Crawl 域名调查辅助。
  • 本地重排器: gte-reranker-modernbert-base 交叉编码器通过 Unix 套接字作为共享工作进程运行;任一服务都可按需启动它,并会在空闲时卸载。此功能为可选;没有它时,结果仅由引擎排序。
  • 可选密钥(无密钥时可平稳回退): SE_KEY/STACKEXCHANGE_KEY(SE 每日 10k 次),S2_KEY/S2_API_KEY(专用 S2,每秒 1 次请求)。
  • Marginalia: 仅作为尽力而为的通道(共享公共密钥池,负载较高时会返回 503);可提供独立索引的召回结果,未配置专用密钥(可发邮件至 [email protected] 申请)。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。