Extract a project's logo from its website, brand kit, or other sources
This skill extracts a project's official logo from its website or related sources, prioritising high-quality vector formats and official brand assets.
Before starting, gather the following from the user:
https://example.com)./logos/example-logo.svg)If any required input is missing, ask the user before proceeding.
Save all project logos in the target folder. We will pick variants and post-process those later.
There is no universal standard how artist name their logo files for dark and light variants. In our case, we always say
light: light (white) text on dark or transparent backgrounddark: dark (black) text on white or transparent backgroundFollowing vocabulary is used:
The highest quality logos are typically found in official brand/media kits. Search for these pages:
Navigate to the website and look for links in the footer or header:
Try common URL patterns:
{base_url}/brand{base_url}/brand-kit{base_url}/media{base_url}/press{base_url}/assets{base_url}/resourcesIf a brand kit is found:
If a brand kit is found with suitable logos, proceed to Step 5.
Many projects host their logos in their GitHub repositories:
Find the project's GitHub repository (often linked in website footer/header)
Search these common locations:
/assets/ or /images/ directories/branding/ or /brand/ directories/public/ directory (for web apps)/docs/ or /documentation/ directoriesCheck the README.md for embedded logos:
<img> tags or markdown image syntaxSearch for files named:
logo.svg, logo.png, logo-*.svg{project-name}.svg, {project-name}-logo.*brand.*, icon.*If a suitable logo is found, proceed to Step 4.
If no brand kit or GitHub assets are available, extract the logo from the website:
Use the MCP Playwright tool to:
Navigate to the homepage
Look for logo elements in the header (typically top-left):
<img> tags with class/id containing "logo"<svg> elements in the headerrole="img" and logo-related aria labelsExtract the image source URL or SVG content
Open Graph image - Check for <meta property="og:image"> tag
Favicon - Check for high-resolution favicon:
<link rel="icon" type="image/svg+xml"> (best - vector)<link rel="apple-touch-icon"> (usually 180x180 PNG)/favicon.ico (low resolution, last resort)Twitter Card image - Check <meta name="twitter:image">
Get the project logo from their Twitter (also known as X.com) avatar image.
Get the project logo from their Coingecko.
For SVG files:
.svg extensionFor raster images (PNG, etc.):
Verify the saved file:
Using curl:
curl -o "{save_path}" "{logo_url}"
Using Python:
import requests
response = requests.get("{logo_url}")
with open("{save_path}", "wb") as f:
f.write(response.content)
For SVG content extracted directly:
with open("{save_path}", "w") as f:
f.write(svg_content)
Provide the user with:
If no suitable logo can be found:
If the logo is rendered via JavaScript:
If brand assets are behind a login: