Prototipo · Versión preliminar: todos los servidores del registro oficial, sincronizados cada 30 minutos. Las reseñas y las cuentas llegarán en una etapa posterior.
PopNx MCPServidores MCP para quienes usan IA · explicados con palabras sencillas

MCP Design System Extractor

de freemaversión 1.3.0i★ –iSe ejecuta en tu computadora
Nombre en el registroio.github.freema/mcp-design-system-extractor

Instalar

Resumen

Descripción del creador (original en inglés)

MCP server for Storybook design systems — extract component HTML, styles and metadata.

Los tres pilares de PopNx MCP

Estos tres nunca se combinan en una sola puntuación: las opiniones, las mediciones y la popularidad son cosas distintas.

Qué puedes hacer con él

Todavía no escribimos un resumen sencillo para este. Abajo están los datos que leímos del registro.

  • Conexión: Se ejecuta en tu computadora
  • Transporte: stdio
  • Categoría: Diseño, imágenes y audio

Instalación

Elige la app de IA que usas y copia la configuración.

Antes de instalar

  • Revisiones básicas: 1 de 1 superadas
  • Se ejecuta en tu computadora con los permisos de tu usuario (archivos, red, apps).
  • Debes completar tú: STORYBOOK_URL, NODE_TLS_REJECT_UNAUTHORIZED, DEBUG

Necesitas

  • npmNode.js instalado (para el comando npx)

¿Qué app usas?

Elige tu app arriba. La recordamos, así que la próxima vez el botón dirá “Instalar en …”.

Abre Claude Desktop → Settings → Developer → Edit Config y pega esto en claude_desktop_config.json

{
  "mcpServers": {
    "design-system-extractor": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-design-system-extractor"
      ],
      "env": {
        "STORYBOOK_URL": "your-value",
        "NODE_TLS_REJECT_UNAUTHORIZED": "your-value",
        "DEBUG": "your-value"
      }
    }
  }
}

Ejecuta esto en tu terminal

claude mcp add design-system-extractor --env STORYBOOK_URL=your-value --env NODE_TLS_REJECT_UNAUTHORIZED=your-value --env DEBUG=your-value -- npx -y mcp-design-system-extractor

Completa los valores vacíos antes de ejecutarlo.

Abrir en Cursor

O copia la configuración tú

Pégalo en .cursor/mcp.json de tu proyecto, o en ~/.cursor/mcp.json

{
  "mcpServers": {
    "design-system-extractor": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-design-system-extractor"
      ],
      "env": {
        "STORYBOOK_URL": "your-value",
        "NODE_TLS_REJECT_UNAUTHORIZED": "your-value",
        "DEBUG": "your-value"
      }
    }
  }
}

Tu navegador te pide permiso para abrir la app; luego la app muestra la configuración y te pide confirmar. Los valores de las claves quedan vacíos para que los completes tú.

Abrir en VS Code

O copia la configuración tú

Pégalo en .vscode/mcp.json de tu proyecto

{
  "servers": {
    "design-system-extractor": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "mcp-design-system-extractor"
      ],
      "env": {
        "STORYBOOK_URL": "your-value",
        "NODE_TLS_REJECT_UNAUTHORIZED": "your-value",
        "DEBUG": "your-value"
      }
    }
  }
}

Tu navegador te pide permiso para abrir la app; luego la app muestra la configuración y te pide confirmar. Los valores de las claves quedan vacíos para que los completes tú.

Este se ejecuta en tu computadora, y ChatGPT solo puede conectarse a servidores en internet. Elige otra app.

Tu elección se guarda en una cookie en este dispositivo; no necesitas cuenta.

Valores que debes completar

  • STORYBOOK_URL env
    Base URL of the Storybook instance (default: http://localhost:6006)
  • NODE_TLS_REJECT_UNAUTHORIZED env
    Set to 0 to allow self-signed certificates on the Storybook host
  • DEBUG env
    Set to true for verbose logging on stderr

Esta configuración se genera a partir de la ficha del creador en el registro. Si el README dice otra cosa, sigue el README.

Qué puede hacer

Se ejecuta en tu computadora; la lista de herramientas aparece en tu app de IA después de instalarlo.

Revisiones básicasi

Revisamos información que cualquiera puede ver; no hemos leído el código. Las revisiones que no aplican no se cuentan. · Revisado el 7 nov 2026

  • ✓ Superada

    El creador coincide con el repo

    El nombre en el registro se verificó con la cuenta de GitHub freema, dueña del repo

  • … Aún sin revisar

    Sigue en mantenimiento

    Todavía no hemos leído este repo en GitHub

  • … Aún sin revisar

    Tiene licencia

    Todavía no hemos leído este repo en GitHub

  • – No aplica

    El endpoint responde

    Este se ejecuta en tu computadora; no hay endpoint en internet

  • – No aplica

    Inicio de sesión con OAuth

    Se ejecuta en tu computadora y usa ajustes locales en su lugar

  • … Aún sin revisar

    Sin instrucciones ocultas en las descripciones de herramientas

    Se ejecuta en tu computadora; solo podemos leer listas de herramientas de endpoints en internet

Comparado con otros en Diseño, imágenes y audioi

  • Más estrellas que el 0% de los otros 2193 servidores de esta categoría
  • Publicado en el registro más recientemente que el 98% de los otros 2193 servidores de esta categoría
  • Revisiones básicas iguales o mejores que el 100% de los otros 2193 servidores de esta categoría

Comparado con todos los servidores activos de esta categoría en el registro. Las estrellas solo cuentan cuando quien lo publica es dueño del repo.

Preguntas frecuentes

¿Es seguro MCP Design System Extractor?

Superó 1 de 1 revisiones básicas aplicables. No hemos leído el código. Antes de agregar una clave o un token, revisa qué acceso pide el servidor y usa una clave que tenga solo los permisos que necesitas.

¿Qué claves o códigos necesita?

El registro no indica ninguna clave obligatoria, aunque algunos servidores te piden iniciar sesión la primera vez que los usas.

¿Se ejecuta en mi computadora o en la nube?

Se ejecuta en tu computadora. Tu app de IA lo inicia cuando hace falta, y los datos no pasan por los servidores del creador (a menos que el propio servidor llame a un servicio en línea).

¿Sigue en mantenimiento?

El repo de GitHub cambió por última vez –, y la última versión (1.3.0) llegó al registro hoy.

¿Qué apps pueden usarlo?

Las apps compatibles con MCP, como Claude Desktop, Claude Code, Cursor y VS Code. También necesitas Node.js en tu computadora.

¿Qué puedo usar en su lugar?

En la misma categoría: Figma Context MCP, Claude Real Video, Figma MCP Server

Alternativas

Servidores de la misma categoría hechos por otros creadores, ordenados por estrellas.

Cómo leer una tarjeta:★ Estrellas de GitHubiTres pilares: reseñas · revisiones · usoiActualizado = fecha en que se publicó la última versión en el registroi

Give your coding agent access to your Figma data. Implement designs in any framework in one-shot.

Se ejecuta en tu computadora★ 16.165MITActualizado hace 5 meses
Instalar

Claude Real Video

de HUANGCHIHHUNGLeo

Let any LLM watch a video locally — and search everything it has ever watched.

Se ejecuta en tu computadora★ 2284MITActualizado hace 2 meses
Instalar

The Figma MCP server brings Figma design context directly into your AI workflow.

Se ejecuta en la nube★ 2152Actualizado hace 13 meses
Instalar

README del creador

Abrir el README

Copiado tal cual del repo del creador. PopNx MCP no lo ha revisado ni lo respalda. Se quitaron HTML, imágenes y scripts. Los enlaces llevan fuera de este sitio.

MCP Design System Extractor

A Model Context Protocol (MCP) server that extracts component information from Storybook design systems. Connects to Storybook instances and extracts HTML, styles, and component metadata.

Installation

Using Claude CLI (Recommended)
claude mcp add design-system npx mcp-design-system-extractor@latest \

--env STORYBOOK_URL=http://localhost:6006

With self-signed certificate:

claude mcp add design-system npx mcp-design-system-extractor@latest \

--env STORYBOOK_URL=https://my-storybook.example.com \ --env NODE_TLS_REJECT_UNAUTHORIZED=0

Using npm
npm install -g mcp-design-system-extractor

Then configure in your MCP client (see Environment Variables).

From Source
git clone https://github.com/freema/mcp-design-system-extractor.git

cd mcp-design-system-extractor npm install && npm run build npm run setup # Interactive setup for Claude Desktop

Key Dependencies

  • Puppeteer: Uses headless Chrome for dynamic JavaScript component rendering
  • Chrome/Chromium: Required for Puppeteer (automatically handled in Docker)
  • Works with built Storybook distributions

Features

  • List Components: Get all available components from your Storybook with compact mode
  • Extract HTML: Get the rendered HTML of any component (async or sync mode)
  • Search Components: Find components by name, title, category, or purpose
  • Component Dependencies: Analyze which components are used within other components
  • Theme Information: Extract design system theme (colors, spacing, typography)
  • External CSS Analysis: Fetch and analyze CSS files to extract design tokens
  • Async Job Queue: Long-running operations run in background with job tracking

Environment Variables

VariableDescriptionDefault
STORYBOOK_URLURL of your Storybook instancehttp://localhost:6006
NODE_TLS_REJECT_UNAUTHORIZEDSet to 0 to skip SSL certificate verification (for self-signed certs)1

Example with self-signed certificate:

{

"mcpServers": { "design-system": { "command": "node", "args": ["/path/to/dist/index.js"], "env": { "STORYBOOK_URL": "https://my-storybook.example.com", "NODE_TLS_REJECT_UNAUTHORIZED": "0" } } } }

Usage

See DEVELOPMENT.md for detailed setup instructions.

Available Tools (9 total)

Core Tools
  1. list_components
  • Lists all available components from the Storybook instance
  • Use compact: true for minimal output (reduces response size)
  • Filter by category parameter
  • Supports pagination with page and pageSize (default: 20)
  1. get_component_html
  • Extracts HTML from a specific component story
  • Async by default: Returns job_id, use job_status to poll for results
  • Set async: false for synchronous mode (uses timeout parameter)
  • Use variantsOnly: true to get list of available variants (sync, fast)
  • Optional includeStyles: true for CSS extraction (Storybook CSS filtered out)
  • Story ID format: "component-name--story-name" or just "component-name" (auto-resolves to default variant)
  1. search_components
  • Search components by name, title, category, or purpose
  • query: Search term (use "*" for all)
  • purpose: Find by function ("form inputs", "navigation", "feedback", "buttons", etc.)
  • searchIn: "name", "title", "category", or "all" (default)
  • Supports pagination with page and pageSize
Component Analysis Tools
  1. get_component_dependencies
  • Analyzes rendered HTML to find which other components are used internally
  • Detects React components, web components, and CSS class patterns
  • Requires story ID format: "component-name--story-name"
Design System Tools
  1. get_theme_info
  • Extracts design system theme (colors, spacing, typography, breakpoints)
  • Gets CSS custom properties/variables
  • Use includeAll: true for all CSS variables
  1. get_external_css
  • DEFAULT: Returns only design tokens + file stats (avoids token limits)
  • Extracts & categorizes tokens: colors, spacing, typography, shadows
  • Use includeFullCSS: true only when you need full CSS content
  • Security-protected: only accepts URLs from same domain as Storybook
Job Management Tools
  1. job_status
  • Check status of an async job
  • Returns: status, result (when completed), error (when failed)
  • Poll this after calling get_component_html in async mode
  1. job_cancel
  • Cancel a queued or running job
  • Returns whether cancellation was successful
  1. job_list
  • List all jobs with their status
  • Filter by status: "all" (default), "active" (queued/running), "completed"
  • Returns job list + queue statistics

Example Usage

// List all components (compact mode recommended)

await list_components({ compact: true });

// Search for components await search_components({ query: "button", searchIn: "name" });

// Find components by purpose await search_components({ purpose: "form inputs" });

// Get variants for a component await get_component_html({ componentId: "button", variantsOnly: true }); // Returns: { variants: ["primary", "secondary", "disabled"] }

// Get HTML (async mode - default) await get_component_html({ componentId: "button--primary" }); // Returns: { job_id: "job_xxx", status: "queued" }

// Poll for result await job_status({ job_id: "job_xxx" }); // Returns: { status: "completed", result: { html: "...", classes: [...] } }

// Get HTML (sync mode) await get_component_html({ componentId: "button--primary", async: false, timeout: 30000 }); // Returns: { html: "...", classes: [...] }

// Get HTML with styles await get_component_html({ componentId: "button--primary", async: false, includeStyles: true });

// Check all running jobs await job_list({ status: "active" });

// Extract theme info await get_theme_info({ includeAll: false });

// Get design tokens from CSS await get_external_css({ cssUrl: "https://my-storybook.com/assets/main.css" });

AI Assistant Usage Tips
  1. Start with discovery: Use list_components with compact: true
  2. Get variants first: Use get_component_html with variantsOnly: true
  3. Use async for HTML: Default async mode prevents timeouts on large components
  4. Poll job_status: Check job completion before reading results
  5. Search by purpose: Use search_components with purpose parameter

Example Prompts

Once connected, you can use natural language prompts with Claude:

Component Discovery:

Show me all available button components in the design system

Building New Features:

I need to create a user profile card. Find relevant components

from the design system and show me their HTML structure.

Design System Analysis:

Extract the color palette and typography tokens from the design system.

I want to ensure my new component matches the existing styles.

Component Migration:

Get the HTML and styles for the "alert" component. I need to

recreate it in a different framework while keeping the same look.

Multi-Tool Workflow:

First list all form-related components, then get the HTML for

the input and select components. I'm building a registration form.

How It Works

Connects to Storybook via /index.json and /iframe.html endpoints. Uses Puppeteer with headless Chrome for dynamic JavaScript rendering. Long-running operations use an in-memory job queue with max 2 concurrent jobs and 1-hour TTL for completed jobs.

Troubleshooting

  • Ensure Storybook is running and STORYBOOK_URL is correct
  • Use list_components first to see available components
  • For large components, use async mode (default) and poll job_status
  • Check /index.json endpoint directly in browser
  • SSL certificate errors: Set NODE_TLS_REJECT_UNAUTHORIZED=0 for self-signed certificates
  • See DEVELOPMENT.md for detailed troubleshooting

Requirements

  • Node.js 22.12+
  • Chrome/Chromium (for Puppeteer)
  • Running Storybook instance (see below for supported versions)
Supported Storybook versions

Storybook 7, 8, 9 and 10. The server reads the story index from /index.json, falling back to /stories.json, and renders stories through /iframe.html?id= — endpoints that have been stable across all four major versions.

Storybook 6 and earlier are not supported: they predate /index.json and use a different story-id scheme.

Both a dev server (npm run storybook) and a built static Storybook served over HTTP will work.

Development

See DEVELOPMENT.md for detailed development instructions.

Author

Created by Tomáš Grasl

License

MIT

Pregunta a PopNx