Token导航 LogoToken导航

MCP Server · 文档知识

Web Extract

一个本地MCP服务,用于将公开网页提取为干净的Markdown格式,适用于Codex、其他MCP客户端或LLM工作流。

未说明官方级别未说明来源级核验工具 2
JavaScriptLLM工具Markdown转换

快速开始

公开资料没有提供安装命令,按仓库或官方文档接入。
作者 / 组织
Covet95
提供方
Covet95

工具数量

2

来源目录标注

资源数量

0

来源目录标注

提示词数量

0

来源目录标注

GitHub Star

1

仓库热度

收录来源

1 个

MCP World

选型结论

Web Extract 属于文档知识类 MCP Server,公开资料标注 2 个工具,通过传输方式未标注接入,客户端适配情况以官方文档为准,没有现成的安装命令;接入前先确认权限范围。

分类

文档知识

传输方式

未说明

认证方式

无需认证

部署方式

公开资料未说明

安装与配置

公开目录没有给出安装命令,需要按仓库 README安装;下面按同类条目的通用流程说明。

公开命令不是通用的启动方式,拼不出可靠配置示例;请在客户端 MCP 配置里按官方文档填写 command 和 args。

上手步骤

  1. 1

    先确认运行方式

    公开资料没有标注传输方式,先看仓库 README,确认是本地进程还是远程地址。

  2. 2

    获取服务

    公开目录没有给出安装命令,按仓库 README里的步骤安装或获取服务。

  3. 3

    写入客户端配置

    在客户端的 MCP 配置里填启动命令和参数,保存后完全退出客户端再打开,让新配置生效。

  4. 4

    验证是否可用

    连接成功后客户端会列出 2 个工具,随便调一个只读工具确认能返回结果。

接入前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

公开资料仍需确认:安装命令

详细介绍

web-extract

一个本地 MCP 服务,用来把公开网页提取成更干净的正文 Markdown,适合给 Codex、其他 MCP 客户端或 LLM 工作流直接调用。

特性

  • 支持 extract_url 和 extract_many
  • 优先抽取正文,尽量移除导航、侧栏、广告等噪音
  • 输出结构化字段:title、author、publishedAt、markdown、plainText、images、warnings
  • 默认先走原生 fetch + Readability + selector
  • 当页面疑似需要浏览器渲染、验证码/反爬拦截、或正文明显不完整时,自动回退到 Playwright
  • 批量提取支持有限并发,默认 3,避免单站点超时拖慢整批任务
  • 对非 HTML 响应和 fallback 失败返回结构化错误信息,便于 MCP 客户端和 LLM 工作流做兜底处理
  • 支持可选 debug 诊断输出,便于定位 fallback、策略选择和截断行为
  • 支持从 application/ld+json 中提取文章元数据
  • 内置轻量域名级策略,优先照顾高价值内容站点

当前实现

  • HTML 获取:原生 fetch
  • 正文提取:Readability + 选择器兜底
  • Markdown 转换:Turndown
  • 浏览器 fallback:playwright-core
  • 错误结构化:errorCode、errorStage、retryable
  • 调试诊断:debug.fetch、debug.extraction、debug.fallback
  • 元数据增强:meta + JSON-LD
  • 轻量站点策略:GitHub README / 微信公众号 / Medium / Substack 风格页

安装

npm install

如果本机没有 Playwright 自带浏览器,也可以直接复用本机 Chrome / Edge / Chromium。

可选环境变量:

PLAYWRIGHT_CHROMIUM_EXECUTABLE_PATH=/path/to/chrome-or-edge

浏览器探测顺序

优先顺序:

  1. PLAYWRIGHT_CHROMIUM_EXECUTABLE_PATH
  2. CHROME_PATH
  3. EDGE_PATH
  4. 系统默认常见路径
  5. which / where 命令探测

默认会尝试的常见路径

macOS
  • /Applications/Google Chrome.app/Contents/MacOS/Google Chrome
  • /Applications/Microsoft Edge.app/Contents/MacOS/Microsoft Edge
Linux
  • /usr/bin/google-chrome
  • /usr/bin/chromium
  • /usr/bin/chromium-browser
  • /usr/bin/microsoft-edge
Windows
  • C:\Program Files\Google\Chrome\Application\chrome.exe
  • C:\Program Files (x86)\Google\Chrome\Application\chrome.exe
  • C:\Program Files\Microsoft\Edge\Application\msedge.exe
  • C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe

本地运行

npm start

Codex 配置示例

在 config.toml 中加入:

[mcp_servers.web-extract]
command = "node"
args = ["/absolute/path/to/web-extract/server.js"]
startup_timeout_sec = 45

可用工具

extract_url

输入:

  • url: 网页地址
  • maxChars: 最大输出字符数,默认 30000
  • timeoutMs: 请求超时,默认 25000
  • playwrightFallback: 是否允许自动浏览器回退,默认 true
  • debug: 是否返回结构化调试信息,默认 false

返回字段:

  • url
  • finalUrl
  • status
  • title
  • author
  • publishedAt
  • sourceStrategy
  • markdown
  • plainText
  • excerpt
  • images
  • contentLength
  • warnings
  • debug(仅在 debug=true 时返回)

debug 字段结构

{
  "fetch": {
    "source": "fetch",
    "status": 200,
    "ok": true,
    "finalUrl": "...",
    "contentType": "text/html; charset=utf-8",
    "bodyTextLength": 1234,
    "durationMs": 120
  },
  "extraction": {
    "domainProfile": "github-readme",
    "readabilityAvailable": true,
    "selectorAvailable": true,
    "selectedStrategy": "selector:.markdown-body",
    "sourceStrategy": "fetch:selector:.markdown-body",
    "contentLength": 980,
    "markdownLength": 1100,
    "truncated": false,
    "jsonLdMetaDetected": false,
    "durationMs": 18
  },
  "fallback": {
    "triggered": false,
    "attempted": false,
    "reason": null,
    "durationMs": 0
  }
}

说明:

  • 正常路径会返回 fetch:readability、fetch:selector:article 之类的 sourceStrategy
  • 如果触发浏览器回退,会返回 playwright:readability、playwright:selector:...
  • 若你只想使用纯 fetch 路径,可在调用时传 playwrightFallback=false
  • 如果响应不是 HTML(例如 application/json / application/pdf),会返回结构化错误而不是继续盲目提取
  • 短页面不会因为“字少”就必然触发 fallback;当前会结合整页文本长度和 shell/placeholder 特征综合判断

extract_many

批量提取多个 URL,逐条返回成功或失败结果。

输入:

  • urls: URL 列表,最多 20
  • maxChars: 最大输出字符数,默认 30000
  • timeoutMs: 请求超时,默认 25000
  • playwrightFallback: 是否允许自动浏览器回退,默认 true
  • concurrency: 批量提取并发数,默认 3,最大 8
  • debug: 是否在成功项中返回调试诊断信息,默认 false

成功项结构:

  • ok
  • url
  • result

失败项结构:

  • ok
  • url
  • error
  • errorCode
  • errorStage
  • retryable

当前内置的错误码包括:

  • FETCH_ERROR
  • NON_HTML_RESPONSE
  • EXTRACTION_ERROR
  • PLAYWRIGHT_UNAVAILABLE
  • PLAYWRIGHT_FALLBACK_FAILED

轻量域名级策略

当前内置的高价值站点优化:

  • GitHub:优先 .markdown-body
  • 微信公众号:优先 #js_content / .rich_media_content
  • Medium 风格页:优先 article
  • Substack 风格页:优先 article / .available-content

这些策略不会替代通用提取,只是在命中对应站点时优先尝试更合适的正文区域。

开发脚本

npm run smoke
npm test

测试说明

  • npm test 使用本地 HTML fixture,结果稳定,适合 CI
  • npm run smoke 访问真实网页,用于人工冒烟验证
  • 当前本地 fixture 已覆盖:

- 标准文章页 - JSON-LD 元数据页 - 短但有效的页面 - GitHub README 风格页 - shell / placeholder 页

  • 建议 smoke 时至少验证:

- 一个普通 HTML 页面 - 一个需要 fallback 的页面 - 一个非 HTML 页面

已完成的真实站点 smoke(当前版本)

已验证通过:

  • GitHub HTML 页面:命中 .markdown-body
  • GitHub API JSON:按 NON_HTML_RESPONSE 拒绝
  • 微信公众号文章:命中 #js_content
  • Substack 文章:正文提取 + JSON-LD 元数据有效
  • PDF 文件:按 NON_HTML_RESPONSE 拒绝

已验证 fallback 链路可用,但内容质量不一定理想:

  • X
  • Reddit
  • Medium(测试 URL 为 404 页面)
  • Bloomberg(更偏首页/播放器内容)

失败样本:

  • NYTimes 某文章页:当前版本未稳定提取出有效正文

说明:当前 smoke 证明了“核心链路可用”,但不代表所有媒体站点都已做专项适配。后续若要提升命中率和正文质量,应继续扩展域名级策略和等待/过滤规则。

限制

  • 登录态页面、强交互页面、复杂验证码页面仍可能失败
  • playwright-core 需要本机可用的 Chromium / Chrome / Edge 可执行文件
  • 部分站点作者、发布时间等元数据可能缺失,但正文仍优先抽取
  • 当前批量提取是“有限并发”而不是站点级调度,不适合高强度大规模采集
  • 域名级策略目前是轻量版本,不是完整站点适配器系统

后续可扩展

  • 增加更强的域名级策略与等待策略
  • 增加更多元数据标准支持
  • 增加 debug / verbose 日志输出到 CLI / MCP 日志流
  • 引入更系统化的站点画像和 fallback 分类
  • 发布到 npm 或独立 GitHub 仓库

工具与能力

工具数量

2

资源数量

0

提示词数量

0

能力标签

网页提取JavaScript本地部署Markdown转换LLM工具MCP服务内容解析

数量来自来源目录的标注,具体工具清单以官方文档为准。

典型使用场景

读长文档提问

把 PDF、Markdown 和笔记交给模型,按章节追问细节。

整理知识库

把零散资料归档、打标签,检索时更容易命中。

批量出摘要

提取要点,输出能直接引用的段落。

选择建议

值得选的地方

  • 只提供 2 个工具,职责集中,接入后不容易误操作。
  • 公开说明写得比较完整,接入前能看清能力边界。

先想清楚的地方

  • 公开资料没有可直接复制的安装命令,第一次接入要自己找入口。
  • 公开摘要偏短,具体能力和限制要回到仓库确认。
  • 第三方目录整理,版本更新和行为细节以官方仓库为准。

更适合

  • 需要在文档知识场景里让模型直接调用外部能力的人。
  • 愿意照着官方文档一步步配环境的人。

不太适合

  • 希望一条命令就装好、不想看文档的人。
  • 需要厂商级 SLA 和技术支持的生产环境。

同类对比

5 个同类
MCP Server工具数传输方式安装命令收录来源最后核验
Web Extract

MCP World · 本页

2未说明未标注1 个2026-05-17
Cherry Studio

MCP World

0未说明未标注1 个2026-05-17
Pdf Math Translate

MCP World

0stdio有1 个2026-05-17
report generation

MCP World

0stdio有1 个2026-05-17
Anything To Notebooklm

MCP World

0stdio有1 个2026-05-17

按同分类和工具数量挑出最接近的几条,字段以各自详情页为准。

常见问题

5 条

Web Extract 怎么安装?

公开目录没有给出可以直接复制的安装命令,需要按仓库 README里的步骤安装;装好后写进客户端的 MCP 配置再重启。

Web Extract 怎么在 Claude Desktop、Cursor 里配置?

它是传输方式未标注,客户端配置里要写启动命令和参数,运行环境是 未标注;保存后完全退出客户端再打开,配置才会生效。

Web Extract 收费吗?

本站只整理公开资料,不代收费用,也没有标注具体价格。是否收费取决于服务本身和背后的接口额度,正式使用前按官方说明确认。

Web Extract 需要 API Key 吗?

公开资料标注为无需认证,装好就能连;如果实际调用时报鉴权错误,按官方文档补上凭据。

Web Extract 支持哪些客户端?

公开资料没有标注具体客户端;能配置本地 MCP 命令的客户端都能接,配置方式参照官方文档。

来源信息

继续浏览同类 MCP