Miromiro

app.miromiro由 miromiro.app 发布官方发布者v0.3.1更新于 Oct 24, 2026

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

已验证Streamable HTTP可网页运行网页搜索与抓取开发者工具媒体与设计

概览

AI 生成的概览

MiroMiro 提取线上网站的真实设计——配色、字体、设计令牌、SVG、媒体与可直接粘贴的代码,让助手基于真实数值重建界面。

可以做什么
  • 把页面某个区块提取为可直接粘贴的代码(Tailwind、HTML+CSS、JSX、Vue、Elementor 模板或 Shopify 区块),并附预览与下载链接
  • 提取品牌配色、字体、Logo、社交账号,以及可输出为 CSS、Tailwind 或 DTCG 的完整设计令牌体系
  • 收集页面素材:图片、内联与外部 SVG、Lottie 动画、视频文件与播放器嵌入、音频文件
  • 列出网站页面并按共用版式分组,再逐页逐区块提取整页代码
  • 使用内置提示词完成区块克隆、品牌套件与设计令牌任务
适用场景
适合需要按现有网站重建或对齐界面、品牌配色与排版,而不是凭截图猜测的场景;也适合为项目收集某站点的图片、图标、字体或动画素材。
运行要求
可使用 miromiro.app/mcp 远程端点并通过 OAuth 登录,或通过 npx 运行本地 npm 包 miromiro-mcp。本地服务器需要把 MiroMiro API 密钥放在 MIROMIRO_API_KEY 中;远程服务器也可用 URL 参数或 Bearer 头传入密钥。需要免费账号,调用会消耗额度。
安装前请注意
每次调用会消耗每月额度;整页提取需要付费方案、额度包或授权,免费密钥会返回错误。API 密钥属于机密,不要写入共享配置。提取时目标网站地址会发送到 MiroMiro 服务器,截图会以公开链接保留 7 天。商业复用提取的素材前需确认来源网站的条款。

安装

在 SourceWeft 中

  1. 打开 控制台中的 Miromiro,将其添加到工作区。
  2. 连接 所需的 凭据。它们会被私密存储,绝不会在公开页面上展示。
  3. 为需要使用其工具的对话启用该服务。

Web executable,通过 Streamable HTTP。 远程服务在工作区中配置后即可从网页运行时运行。

交给智能体安装

把这段提示词粘贴到 Claude Code、Codex、Cursor 等智能体,或 SourceWeft 对话中。智能体会读取该服务器的安装指南,先向你展示发布者、端点和登录方式,经你同意后再把它添加到你的客户端。密钥不会写进任何命令。

阅读 https://sourceweft.com/mcp/app.miromiro%2Fmiromiro/install.md,并按其中说明把这个 MCP 服务器接入我的客户端。修改任何配置之前,先告诉我它的发布者、端点和登录方式,等我确认。不要把 API 密钥写进命令或我会提交的文件;问我密钥应从哪里获取。

查看智能体所依据的安装指南

其他 MCP 客户端

把它添加到你客户端的 mcpServers 配置中。 客户端会在首次连接时完成 OAuth 登录。

{
  "mcpServers": {
    "miromiro": {
      "type": "http",
      "url": "https://miromiro.app/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 five skills that teach Claude when to reach for each one:

  • elementor-section - any site's section as an Elementor template to import into WordPress
  • shopify-section - any site's section as a Shopify theme section (.liquid)
  • clone-section - a section as Tailwind, HTML+CSS, React or Vue
  • match-brand - a site's colors, fonts and design tokens to build in its style
  • extract-assets - images, SVG icons, videos, audio and Lottie files
bash
claude plugin marketplace add SoraiaBarroso/miromiro-mcpclaude plugin install miromiro@miromiro

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

Skills for OpenClaw and other agents

The same skills live in skills/. Each one uses the MiroMiro MCP tools when they are connected and otherwise calls the REST API with MIROMIRO_API_KEY (free key, 300 credits a month: https://miromiro.app/api/onboarding).

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 Settings → Plugins → New Plugin with the URL (authentication: OAuth).
  • Cursor (remote): add { "mcpServers": { "miromiro": { "url": "https://miromiro.app/mcp" } } } to ~/.cursor/mcp.json.
  • Claude Code: claude mcp add --transport http miromiro https://miromiro.app/mcp, then /mcp in a session to sign in.
  • Codex: add [mcp_servers.miromiro] with url = "https://miromiro.app/mcp" to ~/.codex/config.toml, then run codex mcp login miromiro.
  • Grok Bot: ask the bot "Add a custom MCP server called miromiro at https://miromiro.app/mcp", then press Authorize.
  • Muse: Settings → Connectors → Add custom connector → paste the URL.
  • Step-by-step pages for each agent: https://miromiro.app/api/agents/chatgpt (swap the last part for claude, claude-code, codex, cursor, grok-bot, muse or openai-dots).
  • 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):

json
{  "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):

bash
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) or an importable Elementor template / Shopify section, plus the tokens it uses - start here to rebuild real UI10
extract_brandNamed color roles (primary/accent/background/text), palette, fonts split by role, logo, social profiles, a 0-1 confidence score, and signals explaining where the colors came from (declared tokens vs inferred)10
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 source; a direct video-file URL is returned as the single result, and a YouTube/Vimeo/TikTok/Dailymotion/Loom video URL returns its player embed without a fetch1
extract_audioAudio files, og:audio, and podcast enclosures, tagged by source; a direct audio-file URL is returned as the single result1
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 text; a direct image-file URL is returned as the single result1
list_site_pagesEvery page of a website (from the sitemap, else the homepage links): pages with their own layout, templates grouping pages that share one layout, and suggested (every layout once)0 (free on every plan)
extract_pageA whole page as code: every section top to bottom in the framework you ask for, plus pagePreviewUrl (the page assembled, with a Download HTML button). Paid plans, credit packs and AppSumo only30 per page

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.

Asking for a part of the page by name

extract_code takes section - one of hero, header, footer, pricing, features, testimonials, faq, cta - so the agent never has to invent a CSS selector for a page it cannot see. Every result also lists the page's other sections with ready selectors for follow-up calls. A selector or section that matches nothing falls back to the hero with a note saying what the page does have, instead of a dead-end 404.

Every extract_code result carries previewUrl: a page showing exactly the returned code rendered, so you can compare it with the live site even if your agent adapts the code; downloadUrl: the code exactly as returned, as a file in the format you asked for (.jsx, .vue, .html, .elementor.json, .liquid); and pagePreviewUrl: every section of that page extracted so far, assembled in order. Agents are told to build on the returned code rather than regenerate it: they make it better to use where they can (clear names, reusable components with props, shorter code without redundant wrappers or duplicated classes, your theme tokens) as long as it renders the same, hand clean code over as it is, and never retype the real layout and styles. Inline SVGs over 2 KB (logo walls, illustrations) come back as permanent hosted .svg files behind an <img> that keeps their classes, size and color, which keeps the code small enough for the agent to use as-is (astro.build's hero: 73 KB to 14 KB). Pass inline_svg: true for fully self-contained code.

Extracting a whole website

list_site_pages(url) scans the site for free and groups its pages by layout, so a blog with 62 posts shows up as one template rather than 62 pages. The agent shows you the list and asks which pages you want before spending anything. It then calls extract_page(url) once per chosen page, with optional framework (tailwind by default, or html, jsx, vue, elementor, shopify) and theme (light or dark).

extract_page costs a flat 30 credits per page, however long the page is, and a page already extracted in the last 24 hours is free. If a page has more sections than fit in one call, the result says complete: false and calling again with the same url finishes it at no extra charge. Whole-site extraction needs a paid plan, a credit pack or an AppSumo license: on a free key, extract_page returns a 402 (site_requires_plan) that the agent relays, and extract_code still works for single sections.

Prompts (slash commands)

The server exposes three MCP prompts, which clients surface before the first call - Claude Code as /mcp__miromiro__clone_section, /mcp__miromiro__brand_kit and /mcp__miromiro__design_tokens, VS Code as /miromiro.<name>, Cursor in its prompt menu:

PromptArgumentsWhat it does
clone_sectionurl, section?, framework?Rebuild a section of a live site as paste-ready code, with its real values, and list the other sections
brand_kiturlThe brand colors, fonts, logo and socials, explained (declared vs inferred)
design_tokensurl, format?The complete token system as CSS, Tailwind, DTCG or JSON, with a short summary

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:

  • response_format: 'concise' | 'detailed' - the one-word knob: concise keeps lists to 10 entries for a chat answer, detailed returns everything the tool has
  • 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

Generated code is never trimmed. Results stop at roughly 20k tokens (25k for extract_code) so they fit the tool-result cap of Claude Code, Claude Desktop and Cursor, and the truncation_note says how many tokens were cut and which argument brings them back.

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 (forces a real browser, +5 credits, on every plan; usually not needed because the server re-runs JavaScript-only or refused pages in a browser by itself - see Notes), 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.

Extraction returns a page's light styles by default, so a site you know as dark comes back light unless you ask otherwise:

"Rebuild linear.app's pricing card in its dark theme"

The agent passes theme: "dark" and the page's prefers-color-scheme: dark rules and custom properties become the component itself. Every result also carries a theme field saying which one you actually got. Sites that switch themes with a JavaScript class toggle cannot be selected this way - you get the page default plus a hint saying so.

"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

  • extract_code always loads the page in a real browser and reads what it actually shows (on every plan, no extra credits), so it never needs render: true. The other tools read static HTML and resolve the full CSS cascade first. When that comes back as a JavaScript app shell, with styles injected by scripts, or refused by the site (401, 403 or 406, or timed out - publishers commonly turn away datacenter IPs even for a public page), the server re-runs the call in a real browser by itself at no extra cost, on every plan, and the result carries usage.autoRender (a sentence to read to the user).
  • Pass render: true to force the browser (+5 credits, any plan): for images, video or Lottie that only load on scroll, or when a result is still thin after the automatic pass. A 403 that says the browser was refused too means the site cannot be extracted. On extract_design_tokens, render: true only permits the browser: the plain read still runs first, and the 5 credits are charged only if the browser was actually needed.
  • Every result carries usage with the credits left this month. If the account holds a credit pack (one-off credits that never expire, bought at https://miromiro.app/api/pricing), usage.packCredits is the pack balance left; packs are drawn after the monthly credits, so a free account with a pack keeps working past its 300 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

来源:README.md,提交 4b79a9e

工具

0
该服务器需要登录,因此 SourceWeft 无法在没有账号的情况下读取其工具,也未收录。已连接账号所能看到的内容可能因账号及其权限而异。

版本历史

1
  1. v0.3.1最新Sep 16, 2026

评分

已满足适用检查项的 85%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通必需25 分
  • 已声明认证方式必需10 分
  • 已列出工具15 分

    请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。

  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分