ui-extractor
MCP server for extracting UI components, design tokens, and patterns from websites and generating production-ready React, Vue, and HTML components.
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.
Table of Contents
- Features
- Tech Stack
- Getting Started
- Architecture
- Project Structure
- Scripts
- Configuration
- Agent Rules
- License
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 interfacepackages/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 screenshotviewport— Viewport onlymobile— Mobile viewport (375px)sections— Per-section screenshotscomponents— 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 pipelineuix_extract— Extract UI datauix_analyze— Analyze patterns and design systemuix_spec— Generate component specificationuix_generate— Generate component codeuix_learn— Learn and save referenceuix_references— List referencesuix_generate_from_reference— Generate from saved referenceuix_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
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
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.
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.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
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.
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.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
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.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.