Introduction
Marmo UI — an open-source React design system plus an MCP server that turns your AI agent into a designer. Connect Claude Code, Codex, Cursor, or Gemini and ship dashboards in minutes.
Marmo is two things that work as one: an open-source React component library (@marmoui/ui) and a hosted MCP server that makes the AI agent you already use — Claude Code, Codex, Cursor, Gemini CLI — genuinely good at building UI with it. The agent reads live component APIs, composition patterns, and your design tokens instead of guessing, and its output is validated before it reports done. Production dashboards and apps in minutes — in your style, not template defaults.
Add the Marmo MCP to your agent and ask it to build. One config block, no new tool to learn:
{
"mcpServers": {
"marmo-ui": {
"url": "https://mcp.marmoui.com/mcp"
}
}
}claude mcp add --transport http marmo-ui https://mcp.marmoui.com/mcp.cursor/mcp.jsonThen prompt: "Build a billing dashboard with a data table and usage charts using Marmo UI." The agent installs @marmoui/ui, composes real components, and validates the result.
Want every generated screen in your own brand? That's Pro — feed the MCP your DESIGN.md and connect at /connect.
├── apps/
│ └── design-system-docs/ # Documentation site (marmoui.com)
├── packages/
│ └── ui/ # @marmoui/ui — the publishable component library
├── pnpm-workspace.yaml # pnpm workspace configuration
└── turbo.json # Turborepo configurationFor documentation priorities, UX maturity framing, and planned releases, see the roadmap.
@marmoui/ui as a Dependency@marmoui/ui is published on the public npm registry. No GitHub token or custom .npmrc is required.
Install Tailwind CSS in your project (if you have not already):
pnpm add -D tailwindcss postcss autoprefixerThen install Marmo UI:
# npm
npm install @marmoui/ui
# pnpm
pnpm add @marmoui/ui
# yarn
yarn add @marmoui/uiImport the CSS in your application entry point (e.g. layout.tsx or main.tsx):
import '@marmoui/ui/style.css';import { Button } from '@marmoui/ui';
export default function App() {
return <Button>Click me</Button>;
}Make sure your project has these peer dependencies installed:
react ^19.2.3react-dom ^19.2.3The free package includes all core components. Pro unlocks composition patterns, gated block code, and the hosted MCP for AI-assisted generation. After purchase, sign in at /connect to generate your MCP token and agent config.
npm install -g pnpm)git clone git@github.com:mahmoudilyan/marmoui.git
cd marmo-ui
pnpm install# Run the UI package + docs app
pnpm dev
# Run only the UI package
pnpm dev:ui
# Run only the docs app
pnpm dev:docspnpm build| Command | Description |
|---|---|
pnpm dev | Start development servers |
pnpm dev:ui | Develop the UI package only |
pnpm build | Build all packages and apps |
pnpm lint | Run ESLint across all packages |
pnpm format | Format code with Prettier |
pnpm format:check | Check formatting without writing |
pnpm type-check | Run TypeScript type checking |
pnpm clean | Clean build artifacts |
button/
├── button.tsx
├── button.types.ts # optional — for complex prop interfaces
└── index.ts// 1. External dependencies
import { useState } from 'react';
// 2. Internal packages
import { cn } from '@marmoui/ui';
// 3. Local imports
import { ButtonProps } from './button.types';