Prototyp · Vorschau: alle Server aus der offiziellen Registry, alle 30 Minuten synchronisiert. Bewertungen und Benutzerkonten folgen in einem späteren Schritt.
PopNx MCPMCP-Server für alle, die KI nutzen · in einfachen Worten erklärt

MCP Design System Extractor

von freemaVersion 1.3.0i★ –iLäuft auf deinem Computer
Name in der Registryio.github.freema/mcp-design-system-extractor

Installieren

Überblick

Beschreibung vom Entwickler (englisches Original)

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

Die drei Säulen von PopNx MCP

Diese drei werden nie zu einer Punktzahl zusammengefasst: Meinungen, Messungen und Beliebtheit sind verschiedene Dinge.

Was du damit machen kannst

Für diesen Server haben wir noch keine Zusammenfassung in einfacher Sprache geschrieben. Unten stehen die Fakten, die wir aus der Registry gelesen haben.

  • Verbindung: Läuft auf deinem Computer
  • Transport: stdio
  • Kategorie: Design, Bilder & Audio

Installation

Wähle die KI-App, die du nutzt, und kopiere die Einstellungen.

Bevor du installierst

  • Basischecks: 1 von 1 bestanden
  • Läuft auf deinem Computer mit den Rechten deines Benutzerkontos (Dateien, Netzwerk, Apps).
  • Das trägst du selbst ein: STORYBOOK_URL, NODE_TLS_REJECT_UNAUTHORIZED, DEBUG

Du brauchst

  • npmNode.js installiert (für den Befehl npx)

Welche App nutzt du?

Wähle oben deine App. Wir merken sie uns, damit der Button beim nächsten Mal „In … installieren“ anzeigt.

Öffne Claude Desktop → Settings → Developer → Edit Config und füge dies in claude_desktop_config.json ein

{
  "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"
      }
    }
  }
}

Führe das in deinem Terminal aus

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

Trag die leeren Werte ein, bevor du ihn startest.

In Cursor öffnen

Oder kopier die Einstellungen selbst

In .cursor/mcp.json in deinem Projekt oder in ~/.cursor/mcp.json einfügen

{
  "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"
      }
    }
  }
}

Dein Browser fragt, ob er die App öffnen darf, dann zeigt die App die Einstellungen und bittet dich um Bestätigung. Schlüsselwerte bleiben leer, damit du sie selbst einträgst.

In VS Code öffnen

Oder kopier die Einstellungen selbst

In .vscode/mcp.json in deinem Projekt einfügen

{
  "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"
      }
    }
  }
}

Dein Browser fragt, ob er die App öffnen darf, dann zeigt die App die Einstellungen und bittet dich um Bestätigung. Schlüsselwerte bleiben leer, damit du sie selbst einträgst.

Dieser Server läuft auf deinem Computer, und ChatGPT kann sich nur mit Servern im Internet verbinden. Wähle eine andere App.

Deine Auswahl bleibt in einem Cookie auf diesem Gerät; kein Konto nötig.

Werte, die du selbst einträgst

  • 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

Diese Einstellungen werden aus dem Registry-Eintrag des Entwicklers erzeugt. Wenn in der README etwas anderes steht, folge der README.

Was er kann

Läuft auf deinem Computer; die Tool-Liste erscheint nach der Installation in deiner KI-App.

Basischecksi

Wir prüfen Informationen, die jeder sehen kann; den Code haben wir nicht gelesen. Checks, die nicht zutreffen, werden nicht mitgezählt. · Geprüft am 7. Nov. 2026

  • ✓ Bestanden

    Entwickler passt zum Repo

    Der Registry-Name wurde mit dem GitHub-Konto freema bestätigt, dem das Repo gehört

  • … Noch nicht geprüft

    Wird noch gepflegt

    Dieses Repo haben wir noch nicht von GitHub gelesen

  • … Noch nicht geprüft

    Hat eine Lizenz

    Dieses Repo haben wir noch nicht von GitHub gelesen

  • – Nicht zutreffend

    Endpunkt antwortet

    Dieser Server läuft auf deinem Computer; es gibt keinen Endpunkt im Internet

  • – Nicht zutreffend

    Anmeldung mit OAuth

    Läuft auf deinem Computer und nutzt stattdessen lokale Einstellungen

  • … Noch nicht geprüft

    Keine versteckten Anweisungen in Tool-Beschreibungen

    Läuft auf deinem Computer; Tool-Listen können wir nur von Endpunkten im Internet lesen

Im Vergleich mit anderen in Design, Bilder & Audioi

  • Mehr Sterne als 0 % der anderen 2187 Server in dieser Kategorie
  • Neuer in der Registry veröffentlicht als 99 % der anderen 2187 Server in dieser Kategorie
  • Basischecks gleich gut wie oder besser als bei 100 % der anderen 2187 Server in dieser Kategorie

Verglichen mit allen aktiven Servern dieser Kategorie in der Registry. Sterne zählen nur, wenn dem Herausgeber das Repo gehört.

Häufige Fragen

Ist MCP Design System Extractor sicher?

Er hat 1 von 1 zutreffenden Basischecks bestanden. Den Code haben wir nicht gelesen. Bevor du einen Schlüssel oder Token hinzufügst, sieh nach, welche Zugriffe der Server verlangt, und nutze einen Schlüssel, der nur die Berechtigungen hat, die du brauchst.

Welche Schlüssel oder Codes braucht er?

Die Registry nennt keinen erforderlichen Schlüssel, manche Server bitten dich aber bei der ersten Nutzung, dich anzumelden.

Läuft er auf meinem Computer oder in der Cloud?

Er läuft auf deinem Computer. Deine KI-App startet ihn bei Bedarf, und die Daten laufen nicht über die Server des Entwicklers (außer der Server ruft selbst einen Onlinedienst auf).

Wird er noch gepflegt?

Das GitHub-Repo wurde zuletzt – geändert, und die neueste Version (1.3.0) kam heute in die Registry.

Welche Apps können ihn nutzen?

Apps, die MCP unterstützen, etwa Claude Desktop, Claude Code, Cursor und VS Code. Außerdem brauchst du Node.js auf deinem Computer.

Was kann ich stattdessen nutzen?

In derselben Kategorie: Figma Context MCP, Claude Real Video, Figma MCP Server

Alternativen

Server derselben Kategorie von anderen Entwicklern, sortiert nach Sternen.

So liest du eine Karte:★ GitHub-SterneiDrei Säulen: Bewertungen · Checks · NutzungiAktualisiert = neueste Version in der Registry veröffentlichti

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

Läuft auf deinem Computer★ 16.165MITAktualisiert vor 5 Monaten
Installieren

Claude Real Video

von HUANGCHIHHUNGLeo

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

Läuft auf deinem Computer★ 2.284MITAktualisiert vor 2 Monaten
Installieren

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

Läuft in der Cloud★ 2.152Aktualisiert vor 13 Monaten
Installieren

README vom Entwickler

README öffnen

Unverändert aus dem Repo des Entwicklers übernommen. PopNx MCP hat den Inhalt weder geprüft noch empfiehlt es ihn. HTML, Bilder und Skripte wurden entfernt. Links führen von dieser Website weg.

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

PopNx fragen