memoire
The memoire server provides a comprehensive suite of tools for design system management, Figma integration, code generation, and AI-powered analysis.
Figma Integration: Pull design systems (tokens, components, styles) from a connected Figma file, capture screenshots, inspect selected nodes, browse the file tree, and execute arbitrary JavaScript via the Figma Plugin API.
Spec Management: List, create, retrieve, and validate component, page, and dataviz specs with Zod schema validation.
Code Generation: Generate shadcn/ui + Tailwind component code (React/Vue/Svelte) from saved specs, organized by atomic design level.
Token Management: Get, update, and sync design tokens to a Tailwind config theme extension, with optional push back to Figma.
AI Visual Analysis: Analyze Figma designs with AI vision for general quality, WCAG accessibility compliance, or spec-compliance.
Design System Audit: Run structured audits covering contrast, touch targets, focus indicators, token coverage, and naming conventions.
Design Extraction: Scrape any public URL to extract its design system as a structured
DESIGN.mddocument or raw token JSON.Agent Orchestration: Use a natural language interface to classify, plan, and execute multi-step design workflows.
User Research: Load project-specific insights, personas, and themes to ground design decisions.
Text Layout Measurement: Predict text dimensions, line counts, and overflow risk without a browser or Figma connection.
Health & Usage Monitoring: Check Figma WebSocket bridge health and track AI token usage and estimated session costs.
Extracts design tokens, components, and styles from Figma files via WebSocket bridge, REST API, or plugin, enabling design system synchronization and code generation workflows.
Extracts design systems from Linear's website URLs to generate design documentation and specifications for code generation workflows.
Extracts design tokens, components, and styles from Penpot files using API authentication, providing an alternative design tool integration for design system extraction.
Generates production-ready React components from design specifications with proper props, variants, and component architecture.
Generates production-ready React components using shadcn/ui patterns and includes a shadcn registry server for component management and distribution.
Generates Storybook stories alongside React components for component documentation, testing, and development workflow integration.
Extracts design systems from Stripe's website URLs to generate design documentation and specifications for code generation workflows.
Generates TypeScript-typed React components with proper type definitions and interfaces for type-safe development.
Validates component specifications using Zod schemas to ensure data integrity and consistency throughout the design-to-code pipeline.
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.
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.
Related MCP server: UI Toolkit MCP Server
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.
The beta2 npm release record identifies its published source and immutable artifact evidence. The beta1 npm release record preserves the earlier release's history; it does not validate beta2. The 2.8 locked default and explicit capability contract do not apply retroactively to 2.7.9.
npx -y @memi-design/cli@2.8.0-beta.2 --version
npx -y @memi-design/cli@2.8.0-beta.2 agent brief . --frontend --intent "Improve this interface" --jsonThe beta keeps managed security review, SwiftUI parity, and full DesignWorkbench certification explicitly pending. It is not stable or employer-approved. Publication provenance and platform receipts belong to the exact released artifact.
The beta prevents local diagnosis from writing project files by default, keeps paid integrations optional, and requires explicit grants for networking, subprocesses, and source report persistence. An npm install needs registry access; offline first-run claims require the separately verified bundle. See the acceptance ledger, known limitations, and release truth.
The 2.8 frontend workflow: the beta provides a repository-aware frontend brief, four useful locked MCP tools, validated Figma/Paper evidence inputs, and explicit component-reuse conflicts. See the frontend workflow for runnable beta commands and the release plan for remaining gates. Managed independent security scanning and the reviewed-candidate-audit and swiftui-rendered-rerun receipts remain pending for stable. Paper pixel parity is unassessed. Of 158 inventoried CLI paths, 105 remain deferred; broad grants do not enable them. No complete-task dollar or token savings claim is established.
What 2.8 changes for frontend agents
In 2.7.9 | In the 2.8 beta |
Diagnosis, agent briefs, token tools, Figma bridge, and skills already existed. |
|
Harness configuration exposed a broad tool catalog. | Locked stdio starts without sockets or project writes; four read tools are available without grants. |
A design mapping could become stale or a generator warning could be ignored. | Explicit mappings are checked against current exports, required props, token references, and optional source hashes. Registry specs marked as mapped block duplicate generation; a host envelope supplies reuse guidance. |
Paper had no dedicated integration. | Codex can supply selected Paper or Figma context through the same validated envelope; no extra model session or bundled connector is required. |
Static diagnosis could present unassessed categories as passing. | Quality scores cover assessed categories only; coverage and scan omissions are separate. Browser verification remains unassessed until actually run. |
The practical benefit is more useful local evidence and clearer failure signals: a brief identifies an existing component before an agent duplicates it, diagnosis distinguishes unchecked categories from assessed findings, and diagnose --receipt-only provides a separate metadata-only result without persisting a source report. Regression tests also exposed and corrected candidate defects in bounded file reads, malformed event handling, and failure exit codes. Those corrections improve specific behavior; they do not establish universal design quality, security certification, or lower task cost.
Earlier packed results at source 2a6d0e44 are historical evidence for those exact bytes. Later defensive runtime fixes supersede that artifact as a release candidate; each corrected source checkpoint is verified through a separate local package and digest. See the verification record for the source, artifact, and scope of each result. Local candidate receipts remain evidence for their original bytes; they do not replace the published npm record.
The repository remains authoritative for code. Memi supplies evidence; Codex edits and runs the project's actual checks. Existing custom CSS and component systems do not need a shadcn migration. This beta deliberately defers many legacy command paths; it is not yet a drop-in upgrade for every 2.7 workflow.
Put the check on every pull request
Copy examples/github-actions/memi-design.yml into your repository as .github/workflows/memi-design.yml. The starter is pinned to the reviewed public Action commit and gives reviewers:
a PR check that fails only on newly introduced interface debt;
a
memi-design-healthartifact with the human-readable report; andSARIF annotations when the repository grants
security-events: write.
The workflow does not need an API key or a Memi secret. Fork pull requests still receive the check and report; SARIF upload is skipped automatically when GitHub does not grant that permission.
If you prefer to configure it by hand, the complete GitHub Action guide documents every input, output, permission, and evidence file.
One product layer, three surfaces
Surface | What it is | Status |
Memi CLI | Interface intelligence and deterministic checks for local repositories, agents, and CI. | Available today |
Memi Studio | A macOS workbench for bringing project context, agent workflows, and verification together. | |
Memi Canvas | A visual workspace for design-system context and controlled agent proposals. | currently in development |
See the product
Memi Studio | Memi Canvas — in development |
Bring an agent prompt, project memory, and a verification surface into one workbench. | Preview design-system context, inspect a proposal, and keep a human in the loop. This preview shows an active development build, not a released product guarantee. |
What Memi adds to an agent workflow
Before the edit | During the edit | Before merge |
Discover components, tokens, routes, states, and accessibility gaps. | Give the agent a scoped brief that names the system it must preserve. | Rerun deterministic checks and surface new interface debt in CI. |
Need | Start with |
Find UI risks and product-system context |
|
Plan a change around existing components and tokens |
|
Keep new interface debt out of pull requests |
|
Build and verify native Apple interfaces |
|
Compatible with the shadcn registry and v0 design systems.
Evidence at a glance
The V15 confirmatory audit is a public technical disclosure, not a leaderboard. It separates receipt admission, rendered design quality, functional acceptance, and resource observations.
Measured record | Exact reading |
36 / 36 frozen receipts admitted | Every preregistered agent cell had an auditable receipt. This is receipt admission, not universal performance. |
10 complete model-graded matched pairs | Rendered design-quality comparisons that survived the prespecified screen. This is model-graded evidence, not independent practitioner review. |
Buzzr / Expo: mean +1.4; Paraform / web: mean −0.4 | The scoped non-inferiority gate passed on both graded task families. It does not establish general superiority. |
0 / 21 corrected task-by-resource tests rejected | The study did not establish a speed, cost, or token-use advantage. |
Separate historical release record: the 2.7 candidate record reported 2,187 / 2,187 tests passed. It is release evidence, not part of V15 and not proof that every project benefits.
Benchmarks and paper
Quality non-inferiority passed for the scoped Buzzr and Paraform task families. The full paper reports exclusions, failed paths, and limitations without imputation. No superiority, speed, or dollar-savings claim is made. Read the conference-style audit PDF, inspect the protocol and receipts, or review the V17 preregistration.
Memi InterfaceBench v1 is a 100 target tasks specification with 5 pinned seed tasks; it is not an aggregate performance score. The historical candidate record reported 2,187/2,187 tests and 70.57% statements coverage. The greater-than-25% claim remains not verified. Inspect the benchmark contract and workflow evidence.
Memi DesignWorkBench v2 holds 300 task contracts and requires practitioner calibration before any certification claim.
Prompts that map to real workflows
Goal | Copy-paste prompt | Supporting workflow |
Establish a baseline before a UI change | Audit this frontend before editing it. Prioritize the five changes with the clearest |
|
Turn evidence into a scoped plan | Turn the findings into a scoped UI change plan. Reuse existing components and tokens before editing. |
|
Protect a pull request | Set up a deterministic design CI gate for this pull request. Fail only on newly introduced interface debt and save SARIF plus the HTML report. |
|
Research, stated plainly
The research is disclosure material, not a product leaderboard. It keeps functional, rendered-quality, and resource evidence separate so a result cannot be made to say more than the study supports.
Choose your integration
Surface | Start here | Best for |
One-time CLI run |
| Trying Memi without installing |
Global CLI |
| Daily local use |
Agent Skill |
| Codex, Claude Code, Cursor, and compatible agents |
GitHub Action | Pull-request design CI | |
MCP server |
| Any MCP client |
Studio |
| Supervised macOS workflows |
GitHub Action
name: design
on: [pull_request]
permissions:
contents: read
jobs:
memi:
runs-on: ubuntu-latest
permissions:
contents: read
security-events: write
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
fetch-depth: 0
- uses: memi-design/memi@5fcbf39e1255af0c14c5a17ba6bde8cf1206e525 # v2.7.9
with:
version: "2.7.9"
report: true
upload-sarif: trueThe Action adds code-scanning annotations, a step summary, and a memi-design-health artifact. Existing debt can be baselined while newly introduced debt fails the gate.
GitHub Action guide · CI recipes · current versions
Agent and MCP setup
memi agent install codex --project .
memi agent install claude-code --project .
memi agent install cursor --project .
memi agent install grok-build --project .{
"mcpServers": {
"memoire": {
"command": "memi",
"args": ["mcp", "start", "--no-figma"]
}
}
}Codex plugin marketplace:
codex plugin marketplace add memi-design/memi --ref main --sparse .agents/plugins --sparse plugins/memoireAgent stack guide · copy-paste recipes · full skill router
Trust and proof
Release gates — package, provenance, clean-install, MCP, plugin, binary, and public-surface checks.
Current release truth — the public versions for CLI, Studio, and website.
Reproducible case studies — pinned evidence, abstentions, and paired protocols.
Dependency trust ledger — direct dependency purpose, dynamic boundaries, and review policy.
Trust Core index — locked-default contract and evidence status for the 2.8 beta.
Threat model and egress map — protected assets, side-effect boundaries, and destinations.
Data retention and uninstall/recovery — what can persist and how to preserve state.
Dependency/license review and supported platforms — artifact and sandbox gates.
Employer review packet — artifact-bound approval checklist; internal use requires written employer approval.
Known limitations and release truth — beta versus stable language and open evidence.
Organization compatibility — sibling surfaces, including independently gated Studio and Canvas.
llms.txt— compact machine-readable product map.
The deterministic first audit requires no source upload or telemetry. Connected
integrations expand the boundary and require explicit review. Memi also has no
npm install-time lifecycle scripts, provides agent-kit --dry-run --json, pins
the Action immutably, and documents third-party boundaries in NOTICE.
Community
We welcome contributions. See CONTRIBUTING.md for setup and pull-request guidance. Bugs and feature requests belong in issues; questions and real project reports belong in Discussions.
Useful contributions include reproducible audit fixtures, framework adapters, skill improvements, accessible UI cases, motion checks, and before/after reports.
License
Studio interface references and adapted components include Hermes WebUI and the MIT Warp UI framework boundary around warpui_core and warpui; Warp AGPL application and client code is not copied into Memi.
MIT. See NOTICE for optional adapters and complete third-party attribution.
Available Tools
50 toolsanalyze_designA
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 — general: { summary, issues[], suggestions[], qualityScore }; accessibility: { summary, contrastIssues[], touchTargetIssues[], focusIssues[], wcagLevel }; spec-compliance: { summary, compliant, mismatches[], missingProps[], extraElements[] }. Errors: isError on missing key, no connection, bad node, or missing spec. Modes: general = visual polish; accessibility = WCAG checks of a frame; spec-compliance = rendered design vs saved spec before codegen. Core of the self-heal loop: create → capture_screenshot → analyze_design → fix → verify.
Inputs: mode, nodeId, specName.
audit_interface_craftA
Audit interface design craft from local app-quality evidence or a screenshot artifact.
Returns: InterfaceCraftReport JSON — 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.
Inputs: target, maxFiles, screenshotPath.
audit_ux_tenets_trapsA
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 fit, trust, and state continuity.
Inputs: target, maxFiles, screenshotPath.
capture_screenshotA
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 → SCREENSHOT → ANALYZE → FIX). Prefer SVG for vector components, PNG for complex frames. Errors: isError if not connected or the node is invalid.
Inputs: scale, format, nodeId.
check_bridge_healthA
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? } — clientCount 0 means no plugin open in Figma. Call this first before any Figma-dependent tool.
Inputs: no named parameters.
check_skill_complianceA
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) — 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 markdown — the checkable rules are hand-extracted into regex/string checks. It closes the gap where nothing downstream ever notices whether an agent actually followed those docs. skills/DESIGN_SYSTEM_REFERENCE.md is a pure external-system catalog with zero checkable rules and contributes nothing here.
Prereq: none — no Figma, no AI, works entirely offline.
Returns: { version, target, generatedAt, findings: [{ severity, rule, file, message, fix?, docRef }], summary: { critical, warning, filesChecked } }.
Real enforcement requires wiring memi audit --skill-compliance into CI or a pre-commit hook — this MCP tool remains something an agent can choose not to call, same as any other tool.
Inputs: target, maxFiles.
composeA
Run the agent orchestrator on a natural-language design intent — 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 table"; "audit button variants for WCAG contrast"; "pull design system, then generate all missing component specs". Be specific — name components, atomic levels, and target output.
Inputs: intent (required), dryRun.
create_specA
Create or overwrite a spec in the registry (Zod-validated). Same-name specs are silently overwritten — check get_specs first.
Returns: Spec "<name>" saved (<type>).
Errors: isError with Zod details on schema/JSON/type failures.
Schemas — component: name, type, atomicLevel ("atom"|"molecule"|"organism"|"template"), purpose, props[], variants[], composesSpecs[] (atoms must be []), codeConnect{}; page: name, type, purpose, sections[]; dataviz: name, type, chartType, dataShape.
Inputs: spec (required).
design_docA
Scrape a public URL and extract its design system — 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, Do/Don't, Tailwind Config Sketch. Returns (raw=true): { url, title, tokens: { cssVars, colors, fonts, fontSizes, spacing, radii, shadows, counts } }. Errors: isError if the URL is unreachable/has no usable CSS, or the key is missing in synthesis mode. Use to reverse-engineer a reference site's system or extract tokens for comparison.
Inputs: url (required), raw.
design_systems_contextA
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.
Inputs: mode (required), manifest (required), entries, category, +3 more.
diagnose_app_qualityA
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.
Inputs: files, target, maxFiles.
generate_codeA
Generate shadcn/ui + Tailwind code from a saved spec and write files into atomic design folders (atoms → components/ui/, molecules/organisms/templates → components//).
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 — informational only, never blocks. Errors: isError if specName is not found. isError with { blocked: true, findings } if a critical quality-gate finding (raw hex/color when tokens exist, a token-pair contrast failure, or a strict-mode skill-compliance violation) prevented the write — pass force:true to write anyway after reviewing the findings.
Inputs: specName (required), force.
generate_health_reportA
Compose one self-contained design-health report (HTML + markdown) from all persisted .memoire audits — 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 omitted. Returns: { html, markdown, score, sections[], missing[] }. Static content — write it wherever needed. redact=true strips evidence excerpts (paths stay) for NDA-safe sharing.
Inputs: redact.
get_ai_usageA
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.
Inputs: no named parameters.
get_page_treeA
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 — high depths may be slow on large files.
Inputs: depth.
get_registry_itemA
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).
Inputs: name (required), homepage.
get_researchA
Load and return the project's user research V2 store — observations, findings, personas, themes, quantitative metrics, and quality metadata.
Prerequisites: None — 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 synthesize. Returns an empty V2 store if no research has been imported yet.
Returns on success: Research store object with shape { version, sources, observations, findings, themes, personas, quantitativeMetrics, opportunities, risks, contradictions, quality, summary, methods }. Findings include auditable evidence links via evidenceObservationIds and evidenceSourceIds. Themes reference findingIds[].
Error behavior: Never throws — loads gracefully and returns an empty store if files are missing.
Use this tool: before running compose with a research-driven intent (e.g. "generate a dashboard based on user research"), to inspect what research context is available, or to verify that a research import or synthesis succeeded. Combine with compose to ground design decisions in actual user data. Research stores grow large — request only the sections you need (default is a summary with per-section counts).
Inputs: sections.
get_selectionA
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: isError if not connected.
Inputs: no named parameters.
get_shadcn_registryA
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.
Inputs: name, homepage.
get_specA
Fetch the full body of one spec by name.
Returns: full spec JSON — 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).
Inputs: name (required).
get_specsA
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.
Inputs: no named parameters.
get_tokensA
Get design tokens from the local registry, optionally filtered.
Prereq: none — 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 — nested groups, $type/$value, lossless via $extensions. Filter by type/name to keep payloads small on large token sets. For a Tailwind-ready mapping use sync_design_tokens.
Inputs: name, type, format.
measure_textA
Predict text layout — height, line count, overflow, breakpoint behavior — 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 fixed containers or maxLines constraints before generating designs or code.
Inputs: text (required), maxWidth (required), font, lineHeight, +2 more.
mermaid_jam_exportB
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.
Inputs: intent, source, research, hypothesis.
plan_ui_fixesA
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.
Inputs: target, maxFiles.
prepare_apple_design_briefA
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.
Inputs: detail, intent, platform.
prepare_design_agent_briefA
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, browsers, or models.
Inputs: mode, agent, detail, intent, +1 more.
pull_design_systemA
Pull the full design system from Figma (tokens, components, styles) into the local registry.
Prereq: Figma bridge running + plugin connected — 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.
Inputs: no named parameters.
pull_design_system_restA
Pull the design system from Figma via REST API — 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.
Inputs: no named parameters.
research_design_packageA
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.
Inputs: runId, intent, research, hypothesis.
research_generate_specsB
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.
Inputs: runId, intent, approved, research, +1 more.
run_auditA
Run a deterministic design-system audit (WCAG contrast, token completeness, spec accessibility) and return structured findings.
Prereq: none — 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 checkable rules. vs analyze_design: run_audit = systematic spec/token compliance; analyze_design = AI vision review of a live Figma frame.
Inputs: focus, target, maxFiles.
scaffold_agent_design_filesA
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.
Inputs: kind (required), name (required), level, intent, +6 more.
scaffold_swiftui_filesA
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.
Inputs: name (required), moduleName (required), kind, intent, +6 more.
simulation_compareA
Compare completed simulation runs by adoption, confidence, evidence coverage, risk, and cost.
Inputs: runIds (required).
simulation_costsA
Summarize token and cost usage for a simulation run.
Inputs: runId (required).
simulation_export_specC
Convert a simulation report into a product-spec impact artifact that agents can paste into specs or handoff docs.
Inputs: runId (required).
simulation_generate_agentsB
Generate a 20-60 agent model-swarm cohort from Memoire research evidence without starting a run.
Inputs: count, adapter, research.
simulation_interviewB
Interview a simulated product stakeholder from a completed local or model-swarm run.
Inputs: runId (required), prompt (required), agentId (required).
simulation_list_runsA
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.
Inputs: no named parameters.
simulation_modelsA
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.
Inputs: no named parameters.
simulation_planA
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 }.
Inputs: name, rounds, adapter, research, +3 more.
simulation_reportB
Export a simulation report with recommendations, risks, assumptions, events, interviews, and evidenceFindingIds.
Inputs: runId (required).
simulation_runA
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.
Inputs: scenarioId (required), rounds, adapter, maxAgents, +1 more.
simulation_run_matrixB
Plan and run multiple model-swarm hypotheses, then compare outcomes for product-spec decision work.
Inputs: hypotheses (required), rounds, research, maxAgents.
simulation_statusA
Read a local simulation run status from .memoire/simulations/runs.
Inputs: runId (required).
simulation_streamA
Read persisted simulation events in stream order. Paginated — use offset/limit to page through long runs instead of materializing the full event log.
Inputs: runId (required), limit, offset.
simulation_transcriptC
Read model-swarm transcript memory for a run.
Inputs: runId (required).
sync_design_tokensA
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) — or pass dtcgFile to import them here. Never throws — returns {} when empty. Returns: partial theme (colors, spacing, fontSize, borderRadius, boxShadow) using var(--token) references; keys from the last token-name segment; "other" tokens skipped. With dtcgFile also { imported, warnings }. vs get_tokens: get_tokens = raw data for inspection (format "dtcg" exports the DTCG document); this = paste-ready Tailwind patch.
Inputs: dtcgFile.
update_tokenA
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? } — 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_design_tokens.
Inputs: name (required), values (required), pushToFigma.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 50 tools
Most tools have distinct purposes, with clear descriptions that differentiate them. However, the large number (50) and some overlap between similar tools (e.g., pull_design_system vs pull_design_system_rest, multiple audit tools) could cause occasional confusion for an agent.
The majority of tools follow a consistent verb_noun convention (e.g., pull_design_system, get_specs, create_spec). Some deviations exist, such as adjective_noun patterns (check_bridge_health) or noun_verb (simulation_models), but these are minor and the overall pattern is clear.
50 tools is quite large for a single MCP server. While each tool serves a distinct purpose within the broad domain of design system management, the scope may be too broad, making the server feel heavy and potentially better split into smaller, focused servers.
The toolset covers a wide range of design system workflows: pulling, creating, generating code, auditing, simulating, and researching. Minor gaps exist, such as the lack of explicit delete operations for specs or tokens, but the overall coverage is robust.
Maintenance
Related MCP Connectors
Build and manage your design system with AI: tokens, themes, components, icons, Figma and code.
Design System Manager for shadcn/ui: tokens, fonts, radius, components, icons, blocks, Figma sync.
Generate design systems: OKLCH colors, fluid type scales, spacing, shape, icon and motion tokens.
MCP server for StyleKit styles, tokens, recipes, lint and repair over stdio or HTTP.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceMCP server that exposes your design system components and tokens to AI agents, preventing duplicate component creation and hardcoded token values.4 npm9MIT
- AlicenseAqualityFmaintenanceComprehensive MCP server for end-to-end UI development, offering tools to generate components, manage design tokens, audit accessibility, autofix issues, inspect live pages, compare screenshots, and more across multiple frameworks.1310 npmMIT
- AlicenseNot gradedqualityDmaintenanceToken-efficient Figma MCP server with image export, query DSL, and design token support.1 npmMIT
- AlicenseAqualityDmaintenanceMCP server that gives LLMs deep knowledge of design systems and tokens, enabling intelligent design evolution, token analysis, and designer-to-developer handoffs.3718 npm2MIT