ui-extractor
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@ui-extractorExtract the button component from shadcn/ui and generate a React version."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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
Related MCP server: browser-mcp
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 installBuild
pnpm buildRun 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.comRun 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 reactArchitecture
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 |
| Run CLI in watch mode |
| Build all packages |
| Run tests with Vitest |
| Lint all files |
| Start MCP server |
| 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,componentsMCP 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
This server cannot be deployed
Maintenance
Related MCP Connectors
MCP server for Mint — AI-powered QA that runs your app in a real browser on every PR.
MCP server for visual regression testing: triage a PR's UI diffs from your coding agent.
The Figma MCP server brings Figma design context directly into your AI workflow.
MCP server for building and testing AI agents with multi-model experimentation and insights.
Related MCP Servers
- AlicenseAqualityBmaintenanceDesign system MCP server. 20 tools: extract design tokens from any URL, pull from Figma or Penpot, generate React + shadcn/ui components from specs, run WCAG audits, sync tokens bidirectionally.50516 npm43MIT
- AlicenseAqualityDmaintenanceA powerful MCP server for UI designers and developers to extract, analyze, and clone website front-end code (HTML, CSS) with pixel-perfect accuracy using browser automation.113 npm3MIT
- AlicenseAqualityFmaintenanceComprehensive MCP server for end-to-end UI development, offering tools to generate components, manage design tokens, audit accessibility, autofix issues, inspect live pages, compare screenshots, and more across multiple frameworks.1311 npmMIT
- AlicenseNot gradedqualityDmaintenanceMCP server for automatic Storybook story generation, component analysis, and validation. Auto-detects React frameworks and syncs component documentation.63 npm1MIT