Tapsite

io.github.mgriffen由 GitHub 账号 mgriffen 发布v4.0.1更新于 Oct 24, 2026

MCP server for web inspection, design system extraction, and accessibility audits

概览

AI 生成的概览

一个本地 MCP 服务器,让 AI 助手检查网站并提取设计系统、无障碍审计、性能数据和结构化内容。

可以做什么
打开并控制浏览器会话:导航、检查 DOM、截图、点击、填写、滚动、运行 JavaScript,并支持手动登录和 MFA。提取页面内容:表格、链接、元数据、可读文本、表单、Markdown 以及自定义 CSS/XPath/正则模式。提取设计令牌:颜色、字体、CSS 变量、间距、阴影、布局、组件和断点。审计质量:WCAG 对比度、无障碍、Core Web Vitals、安全头、深色模式、PWA 和国际化。检测技术栈:框架、动画、图标、GraphQL、AI/ML 集成、canvas、WebAssembly、Web 组件、第三方脚本和客户端存储。捕获网络流量并推断 API 模式,爬取多个页面,比较两个网站或跟踪随时间的变化。导出结果为 JSON、Markdown、HTML 报告、CSV 和截图。
适用场景
当你希望助手分析实时网站的设计系统、无障碍、性能或内容结构,比较网站或跟踪随时间的变化,或从页面(包括登录后的页面)提取结构化数据时,它很有用。
运行要求
通过 npm 本地运行(npx tapsite 或全局安装)。需要 Node.js 和 Playwright Chromium,首次运行会下载约 150MB。手动登录需要显示环境;Docker 仅支持无头模式。未声明 API 密钥或环境变量。
安装前请注意
该服务器可以在页面中执行任意 JavaScript,并将图片下载到本地输出目录。它会在 profiles 目录中存储实时会话 cookie,不应提交到版本控制。它可以在受保护的网站上使用代理轮换和反机器人规避。提取的页面内容可能包含提示注入;服务器会标记可疑模式,但不保证安全。

安装

在 SourceWeft 中

  1. 打开 控制台中的 Tapsite,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。

其他 MCP 客户端

参照 仓库 中的启动说明。

README

tapsite

[GitHub stars] [npm downloads] [License: MIT]

[tapsite — 55 Tools, One MCP Server, Total Web Intelligence]

The MCP server for web intelligence extraction. 55 tools that give AI agents the ability to understand websites — not just drive a browser, but extract structured intelligence about design systems, accessibility, performance, content, and more.

Other MCP browser tools let agents click buttons. tapsite lets agents extract a complete color palette, audit WCAG contrast ratios, diff two sites' design tokens, detect tech stacks, or pull structured data with custom CSS/XPath/regex selectors — all as structured JSON that agents can reason about.

55 Tools · 11 Categories · 4 Workflows · Multi-Format Export

Works with Claude, Cursor, Windsurf, and any MCP-compatible AI agent. LangChain/LangGraph integration coming soon.

View the full docs site →

Installation

bash
# Quick start (no install required)npx -y tapsite
# Or install globallynpm install -g tapsitenpx playwright install chromiumnpx playwright install-deps chromium

Add to your AI agent's MCP config:

json
{  "mcpServers": {    "tapsite": {      "command": "npx",      "args": ["-y", "tapsite"]    }  }}

First run: Playwright will install Chromium automatically if not already present (~150MB one-time download).

Also available on the MCP Registry and Glama.

What makes tapsite different

Other browser MCPstapsite
Click buttonsExtract full design systems
Fill formsAudit WCAG accessibility
Take screenshotsDiff sites over time
Read raw HTMLDetect tech stacks & APIs
Custom CSS / XPath / regex extraction
Anti-bot resilience & proxy rotation

Extract design systems — colors, fonts, spacing scales, breakpoints, components, shadows, icons, CSS variables, and contrast ratios from any website. Output as structured JSON or W3C design tokens.

Audit quality — accessibility scoring with WCAG contrast analysis, performance timing (Core Web Vitals), tech stack detection, dark mode support, and animation inventory.

Compare and track — diff two sites side by side, or track a single site over time with snapshot-based temporal diffs. Regressions and improvements are flagged automatically. Disk caching means crawls resume where they left off, and results are reused across sessions.

Work behind login walls — persistent browser sessions with full MFA support. A 3-tier anti-bot escalation system handles protected sites automatically — from stealth scripts to proxy rotation. Log in once manually, then extract across tool calls without re-authenticating. Credentials never enter the chat.

Tools (55)

Session (8)

ToolDescription
tapsite_login_manualOpen headed browser for manual login + MFA
tapsite_login_checkVerify authenticated session state
tapsite_inspectNavigate to URL and inspect the DOM (nav, headings, buttons, forms, tables, links)
tapsite_screenshotTake a screenshot of the current page
tapsite_interactClick or fill an indexed element from the last inspect
tapsite_scrollScroll the page
tapsite_run_jsExecute arbitrary JavaScript and return the result
tapsite_closeClose the browser session

Content Extraction (6)

ToolDescription
tapsite_extract_tableExtract a specific table as structured data
tapsite_extract_linksExtract all links with text and href
tapsite_extract_metadataExtract page metadata (title, description, OG tags, etc.)
tapsite_extract_contentExtract main readable content (article body, headings, paragraphs)
tapsite_extract_formsExtract all forms with fields, labels, and actions
tapsite_extract_markdownExtract page content as clean Markdown (raw, fit, or citations mode) with optional chunking

Custom Extraction (2)

ToolDescription
tapsite_extract_customExtract structured data using custom schemas (CSS selectors, XPath, or regex)
tapsite_extract_schema_suggestAnalyze page DOM and auto-suggest extraction schemas

Design Tokens (5)

ToolDescription
tapsite_extract_colorsExtract color palette (hex values + usage counts)
tapsite_extract_fontsExtract font families, sizes, weights
tapsite_extract_css_varsExtract CSS custom properties
tapsite_extract_spacingExtract spacing scale values
tapsite_extract_shadowsExtract box-shadow and text-shadow patterns

Visual Assets (4)

ToolDescription
tapsite_extract_imagesExtract all images with src, alt, dimensions
tapsite_download_imagesDownload images to local output directory
tapsite_extract_svgsExtract inline SVGs
tapsite_extract_faviconExtract favicon URLs and sizes

Layout Intelligence (3)

ToolDescription
tapsite_extract_layoutExtract layout tree (inline text representation)
tapsite_extract_componentsDetect repeated UI components and patterns
tapsite_extract_breakpointsExtract responsive breakpoints from CSS media queries

Quality & Compliance (7)

ToolDescription
tapsite_extract_a11yAccessibility audit (ARIA, roles, contrast issues)
tapsite_extract_contrastAudit WCAG contrast ratios between text and background
tapsite_extract_perfExtract performance metrics (Core Web Vitals, resource sizes)
tapsite_extract_securityAudit security headers (CSP, HSTS, SRI, permissions policy)
tapsite_extract_darkmodeDetect dark mode support and extract dark palette
tapsite_extract_pwaDetect PWA support (manifest, service worker, installability)
tapsite_extract_i18nExtract internationalization signals (lang, hreflang, translations)

Technology Detection (10)

ToolDescription
tapsite_extract_stackDetect frontend framework, libraries, and tech stack
tapsite_extract_animationsExtract CSS animations and transitions
tapsite_extract_iconsDetect icon libraries and extract icon usage
tapsite_extract_graphqlDetect GraphQL endpoints and introspect schemas
tapsite_extract_aimlDetect AI/ML integrations (models, embeddings, inference endpoints)
tapsite_extract_canvasExtract canvas and WebGL usage patterns
tapsite_extract_wasmDetect WebAssembly modules and usage
tapsite_extract_web_componentsDetect custom elements and shadow DOM usage
tapsite_extract_third_partyInventory third-party scripts, trackers, and services
tapsite_extract_storageAudit client-side storage (cookies, localStorage, sessionStorage, IndexedDB)

Network & API (2)

ToolDescription
tapsite_capture_networkCapture network requests during a page load
tapsite_extract_api_schemaInfer API schema from observed network traffic

Multi-page (2)

ToolDescription
tapsite_crawlCrawl multiple pages from a start URL
tapsite_diff_pagesCompare two URLs (cross-site) or track changes over time (temporal) using real extractors

Export (2)

ToolDescription
tapsite_exportExport inspection results as JSON + Markdown + HTML report + CSV tables + screenshots
tapsite_export_design_reportFull design system report: report.html (visual), design-tokens.json (W3C format), design-tokens.css (copy-pasteable :root vars)

Engine

Resilient extraction engine. Parallel browser pooling for concurrent page extraction. Persistent disk caching — crawls resume where they left off and results are reused across sessions. 3-tier anti-bot escalation with automatic proxy rotation for protected sites.

Workflows (4)

ToolDescription
tapsite_teardownComprehensive competitive design teardown (all extractors)
tapsite_auditPre-launch quality audit (a11y, contrast, perf, SEO, darkmode)
tapsite_harvestInventory all site assets (images, SVGs, forms, fonts, links)
tapsite_designsystemExtract design tokens as W3C JSON and CSS variables

LangChain / LangGraph integration (coming soon)

Native LangChain and LangGraph integration is on the roadmap. When released, it will provide a dedicated Python wrapper with tool subsets and managed session lifecycle.

Security

Prompt injection defense (hidden element filtering + output sanitization), HTTPS enforced, private IPs blocked, auth headers redacted. Credentials never enter the chat — log in manually with full MFA support.

Prompt injection defense

Extractors skip hidden elements (display:none, visibility:hidden, opacity:0, zero-size, clip-hidden) to prevent invisible text injection. All output is scanned for prompt injection patterns — instruction overrides, role hijacking, exfiltration attempts, and tool manipulation are flagged inline as [INJECTION_DETECTED].

Credential safety

Never pass credentials through the chat. Use tapsite_login_manual to open a headed browser, log in manually (including MFA), then tapsite_login_check to confirm. Credentials never touch the AI provider's servers or local transcripts.

Docker

tapsite ships a Dockerfile and docker-compose.yml for headless-only use — CI pipelines, server deployments, or anywhere you don't want a local Node.js install.

bash
docker build -t tapsite .docker compose up

tapsite_login_manual is not available in Docker (it requires a display). To use authenticated sessions in Docker, log in locally first, then mount the profiles/ directory into the container:

yaml
volumes:  - ./output:/app/output  - ./profiles:/app/profiles

Security note: profiles/ contains live session cookies. Don't commit it to version control (it's already in .gitignore).

Development setup

bash
git clone https://github.com/mgriffen/tapsitecd tapsitenpm installnpx playwright install chromiumnpx playwright install-deps chromium

MCP config pointing to local source:

json
{  "mcpServers": {    "tapsite": {      "command": "node",      "args": ["/absolute/path/to/tapsite/src/server.js"]    }  }}

Project structure

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, designsystemprofiles/          — browser state / session cookies (gitignored)output/            — export results + snapshots (gitignored)

Output formats

  • output/run-{timestamp}/ — tapsite_export: JSON, Markdown, HTML, screenshots, CSV tables
  • output/design-report-{timestamp}/ — tapsite_export_design_report: report.html, design-tokens.json, design-tokens.css
  • output/snapshots/{domain}/ — tapsite_diff_pages temporal snapshots

License

MIT

来源:README.md,提交 85ed415

工具

0
SourceWeft 尚未在沙箱中启动过该软件包,因此其工具未知。

版本历史

1
  1. v4.0.1最新Sep 16, 2026

评分

已满足适用检查项的 50%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通25 分

    请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。

  • 已声明认证方式10 分

    请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。

  • 已列出工具15 分

    请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。

  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分