web_fetch
Fetch web pages, PDFs, and text files, then return compact token-efficient main content while detecting anti-bot pages and handling JS-rendered sites.
Instructions
抓取网页并返回极省 token 的紧凑正文(自动辨别反爬拦截页并如实上报)。
支持 HTML 页面、PDF(需安装 mcp-scrape[pdf])与纯文本(.txt/.md);
后两者直接返回文本内容,不做 DOM 精简。
Args:
url: 目标网页完整 URL,需带 http/https 协议头。
max_tokens: 正文 token 预算上限,超出时保留头尾、省略中段。
link_policy: 链接处理策略。internal=站内链接保留为相对路径、站外降级为纯文本(默认,最省);
all=站内外链接全保留;none=全部降级为纯文本。
format: 输出格式。markdown=保留标题/列表/链接标记(默认);
text=剥掉 markdown 标记的纯文本;json=按行切分的块数组(content 为字符串列表)。
headers: 自定义请求头,如 {"Referer": "...", "User-Agent": "..."};传入时不走共享缓存。
cookies: 自定义 cookie 字典;传入时不走共享缓存。
timeout: 单次请求超时秒数(默认取配置 request_timeout)。
deadline_ms: 整次调用的总预算(毫秒),不传表示不限。预算不够时逐级降级:
压缩单步超时 → 跳过重试(diagnostics 里是 deadline:skip_retry)→
不升级 L2(deadline:skip_l2)→ 未开始就耗尽时直接返回 timeout。
预算内拿到的正文照常返回,但降级结果不会写入结果缓存。
wait_for: 仅 L2 生效,等待该 CSS 选择器出现后再取内容(适合 SPA);不传则套用站点 recipe。
scroll: 仅 L2 生效,滚动页面触发懒加载/无限滚动;不传则套用站点 recipe。
click: 仅 L2 生效,渲染后点击一次该 CSS 选择器(如"加载更多");不传则套用站点 recipe。
bypass_cache: 跳过并绕过响应缓存,强制走网络。
debug: 返回 diagnostics(分层决策、L2 交互命中情况、正文根与候选命中数),
只含计数与决策、不含页面内容;失败时默认也会带精简版决策轨迹。
session: 登录态会话名(默认 default);需与 login 时使用的会话名一致,多身份互不干扰。
proxy: 本次请求使用的代理(如 http://127.0.0.1:7890、socks5://127.0.0.1:1080),
L1 与升级后的 L2 都走该出口;不传则按代理池 SCRAPE_MCP_PROXY_POOL 分配,
未配池时沿用 SCRAPE_MCP_PROXY。
显式传入代理的请求不读也不写共享缓存,避免把不同出口的结果混在一起。
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | ||
| click | No | ||
| debug | No | ||
| proxy | No | ||
| format | No | markdown | |
| scroll | No | ||
| cookies | No | ||
| headers | No | ||
| session | No | default | |
| timeout | No | ||
| wait_for | No | ||
| max_tokens | No | ||
| deadline_ms | No | ||
| link_policy | No | internal | |
| bypass_cache | No |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| result | Yes |