{"name":"io.github.memi-design/memi","slug":"memi-design-memi","title":"memi","description":"Memi is the design layer for agentic AI.","url":"https://mcp.market/server/memi-design-memi","rating":null,"grade":"A","score":91,"certified":false,"status":"active","category":"media","tags":["media"],"presence":{"score":44,"stars":46,"forks":6,"downloads_week":123,"last_push_at":"2026-09-08T23:06:44.000Z","license":"MIT"},"uptime":null,"claimed":false,"transport":"npm","callable_via_gateway":false,"default_price_micros":0,"repository":"https://github.com/memi-design/memi","website":"https://memoire.cv","version":"2.7.9","remotes":[],"packages":[{"registryType":"npm","registryBaseUrl":"https://registry.npmjs.org","identifier":"@memi-design/cli","version":"2.7.9","transport":{"type":"stdio"},"packageArguments":[{"value":"mcp","type":"positional"},{"value":"start","type":"positional"},{"value":"--no-figma","type":"positional"}]}],"tools":[{"name":"analyze_design","description":"Capture a Figma node and analyze it with configured AI vision. Prereq: bridge + plugin connected; a vision-capable AI provider configured; spec-compliance mode needs the spec in the registry. Returns by mode \\u2014 general: { summary, issues[], suggestions[], qualityScore }; accessibility: { summary, contrastIssues[], touchTargetIssues[], focusIssues[], wcagLevel }; spec-compliance: { summary, com","write_action":false,"price_micros":0,"input_schema":null},{"name":"audit_interface_craft","description":"Audit interface design craft from local app-quality evidence or a screenshot artifact. Returns: InterfaceCraftReport JSON \\u2014 score, critique, dimensions, findings, topOpportunities (lenses: visual design, interface design, conventions, user context). Use before UI edits or after a redesign; pairs with diagnose_app_quality and audit_ux_tenets_traps.","write_action":false,"price_micros":0,"input_schema":null},{"name":"audit_ux_tenets_traps","description":"Audit UX tenets and traps from app-quality evidence or a screenshot artifact. Returns on success: UX audit JSON with score, tenetCoverage, trapRisks, findings, and recommendedTweaks. This tool does not modify source files. Use this tool: when an agent needs a focused design critique packet for clarity, feedback, control, consistency, accessibility, error recovery, progressive disclosure, workflow ","write_action":false,"price_micros":0,"input_schema":null},{"name":"capture_screenshot","description":"Capture a screenshot of a Figma node (or the current page) as image data. Prereq: bridge + plugin connected (check_bridge_health); node IDs from get_selection or get_page_tree. Returns: { type: \"image\", data: base64, mimeType }. Feed into analyze_design; first step of the self-heal loop (CREATE \\u2192 SCREENSHOT \\u2192 ANALYZE \\u2192 FIX). Prefer SVG for vector components, PNG for complex frames. ","write_action":false,"price_micros":0,"input_schema":null},{"name":"check_bridge_health","description":"Check health of the Figma WebSocket bridge. Works with no plugin connected; never throws. Returns: { status: \"healthy\"|\"degraded\"|\"down\", connected, clientCount, latencyMs, uptimeSeconds, port, error? } \\u2014 clientCount 0 means no plugin open in Figma. Call this first before any Figma-dependent tool.","write_action":false,"price_micros":0,"input_schema":null},{"name":"check_skill_compliance","description":"Check real source files for the objectively-checkable rules in skills/ATOMIC_DESIGN.md (composition, state, data-fetching, naming) and skills/MOTION_VIDEO_DESIGN.md (motion tokens, reduced-motion, GPU-safe properties) \\u2014 a post-hoc, deterministic verification pass, the same mechanism a linter uses to enforce a style guide. This does not read the skill docs at check time or make an agent obey m","write_action":false,"price_micros":0,"input_schema":null},{"name":"compose","description":"Run the agent orchestrator on a natural-language design intent \\u2014 classifies, builds a multi-step plan, executes it. Prereq: Figma bridge only for Figma-touching intents. Returns: { success, plan: { steps[] }, results[], summary, errors? }; success=false with errors on failure (per-step failures do not abort the plan). Examples: \"create a dashboard page with KPI cards, a chart, and a data tabl","write_action":true,"price_micros":0,"input_schema":null},{"name":"create_spec","description":"Create or overwrite a spec in the registry (Zod-validated). Same-name specs are silently overwritten \\u2014 check get_specs first. Returns: `Spec \"<name>\" saved (<type>)`. Errors: isError with Zod details on schema/JSON/type failures. Schemas \\u2014 component: name, type, atomicLevel (\"atom\"|\"molecule\"|\"organism\"|\"template\"), purpose, props[], variants[], composesSpecs[] (atoms must be []), codeCo","write_action":true,"price_micros":0,"input_schema":null},{"name":"design_doc","description":"Scrape a public URL and extract its design system \\u2014 parses CSS custom properties, colors, fonts, spacing, radii, shadows; the configured AI provider synthesizes a DESIGN.md. Prereq: publicly accessible URL; configured AI provider for synthesis (pass raw=true without it). Returns (raw=false): DESIGN.md with Color System, Typography, Spacing, Borders & Surfaces, Component Patterns, Voice & Tone","write_action":false,"price_micros":0,"input_schema":null},{"name":"design_systems_context","description":"Normalize design-systems-mcp corpus data into compact, deterministic agent context. This read-only tool validates caller-supplied JSON and never fetches URLs, reads files, writes files, or executes corpus content. Use mode=corpus with a native manifest plus filename-keyed entries, or mode=category with the proposed category-manifest/v1 envelope. Returns byte-capped context plus inclusion counts.","write_action":false,"price_micros":0,"input_schema":null},{"name":"diagnose_app_quality","description":"Diagnose UI quality for an existing shadcn/Tailwind app from code or a public URL. Returns on success: App-quality diagnosis V2 with scores, issues, evidence locations, affected files, confidence, effort estimates, fix categories, and app graph summary. Use this tool: before planning UI fixes, exporting a registry, or giving an AI editor context on real app design debt.","write_action":false,"price_micros":0,"input_schema":null},{"name":"generate_code","description":"Generate shadcn/ui + Tailwind code from a saved spec and write files into atomic design folders (atoms \\u2192 components/ui/, molecules/organisms/templates \\u2192 components/<level>/). Returns: { entryFile, files[], generatedAt, findings[], critique? }. For page specs, critique is an AI layout score (0-100) + hierarchy/spacing/consistency notes when an AI provider is configured \\u2014 informationa","write_action":false,"price_micros":0,"input_schema":null},{"name":"generate_health_report","description":"Compose one self-contained design-health report (HTML + markdown) from all persisted .memoire audits \\u2014 app quality, UX tenets/traps, interface craft, skill compliance, and the score trend, with provenance badges, the not-assessed legend, and the active policy hash. Prereq: run diagnose_app_quality (or the CLI audits) first so artifacts exist; missing sections are listed, never silently omitte","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_ai_usage","description":"AI token usage and estimated cost for this MCP session (in-memory tracker; never throws; unknown when provider pricing is not configured). Returns: { calls, inputTokens, outputTokens, estimatedCost, knownEstimatedCost, costComplete, unpricedCalls, summary }. Use to monitor spend from analyze_design, design_doc, or compose.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_page_tree","description":"Get the hierarchical node tree of the current Figma file. Prereq: bridge + plugin connected. Returns: array of pages { id, name, type: \"PAGE\", children[] }; child nodes { id, name, type, children? }. IDs feed capture_screenshot and analyze_design. depth=1 pages only, 2 (default) top-level frames, 3+ component internals \\u2014 high depths may be slow on large files.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_registry_item","description":"Return one shadcn registry-item.json-compatible item from the workspace. Returns: files, targets, dependencies, cssVars, and Atomic Design metadata. Errors: isError if the item is unknown (discover names via get_shadcn_registry).","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_research","description":"Load and return the project's user research V2 store \\u2014 observations, findings, personas, themes, quantitative metrics, and quality metadata. Prerequisites: None \\u2014 reads from the local .memoire/research/ directory. Research data is populated by running `memi research from-file`, `memi research from-stickies`, `memi research from-transcript`, `memi research web`, or `memi research synthesi","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_selection","description":"Get the nodes currently selected in Figma with layout/style details. Prereq: bridge + plugin connected; returns [] if nothing is selected. Returns: [{ id, name, type, width, height, x, y, layoutMode?, padding/sizing/itemSpacing?, fills?, strokes?, effects?, styles?, variantProperties? }]. Use for node IDs (capture_screenshot, analyze_design) or reading layout/variants before writing a spec. Errors","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_shadcn_registry","description":"Build a shadcn registry.json-compatible index from the workspace (component specs; tokens map to a registry:theme item when present). Returns: { $schema, name, homepage, items[] } with file targets, registryDependencies, cssVars. For a single item use get_registry_item.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_spec","description":"Fetch the full body of one spec by name. Returns: full spec JSON \\u2014 ComponentSpec: atomicLevel, props, variants, composesSpecs, codeConnect, WCAG fields; PageSpec: sections, meta; DataVizSpec: chartType, dataShape. Errors: isError if the name is not found (list names via get_specs).","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_specs","description":"List all saved specs (cheap summary operation). Returns: [{ name, type: \"component\"|\"page\"|\"dataviz\"|\"design\"|\"ia\", purpose? }]; [] when none exist. Use before create_spec (overwrite check) or generate_code; fetch a full body with get_spec.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_tokens","description":"Get design tokens from the local registry, optionally filtered. Prereq: none \\u2014 local read; run pull_design_system if empty. Returns: [{ name, type: \"color\"|\"spacing\"|\"typography\"|\"radius\"|\"shadow\"|\"other\", values (keyed by mode), cssVariable? }]; [] when none. format \"dtcg\" returns the same tokens as a W3C Design Tokens (DTCG) document instead \\u2014 nested groups, $type/$value, lossless via ","write_action":false,"price_micros":0,"input_schema":null},{"name":"measure_text","description":"Predict text layout \\u2014 height, line count, overflow, breakpoint behavior \\u2014 via Node canvas. No browser, Figma, or AI needed. Returns: { height, lineCount, lines[] }; plus { overflow } when containerHeight is given; plus { breakpoints: { mobile, tablet, desktop } } when checkBreakpoints=true. Never throws (0 height / 1 line for unparseable fonts). Use to verify labels or body copy fit fixe","write_action":false,"price_micros":0,"input_schema":null},{"name":"mermaid_jam_export","description":"Write Mermaid Jam-ready FigJam source artifacts from research or a simulation run. This is source + open friendly: it writes .mmd/.md files under .memoire/mermaid-jam and returns next steps. It does not attempt clipboard or direct paste automation.","write_action":true,"price_micros":0,"input_schema":null},{"name":"plan_ui_fixes","description":"Build a dry-run UI fix plan from diagnosis evidence and app graph data. Returns on success: { patches[], summary, caveats[] } where every patch includes risk, confidence, affected files, operations, and writeSafe. This tool never modifies source files. Use this tool: to decide what a human or coding agent should patch before calling memi fix apply or making manual edits.","write_action":false,"price_micros":0,"input_schema":null},{"name":"prepare_apple_design_brief","description":"Prepare a compact, local-first Apple-platform design and verification brief. Returns: mission, skill triggers, availability policy, Xcode preflight, design checks, build/test commands, and handoff requirements. Use before creating or changing SwiftUI, SwiftData, App Intents, Liquid Glass, or concurrency-sensitive UI. This tool does not run Xcode or mutate files.","write_action":false,"price_micros":0,"input_schema":null},{"name":"prepare_design_agent_brief","description":"Prepare a cost-aware design-agent brief before editing UI. Returns on success: JSON with mission, evidenceCommands, designRules, costControls, compatibility installs, MCP command, Agent Skills command, and handoffChecklist. Use this tool: as the first MCP call when a coding agent is asked to design, polish, audit, refactor, or generate interface code. It is local-first and does not call Figma, bro","write_action":false,"price_micros":0,"input_schema":null},{"name":"pull_design_system","description":"Pull the full design system from Figma (tokens, components, styles) into the local registry. Prereq: Figma bridge running + plugin connected \\u2014 verify with check_bridge_health; start via `memi connect`. Returns: { tokens, components, styles, lastSync }. Errors: isError \"Figma not connected\" if no plugin. Run at session start or after designer changes; inspect results with get_tokens.","write_action":false,"price_micros":0,"input_schema":null},{"name":"pull_design_system_rest","description":"Pull the design system from Figma via REST API \\u2014 no plugin or bridge required. Prereq: FIGMA_TOKEN and FIGMA_FILE_KEY env vars. Returns: { tokens, components, styles, lastSync }. Errors: missing env vars, or Figma API errors (403 = bad token, 404 = bad file key). Use in CI/headless; equivalent to `memi pull --rest`.","write_action":false,"price_micros":0,"input_schema":null},{"name":"research_design_package","description":"Preview a research-backed vibe design package from ResearchStore V2 plus an optional simulation run. Returns on success: { package } with brief, Atomic Design specs, evidence ids, Mermaid Jam-ready source artifacts, and warnings. This tool is non-mutating; call research_generate_specs to write specs or mermaid_jam_export to write FigJam source files.","write_action":false,"price_micros":0,"input_schema":null},{"name":"research_generate_specs","description":"Write research-backed Atomic Design specs generated from ResearchStore V2. Prerequisites: Call research_design_package first to preview. This tool requires approved=true to make the write explicit. Writes DesignSpec, IASpec, PageSpec, ComponentSpec, and DataVizSpec objects through the Memoire registry.","write_action":true,"price_micros":0,"input_schema":null},{"name":"run_audit","description":"Run a deterministic design-system audit (WCAG contrast, token completeness, spec accessibility) and return structured findings. Prereq: none \\u2014 token/spec level, no Figma, no AI. Returns: { success, results: issues[], score, level, summary }. focus=\"contrast\" narrows to token contrast pairs; focus=\"skill-compliance\" checks real source files against ATOMIC_DESIGN.md/MOTION_VIDEO_DESIGN.md's che","write_action":true,"price_micros":0,"input_schema":null},{"name":"scaffold_agent_design_files","description":"Preview or write a spec-first Atomic Design scaffold for agent-created files. Default is non-mutating: approved=false returns a dry-run JSON plan with the exact spec path, guardrails, and next generation commands. To write the spec, pass approved=true. This writes only the registry spec; generated code still requires generate_code or memi generate, so quality gates stay intact.","write_action":false,"price_micros":0,"input_schema":null},{"name":"scaffold_swiftui_files","description":"Preview or write a deterministic SwiftUI feature scaffold. Default approved=false is non-mutating and returns every planned path and file body: Memi iOS spec, SwiftUI view, optional screen model, preview, and Swift Testing file. Set approved=true only after reviewing the plan. Writes never alter Xcode project files and refuse to overwrite existing files.","write_action":false,"price_micros":0,"input_schema":null},{"name":"simulation_compare","description":"Compare completed simulation runs by adoption, confidence, evidence coverage, risk, and cost.","write_action":false,"price_micros":0,"input_schema":null},{"name":"simulation_costs","description":"Summarize token and cost usage for a simulation run.","write_action":false,"price_micros":0,"input_schema":null},{"name":"simulation_export_spec","description":"Convert a simulation report into a product-spec impact artifact that agents can paste into specs or handoff docs.","write_action":false,"price_micros":0,"input_schema":null},{"name":"simulation_generate_agents","description":"Generate a 20-60 agent model-swarm cohort from Memoire research evidence without starting a run.","write_action":false,"price_micros":0,"input_schema":null},{"name":"simulation_interview","description":"Interview a simulated product stakeholder from a completed local or model-swarm run.","write_action":false,"price_micros":0,"input_schema":null},{"name":"simulation_list_runs","description":"List persisted simulation runs with lightweight summaries. Use this to discover runIds for simulation_status, simulation_stream, simulation_transcript, simulation_costs, simulation_report, and simulation_compare.","write_action":false,"price_micros":0,"input_schema":null},{"name":"simulation_models","description":"List Codex-first model profiles available to Memoire model-swarm simulations. Live model execution is opt-in; unavailable providers automatically fall back to deterministic clean-room simulation.","write_action":false,"price_micros":0,"input_schema":null},{"name":"simulation_plan","description":"Create a clean-room product simulation scenario from Memoire research evidence. Prereq: research/store.v2.json or a ResearchStore JSON string. Local TypeScript simulation core only; adapter=model-swarm plans Codex-first profiles with deterministic fallback. Returns: { scenario (agents, variables, graph, evidenceFindingIds), warnings }.","write_action":true,"price_micros":0,"input_schema":null},{"name":"simulation_report","description":"Export a simulation report with recommendations, risks, assumptions, events, interviews, and evidenceFindingIds.","write_action":false,"price_micros":0,"input_schema":null},{"name":"simulation_run","description":"Run a prepared local or model-swarm product simulation scenario. Prerequisites: Call simulation_plan first and pass the returned scenario.id. Returns on success: SimulationRun with status, events, eventCount, and persisted run id.","write_action":true,"price_micros":0,"input_schema":null},{"name":"simulation_run_matrix","description":"Plan and run multiple model-swarm hypotheses, then compare outcomes for product-spec decision work.","write_action":true,"price_micros":0,"input_schema":null},{"name":"simulation_status","description":"Read a local simulation run status from .memoire/simulations/runs.","write_action":false,"price_micros":0,"input_schema":null},{"name":"simulation_stream","description":"Read persisted simulation events in stream order. Paginated \\u2014 use offset/limit to page through long runs instead of materializing the full event log.","write_action":false,"price_micros":0,"input_schema":null},{"name":"simulation_transcript","description":"Read model-swarm transcript memory for a run.","write_action":false,"price_micros":0,"input_schema":null},{"name":"sync_design_tokens","description":"Map registry tokens to a Tailwind theme.extend object; optionally import a W3C DTCG token file first. Prereq: tokens in the registry (pull_design_system first) \\u2014 or pass dtcgFile to import them here. Never throws \\u2014 returns {} when empty. Returns: partial theme (colors, spacing, fontSize, borderRadius, boxShadow) using var(--token) references; keys from the last token-name segment; \"other","write_action":false,"price_micros":0,"input_schema":null},{"name":"update_token","description":"Update a design token value in the local registry, optionally pushing to Figma. Prereq: token must exist (names via get_tokens); Figma connection only for pushToFigma. Returns: { updated: true, name, pushedToFigma, reason? } \\u2014 a requested-but-skipped or failed push is reported in reason, never silently dropped. Errors: isError if the token name is not found. For bulk Tailwind mapping use sync","write_action":true,"price_micros":0,"input_schema":null}],"scan":{"score":91,"grade":"A","scanned_at":"2026-09-23T21:42:07.057Z","report":{"scannerVersion":"0.1.9","scannedAt":"2026-09-23T21:42:07.040Z","components":{"code":{"score":25,"max":25,"notes":["15 source files scanned"]},"reliability":{"score":-1,"max":20,"notes":["no gateway calls yet and no remote to probe"]},"poisoning":{"score":-1,"max":15,"notes":["tools not inspected (local package is not executed); not counted"]},"auth":{"score":12,"max":15,"notes":["local package, no credentials required"]},"maintenance":{"score":15,"max":15,"notes":["last push 15 days ago"]},"identity":{"score":7,"max":10,"notes":["registry namespace matches repository owner"]}},"findings":[],"inputs":{"packages":[{"registryType":"npm","identifier":"@memi-design/cli","version":"2.7.9","found":true,"license":"MIT","hasInstallScripts":false,"dependencyCount":19,"publishedAt":"2026-08-08T15:52:35.839Z","repositoryUrl":"git+https://github.com/memi-design/memi.git","weeklyDownloads":123}],"repo":{"found":true,"owner":"memi-design","repo":"memi","archived":false,"pushedAt":"2026-09-08T23:06:44Z","stars":46,"forks":6,"openIssues":5,"ownerType":"Organization","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/309932576?v=4","ownerCreatedAt":"2026-07-27T22:37:34Z","license":"MIT"},"icon":{"url":"https://avatars.githubusercontent.com/u/309932576?v=4&s=128","source":"github"},"presence":{"stars":46,"forks":6,"downloadsWeek":123,"license":"MIT","lastPushAt":"2026-09-08T23:06:44.000Z","score":44}}}},"grade_history":[],"reviews":[]}