ui-extractor

ui-extractor

MCP server for extracting UI components, design tokens, and patterns from websites and generating production-ready React, Vue, and HTML components.

Category
Visit Server

README

UI Extractor

Extract UI components, design tokens, and patterns from any website. Generate production-ready React, Vue, and HTML components. Includes CLI and MCP server for AI agent integration.

Status: Active License: MIT

Table of Contents

Features

  • Extract — DOM, CSS variables, computed styles, images, screenshots (full page, viewport, mobile, sections, components)
  • Analyze — Pattern detection, design system extraction (colors, spacing, radius, fonts), component classification
  • Spec — Generate component specifications (props, states, accessibility, responsive breakpoints)
  • Generate — Output HTML, React, or Vue components with CSS/SCSS/Tailwind
  • Pipeline — Full extract → analyze → spec → generate in one command
  • Learn — Save any site as a reference for future regeneration
  • MCP Server — Integrate with Cursor, Claude, Windsurf, VS Code

Tech Stack

  • Language — TypeScript (ESM)
  • Runtime — Node.js 20+
  • Package Manager — pnpm 9+
  • Browser Automation — Playwright
  • CLI Framework — Commander.js
  • MCP SDK — @modelcontextprotocol/sdk
  • Testing — Vitest
  • Linting — ESLat 9+ with custom rules (STD-DOC-002, STD-DOC-003)

Getting Started

Prerequisites

  • Node.js 20 or higher
  • pnpm 9 or higher

Installation

git clone https://github.com/stsgs1980/ui-extractor.git
cd ui-extractor
pnpm install

Build

pnpm build

Run CLI

# Full pipeline: extract + analyze + spec + generate
pnpm --filter @ui-extractor/cli start pipeline https://ui.shadcn.com --component button --format react

# Extract only
pnpm --filter @ui-extractor/cli start extract https://ui.shadcn.com --screenshot

# Analyze only
pnpm --filter @ui-extractor/cli start analyze https://ui.shadcn.com

# Generate from URL
pnpm --filter @ui-extractor/cli start generate https://ui.shadcn.com --component button --format react

# Learn a site for later use
pnpm --filter @ui-extractor/cli start learn https://ui.shadcn.com --save shadcn-ui

# List saved references
pnpm --filter @ui-extractor/cli start references

# Generate from saved reference
pnpm --filter @ui-extractor/cli start generate-ref shadcn-ui --format vue

# Screenshots
pnpm --filter @ui-extractor/cli start screenshot https://ui.shadcn.com --types full,viewport,sections,components

# Compare two sites
pnpm --filter @ui-extractor/cli start compare https://ui.shadcn.com https://vercel.com

Run MCP Server

Add to your MCP config (Cursor, Claude Desktop, Windsurf, VS Code):

{
  "mcpServers": {
    "ui-extractor": {
      "command": "node",
      "args": ["packages/mcp/src/server.js"],
      "cwd": "/path/to/ui-extractor"
    }
  }
}

Then in Cursor:

@ui-extractor uix_pipeline https://ui.shadcn.com --component button --format react

Architecture

Monorepo with three packages:

  • packages/core — Core library (extract, analyze, spec, generate, pipeline, learn)
  • packages/cli — Command-line interface
  • packages/mcp — MCP server for AI agent integration

Data flow: URL → Playwright extraction → Analysis (design system, components, patterns) → Spec generation → Code generation (React/Vue/HTML).

Project Structure

  • packages/core/src/ — Core modules (extract.js, analyze.js, spec.js, generate.js, pipeline.js, index.js)
  • packages/cli/src/ — CLI entry point (index.js)
  • packages/mcp/src/ — MCP server (server.js)
  • docs/ — Documentation (agent-workflow.md, teardown-method.md, teardown-cheatsheet.md)
  • eslint-rules/ — Custom ESLint rules (unicode-policy, code-block-language)
  • eslint-processors/ — Custom ESLint processors (markdown-snippets)

Scripts

Script Description
pnpm dev Run CLI in watch mode
pnpm build Build all packages
pnpm test Run tests with Vitest
pnpm eslint . Lint all files
pnpm mcp Start MCP server
pnpm cli Run CLI

Configuration

Screenshot Types

  • full — Full page screenshot
  • viewport — Viewport only
  • mobile — Mobile viewport (375px)
  • sections — Per-section screenshots
  • components — Per-component screenshots
pnpm --filter @ui-extractor/cli start extract https://example.com --screenshot --screenshot-types full,viewport,sections,components

MCP Tools

  • uix_pipeline — Full pipeline
  • uix_extract — Extract UI data
  • uix_analyze — Analyze patterns and design system
  • uix_spec — Generate component specification
  • uix_generate — Generate component code
  • uix_learn — Learn and save reference
  • uix_references — List references
  • uix_generate_from_reference — Generate from saved reference
  • uix_compare — Compare two URLs

Agent Rules

Any AI agent working on this project MUST read and follow AGENT_RULES.md before performing any operations.

License

MIT


Built with: Node.js 20 + TypeScript + Playwright + Commander.js

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured