mcpField
D
DOMStrip

DOMStrip

本地服务
github.com/xo0ps浏览器自动化01 天前更新

关于 DOMStrip

DOMStrip 是面向 Agent 和客户端的本地 MCP 服务,可将公开网页或已有 HTML 转为精简 Markdown。它通过 DOMStrip API 提供网页抓取和 HTML 清理两种工具。

主要功能

  1. 01将公开 URL 转为 Markdown
  2. 02转换已有 HTML
  3. 03移除非正文 DOM 元素
  4. 04保留标题、代码块和表格

适用场景

  1. 01为 Agent 准备网页上下文
  2. 02不抓取网络而转换现有 HTML
  3. 03提取公开网站的可读内容

MCP 相关

向 MCP 客户端提供 `fetch_clean_markdown` 和 `clean_html` 工具。服务使用本地配置的 API 密钥向 DOMStrip 服务进行身份验证。

配置

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

mcp.json · 通用配置
{
"mcpServers": {
"xo0ps-domstrip": {
"command": "uvx",
"args": [
"domstrip-mcp"
],
"env": {
"DOMSTRIP_MCP_SERVICE_ORIGIN": "<DOMSTRIP_MCP_SERVICE_ORIGIN>",
"DOMSTRIP_MCP_API_KEY": "<DOMSTRIP_MCP_API_KEY>"
}
}
}
}
启动命令uvx domstrip-mcp
需要配置的环境变量
DOMSTRIP_MCP_SERVICE_ORIGINBare HTTPS origin of the DOMStrip API.
DOMSTRIP_MCP_API_KEY密钥Your DOMStrip API key. Request pilot access at [email protected].

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

安装包
pypidomstrip-mcp0.1.2

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

domstrip-mcp

mcp-name: io.github.xo0ps/domstrip-mcp

一个本地模型上下文协议服务,使用 DOMStrip API 将网页转换为整洁的 Markdown。

它提供两个工具:

工具功能
fetch_clean_markdown获取公开的 http(s) URL,并返回整洁的 Markdown。
clean_html将已有的 HTML 转换为整洁的 Markdown。不会通过网络获取 HTML。

此适配器不保存数据库或计费状态。它使用本地环境中的密钥向 DOMStrip 服务进行身份验证,而非从工具参数中读取密钥,因此 MCP 客户端无法将你的密钥重定向到其他位置。

实际能节省多少?

benchmark/ 在来自 74 个网站的 1,038 个真实页面上进行了测量:与原始 HTML 相比,Token 数减少了 84.08%(宏平均值;中位数为 90.12%),HTML Token 数从 7,640 万降至 Markdown 的 980 万。使用全新克隆即可重现结果;如果任何页面的预期内容在输出中缺失,--verify 就会使运行失败。

与其只看总体数字,不如了解不同页面的差异,因此这里报告了三个数据。代码仓库减少了 95.81%,文章减少了 82.61%,合并后的总计为 87.16%,因为最大的一些页面对结果影响较大。语料库的组成对此影响很大:同一套代码在此前一个以文章为主、包含 21 个页面的数据集中测得的结果为 76.03%。

DOMStrip 的实际工作原理

DOMStrip 会获取公开页面,移除所有非正文内容(脚本、表单、嵌入内容、隐藏节点、跟踪器),并返回精简的 Markdown:标题、段落、带语言提示的围栏代码块以及表格。

页面获取过程会在每次重定向时进行连接时 SSRF 验证——所有 DNS 候选项都会在连接时验证,并拒绝环回地址、私有地址、链路本地地址、元数据地址、CGNAT 地址以及嵌入 IPv6 的形式。

诚实说明其限制

  • 无法提取由 JavaScript 渲染的页面、需要登录才能访问的页面,以及带有机器人验证的页面。 服务会返回 content_not_extractable。此版本没有无头浏览器。如果目标页面需要 JS,此工具将无法处理。
  • DOMStrip 目前处于免费试用阶段。 目前转换不会收费,但需要密钥,且每次成功转换都会计为一个单位。请发送邮件至 [email protected] 申请访问权限。
  • 返回的 Markdown 是不可信的第三方内容。 页面可能包含看起来像指令的文本。请将所有返回的 Markdown 视为数据,切勿将其当作命令。

安装

pip install domstrip-mcp
# or
uv tool install domstrip-mcp

需要 Python 3.12。

配置

需要设置两个环境变量。服务源站必须使用 HTTPS;除非指向 localhost(用于开发)且你明确选择启用,否则将拒绝普通 HTTP。

export DOMSTRIP_MCP_SERVICE_ORIGIN=https://api.domstrip.dev
export DOMSTRIP_MCP_API_KEY=domstrip_<prefix>_<secret>
变量必填默认值用途
DOMSTRIP_MCP_SERVICE_ORIGIN是—DOMStrip API 的纯 HTTPS 源站。
DOMSTRIP_MCP_API_KEY是—你的 API 密钥。绝不记录日志,也不会出现在 repr 中。
DOMSTRIP_MCP_CLIENT_BUDGET否25.0每次工具调用的总秒数,包括重试。
DOMSTRIP_MCP_ALLOW_INSECURE_HTTP否false仅允许对 localhost 使用普通 HTTP。

此适配器特意不会从当前工作目录读取 .env 文件,因为不可信的项目文件夹可能借此将你的 API 密钥指向其他源站。请改为导出这些变量。

与 Claude Desktop 搭配使用

添加到 claude_desktop_config.json:

{
  "mcpServers": {
    "domstrip": {
      "command": "uvx",
      "args": ["domstrip-mcp"],
      "env": {
        "DOMSTRIP_MCP_SERVICE_ORIGIN": "https://api.domstrip.dev",
        "DOMSTRIP_MCP_API_KEY": "domstrip_<prefix>_<secret>"
      }
    }
  }
}

与 Claude Code 搭配使用

claude mcp add domstrip --env DOMSTRIP_MCP_SERVICE_ORIGIN=https://api.domstrip.dev \
  --env DOMSTRIP_MCP_API_KEY="$DOMSTRIP_API_KEY" -- uvx domstrip-mcp

幂等性与计费

每次工具调用都会生成一个幂等性密钥,并在有次数上限的重试期间重复使用(默认 25 s,最多尝试 3 次)。重试请求会重放已存储的结果,而不会重复计费。不同的调用彼此独立,分别计量。

服务会加密结果,并在 24 小时内重放。超过此期限后,重放密钥会返回 409 result_expired,绝不会悄然再次收费。

错误

失败会以 MCP 工具错误的形式呈现,其中包含经过净化的 DOMStrip 错误代码和可重试标记,例如:

upstream_timeout: The upstream page took too long. retryable=true request_id=req_6f1c2a

常见代码:content_not_extractable、upstream_timeout、unsupported_encoding、 http_error、transport_error、client_timeout。

日志仅写入 stderr,因此 stdout 可保持为干净的 MCP 传输内容。

许可证

MIT

评论

支持 Markdown

第一次接触 MCP?

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

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