mcpField
U
Unrendered: AI Crawler Checker

Unrendered: AI Crawler Checker

本地服务
missiongrowth.io商业与营销01 周前更新

关于 Unrendered: AI Crawler Checker

Unrendered: AI Crawler Checker 是用于检查网站对 AI 爬虫呈现情况的 MCP 服务,可比较原始 HTML 与浏览器渲染页面。它在本机 Google Chrome 中运行扩展的分析代码,并报告爬虫访问情况和页面差异。

主要功能

  1. 01比较原始 HTML 与渲染内容
  2. 02衡量原始 HTML 的内容覆盖率
  3. 03检查元数据与仅由 JavaScript 显示的文本
  4. 04检查机器人 robots.txt 规则及响应
  5. 05在本机 Chrome 中运行分析

适用场景

  1. 01发现无 JavaScript 爬虫无法读取的内容
  2. 02检查 AI 机器人访问及 robots.txt 规则
  3. 03排查源页面与渲染页面的差异

MCP 相关

该 MCP 服务提供 `analyze_page`,用于比较页面与原始 HTML;还提供 `check_ai_bots`,用于检查 robots.txt 判定和机器人请求结果。MCP 客户端可通过这些工具检查网址。

配置

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

mcp.json · 通用配置
{
"mcpServers": {
"missiongrowth-unrendered-ai-crawler-checker": {
"command": "npx",
"args": [
"-y",
"unrendered-mcp"
]
}
}
}
启动命令npx -y unrendered-mcp

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

安装包
npmunrendered-mcp0.1.4

工具

还没有获取到工具列表

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

详细介绍

unrendered-mcp:AI 爬虫检测器 MCP 服务

一个 MCP 服务,可向 AI 助手提供 Unrendered Chrome 扩展的分析结果:对比不运行 JavaScript 的爬虫收到的内容(原始 HTML)与浏览器渲染出的页面。

它不会重新实现分析逻辑。扩展自身的快照代码(src/content/snapshot.ts)、analyze、robots.txt 解析器和机器人分类器会被打包,并在你安装的 Google Chrome 中原样运行。

安装

需要 Node 20 或更高版本,以及 Google Chrome。不会下载浏览器。

npx -y unrendered-mcp
Claude Code
claude mcp add unrendered -- npx -y unrendered-mcp
Claude Desktop

添加到 claude_desktop_config.json:

{
  "mcpServers": {
    "unrendered": {
      "command": "npx",
      "args": ["-y", "unrendered-mcp"]
    }
  }
}

如果缺少 Chrome,工具会返回相应错误。UNRENDERED_CHROME_CHANNEL 用于选择其他 Chromium 渠道(默认为 chrome)。

默认情况下,工具会拒绝主机为环回、私有、链路本地或多播地址,或解析到此类地址的 URL,因为 URL 来自可能读取过恶意页面的模型。设置 UNRENDERED_ALLOW_PRIVATE_HOSTS=1 可分析本地开发服务器。Chrome 将在启用沙盒的情况下运行。

工具

analyze_page({ url })

在无头 Chrome 中加载 URL,在页面的隔离世界中获取扩展的快照(与内容脚本的行为相同),运行 analyze,并返回精简的 JSON 对象:

  • coverage:主内容(以及所有可见文本)中,其词语出现在原始 HTML 中的比例,包含词数和所用依据(main-landmark 或 outside-landmarks)
  • main_content_words:原始 HTML 中找到的词语、仅在 JSON-LD 或 hydration 数据中找到的词语,以及仅在 JavaScript 运行后出现的词语
  • missing_from_raw_html:仅在 JavaScript 运行后出现的最大文本块(经过截断,最多 15 条)
  • fields:标题、meta description、canonical、hreflang、html lang、robots meta 和 JSON-LD 的差异(最多 30 行)
  • links_only_after_javascript、text_in_raw_html_removed_by_javascript
  • gate:当原始请求返回的是质询页面(Cloudflare、AWS WAF、DataDome)、HTTP 错误、不同的 URL 或获取失败时,不会计算覆盖率,并说明原因
  • not_checked:此次运行未验证的内容
check_ai_bots({ url })

对于扩展列表中的每个机器人,返回该 URL 的 robots.txt 判定结果(包括匹配的规则和行),以及服务器在收到该机器人公开的 user-agent 请求时的响应(same、different、blocked、challenged、rate-limited、redirected-elsewhere、error),并提供 noindex 信息。没有经过验证的 user-agent 字符串的机器人、Googlebot 和 Applebot(扩展不会模拟它们),以及 Google-Extended 等控制令牌,只会得到 robots.txt 判定结果(http: "not_probed")。

运行位置

  • 所有操作都在你的机器上运行。每次调用都会启动 Chrome 无头模式,并在之后关闭。
  • analyze_page 会在该 Chrome 中加载页面。页面会请求自身所需的资源,而原始 HTML 会像扩展中一样由页面自身请求三次。
  • check_ai_bots 会从 Node 顺序请求 /robots.txt 和该 URL 约 20 次,分别使用 Chrome 的 user-agent 和每个机器人的 user-agent。
  • 分析代码会在空白 Chrome 页面中运行,因为它需要浏览器 DOM 解析器。

隐私

除向你分析的网站(以及它重定向到或加载资源的地址)发送请求外,不会向任何地方发送数据。没有分析、遥测、账户,也不会存储任何内容。每次调用都会使用全新的临时 Chrome 配置文件,并在结束时丢弃。

与扩展程序已知的差异

  • 无法在不使用扩展 API 的情况下访问封闭的 shadow root,因此其中的文本会被视为未出现在渲染结果中。
  • 浏览器以无头模式运行,分辨率为 1280x720,语言区域为 en-US,且没有你的登录信息或 Cookie;用户代理是 Chrome 的用户代理,但不含 Headless 标记。
  • check_ai_bots 从 Node 发送请求,而不是从浏览器发送:TLS 指纹和部分标头与 Chrome 不同,且不会发送 Cookie(扩展程序在探测机器人时也不会发送 Cookie)。字符集回退为 utf-8,因为没有加载渲染后的页面来读取其 document.characterSet。

开发

pnpm install
pnpm build       # bundles the page scripts and the server into dist/
pnpm typecheck
pnpm parity      # compares this server with the extension's panel on 20 URLs (build the extension in the repo root first)

许可证

AGPL-3.0-only。

评论

支持 Markdown

第一次接触 MCP?

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

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