memi MCP server
Memi is the read-only design engineering audit and skill layer for coding agents.
46 stars123 downloads/wk
Reviews
Write oneNobody has reviewed memi yet.
If you have run it, two minutes of your experience saves the next person an afternoon.
memi tools (50, 9 write)
write = sends, deletes, buys or postsRead from the package source without running it. The installed server may list more.
analyze_designCapture 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
audit_interface_craftAudit 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.
audit_ux_tenets_trapsAudit 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
capture_screenshotCapture 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.
check_bridge_healthCheck 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.
check_skill_complianceCheck 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
composewrite actionRun 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
create_specwrite actionCreate 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
design_docScrape 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
design_systems_contextNormalize 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.
diagnose_app_qualityDiagnose 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.
generate_codeGenerate 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
generate_health_reportCompose 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
get_ai_usageAI 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.
get_page_treeGet 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.
get_registry_itemReturn 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).
get_researchLoad 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
get_selectionGet 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
get_shadcn_registryBuild 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.
get_specFetch 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).
get_specsList 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.
get_tokensGet 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
measure_textPredict 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
mermaid_jam_exportwrite actionWrite 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.
plan_ui_fixesBuild 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.
prepare_apple_design_briefPrepare 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.
prepare_design_agent_briefPrepare 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
pull_design_systemPull 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.
pull_design_system_restPull 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`.
research_design_packagePreview 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.
research_generate_specswrite actionWrite 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.
run_auditwrite actionRun 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
scaffold_agent_design_filesPreview 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.
scaffold_swiftui_filesPreview 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.
simulation_compareCompare completed simulation runs by adoption, confidence, evidence coverage, risk, and cost.
simulation_costsSummarize token and cost usage for a simulation run.
simulation_export_specConvert a simulation report into a product-spec impact artifact that agents can paste into specs or handoff docs.
simulation_generate_agentsGenerate a 20-60 agent model-swarm cohort from Memoire research evidence without starting a run.
simulation_interviewInterview a simulated product stakeholder from a completed local or model-swarm run.
simulation_list_runsList 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.
simulation_modelsList 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.
simulation_planwrite actionCreate 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 }.
simulation_reportExport a simulation report with recommendations, risks, assumptions, events, interviews, and evidenceFindingIds.
simulation_runwrite actionRun 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.
simulation_run_matrixwrite actionPlan and run multiple model-swarm hypotheses, then compare outcomes for product-spec decision work.
simulation_statusRead a local simulation run status from .memoire/simulations/runs.
simulation_streamRead persisted simulation events in stream order. Paginated \u2014 use offset/limit to page through long runs instead of materializing the full event log.
simulation_transcriptRead model-swarm transcript memory for a run.
sync_design_tokensMap 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
update_tokenwrite actionUpdate 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
Public scan report
scanner v0.1.9 · 2026-09-24 · same rubric, same numbers if you re-run it
- Code scan14 source files scanned25/25
- –Live reliabilityno gateway calls yet and no remote to proben/a
- –Tool poisoningtools not inspected (local package is not executed); not countedn/a
- Auth qualitylocal package, no credentials required12/15
- Maintenancelast push 16 days ago15/15
- Maintainer identitynamespace and repository owner differ4/10
What the publisher says
From the memi repository's README, as published. We do not edit it. Read it on GitHub
Memi
The design layer for agentic AI.
Give your coding agent an interface brief before it edits. Memi maps the UI already in your repository, surfaces file-anchored accessibility and design-system risks, and gives you a deterministic check to rerun before merge. Start with the CLI, then add the same gate to every pull request.
Memi Studio is available today; Memi Canvas is currently in development. No account, API key, Figma file, global install, or daemon is required for the first audit.
Start with your next interface · Get Memi Studio · Read the research
Quickstart: find your first interface issue
Run one non-destructive audit in any frontend repository. It needs no account, API key, Figma file, global install, or daemon.
npx -y @memi-design/cli@latest diagnose . --json --no-write --fail-on noneThe result carries normalized finding IDs, confidence, provenance, and file:line evidence so an agent can act on a specific finding instead of guessing.
Give the same context to your coding agent:
npx skills add memi-design/memi --skill audit-frontend-designThen ask:
Audit this frontend before editing it. Prioritize the five changes that will matter most to users, reuse the existing system, and verify the result after the patch.
If Memi catches a real interface issue in your project, share the finding. Real reports are the most useful signal for what to improve next.
Cost and offline operation
Local source diagnosis uses deterministic rules: no model call, API key, or model fee. It checks the repository you provide and returns findings your agent can verify. Installation, CPU time, CI runners, and any agent you choose still have costs. The published research has not established an end-to-end dollar or token savings advantage.
Start with one diagnosis, address the highest-confidence finding, and rerun the same check. Use --agent-context for a bounded file index instead of sending a whole repository to a model. Its routing is heuristic; a smaller context is not proof of a cheaper successful task. --files scopes reported findings without launching Git; it still scans the tree for aggregate statistics.
Published beta: Install the exact 2.8.0-beta.2 package for the 2.8 frontend workflow. Stable remains 2.7.9; the beta is not a stable release. See current release state and known limitations.
Shortened. The full README is on GitHub.
Nothing above is checked by us. What we check is on the safety report.
Install directly
Runs npx -y @memi-design/cli on your machine. Read the scan report first; the gateway never runs local packages.
claude mcp add memi -- npx -y @memi-design/cli
memi: common questions
- Is memi MCP server safe?
- Yes, by our scan: it is graded A (86/100). Read the memi safety report
- How do I install memi?
- It runs on your machine. Copy the Claude Code, Claude Desktop or Cursor config from the install section.
- Does memi need an API key?
- Not as far as the registry entry and our scan can tell: no credentials are declared or required.
- Is memi maintained?
- The last commit was 16 days ago (2026-09-08). The latest release is v2.7.4.
- What can I use instead of memi?
- Servers from other publishers that do the same job: memi MCP server, Raven MCP server and Buoy MCP server. Compare all memi alternatives.
Alternatives to memi
Same job from other publishers: the closest match first, then the best rated.
- memiMemi is the design layer for agentic AI.not reviewedGrowingA
RavenDesign intelligence for coding agents: audits, design systems, and a taste profile agents consult.not reviewedGrowingB- BuoyDesign tokens and drift checks for coding agents: use the token, not the hardcoded value.not reviewedGrowingA
UizzeUI design that stands out. Full-screen UI references and design materials for coding agents.not reviewedGrowingA- uxlintAudit a site's UX the way a design-literate reviewer would, with a concrete fix for every finding.not reviewedGrowingA