{"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":"F","score":17,"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":0,"checks":28,"ok":0,"last_checked_at":"2026-11-15T10:35:46.083Z","last_ok_at":"2026-10-04T23:35:34.457Z","latency_ms":112},"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":17,"grade":"F","scanned_at":"2026-10-12T16:01:20.158Z","report":{"scannerVersion":"0.1.10","scannedAt":"2026-10-12T16:01:20.131Z","components":{"code":{"score":-1,"max":25,"notes":["remote-only server, no package to scan"]},"reliability":{"score":0,"max":20,"notes":["remote unreachable: HTTP 500"]},"poisoning":{"score":-1,"max":15,"notes":["tools not inspected (endpoint requires auth); not counted"]},"auth":{"score":5,"max":15,"notes":["no auth information"]},"maintenance":{"score":3,"max":15,"notes":["repository not readable: repo not found"]},"identity":{"score":2,"max":10,"notes":["no repository or website to verify"]}},"findings":[{"id":"reliability.unreachable","severity":"high","component":"reliability","title":"Remote endpoint did not respond","detail":"HTTP 500"}],"inputs":{"probes":[{"url":"https://mcp.marmoui.com/mcp","reachable":false,"authRequired":false,"latencyMs":329,"error":"HTTP 500"}],"packages":[],"repo":{"found":false,"owner":"mahmoudilyan","repo":"marmoui","error":"repo not found"},"icon":{"url":"https://avatars.githubusercontent.com/u/7131286?v=4&s=128","source":"registry"},"presence":{"stars":39,"forks":1,"downloadsWeek":null,"license":"MIT","lastPushAt":"2026-07-25T18:11:40.000Z","score":33}}}},"grade_history":[{"kind":"revoke","fromGrade":"B","toGrade":"F","reason":"score 17: Remote endpoint did not respond","createdAt":"2026-10-12T16:01:20.523Z"}],"reviews":[]}