Miromiro vs Brandsystem MCP

A side-by-side look at the Miromiro and Brandsystem MCP MCP servers: transport, auth, tools, quality signals, and the config to install either one in Claude, Cursor, Windsurf or VS Code.

Miromiro logoMiromiroMarketing · Local subprocess (stdio)Turn any live website into brand colors, fonts, design tokens, SVGs, Lottie and paste-ready code.60GoodAuth: not declaredBrandsystem MCP logoBrandsystem MCPMarketing · Local subprocess (stdio)Make your brand machine-readable. Extract brand identity (colors, fonts, logo, voice, visual rules) from any website via static CSS + rendered-page extraction, compile into DTCG tokens, brand runtime contracts, and interaction policies. 34 tools across 4 progressive sessions. Subscribable brand://runtime and brand://policy MCP resources. Content compliance scoring (0-100), pass/fail gate, and HTML/CSS preflight. Brandcode Studio connector for hosted brand sync.65GreatAuth: not declared

Verdict: choose Miromiro for marketing work as a local process; choose Brandsystem MCP for marketing as a local process. You can also run both side by side in one mcpServers block.

Which MCP server should you choose?

Miromiro logoChoose Miromiro when

  • You need dedicated capabilities in the Marketing domain.
  • You prefer a local stdio subprocess transport.
  • You have the keys it needs: MIROMIRO_API_KEY.
  • You want tools like extract_code, extract_brand, extract_design_tokens.
Explore Miromiro

Brandsystem MCP logoChoose Brandsystem MCP when

  • You need dedicated capabilities in the Marketing domain.
  • You prefer a local stdio subprocess transport.
  • You want tools like brand_start, brand_status, brand_compile.
Explore Brandsystem MCP

Feature & specification comparison

Rows where the two servers differ are marked.

SpecMiromiro logoMiromiroBrandsystem MCP logoBrandsystem MCP
CategoryMarketingMarketing
Quality signal60/100 · Good65/100 · Great
Install commandConfirmedConfirmed
TransportLocal subprocess (stdio)Local subprocess (stdio)
AuthNot declaredNot declared
PricingNot declaredNot declared
Required env varsMIROMIRO_API_KEYNone listed
Verified ownerCommunity listingCommunity listing
GitHub stars015
Directory activity 1 views 0 installs 0 upvotes 1 views 0 installs 0 upvotes
Tools912

Tools & capabilities

Miromiro tools 9

  • extract_codeUse when the user asks to rebuild, clone, copy, port, restyle or 'make it look like' part of a real website, or wants a site's section as Tailwind, HTML+CSS, React (JSX) or Vue. Give it the URL and, when the user named a part of the page, section (hero, header, footer, pricing, features, testimonials, faq, cta) - never invent a CSS selector. With neither, it auto-detects the hero; every call also returns `sections`, each other extractable section with a label and a ready selector for a follow-up call. Returns a self-contained component with the page's real resolved styles (true colors, fonts, spacing, copy) plus the tokens and assets it uses, so you adapt real values instead of estimating from a screenshot. For jsx/vue, repeated structures collapse into a data array rendered with .map()/v-for; ::before/::after come back as real elements; @keyframes ship in the css field. The `theme` field says which theme the code actually is - sites with a prefers-color-scheme dark variant return the light branch unless you pass theme='dark'; say which you returned. Not for: whole-page scraping, page text, or sites that need a login. Reads static HTML/CSS by default; if the result is thin or carries a `hint`, call again with render=true (+5 credits).
  • extract_brandUse when the user wants a site's brand: its colors, fonts, logo, theme or social links - 'what colors does stripe use', 'match this brand', 'build something in the style of X'. Returns role colors (primary, accent, background, text) as hex with human-readable names, the wider palette, fonts by role, logo candidates, social profiles, dark/light theme, and a 0-1 confidence score with `signals` explaining where the colors came from: read signals.explanation and tell the user whether they were declared by the site ('css-var'/'theme-color') or inferred from usage frequency ('usage', a guess) - never present inferred colors as the official palette. Not for: markup or layout (use extract_code) or the full token list (use extract_design_tokens).
  • extract_design_tokensUse when the user wants a site's complete token system - every color, font family, size, weight, spacing value, radius, shadow, line height, gradient and breakpoint with usage counts - or a paste-ready :root block (format='css'), tailwind.config (format='tailwind') or W3C Design Tokens file (format='dtcg', for Style Dictionary / Figma variables). Returns values and counts only, not layout or which element uses what: if the user asked to rebuild or clone a section, use extract_code, which returns the markup with the values in place. A site shipping light and dark themes returns the union of both (see colorSchemes) - pick colors by role, not by frequency, and use extract_code with theme=dark for one theme on its own. Not for: a short brand summary (use extract_brand).
  • extract_assetsUse when the user wants the images from a page - photos, illustrations, backgrounds, favicon, social image - as resolved URLs tagged by source (img, srcset, picture, CSS background, favicon, og). Not for: icons and vector logos (use extract_svgs) or fonts (use extract_fonts). If images are mounted by JavaScript, call again with render=true (+5 credits).
  • extract_svgsUse when the user wants a site's icons or vector logos: inline SVGs as paste-ready markup plus external .svg file URLs. Not for: raster images (use extract_assets). If icons are mounted by JavaScript, call again with render=true (+5 credits).
  • extract_fontsUse when the user asks which fonts a site uses or wants to match its typography: every @font-face file with family/weight/style/format, Google Fonts links and preloads, grouped per family in `families` (pass fields='families' for just that). On a type-foundry site the families served are demo cuts (subset, features stripped), flagged demo:true with a note - pass that on, they are not the usable typeface. Not for: colors (use extract_brand) or code (use extract_code).
  • extract_lottieUse when the user wants a site's Lottie or animation JSON files. Most Lotties are injected at runtime, so pass render=true (+5 credits) when the static call finds none.
  • extract_videosUse when the user wants the videos on a page: <video>/<source> files, og:video, YouTube/Vimeo/Wistia/Loom embeds and direct video links, each tagged by source with a poster when declared. `source: "embed"` is a player page, not a downloadable file. Most players mount with JavaScript: if the result is thin or empty, call again with render=true (+5 credits).
  • extract_audioUse when the user wants the audio files on a page: <audio>/<source> files, og:audio, podcast enclosures and download links, each tagged by source. If a JavaScript player mounts the audio at runtime, call again with render=true (+5 credits).

Brandsystem MCP tools 12

  • brand_startAdopt a brand into a portable .brand/ runtime from whatever source already exists: existing brand guidelines (PDF), a website URL, a Figma library, or a hosted Brandcode Studio brand. THE entry point when the user says 'use my existing brand guidelines with AI', 'I have a PDF brand guide', 'use our Figma library', 'create a brand system', 'extract brand from website', or 'set up brand guidelines'. Pass website_url, guideline_pdf, figma_file_key, or brandcode_url — or pass no source and it discovers local candidates and presents a menu with a privacy explanation. Set mode='auto' with a website_url to run the full pipeline (extract, compile DTCG tokens + design-synthesis.json + DESIGN.md + brand runtime + interaction policy, generate HTML report) in one call. If .brand/ already exists, returns current status with next steps. NOT for reading an already-compiled brand (use brand_runtime or brand_context) or for sharing an existing brand with a team (use brand_brandcode_connect).
  • brand_statusCheck brand system progress and get next steps. Shows what has been extracted (colors, fonts, logo), confidence levels, session completion status, and what to do next. Use when resuming a previous session, checking readiness, or when the user asks 'what's the state of my brand?' If no .brand/ exists, returns a full getting-started guide with all available tools. Returns structured status data.
  • brand_compileGenerate DTCG design tokens, design-synthesis.json, DESIGN.md, brand runtime, and interaction policy from extracted brand data. Transforms core-identity.yaml into tokens.json, brand-runtime.json (single-document brand contract for AI agents), and interaction-policy.json (enforceable rules). When Session 2+ data exists, also generates visual-identity-manifest.md and system-integration.md. Use after brand_extract_web, brand_extract_site, brand_extract_visual, or brand_extract_figma. Returns token counts, clarification items, and file list.
  • brand_clarifyResolve an ambiguous brand value interactively. After brand_compile, some values need human confirmation — wrong primary color, unknown font, unassigned color roles. Pass the clarification item ID and the user's answer (hex color, role name, font name, or 'yes'/'no'). Supports natural language: 'the purple one is accent' or '#5544f2 is secondary'. Returns updated identity and remaining clarification count.
  • brand_reportGenerate a portable HTML brand identity report with embedded logos, color swatches, typography, and tokens. The HTML is self-contained and works offline — upload it to any AI chat (Claude, ChatGPT, Gemini) as instant brand guidelines. Written to .brand/brand-report.html. Use after brand_compile. Returns file path, report summary (color/font/logo counts), and a ready-to-copy Brand Instructions text block.
  • brand_preflightCheck HTML/CSS against brand rules — catches off-brand colors, wrong fonts, missing logo, and anti-pattern violations (drop shadows, gradients, etc.). Pass an HTML string or file path. Mode 'check' (default) runs all compliance checks and returns pass/warn/fail per rule. Mode 'rules' lists all active preflight rules without checking content. Use after generating any visual content to validate brand compliance. Returns overall status and per-check details. NOT for scoring content copy — use brand_audit_content. NOT for brand directory validation — use brand_audit.
  • brand_runtimeRead the compiled brand runtime contract (brand-runtime.json). Returns the brand system that AI agents load as context for on-brand output. Supports slicing: 'full' (~1200 tokens, everything), 'visual' (~200 tokens, colors + fonts + anti-patterns), 'voice' (~400 tokens, tone + vocabulary + perspective), 'minimal' (~100 tokens, primary color + heading font). Use slices when passing brand context to sub-agents — smaller context reduces token cost and agent satisficing. Live Mode aware: when enabled via brand_brandcode_live, the runtime refreshes from the hosted Brandcode runtime on each call (subject to cache TTL). Falls back silently to the local mirror on network error. Read-only. Run brand_compile to refresh.
  • brand_contextSelect a task-scoped brand context from the compiled runtime. THE tool to call first when the user says 'write this in our voice', 'write this LinkedIn post in our brand voice', 'make an on-brand social graphic', or 'build a landing page' — it returns only the governed rules relevant to that task instead of the full runtime. Deterministic: task_type maps to sections via a fixed table, audience matches governed personas exactly or reports no-match — no inference. Returns context (the selected brand slices), output_contract (required delivery shape), matched_selectors (what was chosen and why), and no_governed_match. NOT for reading the entire runtime (use brand_runtime) or checking finished content (use brand_check).
  • brand_checkInline brand linter — call this WHILE writing content or code, the way you call a type-checker. <50ms pass/fail on any combination of text (voice/never-say/AI-isms), color (palette match with ΔE distance), font (typography match), or css (anti-pattern violations). Designed for tight loops: write a sentence, brand_check it, fix, continue. Returns specific actionable fixes per failed input. Requires brand_compile to have run first. NOT a publish-time gate — use brand_check_compliance for the single PASS/FAIL verdict before shipping. NOT for 0-100 scoring — use brand_audit_content. NOT for HTML/CSS rule violations — use brand_preflight.
  • brand_brandcode_authActivate Brandcode Studio connection for saving and pushing brands. Preferred mode: "activate" displays a short code (e.g. BRAND-7K4X) for the user to enter at brandcode.studio/activate — no copy-paste of tokens needed. Also supports: "status" (check auth), "login" (magic link fallback), "set_key" (manual token), "logout" (clear credentials). Use when the user wants to save their brand to Studio or says "activate", "connect to Brandcode", or "save my brand online". NOT needed for extraction, preview, or brand_check — those work without auth.
  • brand_brandcode_connectConnect a local .brand/ to Brandcode Studio. Two modes: "pull" (default) downloads an existing hosted brand by URL/slug. "save" uploads the local .brand/ to Studio (requires prior auth via brand_brandcode_auth). THE tool when the user says "make our brand available to my whole team", "share our brand with the team", "connect to Brandcode", "pull from Studio", "save brand to Studio", or "upload my brand". Returns brand name, slug, sync token, and connection details.
  • brand_exportBundle the compiled brand system into a portable artifact for a specific destination. Use when asked 'share my brand', 'export for ChatGPT/Cursor/team', 'generate brand guidelines', 'make a one-pager', or 'create a brand PDF'. Target 'chat': self-contained markdown for upload to any AI conversation (Claude, ChatGPT, Gemini). Target 'code': MCP server config + CLAUDE.md/.cursorrules snippet. Target 'team': human-readable brand guidelines for designers/writers/marketers. Target 'email': ~500-word summary for Slack or email. Target 'claude-skill': SKILL.md with embedded logo + rules for persistent Claude artifacts. Target 'pdf': branded PDF with swatches, type, anti-patterns, and voice. Set include_logo=false to drop the embedded SVG/data URI when size matters. Writes to .brand/exports/<file> and returns the full content (markdown targets) or a generation summary (pdf). Requires brand_compile to have run first. NOT for previewing one section — use brand_preview.

Ready-to-paste client configs

Paste either block (or both) into your client config, e.g. claude_desktop_config.json or ~/.cursor/mcp.json. We only show a config when the install command is confirmed.

Miromiro

mcpServers (Claude Desktop / Cursor)
{
  "mcpServers": {
    "miromiro": {
      "command": "npx",
      "args": [
        "-y",
        "miromiro-mcp"
      ],
      "env": {
        "MIROMIRO_API_KEY": "YOUR_MIROMIRO_API_KEY_HERE"
      }
    }
  }
}

Brandsystem MCP

mcpServers (Claude Desktop / Cursor)
{
  "mcpServers": {
    "brand-system-brandsystem-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "@brandsystem/mcp"
      ]
    }
  }
}

Frequently asked questions

Miromiro is categorized under Marketing and uses a local stdio subprocess. Brandsystem MCP belongs to Marketing and uses a local stdio subprocess. Pick Miromiro for marketing work and Brandsystem MCP for marketing.

Copy the mcpServers block from the config section on this page into your client's config (for example claude_desktop_config.json or ~/.cursor/mcp.json), then fully restart the client.

Miromiro has no declared pricing — check the project's own site. Brandsystem MCP has no declared pricing — check the project's own site. If a server needs environment variables such as API keys, define them under the env key in your client's MCP config.

Yes. MCP clients support multiple servers: add miromiro and brand-system-brandsystem-mcp as separate keys in the same mcpServers object, and your assistant will call tools from either one.

On AllMCPs, Miromiro has a quality signal of 60/100 (Good) with 1 views, 0 installs and 0 GitHub stars. Brandsystem MCP has 65/100 (Great) with 1 views, 0 installs and 15 GitHub stars.