{"name":"io.github.mahmoudilyan/marmo-ui","slug":"mahmoudilyan-marmo-ui","title":null,"description":"Live React design-system APIs, patterns, and code validation so AI agents build real UI, not slop.","url":"https://mcp.market/server/mahmoudilyan-marmo-ui","rating":null,"grade":"B","score":77,"certified":false,"status":"active","category":"media","tags":["media"],"presence":{"score":33,"stars":39,"forks":1,"downloads_week":null,"last_push_at":"2026-07-25T18:11:40.000Z","license":"MIT"},"uptime":{"percent":100,"checks":28,"ok":28,"last_checked_at":"2026-09-26T15:51:04.620Z","last_ok_at":"2026-09-26T15:51:04.620Z","latency_ms":359},"claimed":false,"transport":"remote","callable_via_gateway":true,"default_price_micros":0,"repository":"https://github.com/mahmoudilyan/marmoui","website":"https://www.marmoui.com","version":"1.1.1","remotes":[{"type":"streamable-http","url":"https://mcp.marmoui.com/mcp"}],"packages":[],"tools":[{"name":"deploy_prototype","description":"Register a prototype for sharing and get a share URL. Reviewers can leave inline comments via the Marmo overlay.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"prototypeId":{"type":"string","description":"Unique prototype identifier (slug)"},"title":{"type":"string","description":"Human-readable prototype title"},"deployUrl":{"type":"string","format":"uri","description":"Deployed URL if already live"}},"required":["prototypeId"]}},{"name":"generate_component","description":"Validate and optionally save a custom component for the authenticated tenant. Runs review_generated_code validation before persisting. Use for AI-generated or customized components.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"componentName":{"type":"string","description":"PascalCase component name, e.g. CustomStatCard"},"description":{"type":"string","description":"What the component should do"},"code":{"type":"string","description":"Generated TSX code using @marmoui/ui primitives"},"save":{"type":"boolean","description":"Save as tenant component override if validation passes"}},"required":["componentName","description","code"]}},{"name":"get_agent_connect_config","description":"Returns ready-to-paste MCP configuration for Cursor, Claude Code, or Codex. Use on the Connect page or when setting up a new project.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"client":{"type":"string","enum":["cursor","claude","codex"],"description":"Target agent client. Omit to get all configs."}}}},{"name":"get_component_info","description":"Get exact props (with types and defaults), code examples, composition patterns, and common mistakes for a single @marmoui/ui component. REQUIRED before using any component for the first time in a session — prevents hallucinated props (e.g. variant=\"danger\" on Badge, size=\"lg\" on Text) that fail at build time.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"componentName":{"type":"string","description":"Name of the component to get information about (e.g. \"Button\", \"Card\", \"Input\")"}},"required":["componentName"]}},{"name":"get_design_guidelines","description":"MANDATORY FIRST CALL before writing any @marmoui/ui code in this session. Returns a step-by-step generation checklist (which tools to call, in what order), critical rules (no namespace sub-components, PageSection is self-closing, no Sidebar export), component patterns, and ICON LIBRARY RULES. Pass iconLibrary (default \"phosphor\"; also \"material\" | \"lucide\" | \"tabler\" | \"heroicons\" | \"feather\") to get that library's import source, icon name map, and weight/style mapping — and pass the SAME value to review_generated_code so it enforces it. Ask the user which icon library they want before writing UI code. Call topic=\"patterns\" to get the generation checklist specifically.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"topic":{"type":"string","enum":["all","imports","styling","icons","patterns","accessibility"],"description":"Specific guideline topic (default: \"all\")"},"iconLibrary":{"type":"string","enum":["phosphor","material","lucide","tabler","heroicons","feather"],"description":"Icon library the agent should import from. Default: \"phosphor\". Ask the user which library they want before writing UI code; if they have no preference, omit this and the default (Phosphor) applies. Supported: phosphor, material, lucide, tabler, heroicons, feather."}}}},{"name":"get_design_md","description":"Generate a portable DESIGN.md for the authenticated tenant — brand color, type, tokens, and component inventory — that any AI agent can read to generate on-brand UI. Pass format=\"markdown\" (default) for the DESIGN.md string or format=\"json\" for structured data. Output is deterministic for a given tenant.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"format":{"type":"string","enum":["markdown","json"],"default":"markdown","description":"Output format. \"markdown\" returns the DESIGN.md string; \"json\" returns structured data."}}}},{"name":"get_knowledge_version","description":"Returns the MCP knowledge version: gitSha, indexedAt, componentCount, patternCount, uptimeSeconds. Call this ONCE per session before generating UI code so you know how fresh the design-system data is. Cheap to call. If gitSha is \"unknown\" or indexedAt is far in the past, surface that to the user before relying on the data.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{}}},{"name":"get_pattern","description":"Get a complete, validated composition example for a common UI pattern. Available: app-layouts (ASK USER which of 4 layout ids before any full page), app-shell, confirmation-dialog, dialogs-for-other-actions, data-table-with-filters, form-with-validation, posthog-tracking. Call app-layouts first for full pages — returns layout selection flow + AppLayout usage. Pass iconLibrary (default \"phosphor\") so the usage note tells you which icon import source to rewrite the pattern's icons to. Returns code + inline validation report. Call with no arguments to list all patterns.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"patternId":{"type":"string","description":"Pattern identifier, e.g. \"app-shell\", \"data-table-with-filters\", \"confirmation-dialog\", \"dialogs-for-other-actions\". Omit to list all available patterns."},"iconLibrary":{"type":"string","enum":["phosphor","material","lucide","tabler","heroicons","feather"],"description":"Icon library the caller is using. Default: \"phosphor\". The returned usage note tells the agent which icon import source to use, and the inline validation enforces it. Supported: phosphor, material, lucide, tabler, heroicons, feather."}}}},{"name":"get_prototype_feedback","description":"Fetch inline comments from a shared prototype as structured data and Markdown. Pull into Cursor/Claude to iterate on feedback.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"prototypeId":{"type":"string","description":"Prototype ID/slug to fetch feedback for"},"includeResolved":{"type":"boolean","default":false}},"required":["prototypeId"]}},{"name":"get_tenant_theme","description":"Returns the authenticated tenant's customized theme tokens, CSS variables export, and component overrides. Call after auth to apply tenant-specific styling in generated code.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{}}},{"name":"list_components","description":"List all available @marmoui/ui components with names, descriptions, categories, and prop counts. Use to discover what exists. Prefer `search_components` when you already know the use case (form, table, dialog, etc.).","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"category":{"type":"string","description":"Filter by category (e.g., \"Components\", \"Layout\")"},"status":{"type":"string","description":"Filter by status (e.g., \"stable\", \"beta\")"}}}},{"name":"review_generated_code","description":"⚠️  MANDATORY — call this on every piece of code you generate before returning it to the user. Validates TSX/JSX against real @marmoui/ui prop signatures and returns { valid, errors[], warnings[], suggestedFixes[], iconLibrary }. Catches: (1) unknown imports, (2) Tabs.List/Tabs.Trigger namespace misuse → auto-suggests TabsList/TabsTrigger fix, (3) PageSection used as wrapper (must be self-closing), (4) hallucinated props, (5) icons imported from the wrong icon library (pass iconLibrary — default \"phosphor\" — matching what you passed to get_design_guidelines; wrong-library icon imports are ERRORS). If valid=false, fix all errors and call this again. DO NOT return code with errors to the user.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"code":{"type":"string","description":"The complete TSX/JSX code you just generated. Must import from @marmoui/ui."},"context":{"type":"string","description":"Optional: describe what the code is supposed to do (e.g. \"settings page with tabs\"). Helps produce more targeted feedback."},"iconLibrary":{"type":"string","enum":["phosphor","material","lucide","tabler","heroicons","feather"],"description":"Icon library the code must import icons from. Default: \"phosphor\". Pass the SAME value you passed to get_design_guidelines. When set, imports from any other icon library are reported as ERRORS. Supported: phosphor, material, lucide, tabler, heroicons, feather."}},"required":["code"]}},{"name":"search_components","description":"Search @marmoui/ui by keyword (e.g. \"form\", \"table\", \"dialog\", \"avatar\"). Preferred discovery tool — returns the 5-8 most relevant components for a need. Call this before `get_component_info` when unsure which component to use.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"query":{"type":"string","description":"Search query — matches against component names, descriptions, categories, and prop names"},"limit":{"type":"number","description":"Maximum results to return (default: 10)"}},"required":["query"]}},{"name":"validate_component_usage","description":"Validate a TSX/JSX snippet against real @marmoui/ui prop signatures. Returns `{valid, issues[]}`. Prefer `review_generated_code` for post-generation review (it also auto-fixes namespace patterns and suggests related patterns). Use this tool when validating user-provided or existing code rather than newly generated code.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"code":{"type":"string","description":"TSX/JSX code snippet to validate against @marmoui/ui"},"iconLibrary":{"type":"string","enum":["phosphor","material","lucide","tabler","heroicons","feather"],"description":"Optional: icon library the code must import icons from. Default: \"phosphor\". When set, imports from any other icon library are reported as errors. Supported: phosphor, material, lucide, tabler, heroicons, feather."}},"required":["code"]}}],"scan":{"score":77,"grade":"B","scanned_at":"2026-09-26T11:35:20.886Z","report":{"scannerVersion":"0.1.9","scannedAt":"2026-09-26T11:35:20.918Z","components":{"code":{"score":-1,"max":25,"notes":["remote-only server, no package to scan"]},"reliability":{"score":20,"max":20,"notes":["remote reachable in 386ms"]},"poisoning":{"score":15,"max":15,"notes":["14 tool descriptions checked"]},"auth":{"score":3,"max":15,"notes":["open endpoint exposes 1 write-action tools with no auth"]},"maintenance":{"score":12,"max":15,"notes":["last push 63 days ago"]},"identity":{"score":8,"max":10,"notes":["registry namespace matches repository owner","GitHub account older than a year"]}},"findings":[{"id":"auth.open-write","severity":"high","component":"auth","title":"Write-action tools reachable without authentication"}],"inputs":{"probes":[{"url":"https://mcp.marmoui.com/mcp","reachable":true,"authRequired":false,"latencyMs":386,"serverInfo":{"name":"design-system-mcp","version":"1.1.0"}}],"packages":[],"repo":{"found":true,"owner":"mahmoudilyan","repo":"marmoui","archived":false,"pushedAt":"2026-07-25T18:11:40Z","stars":39,"forks":1,"openIssues":1,"ownerType":"User","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/7131286?v=4","ownerCreatedAt":"2014-04-01T20:03:06Z","license":"MIT"},"icon":{"url":"https://avatars.githubusercontent.com/u/7131286?v=4&s=128","source":"github"},"presence":{"stars":39,"forks":1,"downloadsWeek":null,"license":"MIT","lastPushAt":"2026-07-25T18:11:40.000Z","score":33}}}},"grade_history":[],"reviews":[]}