关于 websearch
websearch 是面向网络、新闻、参考资料和专业来源检索的 MCP 服务。它结合并行搜索、页面获取与浏览器交互,并支持去重、可选本地重排和基于 Groq 的综合回答。
主要功能
- 01并行多引擎搜索
- 02获取页面并回退至浏览器
- 03浏览器交互与截图
- 04结构化页面及 PDF 提取
- 05去重与可选结果重排
- 06基于 Groq 的引用综合回答
适用场景
- 01跨搜索引擎研究主题
- 02读取并提取网页内容
- 03检查需要浏览器交互的页面
- 04查找论文、漏洞或代码
MCP 相关
该服务通过 stdio 将搜索、抓取、浏览器操作、信息提取及特定来源功能作为 MCP 工具提供。MCP 客户端可通过 `run` 脚本或 `websearch-mcp` 命令连接。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
uvx skdev-websearch-mcpGROQ_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+)。各客户端的配置文件位置不同,请参考客户端文档。
工具
11收录的工具列表 · 更新于 3 天前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| probe_network | boolean | 否 | 执行出站 HTTPS 检查(增加约 1 秒) |
详细介绍
websearch MCP 服务
mcp-name: io.github.SK-DEV-AI/websearch
·
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_KEYS | Tavily 引擎通道 | 可选 |
NV_KEY | NVIDIA 嵌入端点 | 可选 |
其他所有服务(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] 申请)。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。