Command Palette

Search for a command to run...

UnylyUnyly
Browse all

Mirage Brand Extract

FreeNot checked

Extracts brand identity (colors, typography, spacing) from any website and generates HTML/CSS replicas or applies branding to templates.

GitHubEmbed

About

Extracts brand identity (colors, typography, spacing) from any website and generates HTML/CSS replicas or applies branding to templates.

README

An MCP (Model Context Protocol) server that extracts brand identity from any website and recreates it programmatically.

Features

  • Extract Brand - Analyze any website to extract colors, typography, spacing, and button styles
  • Generate Replica - Create HTML/CSS components using extracted brand data
  • Replicate Website - One-step extraction and generation
  • Compare Brands - Compare brand identities between two websites
  • Apply to Template - Generate pre-built templates with extracted branding

Requirements

Installation

Using uv (recommended)

cd mcp-mirage-brand-extract
uv pip install -e .

Using pip

cd mcp-mirage-brand-extract
pip install -e .

Configuration

  1. Copy the environment template:
cp .env.example .env
  1. Add your API keys to .env:
FIRECRAWL_API_KEY=your_firecrawl_key
GOOGLE_API_KEY=your_google_key

Usage

Running the Server

# With uv
uv run python server.py

# Or directly
python server.py

Testing with MCP Inspector

mcp dev server.py

Adding to Claude Desktop

Add to your claude_desktop_config.json:

{
  "mcpServers": {
    "mirage-brandextract": {
      "command": "python",
      "args": ["/path/to/mirage-brandextract-mcp/server.py"],
      "env": {
        "FIRECRAWL_API_KEY": "your_key",
        "GOOGLE_API_KEY": "your_key"
      }
    }
  }
}

Tools

extract_brand

Extract complete brand identity from a website.

# Parameters
url: str                      # Target website URL
include_screenshots: bool     # Include visual screenshots (default: False)

# Returns
{
    "colors": {
        "primary": "#FF5A5F",
        "secondary": "#00A699",
        "palette": [...]
    },
    "typography": {
        "headings": "Circular",
        "body": "Circular",
        "weights": [400, 500, 700]
    },
    "spacing": {...},
    "buttons": {...},
    "url": "original_url"
}

generate_replica

Generate HTML/CSS using extracted brand data.

# Parameters
brand_data: dict          # Output from extract_brand
component_type: str       # "landing_page", "email", "button", "card"
customization: str        # Additional instructions

# Returns
{
    "html": "<div>...</div>",
    "css": "/* styles */",
    "preview_url": "data:text/html;base64,..."
}

replicate_website

Complete workflow: extract brand + generate replica in one step.

# Parameters
url: str              # Target website URL
component_type: str   # What to generate
customization: str    # Additional instructions

# Returns
{
    "brand_data": {...},
    "generated": {
        "html": "...",
        "css": "..."
    }
}

compare_brands

Compare brand identities from two websites.

# Parameters
url1: str    # First website URL
url2: str    # Second website URL

# Returns
{
    "site1": {...brand_data...},
    "site2": {...brand_data...},
    "comparison": {
        "color_similarity": 0.85,
        "typography_match": true,
        "font_overlap": ["Inter"],
        "differences": [...]
    }
}

apply_brand_to_template

Apply brand to pre-built templates.

# Parameters
url: str              # Source website for branding
template_type: str    # "hero_section", "pricing_table", "feature_grid", "testimonial", "cta"

# Returns
{
    "html": "...",
    "css": "...",
    "preview_url": "...",
    "template_type": "hero_section"
}

Example Use Cases

1. Extract Airbnb branding and create a hero section

extract_brand(url="https://airbnb.com")
generate_replica(brand_data=result, component_type="landing_page", customization="Focus on hero section")

2. Compare competitor websites

compare_brands(url1="https://airbnb.com", url2="https://vrbo.com")

3. Quick template generation

apply_brand_to_template(url="https://stripe.com", template_type="pricing_table")

Development

Running Tests

pytest tests/ -v

Code Formatting

black src/ tests/
ruff check src/ tests/

License

MIT


Built autonomously by GRIMLOCK - Autonomous MCP Server Factory

from github.com/m2ai-mcp-servers/mcp-mirage-brand-extract

Installing Mirage Brand Extract

This server has no published package — it is built from source. Open the repository and follow its README.

▸ github.com/m2ai-mcp-servers/mcp-mirage-brand-extract

FAQ

Is Mirage Brand Extract MCP free?

Yes, Mirage Brand Extract MCP is free — one-click install via Unyly at no cost.

Does Mirage Brand Extract need an API key?

No, Mirage Brand Extract runs without API keys or environment variables.

Is Mirage Brand Extract hosted or self-hosted?

A hosted option is available: Unyly runs the server in the cloud, no local setup required.

How do I install Mirage Brand Extract in Claude Desktop, Claude Code or Cursor?

Open Mirage Brand Extract on unyly.org, pick your client tab (Claude Desktop, Claude Code, Cursor) and press Install — the config is generated automatically, no JSON editing.

Related MCPs

Compare Mirage Brand Extract with

Not sure what to pick?

Find your stack in 60 seconds

Author?

Embed badge for your README

Browse similar

All development MCPs