Skip to main content
Glama
Home.tsx10.9 kB
import { Link } from "react-router-dom"; import { Button, Flag } from "@mozaic-ds/react"; const stats = [ { label: "Design Tokens", value: "586", gradient: "from-secondary-blue-500 to-secondary-blue-600" }, { label: "Components", value: "91", gradient: "from-primary-01-500 to-primary-01-600" }, { label: "Icons", value: "1,473", gradient: "from-secondary-purple-500 to-secondary-purple-600" }, { label: "CSS Utilities", value: "6", gradient: "from-secondary-blue-600 to-secondary-blue-700" }, { label: "Documentation", value: "281", gradient: "from-primary-01-600 to-primary-01-700" }, { label: "MCP Tools", value: "11", gradient: "from-secondary-purple-600 to-secondary-purple-700" }, ]; const tools = [ { name: "get_design_tokens", desc: "Query tokens by category", category: "tokens" }, { name: "get_component_info", desc: "Get component details (props, slots, events)", category: "components" }, { name: "list_components", desc: "List components by category", category: "components" }, { name: "generate_vue_component", desc: "Generate Vue 3 code", category: "components" }, { name: "generate_react_component", desc: "Generate React code", category: "components" }, { name: "search_documentation", desc: "Full-text search across docs", category: "docs" }, { name: "get_css_utility", desc: "Get CSS utility classes", category: "css" }, { name: "list_css_utilities", desc: "List available CSS utilities", category: "css" }, { name: "search_icons", desc: "Search icons by name/type", category: "icons" }, { name: "get_icon", desc: "Get icon SVG and code", category: "icons" }, { name: "get_install_info", desc: "Get installation commands (beta)", category: "install" }, ]; const features = [ { title: "Design Tokens", desc: "Access 586 design tokens including colors, typography, spacing, shadows, borders, and breakpoints in JSON, SCSS, CSS, or JS format.", color: "secondary-blue", }, { title: "Component Documentation", desc: "Get complete documentation for 91 Vue and React components with props, slots, events, and code examples.", color: "primary-01", }, { title: "Icon Library", desc: "Search and retrieve 1,473 SVG icons across 15 categories with ready-to-use React and Vue code.", color: "secondary-purple", }, { title: "Full-Text Search", desc: "Search across 281 documentation pages with FTS5-powered full-text search for installation guides, usage, and best practices.", color: "primary-01", }, ]; const categoryColors: Record<string, string> = { tokens: "bg-secondary-blue-100 text-secondary-blue-700 dark:bg-secondary-blue-900/30 dark:text-secondary-blue-400", components: "bg-primary-01-100 text-primary-01-700 dark:bg-primary-01-900/30 dark:text-primary-01-400", docs: "bg-secondary-purple-100 text-secondary-purple-700 dark:bg-secondary-purple-900/30 dark:text-secondary-purple-400", css: "bg-secondary-blue-100 text-secondary-blue-700 dark:bg-secondary-blue-900/30 dark:text-secondary-blue-400", icons: "bg-secondary-purple-100 text-secondary-purple-700 dark:bg-secondary-purple-900/30 dark:text-secondary-purple-400", install: "bg-grey-100 text-grey-700 dark:bg-grey-800 dark:text-grey-400", }; function Home() { return ( <div className="space-y-16"> {/* Hero */} <section className="text-center py-12 hero-gradient rounded-2xl"> <div className="inline-flex items-center gap-2 px-4 py-2 bg-primary-01-100 dark:bg-primary-01-900/30 rounded-full mb-6"> <span className="w-2 h-2 bg-primary-01-500 rounded-full animate-pulse"></span> <span className="text-sm font-medium text-primary-01-700 dark:text-primary-01-400"> MCP Server for AI Assistants </span> </div> <h1 className="text-4xl md:text-5xl lg:text-6xl font-bold text-grey-900 dark:text-grey-000 mb-6 tracking-tight"> Mozaic MCP Server </h1> <p className="text-lg md:text-xl text-grey-600 dark:text-grey-300 max-w-3xl mx-auto mb-8 leading-relaxed"> An MCP (Model Context Protocol) server that exposes the{" "} <strong className="text-primary-01-600 dark:text-primary-01-400">Mozaic Design System</strong> by ADEO to Claude and other AI assistants. </p> <div className="flex flex-wrap justify-center gap-4"> <Link to="/playground"> <Button variant="solid" theme="primary" size="l"> Try It Now </Button> </Link> <a href="https://github.com/MerzoukeMansouri/adeo-mozaic-mcp" target="_blank" rel="noopener noreferrer" > <Button variant="bordered" theme="primary" size="l"> View on GitHub </Button> </a> </div> </section> {/* Stats */} <section> <div className="flex items-center gap-4 mb-8"> <h2 className="text-2xl md:text-3xl font-bold text-grey-900 dark:text-grey-000"> What's Indexed </h2> <div className="flex-1 h-px bg-grey-200 dark:bg-primary-02-700"></div> </div> <div className="grid grid-cols-2 md:grid-cols-3 lg:grid-cols-6 gap-4"> {stats.map((stat) => ( <div key={stat.label} className="stats-card rounded-xl border border-grey-200 dark:border-primary-02-600 p-6 text-center hover:border-primary-01-400 dark:hover:border-primary-01-500 transition-all feature-card" > <div className={`text-3xl md:text-4xl font-bold bg-gradient-to-r ${stat.gradient} bg-clip-text text-transparent mb-2`}> {stat.value} </div> <div className="text-sm text-grey-600 dark:text-grey-400 font-medium"> {stat.label} </div> </div> ))} </div> </section> {/* Quick Start */} <section> <div className="flex items-center gap-4 mb-8"> <h2 className="text-2xl md:text-3xl font-bold text-grey-900 dark:text-grey-000"> Quick Start </h2> <div className="flex-1 h-px bg-grey-200 dark:bg-primary-02-700"></div> </div> <div className="code-block p-6 overflow-x-auto"> <pre className="text-grey-100 text-sm md:text-base font-mono"> <code>{`# Clone and build git clone https://github.com/MerzoukeMansouri/adeo-mozaic-mcp cd adeo-mozaic-mcp pnpm install pnpm build # Start the MCP server pnpm start`}</code> </pre> </div> <div className="mt-4 p-4 bg-secondary-blue-100 dark:bg-secondary-blue-900/20 border border-secondary-blue-200 dark:border-secondary-blue-800 rounded-lg"> <p className="text-sm text-secondary-blue-700 dark:text-secondary-blue-300"> <strong>Tip:</strong> Add the server to your Claude Desktop configuration to start using Mozaic documentation in your conversations. </p> </div> </section> {/* MCP Tools */} <section> <div className="flex items-center gap-4 mb-8"> <h2 className="text-2xl md:text-3xl font-bold text-grey-900 dark:text-grey-000"> MCP Tools </h2> <Flag variant="solid" theme="primary">{tools.length} tools</Flag> <div className="flex-1 h-px bg-grey-200 dark:bg-primary-02-700"></div> </div> <div className="grid md:grid-cols-2 lg:grid-cols-3 gap-4"> {tools.map((tool) => ( <div key={tool.name} className="bg-white dark:bg-primary-02-800 rounded-xl border border-grey-200 dark:border-primary-02-600 p-5 hover:border-primary-01-400 dark:hover:border-primary-01-500 transition-all feature-card group" > <div className="flex items-start justify-between gap-3 mb-3"> <code className="text-primary-01-600 dark:text-primary-01-400 font-mono text-sm font-semibold group-hover:text-primary-01-700 dark:group-hover:text-primary-01-300 transition-colors"> {tool.name} </code> <span className={`px-2 py-1 rounded-md text-xs font-medium ${categoryColors[tool.category]}`}> {tool.category} </span> </div> <p className="text-sm text-grey-600 dark:text-grey-400"> {tool.desc} </p> </div> ))} </div> </section> {/* Features */} <section> <div className="flex items-center gap-4 mb-8"> <h2 className="text-2xl md:text-3xl font-bold text-grey-900 dark:text-grey-000"> Features </h2> <div className="flex-1 h-px bg-grey-200 dark:bg-primary-02-700"></div> </div> <div className="grid md:grid-cols-2 gap-6"> {features.map((feature) => ( <div key={feature.title} className={`bg-white dark:bg-primary-02-800 rounded-xl border-l-4 border border-grey-200 dark:border-primary-02-600 p-6 hover:border-primary-01-400 dark:hover:border-primary-01-500 transition-all feature-card ${ feature.color === "primary-01" ? "border-l-primary-01-500" : feature.color === "secondary-blue" ? "border-l-secondary-blue-500" : "border-l-secondary-purple-500" }`} > <h3 className="text-lg font-semibold text-grey-900 dark:text-grey-000 mb-2"> {feature.title} </h3> <p className="text-sm text-grey-600 dark:text-grey-400 leading-relaxed"> {feature.desc} </p> </div> ))} </div> </section> {/* CTA */} <section className="bg-gradient-to-br from-primary-02-800 to-primary-02-900 rounded-2xl p-8 md:p-12 text-center relative overflow-hidden"> {/* Background decoration */} <div className="absolute inset-0 opacity-10"> <div className="absolute top-0 right-0 w-64 h-64 bg-primary-01-400 rounded-full blur-3xl"></div> <div className="absolute bottom-0 left-0 w-64 h-64 bg-secondary-blue-400 rounded-full blur-3xl"></div> </div> <div className="relative"> <h2 className="text-2xl md:text-3xl font-bold text-grey-000 mb-4"> Ready to explore? </h2> <p className="text-lg text-primary-02-300 mb-8 max-w-2xl mx-auto"> Test the MCP tools directly in your browser with our interactive playground. </p> <Link to="/playground"> <Button variant="solid" theme="primary" size="l"> Open Playground </Button> </Link> </div> </section> </div> ); } export default Home;

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/MerzoukeMansouri/adeo-mozaic-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server