关于 tapsite
tapsite 是用于提取网站结构化信息的 MCP 服务,涵盖设计系统、无障碍、性能和技术栈。它结合多页面检查、变更比较与结果导出,面向网站团队和 AI Agent。
主要功能
- 01提取设计令牌和资源
- 02审计无障碍与性能
- 03检测技术栈和 API
- 04比较网站并追踪变化
- 05导出 JSON、Markdown、HTML 和 CSV
适用场景
- 01记录网站设计系统
- 02上线前检查无障碍状况
- 03比较竞品网站或不同版本
- 04盘点网站资源与技术
MCP 相关
tapsite 向兼容 MCP 的 Agent 提供 55 种网站检查工具,涵盖信息提取、审计、比较和导出。它支持 Claude、Cursor 和 Windsurf 等客户端。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
43收录的工具列表 · 更新于 2 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| url | string | 是 | 登录页面 URL |
| password | string | 是 | 密码 |
| username | string | 是 | 用户名 |
| submitSelector | string | 否 | 提交按钮选择器 |
| passwordSelector | string | 否 | 密码字段选择器 |
| usernameSelector | string | 否 | 用户名字段选择器 |
详细介绍
tapsite
用于提取 Web 智能信息的 MCP 服务。55 个工具让 AI Agent 能够理解网站——不只是操控浏览器,还能提取有关设计系统、无障碍性、性能、内容等方面的结构化信息。
其他 MCP 浏览器工具让 Agent 点击按钮。tapsite 则能让 Agent 提取完整的调色板、审计 WCAG 对比度、比较两个网站的设计令牌、检测技术栈,或使用自定义 CSS/XPath/正则表达式选择器提取结构化数据——所有结果均为 Agent 可用于推理的结构化 JSON。
55 个工具 · 11 个类别 · 4 个工作流 · 多格式导出
兼容 Claude、Cursor、Windsurf 及任何兼容 MCP 的 AI Agent。即将支持 LangChain/LangGraph 集成。
安装
# Quick start (no install required)
npx -y tapsite
# Or install globally
npm install -g tapsite
npx playwright install chromium
npx playwright install-deps chromium
添加到 AI Agent 的 MCP 配置中:
{
"mcpServers": {
"tapsite": {
"command": "npx",
"args": ["-y", "tapsite"]
}
}
}
**首次运行:**如果尚未安装,Playwright 会自动安装 Chromium(一次性下载,约 150MB)。
也可通过 MCP Registry 和 Glama 获取。
tapsite 的不同之处
| 其他浏览器 MCP 工具 | tapsite |
|---|---|
| 点击按钮 | 提取完整设计系统 |
| 填写表单 | 审计 WCAG 无障碍性 |
| 截取屏幕截图 | 比较网站随时间的变化 |
| 读取原始 HTML | 检测技术栈和 API |
| 自定义 CSS / XPath / 正则表达式提取 | |
| 抗机器人能力与代理轮换 |
提取设计系统——从任何网站提取颜色、字体、间距比例、断点、组件、阴影、图标、CSS 变量和对比度。以结构化 JSON 或 W3C 设计令牌格式输出。
审计质量——无障碍评分与 WCAG 对比度分析、性能计时(Core Web Vitals)、技术栈检测、深色模式支持和动画清单。
比较与跟踪——并排比较两个网站,或基于快照的时间差异跟踪单个网站的变化。自动标记回归和改进。磁盘缓存可让爬取任务从中断处继续,并在不同会话间复用结果。
访问需要登录的网站——支持完整 MFA 的持久化浏览器会话。三级抗机器人升级系统可自动处理受保护的网站,从隐身脚本到代理轮换。手动登录一次,即可在多次工具调用中持续提取内容,无需重新验证身份。凭据绝不会进入聊天内容。
工具(55 个)
会话(8 个)
| 工具 | 描述 |
|---|---|
tapsite_login_manual | 打开可视化浏览器,供用户手动登录并完成 MFA |
tapsite_login_check | 验证已认证的会话状态 |
tapsite_inspect | 导航至 URL 并检查 DOM(导航、标题、按钮、表单、表格、链接) |
tapsite_screenshot | 截取当前页面的屏幕截图 |
tapsite_interact | 点击或填写上次检查结果中的索引元素 |
tapsite_scroll | 滚动页面 |
tapsite_run_js | 执行任意 JavaScript 并返回结果 |
tapsite_close | 关闭浏览器会话 |
内容提取(6)
| 工具 | 描述 |
|---|---|
tapsite_extract_table | 将指定表格提取为结构化数据 |
tapsite_extract_links | 提取所有链接及其文本和 href |
tapsite_extract_metadata | 提取页面元数据(标题、描述、OG 标签等) |
tapsite_extract_content | 提取主要可读内容(文章正文、标题、段落) |
tapsite_extract_forms | 提取所有表单及其字段、标签和操作 |
tapsite_extract_markdown | 将页面内容提取为简洁的 Markdown(raw、fit 或 citations 模式),并支持可选的分块 |
自定义提取(2)
| 工具 | 描述 |
|---|---|
tapsite_extract_custom | 使用自定义架构(CSS 选择器、XPath 或正则表达式)提取结构化数据 |
tapsite_extract_schema_suggest | 分析页面 DOM 并自动建议提取架构 |
设计令牌(5)
| 工具 | 描述 |
|---|---|
tapsite_extract_colors | 提取配色方案(十六进制值及使用次数) |
tapsite_extract_fonts | 提取字体系列、字号和字重 |
tapsite_extract_css_vars | 提取 CSS 自定义属性 |
tapsite_extract_spacing | 提取间距比例值 |
tapsite_extract_shadows | 提取 box-shadow 和 text-shadow 样式 |
视觉资源(4)
| 工具 | 描述 |
|---|---|
tapsite_extract_images | 提取所有图片及其 src、alt 和尺寸 |
tapsite_download_images | 将图片下载到本地输出目录 |
tapsite_extract_svgs | 提取内联 SVG |
tapsite_extract_favicon | 提取 favicon URL 和尺寸 |
布局智能(3)
| 工具 | 描述 |
|---|---|
tapsite_extract_layout | 提取布局树(内联文本表示) |
tapsite_extract_components | 检测重复的 UI 组件和模式 |
tapsite_extract_breakpoints | 从 CSS 媒体查询中提取响应式断点 |
质量与合规(7)
| 工具 | 描述 |
|---|---|
tapsite_extract_a11y | 无障碍审计(ARIA、角色、对比度问题) |
tapsite_extract_contrast | 审计文本与背景之间的 WCAG 对比度 |
tapsite_extract_perf | 提取性能指标(Core Web Vitals、资源大小) |
tapsite_extract_security | 审计安全标头(CSP、HSTS、SRI、权限策略) |
tapsite_extract_darkmode | 检测深色模式支持并提取深色配色方案 |
tapsite_extract_pwa | 检测 PWA 支持情况(清单、服务工作线程、可安装性) |
tapsite_extract_i18n | 提取国际化信号(lang、hreflang、翻译) |
技术检测(10)
| 工具 | 描述 |
|---|---|
tapsite_extract_stack | 检测前端框架、库和技术栈 |
tapsite_extract_animations | 提取 CSS 动画和过渡效果 |
tapsite_extract_icons | 检测图标库并提取图标用法 |
tapsite_extract_graphql | 检测 GraphQL 端点并检查架构 |
tapsite_extract_aiml | 检测 AI/ML 集成(模型、嵌入、推理端点) |
tapsite_extract_canvas | 提取 canvas 和 WebGL 用法模式 |
tapsite_extract_wasm | 检测 WebAssembly 模块及其用法 |
tapsite_extract_web_components | 检测自定义元素和 shadow DOM 用法 |
tapsite_extract_third_party | 清点第三方脚本、跟踪器和服务 |
tapsite_extract_storage | 审计客户端存储(cookies、localStorage、sessionStorage、IndexedDB) |
网络与 API(2)
| 工具 | 描述 |
|---|---|
tapsite_capture_network | 捕获页面加载期间的网络请求 |
tapsite_extract_api_schema | 根据观察到的网络流量推断 API 架构 |
多页面(2)
| 工具 | 描述 |
|---|---|
tapsite_crawl | 从起始 URL 爬取多个页面 |
tapsite_diff_pages | 使用实际提取器比较两个 URL(跨站点),或跟踪一段时间内的变化(时序) |
导出(2)
| 工具 | 描述 |
|---|---|
tapsite_export | 将检查结果导出为 JSON + Markdown + HTML 报告 + CSV 表格 + 截图 |
tapsite_export_design_report | 完整的设计系统报告:report.html(可视化)、design-tokens.json(W3C 格式)、design-tokens.css(可直接复制粘贴的 :root 变量) |
引擎
弹性提取引擎。通过并行浏览器池并发提取页面。持久化磁盘缓存——爬取任务会从中断处恢复,结果可在不同会话间复用。针对受保护站点提供 3 级反机器人升级机制,并自动轮换代理。
工作流(4)
| 工具 | 描述 |
|---|---|
tapsite_teardown | 全面的竞品设计拆解(使用所有提取器) |
tapsite_audit | 上线前质量审计(a11y、对比度、性能、SEO、深色模式) |
tapsite_harvest | 清点站点中的所有资源(图片、SVG、表单、字体、链接) |
tapsite_designsystem | 将设计令牌提取为 W3C JSON 和 CSS 变量 |
LangChain / LangGraph 集成(即将推出)
原生 LangChain 和 LangGraph 集成已列入路线图。发布后,将提供专用的 Python 包装器,支持工具子集和托管会话生命周期。
安全性
防御提示词注入(过滤隐藏元素 + 清理输出)、强制使用 HTTPS、阻止私有 IP、隐藏认证标头。凭据绝不会进入聊天——可在完整支持 MFA 的情况下手动登录。
提示词注入防御
提取器会跳过隐藏元素(display:none、visibility:hidden、opacity:0、零尺寸、裁剪隐藏),以防止注入不可见文本。所有输出都会扫描提示词注入模式——指令覆盖、角色劫持、数据泄露尝试和工具操纵会以内联方式标记为 [INJECTION_DETECTED]。
凭据安全
切勿通过聊天传递凭据。 使用 tapsite_login_manual 打开有头浏览器并手动登录(包括 MFA),然后使用 tapsite_login_check 确认。凭据绝不会接触 AI 提供商的服务器或本地会话记录。
Docker
tapsite 提供 Dockerfile 和 docker-compose.yml,用于仅无头模式——CI 流水线、服务器部署,或任何不需要本地安装 Node.js 的场景。
docker build -t tapsite .
docker compose up
Docker 中无法使用 tapsite_login_manual(它需要显示器)。若要在 Docker 中使用经过身份验证的会话,请先在本地登录,然后将 profiles/ 目录挂载到容器中:
volumes:
- ./output:/app/output
- ./profiles:/app/profiles
安全提示:
profiles/包含有效的会话 Cookie。请勿将其提交到版本控制系统(它已包含在.gitignore中)。
开发环境设置
git clone https://github.com/mgriffen/tapsite
cd tapsite
npm install
npx playwright install chromium
npx playwright install-deps chromium
指向本地源码的 MCP 配置:
{
"mcpServers": {
"tapsite": {
"command": "node",
"args": ["/absolute/path/to/tapsite/src/server.js"]
}
}
}
项目结构
src/
server.js — MCP server entry point
browser.js — shared Chromium context (ensureBrowser, closeBrowser)
helpers.js — shared helpers (safeNavigate, summarizeResult, indexPage)
sanitizer.js — prompt injection detection
diff.js — per-extractor diff logic and extractor name/args mapping
snapshots.js — temporal snapshot I/O (saveSnapshot, loadLatestSnapshot)
browser-pool.js — parallel browser context pooling
cache.js — persistent disk caching with TTL
markdown.js — HTML-to-Markdown converter (raw/fit/citations)
chunker.js — LLM-friendly text chunking (fixed/semantic/sentence)
content-filter.js — BM25 relevance filtering
anti-bot.js — block detection and tier escalation
proxy.js — proxy rotation with failure tracking
stealth-setup.js — Puppeteer-extra stealth plugin registration
extraction-strategies.js — CSS/XPath/regex flexible extractors
extractors.js — browser-context extraction functions (page.evaluate())
exporter.js — file export: JSON, Markdown, HTML, CSV
inspector.js — DOM extraction for inspect tools
cli.js — standalone CLI (login, inspect, session)
config.js — paths and defaults
tools/
session.js — login, inspect, screenshot, interact, scroll, run_js, close
extraction.js — all extract_* tools
network.js — capture_network, extract_api_schema, extract_stack
multipage.js — crawl, diff_pages
export.js — export, export_design_report
workflows.js — teardown, audit, harvest, designsystem
profiles/ — browser state / session cookies (gitignored)
output/ — export results + snapshots (gitignored)
输出格式
output/run-{timestamp}/—tapsite_export:JSON、Markdown、HTML、截图、CSV 表格output/design-report-{timestamp}/—tapsite_export_design_report:report.html、design-tokens.json、design-tokens.cssoutput/snapshots/{domain}/—tapsite_diff_pages时序快照
许可证
MIT
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。
