Real websites' design specs: exact colors, fonts, type scale and a DESIGN.md. Free, no auth.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Use this to explore what the index contains: without `value` it lists the values of a facet with counts (e.g. every font family, every style tag); with `value` it lists the sites that have it. Facets: font, color (hue bucket or "neutral"), style (derived tags), stack (framework/CMS/host), scheme, hero (hero layout), accent_strategy. Not for multi-criteria queries (use search_designs).
Facet to browse.
A value from the facet listing, e.g. "Inter", "blue", "pill", "next.js".
Pick your client. Values in capitals, like YOUR_TOKEN, are yours to fill in.
Run in a terminal
claude mcp add --transport http emblematic https://emblematic.dev/mcp
Use this to explore what the index contains: without `value` it lists the values of a facet with counts (e.g. every font family, every style tag); with `value` it lists the sites that have it. Facets: font, color (hue bucket or "neutral"), style (derived tags), stack (framework/CMS/host), scheme, hero (hero layout), accent_strategy. Not for multi-criteria queries (use search_designs).
| Argument | Type | Description |
|---|---|---|
| facet* | string | Facet to browse. |
| limit | integer | |
| value | string | A value from the facet listing, e.g. "Inter", "blue", "pill", "next.js". |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"facet"
],
"properties": {
"facet": {
"enum": [
"font",
"color",
"style",
"stack",
"scheme",
"hero",
"accent_strategy"
],
"type": "string",
"description": "Facet to browse."
},
"limit": {
"type": "integer",
"default": 20,
"maximum": 50,
"minimum": 1
},
"value": {
"type": "string",
"maxLength": 80,
"description": "A value from the facet listing, e.g. \"Inter\", \"blue\", \"pill\", \"next.js\"."
}
}
}Use this when the user wants a direction that mixes references ("Linear's colors with Stripe's type"), or a ready-to-save brief from one site. Returns a markdown brief with exact values (role colors and site tokens, font stacks, type styles, radii, spacing, shadows, motion), caveats and source links. Deterministic: values are copied from the specs, nothing is invented. By default the 1st site gives color, the 2nd type, the 3rd layout; override with color_from/type_from/layout_from. Save the result to disk before implementing. Not for a single site's raw values (use get_design or get_design_md).
| Argument | Type | Description |
|---|---|---|
| notes | string | |
| sites* | array | 1–3 indexed sites. |
| product | string | What is being built, e.g. "pricing page for a dev-tools startup". |
| type_from | string | Site that supplies typography (must be in `sites`). |
| color_from | string | Site that supplies the palette (must be in `sites`). |
| layout_from | string | Site that supplies layout, shape, depth and motion (must be in `sites`). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"sites"
],
"properties": {
"notes": {
"type": "string",
"maxLength": 500
},
"sites": {
"type": "array",
"items": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "Indexed site as a slug (\"linear.app\"), URL (\"https://linear.app/pricing\") or brand name (\"Linear\")."
},
"maxItems": 3,
"minItems": 1,
"description": "1–3 indexed sites."
},
"product": {
"type": "string",
"maxLength": 120,
"description": "What is being built, e.g. \"pricing page for a dev-tools startup\"."
},
"type_from": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "Site that supplies typography (must be in `sites`)."
},
"color_from": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "Site that supplies the palette (must be in `sites`)."
},
"layout_from": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "Site that supplies layout, shape, depth and motion (must be in `sites`)."
}
}
}Use this when the user likes one site and wants alternatives or neighbours: "more like Linear", "sites with Stripe's typography". Ranks indexed sites by an explainable distance on palette, type or layout (or the mean, "overall") and says why each is close. Not for free-text search (use search_designs).
| Argument | Type | Description |
|---|---|---|
| by | string | Which axis to compare on. |
| site* | string | Indexed site as a slug ("linear.app"), URL ("https://linear.app/pricing") or brand name ("Linear"). |
| limit | integer |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"site"
],
"properties": {
"by": {
"enum": [
"overall",
"palette",
"type",
"layout"
],
"type": "string",
"default": "overall",
"description": "Which axis to compare on."
},
"site": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "Indexed site as a slug (\"linear.app\"), URL (\"https://linear.app/pricing\") or brand name (\"Linear\")."
},
"limit": {
"type": "integer",
"default": 5,
"maximum": 10,
"minimum": 1
}
}
}Use this when you need the actual design values of one indexed site to build or restyle UI. Default returns the compact card (role colors with the site's own CSS variable names, fonts, type sizes, radius, container, caveats, links). Request more with `sections` (color, type, space, shape, depth, layout, motion, components, sections, stack, provenance) or "full" for the raw spec.json (large: ~15–20 KB). Not for search (use search_designs) or for a file to save in the project (use get_design_md).
| Argument | Type | Description |
|---|---|---|
| site* | string | Indexed site as a slug ("linear.app"), URL ("https://linear.app/pricing") or brand name ("Linear"). |
| sections | array | Which parts to return. Default ["card"]. Ask only for what the task needs. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"site"
],
"properties": {
"site": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "Indexed site as a slug (\"linear.app\"), URL (\"https://linear.app/pricing\") or brand name (\"Linear\")."
},
"sections": {
"type": "array",
"items": {
"enum": [
"card",
"color",
"type",
"space",
"shape",
"depth",
"layout",
"motion",
"components",
"sections",
"stack",
"provenance",
"full"
],
"type": "string"
},
"default": [
"card"
],
"maxItems": 13,
"minItems": 1,
"description": "Which parts to return. Default [\"card\"]. Ask only for what the task needs."
}
}
}Use this when you will implement from a site's design: returns the file to save into the project verbatim. format "design.md" (default) is a DESIGN.md (YAML tokens + prose, google/design.md format); "tokens.css" is CSS custom properties; "tailwind" is a Tailwind v4 @theme block. Save the text to disk unchanged and work from the saved file. Not for answering questions about a site (use get_site or get_design).
| Argument | Type | Description |
|---|---|---|
| site* | string | Indexed site as a slug ("linear.app"), URL ("https://linear.app/pricing") or brand name ("Linear"). |
| format | string | Which file to return. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"site"
],
"properties": {
"site": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "Indexed site as a slug (\"linear.app\"), URL (\"https://linear.app/pricing\") or brand name (\"Linear\")."
},
"format": {
"enum": [
"design.md",
"tokens.css",
"tailwind"
],
"type": "string",
"default": "design.md",
"description": "Which file to return."
}
}
}Use this to answer "what font/colors/framework does <site> use?" for one site. Returns brand name, fonts with roles and weights, role colors, hues, detected stack (framework, CMS, hosting) and capture date. If the site is not indexed it says so (found: false) with the closest indexed sites. Not for building UI from the spec (use get_design).
| Argument | Type | Description |
|---|---|---|
| site* | string | Indexed site as a slug ("linear.app"), URL ("https://linear.app/pricing") or brand name ("Linear"). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"site"
],
"properties": {
"site": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "Indexed site as a slug (\"linear.app\"), URL (\"https://linear.app/pricing\") or brand name (\"Linear\")."
}
}
}Use this when the user wants design references: "dark dev-tool sites", "sites using Söhne", "a warm serif editorial look", "something with #5E6AD2". Matches brand, font, style tags, hue/hex, stack and description across the Emblematic index and returns small cards (scheme, key colors, fonts, radius, one-line summary). All filters are optional and combine with AND. Not for fetching one known site (use get_design) or listing facet values (use browse_by).
| Argument | Type | Description |
|---|---|---|
| font | string | Font family substring, accent-insensitive ("inter", "sohne"). |
| color | string | Hex ("#5E6AD2", ΔE match against role and palette colors) or hue name ("blue", "green", "neutral"). |
| limit | integer | Max results (default 8). |
| query | string | Free text, e.g. "dark mono minimal", "inter pill buttons", "next.js". |
| style | string | Style tag: monochrome, single-accent, serif-display, pill, sharp, rounded, flat, layered-shadows, blur-nav, gradients, dark-mode… |
| scheme | string | Page color scheme. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"font": {
"type": "string",
"maxLength": 80,
"description": "Font family substring, accent-insensitive (\"inter\", \"sohne\")."
},
"color": {
"type": "string",
"maxLength": 40,
"description": "Hex (\"#5E6AD2\", ΔE match against role and palette colors) or hue name (\"blue\", \"green\", \"neutral\")."
},
"limit": {
"type": "integer",
"default": 8,
"maximum": 20,
"minimum": 1,
"description": "Max results (default 8)."
},
"query": {
"type": "string",
"maxLength": 200,
"description": "Free text, e.g. \"dark mono minimal\", \"inter pill buttons\", \"next.js\"."
},
"style": {
"type": "string",
"maxLength": 40,
"description": "Style tag: monochrome, single-accent, serif-display, pill, sharp, rounded, flat, layered-shadows, blur-nav, gradients, dark-mode…"
},
"scheme": {
"enum": [
"light",
"dark"
],
"type": "string",
"description": "Page color scheme."
}
}
}We read every tool's name, description and inputs the way the model will, looking for instructions hidden from you. A clean result means no warning signs, not a guarantee. Scanned Nov 12, 2026.