Zum Inhalt springen
    WingoUI
    KomponentenVorlagenDokuPreiseKI-AgentenBlogChangelog
    1. Startseite
    2. Blog
    3. UI mit KI-Agenten bauen
    4. Component Library MCP: So nutzen Agents echte Komponenten
    Read in English
    1. Blog
    2. UI mit KI-Agenten bauen
    3. Component Library MCP: So nutzen Agents echte Komponenten
    UI mit KI-Agenten bauen
    UI mit KI-Agenten bauen

    Component Library MCP: So nutzen Agents echte Komponenten

    SR
    Serban Rusu · Gründer von Wingo UI
    9. Okt. 2026 · 26 Min. Lesezeit

    Auf dieser Seite

    0%
    1. Was ist ein Component Library MCP Server?
    2. Warum erfinden Coding-Agents Komponenten?
    3. Was braucht ein Agent außer dem MCP-Server?
    4. Welche Tools sollte ein Component Library MCP Server anbieten?
      1. Die Suche sollte Slugs und je eine Zeile liefern
      2. Props brauchen ihre Defaults
      3. Halte die Tool-Ausgabe klein
      4. Fehler sollten sagen, was als Nächstes zu tun ist
      5. Die Server-Instructions liest der Agent zuerst
    5. Wie verbinde ich Claude Code, Cursor und Codex?
      1. Claude Code
      2. Cursor
      3. Codex
      4. Alle anderen Clients
    6. Was gehört in die Regeldatei?
    7. Wo passen llms.txt und Markdown-Doku hinein?
    8. Warum über eine Registry installieren statt Code einzufügen?
    9. Wie sieht eine komplette Agent-Session aus?
    10. Wie bleiben Komponenten, die ein Agent installiert hat, aktuell?
    11. Wie prüfe ich, was der Agent gebaut hat?
    12. Solltest du einen MCP-Server für dein eigenes Design System bauen?
    13. Welche Guides gehen tiefer?
    14. Wo fange ich an?
    15. Häufige Fragen
      1. Was ist ein Component Library MCP Server?
      2. Brauche ich noch eine Regeldatei, wenn ich einen MCP-Server verbinde?
      3. Reicht llms.txt ohne MCP-Server?
      4. Funktioniert der MCP-Server von Wingo UI ohne Account?
      5. Kann ich den shadcn-MCP-Server mit Wingo UI nutzen?
      6. Welche Coding-Agents können sich mit dem MCP-Server von Wingo UI verbinden?

    Kurz gesagt

    Ein Component Library MCP Server gibt Coding-Agents Tools, mit denen sie den Katalog durchsuchen, echte Props und Designregeln lesen und installierte Versionen prüfen, statt APIs aus ihren Trainingsdaten zu raten. Am besten wirkt er mit drei Begleitern: einer kurzen Regeldatei, die sagt, wann der Agent diese Tools aufruft, llms.txt und Markdown-Doku für Agents ohne MCP und einer Registry plus CLI, die die echten Dateien schreibt und ihre Versionen festhält.

    Veröffentlicht am 9. Okt. 2026

    Bitte Claude Code um eine Einstellungsseite, und du hast sie in einer Minute. Vielleicht erfindet es dabei aber einen <Button intent="primary">, den deine Bibliothek nie hatte, schreibt #3b82f6 hart in den Code, wo ein Token hingehört, und baut einen Date Picker nach, den du längst hast. Ein Component Library MCP Server behebt das an der Quelle: Er gibt dem Agent Tools, mit denen er nachschlägt, was es gibt, die echten Props liest und die echten Dateien installiert. Dieser Guide zeigt, wie eine React-Komponentenbibliothek sich Claude Code, Cursor und Codex zugänglich macht, welche vier Teile dafür zusammenspielen (ein MCP-Server, eine Regeldatei, llms.txt und eine Registry) und welches Setup unsere CLI für dich schreibt.

    Wir bauen Wingo UI, deshalb nutzen die Beispiele unseren Server, unsere CLI und unsere Registry, mit Ausgaben aus Release 1.7.0. Der Ansatz funktioniert aber mit jeder Bibliothek, auch zu einem internen Design System, und wo ein anderes Tool besser passt, sagen wir das. Kürzere Guides zu Agents und UI findest du unter UI mit KI-Agenten bauen: AGENTS.md vs CLAUDE.md vs Cursor-Regeln für die Regeldatei, ein Claude Code shadcn Setup für den shadcn-MCP-Server neben einer zweiten Registry und einen Guide zur React AI Chat UI für den Fall, dass der Screen, den du baust, der Chat selbst ist.

    Was ist ein Component Library MCP Server?

    Ein Component Library MCP Server ist ein Server für das Model Context Protocol (opens in a new tab), der eine UI-Bibliothek in Tools verwandelt, die ein Agent aufrufen kann: den Katalog durchsuchen, Props und Usage einer Komponente lesen, die Designregeln abrufen und installierte Versionen mit dem neuesten Release vergleichen. Der Agent fragt nach, statt sich zu erinnern.

    Der Client (Claude Code, Cursor, Codex, Gemini CLI) listet die Tools eines Servers auf und lässt das Modell entscheiden, wann es sie aufruft. Ein Server läuft als lokaler Prozess über stdio oder als Remote-Endpoint über Streamable HTTP. Remote-Server lassen sich leichter aktuell halten, weil jeder Client ein neues Release sieht, sobald du es deployst.

    Die React Component Library MCP Server, die wir geprüft haben, gibt es in drei Formen. So sehen sie im Vergleich aus, Stand Oktober 2026:

    ServerLäuft alsWas der Agent bekommtSchreibt Dateien in dein Projekt
    shadcn MCPnpx shadcn@latest mcp (lokal)Items aus jeder Registry in components.json durchstöbern, suchen und installieren, auch aus privatenJa, über die shadcn-CLI
    MUI MCPnpx -y @mui/mcp@latest (lokal, stdio)Offizielle Material-UI-Doku und Codebeispiele, mit Links auf echte SeitenNein, Material UI ist ein npm-Paket
    React Suite MCPnpx -y @rsuite/mcp@latest (lokal)get_component_props, list_components, list_hooks, search_componentsNein, React Suite ist ein npm-Paket
    Wingo UI MCPhttps://wingo-ui.com/mcp (remote, Streamable HTTP) oder npx -y wingo-ui@latest mcp (lokal)Suche, Props mit Defaults, Usage, Blöcke, Designregeln, Theme-Tokens, Update-Checks, ChangelogJa, über die Wingo-UI-CLI

    Quellen, geprüft im Oktober 2026: die shadcn-MCP-Doku (opens in a new tab), der MCP-Guide von Material UI (opens in a new tab), der MCP-Guide von React Suite (opens in a new tab) und unsere MCP-Server-Doku.

    Die erste Form ist ein Doku-Lookup. MUI und React Suite liefern npm-Pakete aus, der Agent braucht also korrekte Props und funktionierende Links, aber nie Quelldateien. Läuft deine App auf Material UI, ist der eigene Server von MUI die richtige Wahl.

    Die zweite Form ist ein Registry-Installer. Die shadcn-Doku beschreibt, wie man aus jeder shadcn-kompatiblen Registry in components.json auflistet, sucht und installiert; Designregeln oder Update-Checks erwähnt sie nicht. Beziehst du Komponenten aus mehreren Registries, deckt ein einziger shadcn-Server alle ab, und das ist ein echter Vorteil.

    Eine Bibliothek, deren Quellcode du in dein Projekt kopierst, braucht die dritte Form: Doku, Installation und Wartung in einem Server. Wenn Komponenten als bearbeitbarer Code in deinem Repository liegen, muss der Agent wissen, was die Bibliothek bietet, welche Version dein Projekt hat und wie die Bibliothek benutzt werden soll. Genau den letzten Punkt transportiert eine Props-Tabelle allein nicht.

    Warum erfinden Coding-Agents Komponenten?

    Weil das Modell aus seinen Trainingsdaten schreibt, und die sind älter als deine Bibliotheksversion und neigen zu den häufigsten APIs. Ohne Möglichkeit nachzuprüfen füllt der Agent jede Lücke mit der wahrscheinlichsten Vermutung: die shadcn-API in einer Bibliothek, die nicht shadcn ist, ein Prop, das vor zwei Major-Versionen umbenannt wurde, ein Hex-Wert, wo ein semantisches Token hingehört.

    Das Engineering-Team von monday.com hat denselben Fehler in How We Use AI to Turn Figma Designs into Production Code (opens in a new tab) beschrieben (Rivka Ungar, 2. Februar 2026). Ihr erster Versuch, einen Figma-Link mit dem Figma-MCP in Cursor einzufügen, lieferte Code mit hartcodierten Farben, der ihre Design-System-Komponenten überging. Ihre Diagnose sinngemäß: Das Modell wusste schlicht nicht, was ihr Design System eigentlich ist. Danach bauten sie einen MCP-Server für das Design System und stellten fest, dass auch der allein nicht reichte. Der MCP-Server lieferte zwar Wissen, entschied aber nicht, wie und wann dieses Wissen über eine ganze UI hinweg anzuwenden ist.

    Ein Server voller richtiger Fakten bringt nichts, wenn der Agent ihn nie aufruft, ihn erst nach dem Code aufruft oder die Props liest und dann alles mit Utility-Klassen neu stylt. Der Server ist deshalb nur eines von vier Teilen.

    Was braucht ein Agent außer dem MCP-Server?

    Er braucht eine Regeldatei, die sagt, wann er welches Tool aufruft, Doku, die er ohne MCP lesen kann, und eine Registry plus CLI, die die Dateien schreibt. Jedes Teil beantwortet eine andere Frage und ändert sich unterschiedlich schnell:

    TeilWas es beantwortetWie oft es sich ändertIn Wingo UI
    MCP-ServerWas es gibt, Props und Usage, die Designregeln, welche Versionen aktuell sindMit jedem Releasehttps://wingo-ui.com/mcp, 10 Tools und 1 Prompt
    RegeldateiWann welches Tool, wie installieren, was der Agent nie tun darfSeltenEin markierter Block in CLAUDE.md, AGENTS.md oder GEMINI.md, eine Cursor-Regel, ein Claude-Code-Skill
    llms.txt und Markdown-DokuDieselben Fakten als reiner Text für Agents ohne MCPMit jedem Release/llms.txt, eine Datei pro Kategorie, ein .md-Zwilling jeder Doku-Seite
    Registry und CLIDie eigentlichen Dateien, ihre Abhängigkeiten und ein VersionsprotokollMit jedem Release/r/<slug>.json im shadcn-Format, npx wingo-ui@latest add

    Entscheidend ist die Aufteilung: Die Regeldatei bleibt kurz und stabil, und alles, was sich ändert, liegt hinter dem Server. Props-Tabellen, die du in eine Regeldatei kopierst, veralten mit dem nächsten Release, und ein Agent vertraut eher der Kopie, die schon in seinem Kontext steht, als einem Tool, das er erst aufrufen müsste. Unsere Regeldatei nennt Tools und Befehle. Die Props einer Komponente listet sie nie auf.

    Welche Tools sollte ein Component Library MCP Server anbieten?

    Ein paar reine Lese-Tools, zugeschnitten auf das, was ein Agent beim Bauen von UI tut: finden, lesen, die Regeln befolgen, installieren, aktuell bleiben. Unserer hat zehn:

    • search_components: findet Komponenten, Blöcke, Hooks und Helper per Stichwort.
    • list_categories: zeigt die Kategorien mit der Zahl ihrer Items.
    • get_component: Props, Parts, Usage, Abhängigkeiten, den Installationsbefehl und den Quellcode.
    • get_block: einen ganzen Screen oder Abschnitt und die Komponenten, aus denen er besteht.
    • get_design_rules: Tokens, Größen, Motion, Formulare, Overlays und Mobile-Regeln.
    • get_theme_tokens: die CSS-Variablen für Light und Dark Mode.
    • get_install_instructions: das Projekt-Setup für Next.js oder Vite.
    • check_updates: vergleicht installierte Items mit dem neuesten Release.
    • get_changelog: die letzten Releases und ihre Notes.
    • get_account_status: ob der Key Pro hat, mit den Links zum Upgrade.

    Dazu kommt ein Prompt, build_screen, der den Agent durch Suche, Regeln, Installation und Zusammensetzen führt. Jedes Tool ist in seinen Annotations als read-only und idempotent markiert, und keines schreibt auf deine Platte. Dateien schreibt die CLI.

    Die Suche sollte Slugs und je eine Zeile liefern

    Ein Suchergebnis ist eine kurze Liste, die der Agent auf einen Blick erfasst. Das ist die echte Antwort unseres Servers auf search_components mit der Query „orders table with filters“ und limit: 5, gekürzt auf die ersten drei Treffer:

    text
    5 results for "orders table with filters":
    - **Data Table** `data-table` (component, pro, v1.1.0): The admin table on TanStack Table v9: search, filters, sorting, bulk actions, pinning, resizing, virtualization and cards on phones.
    - **Audit Log** `audit-log` (component, pro, v1.0.0): Who did what, when and to which record: a filterable activity log with day groups, before / after diffs and a CSV export.
    - **Rule Builder** `rule-builder` (component, pro, v1.0.0): An if-this-then-that editor for automations: a trigger, conditions and ordered actions as sentence cards, read back as one sentence.
    Next: get_component (or get_block for blocks) with a slug for props, usage and the install command.

    Jeder Treffer enthält Slug, Art, Zugriffsstufe und Version, und die letzte Zeile nennt das nächste Tool. So muss der Agent nie raten, welcher Aufruf aus einem Slug Props macht. Der dritte Treffer passt kaum. Das ist in Ordnung: Eine Zeile Beschreibung reicht dem Agent, ihn zu überspringen, ohne dafür einen get_component-Aufruf zu verbrauchen.

    Props brauchen ihre Defaults

    get_component liefert die Props-Tabelle, die auch die Doku-Seite zeigt, mit Typen und Defaults, dazu Parts, ein Usage-Beispiel, die npm- und Registry-Abhängigkeiten und den Installationsbefehl. Defaults halten den generierten Code kurz. Ein Agent, der weiß, dass der Button standardmäßig type="button", tone="neutral" und size="md" hat, schreibt <Button>Cancel</Button>, statt geratene Props auszubuchstabieren. Und einer, der weiß, dass loading die Breite hält und aria-busy setzt, packt keine eigene Spinner-Logik um den Button.

    Unten siehst du diesen Button mit dem Brand-Tone und einem Loading-Label, beides über Props gesetzt.

    Klick auf Pay now: Der Spinner nimmt den Platz des Labels ein, die Breite bleibt gleich und der Button ignoriert Klicks, bis er fertig ist
    $ npx wingo-ui@latest add button
    FreeDoku: Button

    Ohne JavaScript zeigt die Demo einen gefüllten Button „Pay now“ in der Brand-Farbe; ein Klick zeigt einen Spinner und „Paying“ in derselben Breite.

    Halte die Tool-Ausgabe klein

    Große Antworten stoßen in den Clients an harte Grenzen. Laut der MCP-Doku von Claude Code (opens in a new tab), Stand Oktober 2026, warnt Claude Code, wenn ein Tool-Ergebnis 10.000 Tokens überschreitet, kappt Ergebnisse standardmäßig bei 25.000 Tokens (MAX_MCP_OUTPUT_TOKENS hebt das an) und speichert Textergebnisse über 50.000 Zeichen in eine Datei, statt sie in den Kontext zu legen.

    Unsere Data Table ist eine Datei mit 3.940 Zeilen, etwa 150 KB TypeScript. Ihre Doku ohne Quellcode kommt mit etwa 18.000 Zeichen zurück, rund 4.500 Tokens. Mit Quellcode (bei einem Pro-Key) wächst derselbe Aufruf auf über 160.000 Zeichen und reißt jede dieser Grenzen. Die Regel für Agents, und für alle, die so einen Server entwerfen, lautet deshalb: Doku über MCP, Dateien über die CLI. Ruf get_component bei großen Items mit includeSource: false auf und lass npx wingo-ui@latest add den Code schreiben.

    Für Regeln gilt dasselbe. get_design_rules mit dem Topic all liefert etwa 45.000 Zeichen, rund 11.000 Tokens bei den üblichen vier Zeichen pro Token, und liegt damit schon über der Warnschwelle von Claude Code. Das Topic mobile allein hat etwa 1.900 Zeichen, forms etwa 4.200. Frag nach dem Topic, das die Aufgabe braucht.

    Fehler sollten sagen, was als Nächstes zu tun ist

    Ein Tool-Fehler ist ein Prompt, den der Agent liest, also schreib ihn auch so. Bei einem unbekannten Slug antwortet der Server mit den ähnlichsten Treffern und verweist zurück auf search_components. Fragt der Agent ein Pro-Item ohne Pro-Key an, kommt die Doku zurück und dazu dieser Text, Wort für Wort von unserem Server (Links gekürzt, Zeilen umbrochen):

    text
    Login Page is part of Wingo UI Pro; the source is not included for this caller
    (no API key; a free account at https://wingo-ui.com/sign-in unlocks the free items).
    Do not re-create it from the docs.
    Tell the user it needs Pro (https://wingo-ui.com/pricing); with a Pro key
    (Authorization: Bearer wui_...) this tool returns the files and
    `npx wingo-ui@latest add login-page` works after `npx wingo-ui@latest login`.
    Free alternatives to look at: otp-input.

    „Do not re-create it from the docs“ ist der wichtigste Satz auf dem ganzen Server. Ein Agent, der gerade eine vollständige Props-Tabelle und eine lange Beschreibung der Interaktion gelesen hat, hat alles, um einen Nachbau zu versuchen. Das Ergebnis ist eine halbe Kopie, die auf dem Papier zur Doku passt und sonst zu nichts: kein Versionsprotokoll, keine Updates, keiner der Edge Cases, die die Beschreibung in einer Zeile zusammenfasst.

    Die Server-Instructions liest der Agent zuerst

    Claude Code schaltet Tool Search standardmäßig ein, deshalb werden zu Beginn einer Session nur die Tool-Namen und die Instructions jedes Servers geladen; die vollständigen Tool-Definitionen folgen erst, wenn das Modell danach sucht. Laut derselben Doku schneidet Claude Code jede Tool-Beschreibung und die Instructions jedes Servers standardmäßig bei 2.048 Zeichen ab. Die Instructions sind die Visitenkarte deines Servers beim Modell: welche Aufgaben er übernimmt, wann es nach seinen Tools suchen soll, und die Regeln, die das Abschneiden überstehen müssen. Schreib „erst suchen, dann UI schreiben“ in die ersten Zeilen.

    Was dieses Limit kostet, haben wir an unserem eigenen Server gemerkt. Seine Instructions haben in Release 1.7.0 2.235 Zeichen, deshalb schneidet Claude Code den letzten Satz ab, ausgerechnet den, der verbietet, eine Komponente ohne den passenden Key nachzubauen. Die Regel erreicht den Agent trotzdem, weil jede Ablehnung und die Regeldatei sie wiederholen. Zähl deine Zeichen und wiederhole jede wichtige Regel an einer Stelle, die das Modell nicht übersehen kann.

    Wie verbinde ich Claude Code, Cursor und Codex?

    Ein einziger CLI-Befehl schreibt die MCP-Config und die Regeln für deinen Agent. Ist WINGO_UI_API_KEY gesetzt, schreibt er die HTTP-Configs unten, die den Key aus der Umgebung lesen, sodass er nie in deinem Repository landet; ohne die Variable schreibt er den lokalen stdio-Proxy. Willst du den MCP Server einrichten, ohne die CLI zu nutzen, geht das auch von Hand.

    bash
    npx wingo-ui@latest login # einmal pro Rechner
    npx wingo-ui@latest agents install claude # oder codex, gemini, grok, cursor, all

    Ein zweiter Aufruf ändert nichts, und die anderen Server in deinen MCP-Configs bleiben erhalten. Hier landen die Dateien für jeden Agent:

    AgentMCP-ConfigRegeln
    Claude Code.mcp.json.claude/skills/wingo-ui/SKILL.md und ein markierter Block in CLAUDE.md
    Codex~/.codex/config.tomlEin markierter Block in AGENTS.md
    Gemini CLI.gemini/settings.jsonEin markierter Block in GEMINI.md
    Grok.mcp.jsonEin markierter Block in AGENTS.md
    Cursor.cursor/mcp.json.cursor/rules/wingo-ui.mdc

    Der Zugriff hat drei Stufen. Ohne Key antworten Suche, Doku, Props, Designregeln und Tokens, ohne Quellcode. Ein Key aus einem kostenlosen Account (nur E-Mail, keine Karte) fügt den Quellcode der 75 kostenlosen Items hinzu. Ein Pro-Key fügt den Quellcode aller 326 Items hinzu. Leg den Key in deinem Account an und exportier ihn in deinem Shell-Profil als WINGO_UI_API_KEY.

    Claude Code

    Claude Code speichert MCP-Server in drei Scopes: local (der Default, privat für dich in ~/.claude.json), project (.mcp.json im Stammordner des Repositorys, für das ganze Team eingecheckt) und user (alle deine Projekte). Für eine Bibliothek, die das Team teilt, nimm den Project-Scope; .mcp.json setzt ${VAR} aus der Umgebung ein, deshalb kannst du die Datei gefahrlos committen:

    json
    {
    "mcpServers": {
    "wingo-ui": {
    "type": "http",
    "url": "https://wingo-ui.com/mcp",
    "headers": {
    "Authorization": "Bearer ${WINGO_UI_API_KEY}"
    }
    }
    }
    }

    Für ein schnelles persönliches Setup fügt dieser Einzeiler den Server im Local-Scope hinzu:

    bash
    claude mcp add --transport http wingo-ui https://wingo-ui.com/mcp --header "Authorization: Bearer $WINGO_UI_API_KEY"

    Führ /mcp in einer Session aus, um zu sehen, ob der Server verbunden ist. Wenn du schon andere Claude Code MCP Server nutzt, steht dieser einfach daneben in derselben Datei, und agents install lässt die Einträge stehen, die es nicht selbst geschrieben hat. Unser Claude Code shadcn Tutorial geht den shadcn-MCP-Server, seinen Skill und eine zweite Registry im selben Projekt durch.

    Cursor

    Cursor liest .cursor/mcp.json im Projekt und ~/.cursor/mcp.json für alle Projekte. Es nutzt eine eigene Variablensyntax, ${env:NAME}, beschrieben in der MCP-Doku von Cursor (opens in a new tab):

    json
    {
    "mcpServers": {
    "wingo-ui": {
    "url": "https://wingo-ui.com/mcp",
    "headers": {
    "Authorization": "Bearer ${env:WINGO_UI_API_KEY}"
    }
    }
    }
    }

    Codex

    Codex liest MCP-Server aus ~/.codex/config.toml (oder aus .codex/config.toml eines vertrauenswürdigen Projekts). Bei einem Remote-Server nennt bearer_token_env_var die Variable, die den Token enthält, so wie es die MCP-Doku von Codex (opens in a new tab) beschreibt. Starte Codex danach neu, damit es den Server lädt. Das Codex MCP Setup Tutorial deckt den Rest eines Codex-Projekts ab: AGENTS.md-Regeln, Prompts, die bei echten Blöcken ansetzen, und die Lösungen, wenn sich ein Server nicht verbinden will.

    toml
    [mcp_servers.wingo-ui]
    url = "https://wingo-ui.com/mcp"
    bearer_token_env_var = "WINGO_UI_API_KEY"

    Alle anderen Clients

    Clients, die an einen Remote-Server keinen Header schicken können, nutzen den lokalen Proxy. Er liest den Key, den wingo-ui login gespeichert hat, und spiegelt die Remote-Tools, sodass neue Tools erscheinen, ohne dass du etwas aktualisierst:

    json
    {
    "mcpServers": {
    "wingo-ui": { "command": "npx", "args": ["-y", "wingo-ui@latest", "mcp"] }
    }
    }

    Was gehört in die Regeldatei?

    Wann welches Tool dran ist, wie installiert wird und was der Agent nie tun darf, in so wenigen Zeilen wie möglich. Das ist der komplette Block, den wir in AGENTS.md, CLAUDE.md oder GEMINI.md schreiben:

    md
    <!-- wingo-ui:start v=2 -->
    ## Wingo UI
    This project builds its UI with Wingo UI (React 19 + Tailwind CSS v4 components installed as source, see `wingo-ui.json`).
    - Before writing UI, use the `wingo-ui` MCP tools: `search_components` to find what exists (blocks for whole screens), `get_component` / `get_block` for props and usage, `get_design_rules` for tokens, sizes, motion and mobile rules. Never recreate a component the library has.
    - Install with `npx wingo-ui@latest add <slug...>`. At the start of UI work run `check_updates` (or `npx wingo-ui@latest outdated`) and mention updates; update with `npx wingo-ui@latest update`.
    - Semantic tokens only (`bg-background`, `bg-surface`, `text-muted-foreground`, `border-border`), configure components through props, keep `cn()`, `data-slot` and license headers in copied files. Check 390px and 1440px, light and dark.
    - No MCP tools available? The CLI has `search`, `info`, `add`, `outdated`, `update`; the docs for models are at https://wingo-ui.com/llms.txt.
    <!-- wingo-ui:end -->

    Einige Entscheidungen darin sind bewusst getroffen. Jeder Punkt sagt dem Agent, was er tun soll oder wann. Der Block nennt Tools und Befehle, listet aber keine Props einer Komponente, denn Props ändern sich und Tool-Namen nicht. Er hat einen Fallback für Sessions ohne MCP-Server, damit der Agent auf die CLI ausweicht, statt zu raten. Und er trägt eine Versionsmarke: npx wingo-ui@latest agents status sagt dir, ob deine Kopie aktuell ist, und agents update schreibt nur den Text zwischen den Markierungen neu.

    Claude Code bekommt außerdem einen Skill mit dem längeren Workflow, und Cursor eine Projektregel, die für .tsx-, .jsx- und .css-Dateien gilt. Das komplette Setup steht auf der Doku-Seite zu Coding-Agents.

    Für eine interne Bibliothek übernimmst du die Struktur: eine Zeile, was die Bibliothek ist, eine, welche Tools vor dem UI-Code dran sind, eine zur Installation, eine zum Styling, ein Fallback. Fünf Zeilen, die ein Agent befolgt, schlagen fünfzig, die er überfliegt. Welche dieser Dateien jeder Agent liest und wie eine einzige AGENTS.md Claude Code, Codex und Cursor zugleich bedient, steht in unserem Vergleich AGENTS.md vs CLAUDE.md.

    Wo passen llms.txt und Markdown-Doku hinein?

    Sie bedienen Assistenten, die eine URL lesen können, aber keine MCP-Verbindung haben, und sie springen ein, wenn der Server nicht eingerichtet ist. Der llms.txt-Vorschlag (opens in a new tab), veröffentlicht von Jeremy Howard im September 2024, legt eine Markdown-Datei in den Stammordner der Website: eine H1 mit dem Namen, eine kurze Zusammenfassung, dann Abschnitte mit Links. Er empfiehlt außerdem eine saubere Markdown-Version jeder Seite unter derselben URL mit angehängtem .md, und seine aktuelle Version (aktualisiert im August 2026) beschreibt einen rel="alternate"-Link vom Typ text/markdown, der darauf zeigt.

    Unsere Umsetzung folgt diesem Aufbau:

    • /llms.txt ist die Karte: was die Bibliothek ist, die Zahlen, die Preise, die Doku-Seiten, die Installationsbefehle, ein Link pro Kategorie und eine Zeile pro Item mit seinem Markdown-Link.
    • /llms/<category>.txt enthält die Item-Doku einer Kategorie, zum Beispiel alle Tabellen oder alle Overlays.
    • Jede Doku-Seite hat einen Markdown-Zwilling, etwa /components/button.md, verlinkt im HTML-Head.
    • /llms-full.txt enthält alles in einer Datei, etwa 3,3 MB, Stand Oktober 2026 (die Doku von Release 1.7.0 plus die Blogposts).

    Diese letzte Datei ist die Falle. Ein Modell, das 3,3 MB Doku bekommt, kürzt sie entweder oder verbraucht seinen Kontext für Komponenten, die es nie nutzen wird. Behandle llms.txt als Karte und schick den Agent zu der einen Kategorie-Datei oder .md-Seite, die die Aufgabe braucht. Bei einem Chat-Assistenten, der URLs abrufen kann, legt ein Prompt wie „lies https://wingo-ui.com/components/data-table.md (opens in a new tab) und schreib damit eine Bestelltabelle“ die echten Props mit einem einzigen Abruf vor das Modell.

    Was llms.txt nicht kann, ist handeln. Es kann dem Agent nicht sagen, welche Version dein Projekt hat, ob dein Key ein Item abdeckt, und es schreibt keine Dateien mit ihren Abhängigkeiten. Deshalb ist es in unseren Regeln der Fallback und der MCP-Server der Standard.

    Warum über eine Registry installieren statt Code einzufügen?

    Weil Registry und CLI die exakten Dateien mit ihren Abhängigkeiten schreiben und festhalten, was sie installiert haben, und dieses Protokoll der einzige Weg ist, auf dem spätere Releases Code erreichen, den du bearbeitet hast. Ein Agent, der Quellcode aus einem Tool-Ergebnis kopiert, überspringt alle drei Schritte.

    Nimm den Block Login Page. Der Befehl npx wingo-ui@latest add login-page schreibt drei Dateien nach components/blocks, zieht dann die 16 Registry-Items nach, von denen der Block abhängt (Alert, Avatar, Button, Checkbox, Input, OTP Input, Password Input, Separator, Toast und sieben Hooks und Helper), plus alles, wovon diese abhängen, und installiert seine npm-Pakete: motion, lucide-react, react-hook-form und zod. Version und Content-Hash jedes Items hält der Befehl in wingo-ui.json fest und legt eine unveränderte Kopie unter .wingo-ui/base/ ab. Wenn ein Release den Block ändert, führt npx wingo-ui@latest update einen Drei-Wege-Merge zwischen dieser unveränderten Kopie, deiner bearbeiteten Datei und der neuen Version aus, so wie git Branches zusammenführt.

    Ein Agent, der Code aus get_block einfügt, kann eine Abhängigkeit verpassen, hält nichts fest und hinterlässt dir Dateien, die kein Tool aktualisieren kann. Deshalb trägt jede Antwort den Installationsbefehl, und die Regeln sagen „mit der CLI installieren“, bevor überhaupt etwas zum Styling kommt.

    Die Registry spricht auch das shadcn-Format. Kostenlose Items installierst du direkt über ihre URL, zum Beispiel npx shadcn@latest add https://wingo-ui.com/r/button.json, und Pro-Items über ihren Namen, sobald die @wingo-ui-Registry mit deinem Key in components.json steht. Damit kann sie auch der shadcn-MCP-Server installieren. Den Haken beschreibt unsere Installationsseite: Die shadcn-CLI hält keine Versionen fest, deshalb kann wingo-ui update spätere Änderungen nicht in so installierte Dateien mergen.

    Wie sieht eine komplette Agent-Session aus?

    Nimm eine Next.js-App, die schon eine wingo-ui.json hat, und einen schlichten Prompt: „Bau eine Anmeldeseite mit Zwei-Faktor-Codes und eine Bestellseite mit Filtern, mit Wingo UI.“ Ist der Server verbunden und sind die Regeln eingerichtet, geben Regeln und Server-Instructions diesen Weg vor, ohne dass der Prompt ein einziges Tool nennt:

    1. check_updates mit den Items aus wingo-ui.json und ein einzeiliger Bericht, was sich upstream geändert hat.
    2. search_components mit „sign in page“ und der Art block. Auf unserem Server ist der erste Treffer login-page.
    3. get_block für login-page: die Props, die Komponenten, aus denen der Block besteht, und der Installationsbefehl.
    4. search_components mit „orders table with filters“, dann get_component für data-table mit includeSource: false.
    5. get_design_rules für die Topics forms und mobile.
    6. Eine Installation für alles: npx wingo-ui@latest add login-page data-table (Button, Input und der Rest kommen als Abhängigkeiten mit).
    7. Zwei Seiten, gebaut aus den installierten Komponenten und über ihre Props konfiguriert.

    Schritt 2 ist der, den ein Setup ohne Server überspringt. Ohne Suchmöglichkeit schreibt ein Agent ein Anmeldeformular von Grund auf: zwei Felder, ein Button, vielleicht ein Link „Passwort vergessen“, der ins Leere führt. Der Block, den die Suche liefert, deckt die Anmeldung per Passwort, E-Mail-Link oder Code ab, Buttons für Google, Apple und Microsoft, Zwei-Faktor-Codes, die nach drei falschen Versuchen für eine Minute sperren, und den kompletten Ablauf zum Zurücksetzen des Passworts. Der Seitencode ist kurz, weil der Block die Arbeit macht:

    tsx
    // app/(auth)/login/page.tsx
    "use client";
    import { useRouter } from "next/navigation";
    import { LoginPage } from "@/components/blocks/login-page";
    // eine Antwort außerhalb von 2xx wird zur Meldung, die der Block über dem Formular zeigt
    async function post(url: string, body: unknown, error: string) {
    const response = await fetch(url, {
    method: "POST",
    headers: { "content-type": "application/json" },
    body: JSON.stringify(body),
    });
    if (!response.ok) throw new Error(error);
    }
    export default function Page() {
    const router = useRouter();
    return (
    <LoginPage
    methods={["password"]}
    showProviders={false}
    twoFactor
    onSignIn={(values) => post("/api/login", values, "E-Mail oder Passwort stimmen nicht")}
    onVerifyCode={(code, { backup }) => post("/api/login/verify", { code, backup }, "Dieser Code stimmt nicht")}
    onForgot={(email) => post("/api/password/forgot", { email }, "Wir konnten die E-Mail nicht senden. Versuch es noch einmal.")}
    onSuccess={() => router.push("/orders")}
    />
    );
    }

    Ein abgelehntes Promise aus onSignIn zeigt seine Meldung in einem Alert über dem Formular, und twoFactor schickt ein korrektes Passwort weiter zum Code-Schritt. Drei falsche Codes sperren die Eingabe für eine Minute, egal was dein Handler tut.

    Die Falle steckt in den Handlern, die der Code weglässt. Der Block liefert simulierte Handler mit, damit seine Demo funktioniert, und jedes on*-Prop, das du auslässt, behält seine Simulation. Ohne onVerifyCode akzeptiert die Zwei-Faktor-Ansicht 123456. Ohne showProviders={false} oder ein eigenes onProvider zeigen die Buttons für Google, Apple und Microsoft 1,2 Sekunden lang einen Spinner und rufen dann onSuccess auf. Ein Agent, der onSignIn verdrahtet und aufhört, liefert eine Login-Seite aus, auf der ein Klick auf Google direkt zu /orders führt, ohne dass sich jemand anmeldet. Die Props-Tabelle aus get_block dokumentiert jeden dieser Defaults, also ist die Lösung dieselbe wie überall: Props lesen, dann jeden Handler verdrahten oder das Feature abschalten.

    Die Demo unten läuft auf diesen simulierten Handlern, mit den Standard-Methoden und -Providern.

    Melde dich mit einer beliebigen E-Mail und einem Passwort unter 8 Zeichen an, um den Fehler-Alert zu sehen, dann wähl „Email me a sign-in link“ und schick ihn ab, um den Countdown fürs erneute Senden zu sehen
    $ npx wingo-ui@latest add login-page
    ProDoku: Login Page

    Ohne JavaScript zeigt die Demo das Anmeldeformular: Felder für E-Mail und Passwort, eine Checkbox „Remember me for 30 days“, den Anmelde-Button, die Option mit dem E-Mail-Link und Buttons für Google, Apple und Microsoft.

    Die Bestellseite folgt demselben Muster. Die Data-Table-Props, die der Agent gelesen hat, bestimmen den Großteil des Codes: typisierte Spalten aus createColumns, eine Badge-Spalte mit einem Tone pro Status, eine Währungsspalte mit Summe im Footer, Filter pro Spalte und Schnellfilter-Chips.

    tsx
    // app/orders/orders-table.tsx
    "use client";
    import { useRouter } from "next/navigation";
    import { Eye, Plus } from "lucide-react";
    import { DataTable, createColumns } from "@/components/ui/data-table";
    export type Order = {
    id: string;
    customer: string;
    city: string;
    status: "Paid" | "Pending" | "Refunded";
    total: number;
    placedAt: string;
    };
    const col = createColumns<Order>();
    const columns = col([
    col.accessor("customer", { header: "Kunde", filter: "text", mobile: "title" }),
    col.accessor("id", { header: "Bestellung", mobile: "subtitle" }),
    col.accessor("city", { header: "Stadt", filter: "multi-select" }),
    col.accessor("status", {
    header: "Status",
    type: "badge",
    badge: { Paid: { tone: "success" }, Pending: { tone: "warning" }, Refunded: { tone: "neutral" } },
    filter: "multi-select",
    }),
    col.accessor("total", { header: "Summe", type: "currency", footer: "sum", filter: "number-range" }),
    col.accessor("placedAt", { header: "Bestellt am", type: "date", filter: "date-range" }),
    ]);
    export function OrdersTable({ orders }: { orders: Order[] }) {
    const router = useRouter();
    return (
    <DataTable
    data={orders}
    columns={columns}
    getRowId={(order) => order.id}
    caption="Bestellungen"
    locale="en-US"
    searchPlaceholder="Bestellungen durchsuchen"
    quickFilters={[{ id: "pending", label: "Offen", columnFilter: { id: "status", value: ["Pending"] } }]}
    toolbarActions={[{ label: "Neue Bestellung", icon: <Plus />, primary: true, onSelect: () => router.push("/orders/new") }]}
    rowActions={(order) => [{ label: "Ansehen", icon: <Eye />, onSelect: () => router.push(`/orders/${order.id}`) }]}
    persistKey="orders"
    />
    );
    }

    Die Seite selbst bleibt eine Server Component, die die Zeilen lädt und weiterreicht:

    tsx
    // app/orders/page.tsx
    import { OrdersTable, type Order } from "./orders-table";
    async function getOrders(): Promise<Order[]> {
    // hier kommt deine Datenbankabfrage hin
    return [{ id: "ORD-1042", customer: "Emma Carter", city: "New York", status: "Paid", total: 129, placedAt: "2026-10-02" }];
    }
    export default async function Page() {
    const orders = await getOrders();
    return (
    <main className="mx-auto flex max-w-6xl flex-col gap-4 p-4 sm:p-8">
    <h1 className="text-xl font-semibold text-foreground">Bestellungen</h1>
    <OrdersTable orders={orders} />
    </main>
    );
    }

    Die Aufteilung ist gewollt. getRowId, rowActions und onSelect sind Funktionen (genau wie jeder eigene cell-Renderer in den Spalten), und der App Router kann keine Funktionen von einer Server Component an eine Client Component übergeben. Ein Agent, der <DataTable> mit Inline-Callbacks direkt aus einer Server-page.tsx rendert, bekommt beim Rendern genau diesen Fehler. Wenn Spalten und Callbacks in einer Client-Datei liegen und nur einfache Zeilen übergeben werden, passiert das nicht.

    Zwei weitere Details stammen direkt aus der Doku, die get_component liefert. Die mobile-Rollen bestimmen Titel und Untertitel jeder Karte unter 768px, wo die Tabelle standardmäßig zu Karten wird (mobileLayout="cards"). Und persistKey merkt sich Sichtbarkeit, Reihenfolge und Breite der Spalten, Dichte und Seitengröße im Local Storage.

    Such nach einem Kunden, schalt den Chip Overdue um und sortier oder filter dann über die Toolbar; auf dem Handy werden die Zeilen zu Karten mit einem Button Load more
    $ npx wingo-ui@latest add data-table
    ProDoku: Data Table

    Ohne JavaScript zeigt die Demo eine Kundentabelle (Kunde, Stadt, Status, Betreuer, Saldo, letzte Rechnung) mit einem Suchfeld, Schnellfilter-Chips wie Active und Overdue sowie Aktionen für Export und neue Kunden.

    Noch ein Fall, den du einplanen solltest: Login Page und Data Table sind beide Pro. Ohne Pro-Key liefern die Schritte 3 und 4 die Doku plus die oben zitierte Ablehnung, und ein Agent, der die Regeln befolgt, meldet die Lücke, statt beide aus ihren Props-Tabellen nachzubauen.

    Wie bleiben Komponenten, die ein Agent installiert hat, aktuell?

    Der Agent prüft, du entscheidest. Zu Beginn jeder UI-Arbeit verlangen die Regeln check_updates mit den Items aus wingo-ui.json. Die Antwort listet jedes Update mit seinem Semver-Sprung und den Notes jedes Bibliotheks-Releases, das das Item berührt hat, danach die Items, die aktuell sind. Hier die echte Ausgabe für ein Projekt mit einer älteren Data Table und einem aktuellen Button:

    text
    Latest Wingo UI release: 1.7.0.
    1 update:
    - **data-table**: 1.0.0 → 1.1.0 (minor)
    - 1.2.0: with no rows to show the empty state stands alone and compact, without column headers spread over nothing; `showHeaderWhenEmpty` keeps them.
    - 1.0.1: sticky header cells no longer drop down over the first row when the header is pinned while scrolling.
    Update with `npx wingo-ui@latest update <slug...>` (a 3-way merge that keeps local edits); read breaking notes first.
    Up to date: button

    Die Nummern vor den Notes sind Bibliotheks-Releases; das Item selbst geht von 1.0.0 auf 1.1.0.

    Der Claude-Code-Skill sagt dem Agent, dass er Updates erwähnen und nur ausführen soll, wenn du zustimmst. Ein Update ist eine Codeänderung in Dateien, die dir gehören, und verdient dasselbe Review wie jeder andere Diff. Im Terminal reichen dafür drei Befehle:

    bash
    npx wingo-ui@latest outdated # installierte Items vs. neuestes Release
    npx wingo-ui@latest diff data-table # deine Datei vs. upstream
    npx wingo-ui@latest update # Drei-Wege-Merge, mit den Release Notes

    Die Regeln haben ihre eigene Version: agents status meldet eine alte Kopie, und agents update frischt sie auf. Willst du eigene Änderungen an einer verwalteten Datei behalten, lösch ihre Zeile wingo-ui:managed. Die Doku zu Updates erklärt Konflikte und das Flag --theirs, und unser Guide zum Aktualisieren von shadcn-Komponenten, ohne Änderungen zu verlieren zeigt denselben Drei-Wege-Merge von Hand mit git.

    Wie prüfe ich, was der Agent gebaut hat?

    Prüf es wie einen Pull Request von einem schnellen Junior-Entwickler, der die Doku gelesen hat. Der Server bringt den ersten Entwurf auf die richtigen Komponenten; den Blick auf das Ergebnis ersetzt er nicht. Unsere Checkliste:

    • Fest eingesetzte Farben und Radien. Durchsuch den Diff nach Hex-Werten, rgb( und Klassen mit Arbitrary Values wie rounded-[...]. Die Regeln verlangen semantische Tokens, und eine verirrte Hex-Farbe übersieht man leicht.
    • Nachgebaute Komponenten. Eine neue Datei unter components/, die wie ein Bibliotheks-Item aussieht, heißt: Der Agent hat die Suche übersprungen.
    • Restyling statt Props. Eine lange Klassenliste an einem Button ersetzt oft ein variant, tone oder size, das der Agent nicht gelesen hat.
    • Simulierte Handler. Blöcke liefern Demo-Handler für jedes on*-Prop. Vergleich die Handler, die der Agent verdrahtet hat, mit den Features, die auf dem Screen geblieben sind, wie im Login-Beispiel oben.
    • Handybreite und beide Themes. Bei 390px sollten Tabellen zu Karten werden und Menüs als Bottom Sheets aufgehen (unser Guide zu Mobile-first React-Komponenten hat die komplette Liste); Light und Dark sollten beide sauber aussehen.
    • Bibliotheksdateien. npx wingo-ui@latest diff <slug> zeigt, ob der Agent eine davon bearbeitet hat. Änderungen sind erlaubt, werden aber beim nächsten Update zu Merge-Arbeit.

    Solltest du einen MCP-Server für dein eigenes Design System bauen?

    Wenn mehrere Leute oder Agents UI auf einer internen Bibliothek bauen, ja. Ein UI Component Library MCP Server ist ein kleineres Projekt, als es klingt: Unserer ist eine Datei mit etwa 220 Zeilen auf dem TypeScript SDK (@modelcontextprotocol/server) plus vier kleine Tool-Module, und der Großteil der Arbeit steckte in den Daten dahinter. Das Protokoll war der einfache Teil. Was wir einem Design-System-Team mitgeben würden, nachdem wir unseren gebaut haben:

    • Fang mit Metadaten an, die du schon pflegst. Unsere Tools lesen dieselben Registry-Metadaten, aus denen die Doku-Seiten entstehen. Wenn deine Props nur in TypeScript-Typen leben, zieh sie einmal in Daten heraus, die Doku und Server teilen, sonst laufen die beiden auseinander.
    • Halte jedes Tool read-only. Lass den Agent lesen; schreiben sollen deine CLI oder dein Paketmanager.
    • Gib strukturierten Content und Text zurück. Das Modell liest den Text; Skripte und künftige Clients parsen die Struktur.
    • Halte Ausgaben klein und nenne den nächsten Schritt. Slugs in der Suche, der Quellcode hinter einem Flag, das nächste Tool am Ende.
    • Schreib Fehler als Anweisungen. „Meintest du …“ und „nicht nachbauen“ legen dem Modell die Lösung genau dann vor, wenn es sie braucht.
    • Halte die Server-Instructions unter 2.048 Zeichen, mit dem Satz „wann du diesen Server nutzt“ ganz vorn. Unsere liegen in 1.7.0 um 187 Zeichen darüber, und der Satz, der wegfällt, ist uns wichtig.
    • Liefere das Release aus, das du deployt hast. Ein frischer Server pro Request, gestützt auf die Registry dieses Deploys, heißt: Agents sehen nie veraltete Props.
    • Biete HTTP und stdio an. Remote-HTTP für Clients, die Header schicken, einen lokalen Proxy für den Rest.

    Der MCP-Server für UI-Komponenten, den wir betreiben, antwortet ohne Account. Du kannst also jeden Client damit verbinden und diese Entscheidungen aus Sicht des Agents sehen, bevor du deinen eigenen entwirfst.

    Welche Guides gehen tiefer?

    Jeder dieser Posts aus UI mit KI-Agenten bauen vertieft einen Client, eine Datei oder eine KI-Oberfläche:

    • Claude Code shadcn Setup: der shadcn-MCP-Server, der shadcn-Skill und ein CLAUDE.md-Block, der sagt, welche Registry für welchen Ordner zuständig ist.
    • Cursor shadcn MCP und Regeln: dasselbe Setup für Cursor, mit .cursor/mcp.json und einer kurzen .mdc-Projektregel.
    • Codex MCP Setup für React UI: ein Befehl, der den Server in ~/.codex/config.toml und die Regeln in AGENTS.md schreibt.
    • AGENTS.md vs CLAUDE.md vs Cursor-Regeln: wo du Regeln einmal schreibst, damit Codex, Cursor und Claude Code sie alle lesen.
    • Ein Design System für Claude Code: Tokens, eine DESIGN.md, ein Projekt-Skill und ein Hook, die 50 Screens einheitlich halten.
    • llms.txt in Next.js: llms.txt, llms-full.txt und ein .md-Zwilling für jede Seite, erzeugt aus den Daten, die deine Seiten rendern.
    • React AI Chat UI: Thread, Nachrichten, Composer, Reasoning-Zeile und Modellauswahl, mit Streaming und Auto-Scroll.
    • React Prompt Input: Enter und Shift+Enter, IME-Komposition, Datei-Uploads, Stop während des Streamings und Diktat an der Cursorposition.
    • React Markdown Streaming: halb geschriebene Syntax reparieren und nur den letzten Block neu rendern, damit gestreamte Antworten nicht mehr flackern.
    • Tool Call UI für KI-Agenten: eine Zeile pro Tool Call mit Status, lesbarer Ein- und Ausgabe, Fehlern, die sich selbst aufklappen, und Freigaben.
    • React Speech to Text Input: MediaRecorder mit einer Live-Vorschau per Web Speech, wo der Browser sie hat, und einem Server-Fallback.
    • AI-Elements-Alternativen: fünf React-Kits für KI-Chats im Vergleich, jetzt, wo AI Elements von Vercel in shadcn/ui wandert.

    Wo fange ich an?

    Zum Ausprobieren verbindest du den Server mit npx wingo-ui@latest agents install claude (oder dem Namen deines Agents) und bittest in einfachen Worten um einen Screen. Ein kostenloser Account fügt den MCP-Antworten den Quellcode der 75 kostenlosen Items hinzu, darunter der Button und der OTP Input; die CLI installiert diese auch ohne Account. Login Page und Data Table gehören zu Pro, das alle 326 Items abdeckt: 8 $ im Monat, 80 $ im Jahr oder 150 $ einmalig, auf der Preisseite. Die MCP-Server-Doku enthält das Setup pro Client und Hilfe bei Problemen.

    Wenn du deine eigene Bibliothek pflegst, ist ein MCP-Server der günstigste Weg, den wir kennen, damit Agents sie richtig nutzen. Kombinier ihn mit fünf Zeilen Regeln und einem Installer, der Versionen festhält, und der Agent hört auf, deine Komponenten zu erfinden, und fängt an, sie zu installieren.

    Komponenten in diesem Artikel

    • Button

      The React button component every screen starts with: five variants, six tones, all sizes, and a loading state that never jumps.

      Free
    • Login Page

      A React login page with password, magic link or code sign-in, Google, Apple and Microsoft buttons, two-step codes and password recovery.

      Pro
    • Data Table

      A React data table on TanStack Table: search, filters, sorting, bulk actions, pinning, resizing, virtualization and cards on phones.

      Pro

    Häufige Fragen

    Was ist ein Component Library MCP Server?

    Das ist ein Model-Context-Protocol-Server, der eine UI-Bibliothek als Tools für Coding-Agents bereitstellt: den Katalog durchsuchen, die Props einer Komponente mit Defaults und Usage lesen, die Designregeln abrufen und installierte Items auf Updates prüfen. Der Agent ruft diese Tools auf, statt eine API aus seinen Trainingsdaten zu raten.

    Brauche ich noch eine Regeldatei, wenn ich einen MCP-Server verbinde?

    Ja. Der Server liefert Fakten, aber ein Agent greift nicht immer von selbst zu einem Tool. Ein paar Zeilen in CLAUDE.md, AGENTS.md oder einer Cursor-Regel sagen ihm, dass er sucht, bevor er UI schreibt, dass er mit der CLI installiert und nie eine Komponente nachbaut, die die Bibliothek schon hat.

    Reicht llms.txt ohne MCP-Server?

    llms.txt hilft Assistenten, die nur URLs lesen können, kann aber selbst nichts tun. Die Datei installiert nichts, vergleicht deine installierten Versionen nicht mit dem neuesten Release und sagt dem Agent nicht, welche Items dein Plan enthält.

    Funktioniert der MCP-Server von Wingo UI ohne Account?

    Für die Doku ja: Suche, Props, Usage, Designregeln und Theme-Tokens antworten ohne Key. Ein Key aus einem kostenlosen Account (nur E-Mail) fügt den Quellcode der 75 kostenlosen Items hinzu, ein Pro-Key den Quellcode aller anderen.

    Kann ich den shadcn-MCP-Server mit Wingo UI nutzen?

    Ja. Trag die @wingo-ui-Registry in components.json ein, für Pro-Items mit deinem API-Key, dann kann der shadcn-MCP-Server daraus suchen und installieren. Er liefert weder unsere Designregeln noch Update-Checks, und die shadcn-CLI hält keine Versionen fest, deshalb kann wingo-ui update spätere Releases nicht in so installierte Dateien mergen.

    Welche Coding-Agents können sich mit dem MCP-Server von Wingo UI verbinden?

    npx wingo-ui@latest agents install schreibt fertige Configs und Regeln für Claude Code, Codex, Gemini CLI, Grok und Cursor. Jeder andere Client, der lokale Befehle ausführt, kann den stdio-Proxy nutzen, npx -y wingo-ui@latest mcp.

    • MCP
    • Claude Code
    • Cursor
    • Codex
    • KI-Agenten
    • Registry

    Teilen

    SR

    Über den Autor

    Serban Rusu

    Gründer von Wingo UI

    Serban Rusu hat Wingo UI gegründet. Er baut die Komponenten, die CLI und den MCP-Server und schreibt über React-UIs für Smartphones und KI-Agents.

    Mehr von Serban
    Weiterlesen

    Ähnliche Artikel

    Alle Artikel
    UI mit KI-Agenten bauen

    Cursor shadcn Setup: MCP-Server, .mdc-Regeln, Registries

    Cursor shadcn Setup, getestet mit shadcn 4.22.0: MCP-Server in .cursor/mcp.json, eine zweite Registry, eine .mdc-Regel, die immer lädt, und Prompts, die wirken.

    SRSerban Rusu·16. Okt. 2026·12 Min. Lesezeit
    UI mit KI-Agenten bauen

    Codex MCP einrichten: React-UI mit echten Komponenten

    Codex MCP für React-UI einrichten, getestet mit Codex CLI 0.162.1: config.toml-Eintrag, Key-Variable, AGENTS.md-Regeln, Prompts für echte Blocks, Fehlerhilfe.

    SRSerban Rusu·13. Okt. 2026·11 Min. Lesezeit
    UI mit KI-Agenten bauen

    Claude Code shadcn Setup: MCP-Server, Skill und CLAUDE.md

    Claude Code shadcn Setup, getestet mit shadcn 4.21.4: MCP-Server, Skill, eine zweite Registry im eigenen Ordner, ein CLAUDE.md-Block und Prompts, die wirken.

    SRSerban Rusu·9. Okt. 2026·12 Min. Lesezeit
    Newsletter

    Neue Artikel per E-Mail

    Neue Guides, Tutorials und Vergleiche aus dem Wingo UI Blog, sobald sie erscheinen. Die meisten Artikel sind auf Englisch.

    Kein Spam. Du kannst dich jederzeit abmelden.

    WingoUI

    Animierte, konfigurierbare, mobile-first React-Komponenten und Blöcke. Kopier den Quellcode, pass ihn an und lass deinen Coding-Agenten damit bauen.

    Produkt

    • Komponenten
    • Vorlagen
    • Preise
    • KI-Agenten
    • Theme-Generator

    Ressourcen

    • Doku
    • Blog
    • Changelog
    • Changelog-RSS
    • llms.txt

    Rechtliches

    • AGB
    • Datenschutz
    • Rückerstattung
    • Lizenz
    • Impressum

    Komponenten-Kategorien

    • Buttons & Actions
    • Inputs
    • Forms
    • Navigation
    • Overlays
    • Feedback
    • Data Display
    • Tables & Lists
    • Charts & Stats
    • Layout
    • Media
    • AI Kit
    • Text & Effects
    • Mobile
    • Commerce
    • Marketing Sections
    • Blocks
    • Hooks & Utilities

    © 2026 Wingo UI

    Wingo UI