SPA页面Markdown提取工具

一个通过无头Chromium渲染JavaScript SPA页面并提取Markdown内容的MCP服务器工具,解决了传统爬虫无法处理客户端渲染内容的问题。

  • by XXO47OXX
  • TypeScript
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 XXO47OXX/spa-reader-mcp

使用说明

spa阅读器mcp

MCP服务器,通过无头Chromium渲染JavaScript SPA页面并提取Markdown。

传统的抓取器在SPA上失败,因为内容是在客户端呈现的。该工具启动Playwright,等待JS完成,然后使用Readability+Turndown提取干净的Markdown。

安装

npx playwright install chromium

克劳德桌面版

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

克劳德代码

claude mcp add spa-reader -- npx -y spa-reader-mcp

工具

spa_read

渲染页面并将内容提取为Markdown。

参数 类型 默认值 说明
url string -- 要读取的URL(必需)
waitForSelector string -- 要等待的CSS选择器
waitTimeout number 30000 超时(毫秒)
includeMetadata boolean true 添加YAML frontmatter
cookies array -- 用于身份验证的Cookie
headers object -- 自定义HTTP标头

spa_screenshot

JS渲染后捕获PNG屏幕截图。

参数 类型 默认值 说明
url string -- 要捕获的URL(必需)
waitForSelector string -- 要等待的CSS选择器
waitTimeout number 30000 超时(毫秒)
width 数字 1280 视口宽度
height 数字 720 视口高度
fullPage boolean false 整页捕获
cookies array -- 用于身份验证的Cookie
headers object -- 自定义HTTP标头

安全

  • SSRF保护:阻止私有/环回IP
  • 仅 http: 和 https: 允许的方案
  • 选择器注射预防
  • 内容上限为100KB

开发

pnpm install && pnpm build
pnpm test

许可证

麻省理工学院