Skip to main content
Glama

web-mcp

给本地小模型,插上联网的翅膀。 🪽

跑在 Ollama / LM Studio 里的模型其实挺聪明,但它的世界停在了训练截止那一天: 问它今天的新闻,它一本正经地编;让它查最新文档,它给你三年前的 API。

web-mcp 是一个完全免费、无需任何 API key 的 MCP 服务。 装上它,你的模型立刻能实时搜索全网、抓取网页正文——不花一分钱,也不用注册任何账号。

Claude Code / Cursor / Codex / pi 等支持 MCP 的客户端,同样即插即用。

如果它帮你省下了搜索 API 的钱,点个 Star 支持一下——这也是你以后找回这个项目最快的方式。

为什么是 web-mcp

你的处境

web-mcp 的答案

不想为搜索 API 付费

9 个免 key 引擎:百度 / Brave / Bing / DuckDuckGo / CSDN / GitHub / arXiv / Wikipedia / StackOverflow

免费引擎老是被风控

四层保命:引擎自动冷却 → Tavily 免费额度兜底 → r.jina.ai 抓取兜底 → 浏览器渲染兜底

小模型等不起

时间盒竞速:结果够了立刻返回,绝不等最慢的引擎

搜到一堆内容农场

站点权重重排:官方文档加权,百家号降权,黑名单直接剔除

不知道模型联网时发生了什么

web_log 工具:每次搜索/抓取走了哪条路径,一清二楚

Related MCP server: webmcp

60 秒上手

git clone https://github.com/Chang-Tong/web-mcp.git
cd web-mcp
npm install

# 命令行先爽一把(不需要任何客户端)
node cli.mjs search "今天有什么 AI 新闻"
node cli.mjs fetch "https://example.com/article"

接入你的客户端

本地模型玩家(Cherry Studio / Cline / Roo Code 等 + Ollama / LM Studio)——在客户端的 MCP 设置里添加:

{
  "mcpServers": {
    "web": {
      "command": "node",
      "args": ["/绝对路径/web-mcp/src/index.mjs"]
    }
  }
}

Claude Code / Codex / pi~/.claude/settings.json 或项目 .mcp.json):同上配置即可。

HTTP 模式(团队共享 / 远程部署):

node src/index.mjs --http 8787                          # 启动
WEB_MCP_AUTH_TOKEN=your-secret node src/index.mjs --http 8787   # 带鉴权(公网推荐)
curl http://localhost:8787/health                       # 健康检查

Cursor 远程接入:

{
  "mcpServers": {
    "web": {
      "url": "http://localhost:8787/mcp",
      "headers": {
        "Accept": "application/json, text/event-stream",
        "Authorization": "Bearer your-secret"
      }
    }
  }
}

五个工具

1. web_search — 多引擎并行搜索

免 key 引擎并行执行,结果按 URL 去重合并,每条带 engine 来源标签。

  • 意图感知路由:按查询特征自动选引擎组合

意图

中文查询

英文查询

code(api/报错/教程)

csdn + github + stackoverflow + brave + baidu

github + stackoverflow + brave + bing + ddg

academic(论文/研究)

baidu + arxiv + wikipedia + brave + csdn

arxiv + wikipedia + brave + bing + ddg

news(发布/最新)

baidu + brave + bing

brave + bing + ddg

general

baidu + csdn + wikipedia + brave + ddg

wikipedia + brave + baidu + bing + ddg

  • 风控自动冷却:引擎被限流后冷却 60s 不再调度(同一出口 IP 反复请求只会更糟);连续两次时间盒放弃同样进冷却;Tavily 免费配额耗尽自动冷却到下月 1 日

  • Tavily 免费兜底:auto 模式下免 key 引擎全灭时,自动用 Tavily 免费额度(每月 1000 次)兜最后一次

  • 时间盒竞速:默认 12 秒(WEB_MCP_TIME_BOX 可调)。结果达标立即取消其余引擎提前返回;到期未达标也返回已有结果

  • 站点权重重排:github.com ×1.6、官方文档加权;百家号 ×0.55、内容农场降权;黑名单剔除。SITE_WEIGHTS / SITE_BLOCKLIST 可覆盖

  • recency 时间过滤day/week/month/year 透传各引擎原生参数

2. fetch_page — 网页抓取

模式

说明

text(默认)

粗提取为 markdown,保留链接格式

readable

Mozilla Readability 提取正文,去导航/广告(适合文章页)

json

直接解析 JSON API(auto 模式检测到 JSON 自动走这里)

附加能力:

  • 反爬双兜底:目标站 403/5xx 或网络错误时,先走 r.jina.ai 免费代理(免 key),不行再浏览器渲染(知乎等反爬站实测可抓);返回结果标注走的哪条路径

  • PDF / DOCX 自动解析(pdf-parse + mammoth,30MB 上限)

  • GitHub 仓库页自动抓 README

  • 自定义请求头(如带 Cookie 绕过登录墙)

  • GBK / GB2312 / Big5 老站点编码自动识别

3. search_summarize — 搜索 + 摘要

一步完成:搜索 → 并行抓 top 结果正文 → DeepSeek 生成带 [1][2] 引用标注的结构化中文摘要。查资料写报告场景省去多次 search+fetch 往返。无 DEEPSEEK_API_KEY 时退化为返回搜索+抓取结果。

4. deep_search — 多角度深度搜索

LLM 把查询拆成多个角度(官方/技术细节/评测/最新动态…)的子查询并行搜索,分组返回。无 LLM 时用规则拆分。

5. web_log — 使用日志

搜索/抓取走了哪条路径,全量记录(JSONL 月度日志,写失败静默不影响主流程):

  • action=stats:各引擎成功率 / 冷却次数 / Tavily 兜底次数 / 抓取 direct·jina·browser·error 分布 / 日均请求量

  • action=recent:最近日志明细

调参、排查风控、向别人证明"免费路线真的够用",都靠它。

配置(环境变量)

全部可选。零配置即可用,按下表按需增强:

变量

默认

说明

SEARCH_ENGINE

auto

auto / 单引擎名 / serper / tavily / searxng

SERPER_API_KEY

Serper 的 Google 搜索 key(免费 2500 次/月),追求最稳定体验时配置

SERPER_GL / SERPER_HL

cn / zh-cn

Serper 搜索地区/语言

TAVILY_API_KEY

Tavily key(免费 1000 次/月;auto 模式下兼作兜底引擎)

SEARXNG_URL

自托管 SearXNG 实例地址(需开启 JSON 格式)

DEEPSEEK_API_KEY

自动读取

search_summarize / deep_search 的 LLM(优先环境变量,其次 pi 的 ~/.pi/agent/auth.json

DEEPSEEK_BASE_URL

https://api.deepseek.com

可指向任意 OpenAI 兼容端点

DEEPSEEK_MODEL

deepseek-chat

LLM 模型名

SITE_WEIGHTS

内置表

JSON 域名→权重;SITE_WEIGHTS_MERGE=1 与内置合并

SITE_BLOCKLIST

逗号分隔的域名黑名单

WEB_MCP_TIME_BOX

12000

搜索时间盒(ms):达标提前收 / 到期返回已有结果

WEB_MCP_ENABLE_BROWSER

自动

0 禁用浏览器兜底;1 强制启用

WEB_MCP_BROWSER_PATH

自动探测

浏览器路径(系统 Chrome/Edge、playwright 缓存自动探测)

WEB_MCP_LOG_DIR

./logs

web_log 日志目录

WEB_MCP_AUTH_TOKEN

HTTP 模式鉴权

WEB_MCP_DEBUG

1 输出每个引擎的执行日志(stderr)

代理自动生效:http_proxy / https_proxy / no_proxy,无代理环境自动直连。

架构

MCP 客户端(Claude Code / Cursor / Cherry Studio / Cline / pi / ...)
   │  stdio 或 Streamable HTTP(stateful session,CORS + 可选 Bearer 鉴权)
   ▼
web-mcp(Node + @modelcontextprotocol/sdk)
   ├── web_search ── 意图路由 → 并行多引擎 → 冷却/兜底 → 权重重排
   │      免 key:baidu / brave / bing / duckduckgo / csdn / github / arxiv / wikipedia / stackoverflow
   │      可选:serper / tavily / searxng
   ├── fetch_page ── text / readable / json → 反爬则 r.jina.ai → 浏览器渲染
   ├── search_summarize / deep_search ── 搜索 + LLM 摘要
   └── web_log ── JSONL 使用日志(stats / recent)

已知限制

  • 免费引擎在代理 IP 池下会被间歇风控(brave 429、baidu 验证页、ddg 202)。多引擎并行 + 冷却 + Tavily 兜底 + 浏览器兜底已把影响降到最低;要最稳定体验请配置 SERPER_API_KEY

  • 浏览器兜底需要本机有 Chrome/Edge/Chromium,首次启动约 3-10s

  • search_summarize / deep_search 依赖 DEEPSEEK_API_KEY(默认自动读 pi 凭据)

测试

node test-client.mjs "搜索词"   # stdio 冒烟测试:搜索 + 抓取

喜欢这个项目?

web-mcp 是个人维护的开源项目,你的 Star 是它活下去的燃料:

  • 对你:Star 过的项目躺在你的 starred 列表里,下次配环境一秒找回;Releases 还能收到大版本更新提醒

  • 对作者:每一个 Star 都在说"这个方向是对的",直接决定维护优先级

  • 对社区:Star 数会让更多本地模型玩家发现它——免费联网这条路,走的人越多越好走

愿意更进一步?把它推荐给用 Ollama 的朋友,或在相关 awesome 列表里提一嘴,都是莫大的帮助。🙏

Star History Chart

致谢

设计上吸收了多个主流开源 MCP 项目的优点,并针对免费搜索引擎的反爬做了大量实测验证:

借鉴项目

吸收的特性

Aas-ee/open-webSearch

多引擎并行编排、失败容忍、反爬关键词检测、CSDN 垂直引擎、GitHub README 抓取、代理支持

zcaceres/fetch-mcp

多格式抓取(text / readable / json)、自定义请求头

nickclyde/duckduckgo-mcp-server

搜索引擎限流保护、结构化结果输出

ihor-sokoliuk/mcp-searxng

可选 SearXNG 自托管引擎

tavily-ai/tavily-mcp

可选 Tavily API 引擎

贡献

欢迎 Issue 和 PR。代码风格保持简单,每个引擎的失败容忍逻辑建议附上实测场景说明。

许可证

MIT

A
license - permissive license
Not graded
quality - not tested
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • A
    license
    A
    quality
    A
    maintenance
    MCP server for private web search via self-hosted SearXNG with local reranking, full-page content fetching via Firecrawl, and optional Ollama-powered query expansion and summaries.
    7
    94
    17
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    MCP server for web search and content extraction using DuckDuckGo or SearXNG, with Playwright-based fetching and LLM-powered data extraction.
    140
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    MCP server for internet search via direct Google and DuckDuckGo HTML scraping with AI-powered result normalization and optional summarization, requiring no API keys for search.
    MIT

View all related MCP servers

Related MCP Connectors

  • MCP server for Google search results via SERP API

  • Multi-engine search for AI agents. Trust scoring, local corpus, MCP-native. Self-hostable, BYOK.

  • Fast, intelligent web search and web crawling. New mcp tool: Exa-code is a context tool for coding

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Chang-Tong/web-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server