🎩 You're Invited:Meet the Socket team at Black Hat in Las Vegas, August 3-6.RSVP
Sign In

tapsite

Package Overview
Dependencies
Maintainers
1
Versions
10
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

tapsite

MCP server for web intelligence extraction — design systems, accessibility audits, competitive analysis, and migration prep

Source
npmnpm
Version
3.1.0
Version published
Weekly downloads
30
-28.57%
Maintainers
1
Weekly downloads
 
Created
Source

tapsite

Design intelligence toolkit — an MCP server + CLI for extracting design systems, auditing accessibility, and analyzing any website. Works with Claude, Cursor, Windsurf, and any MCP-compatible AI agent. Login once to MFA-protected sites and extract forever — sessions persist across tool calls.

Installation

# Quick start (no install required)
npx tapsite

# Or install globally
npm install -g tapsite
npx playwright install chromium
npx playwright install-deps chromium

Add to your Claude config (~/.claude/.mcp.json):

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

First run: Playwright will install the Chromium browser automatically if not already present. This is a one-time ~150MB download.

Showcase

Click any image to see the full interactive page:

tapsite Product Overview

43 extraction tools for web design analysis — colors, fonts, performance, accessibility, content, forms, assets, and more. Works with any MCP-compatible AI agent.

Design System ExtractionDeep Intelligence
Showcase IShowcase II
Live-extracted colors, fonts, perf, breakpoints, and animations from Stripe, Linear, and VercelAccessibility audits, content extraction, form analysis, asset inventory, component detection

Real World Workflows

Four real-world workflows — design system extraction, competitive research, accessibility auditing, and asset migration prep.

Development setup (from source)

git clone https://github.com/mgriffen/tapsite
cd tapsite
npm install
npx playwright install chromium
npx playwright install-deps chromium

MCP config pointing to local source:

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

Recommended — set transcript cleanup to prevent credentials lingering on disk:

"cleanupPeriodDays": 1

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.

Quick start

# Build the image
docker build -t tapsite .

# Run (stdio-attached, extraction results saved to ./output)
docker compose up

Extraction results from all tapsite_export* tools are written to ./output on your host via the volume mount in docker-compose.yml.

Limitations in Docker

tapsite_login_manual is not available in Docker. It opens a headed (visible) browser window, which requires a display. Standard containers are headless-only.

Authenticated sessions in Docker

If you need to extract from a site that requires login:

  • Run tapsite locally (outside Docker):

    # In Claude, call:
    tapsite_login_manual   # opens headed Chromium, log in + complete MFA manually
    tapsite_login_check    # confirm session is authenticated
    
  • Copy your profiles/ directory into the project root. The session cookies are stored there.

  • Mount profiles/ in docker-compose.yml (uncomment the line):

    volumes:
      - ./output:/app/output
      - ./profiles:/app/profiles   # ← uncomment this
    
  • Run the container. It picks up the saved session automatically. No login needed.

Security note: profiles/ contains live session cookies. Treat it like a password — don't commit it to version control (it's already in .gitignore), and restrict access to the volume on shared systems.

Tools (37)

Session

ToolDescription
tapsite_loginAutomated login (username + password, no MFA)
tapsite_login_manualOpen headed browser for manual login + MFA
tapsite_login_checkVerify authenticated session state
tapsite_inspectNavigate to URL and perform full DOM inspection (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

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

Design Tokens

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

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

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

Network Intelligence

ToolDescription
tapsite_capture_networkCapture network requests during a page load
tapsite_extract_api_schemaInfer API schema from observed network traffic
tapsite_extract_stackDetect frontend framework, libraries, and tech stack

Multi-page

ToolDescription
tapsite_crawlCrawl multiple pages from a start URL
tapsite_diff_pagesCompare two pages and report differences

Advanced

ToolDescription
tapsite_extract_animationsExtract CSS animations and transitions
tapsite_extract_a11yAccessibility audit (ARIA, roles, contrast issues)
tapsite_extract_darkmodeDetect dark mode support and extract dark palette
tapsite_extract_perfExtract performance metrics (Core Web Vitals, resource sizes)
tapsite_extract_iconsDetect icon libraries and extract icon usage
tapsite_extract_contrastAudit WCAG contrast ratios between text and background

Export

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)

Workflows (Presets)

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

Security

Prompt injection defense

When extracting content from untrusted web pages, tapsite applies two layers of protection:

  • Hidden element filtering — Extractors skip elements with display:none, visibility:hidden, opacity:0, zero-size, and clip-hidden styling. This prevents invisible text (a common prompt injection vector) from entering extraction results. Applied to content, links, forms, and accessibility extractors.

  • Output sanitization — All text returned to the LLM is scanned for prompt injection patterns: instruction overrides, role hijacking, exfiltration attempts, and tool manipulation. Matches are flagged inline as [INJECTION_DETECTED] rather than silently dropped, so both the LLM and user can see what was caught.

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 Anthropic's servers or local transcripts.

License

MIT

Project structure

src/
  server.js        — MCP server entry point
  browser.js       — shared Chromium context (ensureBrowser, closeBrowser)
  helpers.js       — shared helpers (navigateIfNeeded, summarizeResult, indexPage)
  sanitizer.js     — prompt injection detection
  extractors.js    — browser-context extraction functions (page.evaluate())
  exporter.js      — file export: JSON, Markdown, HTML, CSV
  inspector.js     — DOM extraction for inspect/navigate tools
  cli.js           — standalone CLI (login, inspect, session)
  config.js        — paths and defaults
  tools/
    session.js     — login, navigate, inspect, screenshot, act, scroll, run_js, close
    extraction.js  — all extract_* and detect_* tools
    network.js     — capture_network, extract_api_schema, detect_stack
    multipage.js   — crawl, diff_pages
    export.js      — export, export_design_report
profiles/          — browser state / session cookies (gitignored)
output/            — export results (gitignored)

Output formats

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

Keywords

mcp

FAQs

Package last updated on 24 Mar 2026

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts