Skip to main content
Glama

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 none

The 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-design

Then 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" --json

The 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.

agent brief --frontend joins actual exports, props, CSS/DTCG tokens, and CSF stories in a 2–16 KiB JSON response.

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-health artifact with the human-readable report; and

  • SARIF 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.

Available today

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

audit-frontend-design

Plan a change around existing components and tokens

remember-design-system

Keep new interface debt out of pull requests

enforce-design-ci

Build and verify native Apple interfaces

build-swiftui-interface

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 file:line evidence.

audit-frontend-design

Turn evidence into a scoped plan

Turn the findings into a scoped UI change plan. Reuse existing components and tokens before editing.

remember-design-system

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.

enforce-design-ci

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

npx -y @memi-design/cli@2.7.9 diagnose . --no-write

Trying Memi without installing

Global CLI

npm i -g @memi-design/cli

Daily local use

Agent Skill

npx skills add memi-design/memi --skill audit-frontend-design

Codex, Claude Code, Cursor, and compatible agents

GitHub Action

Copy the starter workflow

Pull-request design CI

MCP server

memi mcp start --no-figma

Any MCP client

Studio

brew install --cask memi-design/memi/memi-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: true

The 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/memoire

Agent stack guide · copy-paste recipes · full skill router

Trust and proof

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 tools
analyze_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

    A3.7/5.0

    Scored across 50 tools

    Disambiguation4/5

    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.

    Naming Consistency4/5

    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.

    Tool Count3/5

    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.

    Completeness4/5

    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

    ActivitySlowing
    ResponsivenessLimited data

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      Not graded
      quality
      D
      maintenance
      MCP server that exposes your design system components and tokens to AI agents, preventing duplicate component creation and hardcoded token values.
      4 npm
      9
      MIT
    • A
      license
      A
      quality
      F
      maintenance
      Comprehensive 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.
      13
      10 npm
      MIT
    • A
      license
      A
      quality
      D
      maintenance
      MCP server that gives LLMs deep knowledge of design systems and tokens, enabling intelligent design evolution, token analysis, and designer-to-developer handoffs.
      37
      18 npm
      2
      MIT