Back to Discover

miromiro-mcp

connector

SoraiaBarroso

Turn any live website into brand colors, fonts, design tokens, SVGs, Lottie and paste-ready code.

View on GitHub
0 starsSynced Aug 2, 2026

Install to Claude Code

/plugin marketplace add SoraiaBarroso/miromiro-mcp

README

miromiro-mcp

npm version MIT license

MCP server for the MiroMiro design-extraction API. Give your AI agent the real design of any live website - brand colors, fonts, design tokens, SVGs, images, Lottie animations, and paste-ready component code - so it builds from actual values instead of guessing from a screenshot.

Works with Claude (web, desktop, Claude Code), ChatGPT, Cursor, Windsurf, Codex, and any MCP client.

Claude Code plugin

Install as a plugin to get the tools plus three skills that teach Claude when to reach for each one (clone-section, match-brand, extract-assets):

claude plugin marketplace add anthropics/claude-plugins-community
claude plugin install miromiro@claude-community

The plugin uses the remote server, so there is nothing to install and no key to paste - on first use it opens a one-click MiroMiro sign-in that links a free account (300 credits/month, no card).

Quick start: remote server (nothing to install)

A hosted server lives at:

https://miromiro.app/mcp

Paste that URL into any client that accepts a remote MCP server. On first use it opens a one-click MiroMiro sign-in that links a free account (300 credits/month, no card).

  • Claude (web or desktop): Settings → Connectors → Add custom connector → paste the URL. Or use the one-click install.
  • ChatGPT: Settings → Security and login → enable Developer mode, then add the URL as a connector (authentication: OAuth).
  • Cursor (remote): add { "mcpServers": { "miromiro": { "url": "https://miromiro.app/mcp" } } } to ~/.cursor/mcp.json.
  • Raw API key instead of OAuth: append ?access_key=mm_live_... to the URL, or send it as an Authorization: Bearer header.

Local server (npm)

Prefer a local stdio process with the key in an env var? Get a free key at miromiro.app/api/dashboard, then:

Cursor (~/.cursor/mcp.json) / Windsurf (Settings → MCP):

{
  "mcpServers": {
    "miromiro": {
      "command": "npx",
      "args": ["-y", "miromiro-mcp"],
      "env": { "MIROMIRO_API_KEY": "mm_live_your_key" }
    }
  }
}

Claude Code (run in your terminal, not inside a claude session):

claude mcp add miromiro -s user \
  --env MIROMIRO_API_KEY=mm_live_your_key \
  -- npx -y miromiro-mcp

Tools

ToolWhat it returnsCredits
extract_codeA section of a live page as a paste-ready component (Tailwind, HTML+CSS, JSX or Vue) plus the tokens it uses - start here to rebuild real UI25
extract_brandNamed color roles (primary/accent/background/text), palette, fonts split by role, logo, social profiles, and a 0-1 confidence score15
extract_design_tokensFull token system with usage counts; format: css or tailwind for paste-ready output, dtcg for a W3C Design Tokens file (Style Dictionary / Figma variables)10
extract_fontsEvery font file and family the site loads, with weights, formats, and file URLs5
extract_videosVideo files, og:video, and player embeds (YouTube, Vimeo, Wistia, Loom), tagged by source1
extract_audioAudio files, og:audio, and podcast enclosures, tagged by source1
extract_lottieLottie animation JSON files declared in the page3
extract_svgsInline SVG code (sanitized, paste-ready) plus external SVG file URLs1
extract_assetsEvery image URL on a page, tagged by source, with alt text1

All tools are read-only and retry-safe. Identical calls within 24 hours are served from cache for free, and failed calls are never billed.

Controlling output size (remote server)

Remote results are trimmed by default so a big page cannot flood the chat context, and every trimmed response says exactly what was dropped. Two optional arguments loosen it per call:

  • limit (up to 200) - raise the item cap: "give me 80 SVGs, not 20"
  • full_output: true - complete long strings, like entire inline SVG markup

The REST API and this local npm server always return everything untrimmed, so limit and full_output apply to the remote server only. Every tool on both servers accepts render: true, plus two more shared arguments:

  • fresh: true - skip the 24-hour cache and re-extract the live page (charged normally); use when the site just changed
  • screenshot: true (requires render: true) - the result gains a screenshot field: a public URL of a 1440x900 capture of the page, live for 7 days, at no extra credits - show it to the user to verify an extraction. Pass 'full' instead of true for the entire page height.

Examples

"Rebuild stripe.com's pricing section in React"

The agent calls extract_code with the URL, gets the section's real markup, colors, fonts, and spacing, and adapts actual values instead of guessing.

"Build a dashboard in the style of linear.app"

The agent calls extract_brand and extract_design_tokens, gets Linear's real colors, fonts, and spacing scale, and builds to match.

"What fonts does apple.com use?"

The agent calls extract_fonts and returns every family with its font file URLs and weights.

Notes

  • The API reads static HTML and resolves the full CSS cascade by default, so a fully client-rendered app may return little for images, video, audio and Lottie (tokens, fonts, brand, and code come from CSS and are unaffected). Pass render: true on any remote-server tool to run the page in a real browser first so its JavaScript executes (+5 credits).
  • Respect the sites you extract from: check their terms before reusing assets commercially.

Links

API docs · Playground (no account) · Pricing · Changelog · Connect page

MIT © MiroMiro

Rendered live from SoraiaBarroso/miromiro-mcp's GitHub README — not stored, always reflects the source repo.

2 Install Methods

NameDescriptionCategorySource
npm packageInstall via npm (stdio transport)mcp-servermiromiro-mcp
streamable-http remoteHosted streamable-http endpointmcp-serverhttps://miromiro.app/mcp

0 Comments

Login required
Log in to post a comment or update on this repo.

No comments yet — be the first to share an update.