Token导航 LogoToken导航TokenDH.com
Fetch Crawl MCP logo
运维云端未说明官方级别未说明来源级核验

Fetch Crawl MCP

MCP Server

一个用于抓取、爬取和分析网页的服务器工具,支持29种功能,包括SEO审计、内容提取、性能检查和跟踪审计等。

工具数

29

提示词数

0

GitHub Stars

0

资源数

0
网页爬取TypeScriptClaude内容提取Claude DesktopClaude

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

GeorgesAdSim

提供方

GeorgesAdSim

最后核验

2026/5/17 20:20

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

详细介绍

获取爬网MCP v4.2.0

MCP(模型上下文协议)服务器,用于抓取、爬网和分析网站。29个工具可从Claude Code、Claude Desktop或任何兼容的MCP客户端使用。

安装

npm install
npm run build

工具需要Puppeteer screenshot, check_performance, check_mobile, check_datalayer, intercept_tracking_requests, audit_tracking 以及反机器人回退。Chromium在 npm install.

使用

stdio(默认)

npm start
# ou
node build/index.js

超文本传输协议

npm run start:http
# ou
node build/index.js --http --port 3001

配置客户端MCP

{
  "mcpServers": {
    "fetch-crawl-mcp": {
      "command": "node",
      "args": ["/path/to/fetch-crawl-mcp/build/index.js"]
    }
  }
}

标准响应格式

所有工具返回一种格式 StandardResponse 统一:

{
  url: string;           // URL demandée
  finalUrl: string;      // URL finale (après redirections)
  status: number;        // Code HTTP
  score?: number;        // Score 0-100 (si applicable)
  summary: string;       // Résumé en une phrase
  issues: ToolIssue[];   // Problèmes détectés (severity, element, message, evidence?)
  recommendations: [];   // Recommandations d'amélioration
  meta: {
    fetchedWith: "fetch" | "puppeteer";
    fallbackUsed: boolean;
    partial: boolean;     // true si le contenu a été tronqué (> 5MB)
    durationMs: number;
    timestamp: string;
  };
  data: {};              // Données spécifiques à l'outil
}

反机器人检测

Fetcher集成了先进的反机器人检测系统:

  • 自动检测 :Cloudflare、DataDome、Akamai、Sucuri、PerimeterX
  • 隐形木偶 :补丁navigator.webdriver、插件、语言、平台、硬件加密货币、设备内存、chrome.runtime、通知权限、WebGL渲染器
  • 自行撤退 :如果即使使用Puppeteer,站点仍然被阻止,则返回403状态和信息 antiBot: { blocked, provider, confidence } 联合国坠机事件
  • 启动优化的ARGS : --disable-blink-features=AutomationControlled, --disable-features=IsolateOrigins,site-per-process, --window-size=1920,1080

工具(29)

抓取和爬行

fetch_page

获取网页并以指定格式返回其内容。

参数类型缺陷描述
url字符串*必需的*获取器的URL
format"html""text""markdown""markdown"分拣格式
headers对象-自定义HTTP头

归来 :页面内容、标题、描述、内容类型。

______________________________________________________________________

crawl_site

通过跟踪内部链接递归地抓取站点。

参数类型缺陷描述
url字符串*必需的*起始URL
maxDepth数字(0-10)2 最大深度(0=仅起始页)
maxPages数字(1–500)50 最大页数
delay数字(0-10000)300 请求之间的延迟(毫秒)(±30%抖动)
concurrency数字(1-10)3并行生成的页面
respectRobotsTxt布尔值true尊敬的robots.txt抓取延迟
includePatternstring--正则表达式:爬虫无法匹配URL
excludePatternstring--正则表达式:排除匹配的URL

得分 :基于错误页面的比率(状态>=400)。

超时 :爬行在5分钟后干净停止(abortedEarly: true).

归来 :爬网页面列表,包括标题、状态、深度、找到的链接+ crawlStats: { startedAt, finishedAt, durationSeconds, pagesPerSecond, abortedEarly, abortReason }.

______________________________________________________________________

screenshot

通过Puppeteer捕获网页截图。支持PNG/JPEG、自定义视口、全页捕获、CSS选择器等待和cookie横幅关闭。

参数类型缺陷描述
url字符串*必需的*要捕获的URL
width号码(320–3840)1280 视口宽度
height号码(240-2160)800高级视口
fullPage布尔值false捕获整个可滚动页面
format"png""jpeg""png"d图像格式
quality数字(1–100)80质量(仅限JPEG)
waitForSelector字符串-捕获前等待的CSS选择器
dismissCookies布尔值false尝试关闭Cookie横幅

罗伯斯 :全局木偶超时,如果完整页面>900KB,则自动重新压缩JPEG,失败时返回干净错误。

______________________________________________________________________

SEO审计

audit_onpage

页面完整性审计技术:标题、元描述、规范、机器人、语言、hiérarchie H1-H6、图像属性、开放图、推特卡、JSON-LD。

参数类型缺陷描述
url字符串*必需的*要审核的URL

得分 :0-100基于问题(错误=-15pts,警告=-5pts)。

归来 :完整的SEO数据 data{},严重性问题,建议。

______________________________________________________________________

check_indexability

检查页面是否可被搜索引擎索引。

参数类型缺陷描述
url字符串*必需的*页面URL

分析 :

  • 状态HTTP
  • 元机器人(noindex、nofollow、none、noarchive、nosnippet)
  • X-Robots-Tag HTTP标头
  • Canonical(自引用?跨域?)
  • Hreflang/rel备用
  • 在网站地图中的存在

得分 :-40个noindex,-30个状态!=200,-20在其他地方是规范的,-10缺少站点地图。

归来 :判决 indexable: boolean 有详细的理由。

______________________________________________________________________

check_structured_data

提取并验证页面的结构化数据。

参数类型缺陷描述
url字符串*必需的*要分析的URL

提取 :

  • JSON-LD (包括 @graph)按类型验证:产品、组织、本地业务、面包屑列表、文章、新闻文章、博客文章
  • 微数据 (项目范围/项目类型/项目道具)
  • 开放图谱 (以及:\*)
  • 推特卡 (推特:\*)

得分 :-20如果没有JSON-LD,-10如果没有OG,-10如果没有Twitter卡,-15每个无效模式。

______________________________________________________________________

check_robots_txt

分析站点的robots.txt并检查站点地图的一致性。

参数类型缺陷描述
url字符串*必需的*网站URL

分析 :

  • 用户代理完全解析(允许+不允许)
  • 爬行延迟
  • 声明的站点地图与实际可访问的站点地图
  • 检测未声明的站点地图(/sitemap.xml,/1-index-sitemap.xml)

得分 :-30如果不存在,-15如果没有声明站点地图,-10每个站点地图不可访问或未声明。

______________________________________________________________________

内容提取

extract_content

提取页面的结构化内容:标题、链接、图像、纯文本和统计信息。

参数类型缺陷描述
url字符串*必需的*URL源

归来 :标题、描述、语言、标题、链接(最多100个)、图像(最多50个)、文本内容(最多10000个字符)、统计数据。

______________________________________________________________________

extract_links

通过类型筛选从页面中提取所有链接。

参数类型缺陷描述
url字符串*必需的*URL源
type"all""internal""external""all"按类型筛选

归来 :与href、text、rel、isinternal、isnofollow的唯一链接。

______________________________________________________________________

extract_with_schema

基于可配置CSS选择器的结构化提取,内置预设。

参数类型缺陷描述
url字符串*必需的*URL源
schema对象-提取模式(见下文)
fallbackSelectors对象-如果主体失败,则回退选择器
preset"ecommerce-product""article""local-business""recipe"-内置预设

模式 :每个键都是一个字段,值为 { selector, attribute?, multiple?, transform? }.

{
  "productName": { "selector": "h1.product-title", "transform": "text" },
  "price": { "selector": ".product-price .current", "transform": "number" },
  "images": { "selector": ".product-gallery img", "attribute": "src", "multiple": true },
  "description": { "selector": ".product-description", "transform": "html" }
}

转型 : text (innerText), html (innerHTML), number (parseFloat), trim (文本修剪), href (属性href)。

集成预设 :

  • ecommerce-product :productName,价格,旧价格,货币,图片,描述,sku,品牌,可用性,面包屑,评论计数
  • article :标题、作者、发布日期、内容、类别、标签、阅读时间(自动计算)
  • local-business :姓名、地址、电话、电子邮件、工作时间、坐标、评级、评论计数
  • recipe :标题、准备时间、烹饪时间、份量、配料、说明、卡路里、图片

preset 外星人 schema 如果提供,模式覆盖预设字段。

得分 : (fieldsFound / fieldsTotal) * 100.

归来 : data.extracted (数据), fieldsFound, fieldsTotal, fieldsMissing, usedFallback, preset.

______________________________________________________________________

parse_sitemap

解析sitemap.xml(或自动检测)。支持站点地图索引。

参数类型缺陷描述
url字符串*必需的*站点地图URL或站点根

得分 :-20解析错误,-5如果截断。

归来 :输入LOC、LASTMOD、CHANGEFREQ、优先级(最大500)。

______________________________________________________________________

技术检查

check_links

检查页面上的所有链接是否存在断开的链接(404、超时、错误)。

参数类型缺陷描述
url字符串*必需的*要检查的URL
timeout数量(1000-30000)5000留置权超时
concurrency数字(1-20)3并行检查的链接
delay数字(0-5000)200 批处理之间的延迟(±30%抖动)

得分 :基于断开链接/总数的比率。

______________________________________________________________________

check_redirect_chain

遵循逐跳重定向链。

参数类型缺陷描述
url字符串*必需的*要跟踪的URL
maxRedirects数字(1-30)10最大重定向次数

得分 :100表示0-1重定向,80表示Si 2-3,60表示Si>3,0表示Boucle。

检测 :重定向循环、长字符串(>3)、HTTP→HTTPS升级。

______________________________________________________________________

check_performance

通过具有移动或桌面配置文件的Puppeter测量性能指标。

参数类型缺陷描述
url字符串*必需的*要审核的URL
device"mobile""desktop""mobile"Profil(手机:375x812+节流,台式机:1280x800)

度量 :TTFB、FCP、LCP、DOM内容加载、完全加载、网络请求、传输字节、按类型划分的资源。

分数(0-100) :LCP(40%)、FCP(35%)、TTFB(25%),基于Web Vitals阈值。

______________________________________________________________________

check_mobile

通过Puppeter和ViewPort iPhone(375x812)进行移动兼容性审核。

参数类型缺陷描述
url字符串*必需的*要检查的URL

核查 :元视口,水平滚动,字体\` 无)

  • 存在 ` GTM回落 `
  • 身份证重复(重复计算)

得分 :-15如果没有跟踪,-5通过警告(缺少noscript、重复、错误位置)。

______________________________________________________________________

check_datalayer

检查 window.dataLayer 通过Puppeter运行时。检查存在、内容并检测可疑模式。

参数类型缺陷描述
url字符串*必需的*要检查的URL
wait_ms数字(0-5000)2000数据层读取前加载后的等待时间

核查 :

  • window.dataLayer 存在并包含事件
  • window.google_tag_manager chargé(运行时GTM)
  • window.gtag 是一个函数
  • 启动GTM后数据层重新定义检测(模式可疑)

超时 :30秒(木偶戏)。

______________________________________________________________________

intercept_tracking_requests

在通过Puppeter加载页面时拦截跟踪网络请求(GA4、GTM、GTAG)。

参数类型缺陷描述
url字符串*必需的* 要监视的URL
wait_ms数字(0-8000)3000加载后捕获延迟点击的等待时间

截获的请求 :

  • google-analytics.com/g/collect → 点击GA4
  • analytics.google.com/g/collect → 点击GA4替代品
  • googletagmanager.com/gtm.js →加载GTM
  • googletagmanager.com/gtag/js →加载GTAG
  • stats.g.doubleclick.net →点击通用分析(已弃用)

解析GA4 :事件名称(en),测量ID(tid),协议版本(v).

得分 :-15如果没有命中GA4,-15如果检测到UA,-5通过警告(重复,多ID)。

超时 :45秒(木偶戏)。

______________________________________________________________________

audit_tracking

完整审计跟踪:执行 check_gtm_snippet, check_datalayerintercept_tracking_requests 并行,然后生成统一报告。

参数类型缺陷描述
url字符串*必需的*要审核的URL

融洽 :

  • 总分(加权平均:GTM 30%,数据层30%,拦截40%)
  • severity_summary :按级别计数(关键、警告、正常)
  • diagnosis :交叉诊断短语(例如:“GTM存在,但未发送GA4命中→检查触发器”)
  • 3个子工具的完整数据

______________________________________________________________________

多页比较

compare_pages

比较12个SEO标准上的两个并排网页。

参数类型缺陷描述
urlA字符串*必需的* 第一个URL
urlB字符串*必需的* 第二个URL
includeScreenshot布尔值false捕获每个页面的屏幕截图

比较标准 :标题、元描述、H1、标题结构、字数、内部链接、外部链接、图像alt、开放图、推特卡、JSON-LD、规范。

归来 :每页个人评分(0-100),按标准与获奖者的比较表,可选截图。

______________________________________________________________________

audit_site_batch

批量审核站点的多个页面,并聚合结果。

参数类型缺陷描述
url字符串*必需的*网站URL
source"sitemap""crawl""urls""sitemap"URL来源
urlsstring\[\]--列出'URLs(si-source=“URLs”)
limit数字(1-200)30 最大页数
concurrency数字(1-5)2并行审核的页面
delay数字(0-5000)500 批之间的延迟

超时 :批次在5分钟后干净停止 meta.partial = true.

回退站点地图 :si /sitemap.xml 不返回URL,自动尝试 /1_index_sitemap.xml.

聚合 :

  • 平均和中位数分数
  • 分布(优秀/良好/中等/差)
  • 按频率排序的前10个问题
  • 快速获胜(页面>60分,1-2个简单固定)
  • 评论页面(10个最差分数)
  • executionStats:开始时间,结束时间,持续时间秒,页数每秒,超时时间

______________________________________________________________________

detect_orphan_pages

通过交叉站点地图、爬网和内部链接图检测孤立页面。

参数类型缺陷描述
url字符串*必需的*网站URL
maxCrawlPages数字(1–300)100为图形爬网的页面
crawlDepth数字(1-5)3 爬行深度
concurrency数字(1-5)3 并行页面
delay数字(0-5000)300 批处理之间的时间

分类 (6类):

  • orphan_in_sitemap :在站点地图中,0个内部链接(关键)
  • orphan_not_in_sitemap :站点地图外,0-1内部链接(隔离)
  • sitemap_only :在站点地图中,爬网无法到达
  • crawl_only :通过爬网找到,不在站点地图中
  • deep_page :仅达到深度>=4
  • well_linked :站点地图+抓取+>=2个留置权条目

得分 :-2/orpheline(最大值-40),-1/sitemap_only(最大值-20),-1/crawl_only。

归来 :统计数据(重叠站点地图/爬网)、带示例的类别、前20名中心页面(更多入站链接)、前10名评论孤儿。

______________________________________________________________________

detect_duplicate_content

检测站点上的重复和准重复内容。

参数类型缺陷描述
url字符串*必需的*网站URL
source"sitemap""crawl""urls""crawl"URL来源
urlsstring\[\]--列出'URLs(si-source=“URLs”)
limit数字(1-200)50 最大页数
concurrency数字(1-5)3 并行页面
delay数字(0-5000)300 批处理之间的时间
similarityThreshold数字(0-1)0.8近副本的相似性阈值

检测 :

  • 完全重复 :相同的标题、描述、H1(按集群分组)
  • 近乎重复 :几乎相同的标题和内容(通用词/单词相似性>阈值)
  • 优化:前3个单词分组以避免O(n²)

得分 :-5个标准杆簇精确(最大值-40),-2个标准杆组接近重复(最大值-30)。

归来 : exactDuplicates[], nearDuplicates[], uniquePages,统计数据 mostDuplicatedValue.

______________________________________________________________________

安全性、可访问性和合规性(v4.2.0)

check_security_headers

审核HTTP安全标头(HSTS、CSP、X-Frame-Options、Referrer策略、权限策略、COOP、CORP、COEP)。得分0-100平均A-F级。

参数类型缺陷描述
url字符串*必需的*要审核的URL

______________________________________________________________________

check_hreflang

验证hreflang标记:ISO 639-1代码、对等链接、与页面语言的一致性、是否存在 x-default,与Canonical一致。

参数类型缺陷描述
url字符串*必需的*要审核的URL

______________________________________________________________________

audit_content_quality

内容质量分析:多语言可读性(FR/NL/EN/DE/ES/IT)、字数、标题结构、链接密度、媒体丰富性、参与信号(TOC、常见问题解答、CTA)。

参数类型缺陷描述
url字符串*必需的*要审核的URL

______________________________________________________________________

check_accessibility

对9个类别的轻量级WCAG审计:图像alt、表单标签、语义地标、标题层次结构、链接文本质量(多语言检测FR/NL/EN/DE“单击此处”)、咏叹调、表格、媒体、对比度。

参数类型缺陷描述
url字符串*必需的*要审核的URL

______________________________________________________________________

extract_images_audit

通过Puppeteer对图像进行全面审计:采用现代格式(WebP/AVIF)、Alt文本、响应(SRCSET)、最佳尺寸、延迟加载、LCP候选、文件权重。

参数类型缺陷描述
url字符串*必需的*要审核的URL

______________________________________________________________________

check_consent_mode

Google同意模式v2审核和GDPR Cookie合规性:CMP检测(Cookiebot、OneTrust、Didomi、Axeptio等)、IAB TCF API、验证 gtag('consent', 'default'|'update'),信号分析 gcs/gcd 在点击GA4时,审核同意前放置的Cookie。

参数类型缺陷描述
url字符串*必需的*要审核的URL
wait_ms数字(0-10000)5000加载后等待CMP初始化

______________________________________________________________________

建筑

src/
├── index.ts                          # Entry point (stdio + HTTP)
├── server.ts                         # MCP server, tool registration
├── tools/
│   ├── fetch-page.ts                 # fetch_page
│   ├── crawl-site.ts                 # crawl_site
│   ├── screenshot.ts                 # screenshot
│   ├── analyze-seo.ts               # audit_onpage
│   ├── check-indexability.ts         # check_indexability
│   ├── check-structured-data.ts     # check_structured_data
│   ├── check-robots-txt.ts          # check_robots_txt
│   ├── extract-content.ts           # extract_content
│   ├── extract-links.ts             # extract_links
│   ├── extract-with-schema.ts       # extract_with_schema
│   ├── parse-sitemap.ts             # parse_sitemap
│   ├── check-links.ts              # check_links
│   ├── check-redirect-chain.ts     # check_redirect_chain
│   ├── check-performance.ts        # check_performance
│   ├── check-mobile.ts             # check_mobile
│   ├── compare-pages.ts            # compare_pages
│   ├── audit-site-batch.ts         # audit_site_batch
│   ├── detect-orphan-pages.ts      # detect_orphan_pages
│   ├── detect-duplicate-content.ts # detect_duplicate_content
│   ├── check-gtm-snippet.ts       # check_gtm_snippet
│   ├── check-datalayer.ts         # check_datalayer
│   ├── intercept-tracking-requests.ts # intercept_tracking_requests
│   └── audit-tracking.ts          # audit_tracking
└── utils/
    ├── fetcher.ts                    # HTTP fetch + stealth Puppeteer + anti-bot detection
    ├── html-parser.ts               # Cheerio-based HTML extraction
    ├── robots-parser.ts             # robots.txt parser
    ├── url-utils.ts                 # URL normalization utilities
    └── response.ts                  # StandardResponse, ToolIssue, ToolMeta, helpers

堆叠技术

  • 运行时 :Node.js(ES2022)
  • 语言 :TypeScript(严格)
  • MCP-SDK :@modelcontextprotocol/sdk
  • HTML解析 :再见
  • 浏览器自动化 :木偶(隐形模式)
  • 验证 :佐德
  • 运输 :stdio(默认)或http(express+streamablehttpservertransport)

Docker部署

快速开始

./deploy.sh

曼努埃尔

# Build TypeScript
npm run build

# Build image Docker
docker build -t fetch-crawl-mcp:latest .

# Lancer avec docker compose
docker compose up -d

# Vérifier
curl http://localhost:3001/health

配置Docker

Dockerfile 利用 node:22-slim 为木偶预先安装了Chromium。最终图像仅包含: build/ 以及生产依赖性。

环境变量默认值描述
NODE_ENVproduction Node.js环境
PUPPETEER_EXECUTABLE_PATH/usr/bin/chromium容器中铬的路径

默认资源(docker compose):2 GB RAM,1.5 CPU。

配置客户端MCP(HTTP远程)

{
  "mcpServers": {
    "fetch-crawl-mcp": {
      "url": "http://YOUR_SERVER:3001/mcp"
    }
  }
}

______________________________________________________________________

发展

npm run dev        # Watch mode avec tsx
npm run build      # Build TypeScript
npm start          # Serveur stdio
npm run start:http # Serveur HTTP (port 3001)

许可证

麻省理工学院

目录标签

目录标签

网页爬取TypeScriptClaude内容提取本地部署SEO审计性能检测跟踪分析

支持客户端

Claude DesktopClaude

接入字段

传输方式(transport,传输协议)

未说明

鉴权方式(authType,认证方式)

session

工具数量(toolCount,工具数)

29

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

未说明session部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

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

仍需确认:installCommand

来源信息

继续浏览同类 MCP