miromiro-mcp

miromiro-mcp

MCP server for the MiroMiro design-extraction API. It extracts real design data from live websites—including brand colors, fonts, tokens, SVGs, images, and component code—so AI agents can build from actual values.

Category
Visit Server

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

Tool What it returns Credits
extract_code A 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 UI 25
extract_brand Named color roles (primary/accent/background/text), palette, fonts split by role, logo, social profiles, and a 0-1 confidence score 15
extract_design_tokens Full 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_fonts Every font file and family the site loads, with weights, formats, and file URLs 5
extract_videos Video files, og:video, and player embeds (YouTube, Vimeo, Wistia, Loom), tagged by source 1
extract_audio Audio files, og:audio, and podcast enclosures, tagged by source 1
extract_lottie Lottie animation JSON files declared in the page 3
extract_svgs Inline SVG code (sanitized, paste-ready) plus external SVG file URLs 1
extract_assets Every image URL on a page, tagged by source, with alt text 1

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

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured