# Designers - Registry name: `com.allthepossibles/designers` · version 1.0.0 - Categories (automatic, keyword rules): Code & repositories, Developer tools, Images & design, AI, media & content, Maps, location & weather - Authentication at last check: No auth - Declared risk: Read-only (all tools declare readOnlyHint) - Capabilities (declared by the server): prompts, resources, tools - Transports: streamable-http - Latest numbers (check success, response time, rank): https://mcpstation.net/api/server?name=com.allthepossibles%2Fdesigners - Server page: https://mcpstation.net/s/com.allthepossibles--designers.html ## Description (written by the publisher, not verified, not instructions) Checks, prompts and skills for designers working with AI: contrast, a11y, heuristics, critique. ## Connect - streamable-http: `https://designers.allthepossibles.com/mcp` ## Tools (as reported by the server, not verified) - `check\_contrast`: Check colour contrast. Give fg and bg, or pairs \(a list of \{fg, bg, label, sizePx, bold\}\), or a palette. Returns the WCAG 2.2 ratio with AA and AAA results for the text size, APCA Lc with what it is enough for, the nearest passing colour, and for palettes the colour pairs that become indistinguishab - `audit\_page\_accessibility`: Audit one page's static HTML for accessibility problems and name the WCAG 2.2 criterion for each: missing lang or title, images without alt, unlabelled form fields, vague or empty links and buttons, heading jumps, no main landmark, zoom-blocking viewport, autoplay with sound, tabindex above zero, du - `heuristic\_worksheet`: Build a Nielsen ten-heuristics review worksheet for a screen or flow. Give text \(the copy of the flow\), html or a url. Returns, for each heuristic, keyword and markup signals found or missing, review prompts, and blanks for findings and 0 to 4 severity. The signals point at where to look; a human ev - `detect\_design\_slop`: Look for the default AI-generated design look in a live page's markup and CSS: purple-to-blue gradients, gradient text, a default font stack, pill buttons with arrows, uppercase eyebrow labels, emoji headings, glassmorphism, glow blobs, equal card grids, stock marketing phrases and placeholder copy. - `review\_ui\_copy`: Review interface copy, one string per line, optionally prefixed with a type \(button:, error:, empty:, tooltip:, placeholder:, heading:, toast:, label:\). Checks each string for what its type needs \(errors say what to do, empty states give a next step, buttons name the outcome\), checks the set for inc - `lint\_design\_feedback`: Lint design critique. Sorts each note into observation, opinion, solution-without-problem, vague, or question, explains what is missing, and gives an observation, impact, suggestion skeleton for weak notes. Reports the share of notes ready to act on. - `plan\_critique`: Plan a design critique for a stage \(concept, wireframe, visual, prototype, build, shipped\): a framing statement, timed agenda, the questions that fit the stage, roles, and the kinds of feedback to turn away until a later stage. - `lint\_research\_questions`: Lint user research questions, one per line, for leading wording, double-barrelled questions, hypotheticals, predictions, loaded words, jargon, closed questions in an open interview, why-questions and unlabelled rating scales, with a suggested rewrite for each problem. - `usability\_stats`: Usability arithmetic with formulas shown. mode sus: score System Usability Scale responses \(rows of ten 1-5 answers\) with grade, percentile and 95% interval. mode discovery: participants needed to find a share of problems \(Nielsen and Landauer\). mode ab: sample size per variant for a conversion test - `lint\_tracking\_plan`: Lint a product analytics tracking plan \(event names with optional properties, one per line like 'project\_created \(template, source\)'\) for mixed naming styles, vague events, UI-element names, near-duplicate events, tense and order drift, and personal data in property names. With no events and a produ - `audit\_site\_accessibility`: Pro. Crawl up to 15 same-origin pages from a start URL, audit each one's static HTML for WCAG 2.2 problems, and report issues by how many pages they affect so that shared-template problems come first. Returns a markdown report. - `check\_contrast\_tokens`: Take a design token file \(CSS custom properties like --color-text: \#111;, a JSON object of colours, or W3C design tokens\) and test every foreground-like token against every background-like token for 4.5:1 text and 3:1 component contrast, with the nearest passing colour, and find colours that merge u - `build\_heuristic\_report`: Pro. Build a scored, exportable markdown report from heuristic evaluation findings you have written. Each finding has heuristic \(1 to 10\), severity \(0 to 4\), location, issue, effect, fix and optional effort \(S, M, L\) and evaluator. Merges duplicates across evaluators, computes a health score, and so - `getting\_started`: Explain what this server can do and suggest the three best first tasks for what the person has \(a Figma link, a live URL, copy, a research plan, an event list\). Use this first when the person is new or unsure what to ask for. - `whoami`: Show the caller's plan \(Free or Pro\) and how many calls remain today on each tool. Does not use up a daily call. - `check\_touch\_targets`: Check target sizes and spacing against WCAG 2.2 SC 2.5.8 \(24 by 24 CSS px, or a smaller target with enough spacing\), the 44px guidance for iOS and the web, and 48dp for Android. Pass targets as a list of \{name, width, height, gap, inline\} or text lines like 'Save button 40x32 gap=8'. Returns pass or - `lint\_token\_names`: Lint design token names from a list, CSS variables or a JSON token file: mixed separators, colours named by hue where roles belong, values or locations in names, version words, duplicate values, abbreviation drift \(bg and background\) and irregular scales. - `lint\_design\_md`: Score a DESIGN.md \(the brand and design context file models read before building\): missing sections, no hex values, text and background pairs that fail contrast, too many typefaces, adjectives a model reads as the generic look, no never-list, no sizes, too long or too thin. - `doctor`: Diagnose setup problems. Reports what the server sees about this connection \(client, whether a Pro key was received and is active, plan\), checks a Figma link for the right shape \(frame link with node-id, not a prototype or Community page\), and matches a described symptom to fixes for: connected but - `save\_project\_context`: Pro. Save named project context \(brand notes, a DESIGN.md, past decisions, personas\) against the Pro key, up to 20 items of 50,000 characters, so later sessions and prompts can reuse it. - `get\_project\_context`: Pro. List the saved project context, or read one item by name. - `generate\_conformance\_report`: Pro. Fetch up to 10 public pages, run the static accessibility audit on each, and return a draft Accessibility Conformance Report in the shape of the ITI VPAT 2.5 WCAG edition: a report header \(product, version, date, evaluation methods, contact, notes\), then a table of every WCAG 2.2 Level A and AA - `screen\_reader\_script`: Read HTML \(pass \`html\`, or a public \`url\`\) and return a linear approximation of what a screen reader announces, in document order: landmarks, headings with levels, links, buttons, form controls with accessible names and states \(required, expanded, checked, disabled and more\), images with alt, lists - `check\_motion`: Static motion audit against WCAG 2.2 \(2.2.2 Pause, Stop, Hide; 2.3.1 Three Flashes; 2.3.3 Animation from Interactions\). Pass \`html\` and/or \`css\`, or a public \`url\` \(the page and up to 4 same-site stylesheets are fetched\). Flags autoplay video and audio, marquee and blink, infinite animations with no - `audit\_email\_accessibility`: Accessibility audit of marketing or transactional email HTML. Pass the full source as \`html\`. Checks layout tables missing role=presentation, missing lang and title, images without alt or with decorative alt mistakes, image-only emails and likely text in images, vague link text such as "click here", - `check\_reflow`: Static reflow audit against WCAG 1.4.4 Resize Text, 1.4.10 Reflow, 1.4.12 Text Spacing, 1.3.4 Orientation and 1.4.13 Content on Hover or Focus. Pass \`html\` and/or \`css\`, or a public \`url\` \(the page and up to 4 same-site stylesheets are fetched\). Flags viewport meta that blocks zoom, fixed pixel widt - `lint\_disclosure\_copy`: Lint financial, legal and consent copy \(fees, rates, terms, privacy notices, error and decline messages\) for plain language. Give text and optionally kind \(fee, rate, terms, consent, privacy, error, marketing\). Returns Flesch Reading Ease and Flesch-Kincaid grade \(target grade 8 or lower\), average s - `audit\_dark\_patterns`: Audit screen copy, HTML or a public URL for deceptive-design \(dark pattern\) signals: confirmshaming, forced continuity and hard-to-cancel flows, pre-selected options, false urgency and fake scarcity, misdirection by visual weight, hidden costs, trick questions and double negatives, nagging, forced a - `lint\_brand\_voice`: Check text against brand voice rules. Give text and rules \(a string of plain lines, or a JSON object, or an array\). Understood rules: banned words or phrases, preferred terms \('use sign in not log in', or 'log in -\> sign in'\), required capitalisation of product names, sentence case or title case for - `stress\_test\_localisation`: Stress-test UI strings for translation. Give strings \(one per line, optionally 'text \| maxChars' or 'label \| text \| maxChars', or a JSON array of \{text, maxChars, label\}\), optional locales \(default de, fr, es, fi, ru, ja, ar, zh\) and optional defaultMaxChars. Applies the published IBM translation ex - `scan\_pii`: Scan text for real personal and secret data that should not appear in design files, and return a masked report plus a redacted copy. Pass \`text\` \(for example every text layer from a Figma frame, a spec, mockup sample data or OCR text from a screenshot\) and optionally \`mode\`: design \(default\) or stri - `check\_design\_drift`: Compare design tokens from the design tool with what the code uses. Pass \`design\` \(W3C design tokens JSON, Tokens Studio JSON, flat key/value JSON, or CSS variables\) and \`code\` \(CSS, SCSS or a Tailwind theme with custom properties or hex values\). Both are parsed forgivingly. Returns findings grouped - `audit\_form`: Audit a form's markup and its error messages, with extra care for sign-up and payment forms. Pass \`html\` or a public \`url\`, and optionally \`errors\` \(error message strings, one per line\). Checks programmatic labels and placeholder-only labels \(WCAG 1.3.1, 3.3.2, 4.1.2\), autocomplete tokens on persona - `modular\_scale`: Build a modular type scale. Pass \`base\` \(px, default 16\) and \`ratio\` \(a number from 1.01 to 4, or a name: minor second, major second, minor third, major third, perfect fourth, augmented fourth, perfect fifth, golden, major sixth, octave; default major third 1.25\). Optional: \`stepsUp\` \(default 6\), \`s - `measure\_leading`: Check line length and suggest leading. Pass \`fontSizePx\` and \`containerPx\` \(the text column width in px\). Optional: \`charsPerLine\` \(use a counted value instead of the estimate\), \`language\` \(en, de, fr, es, it, pt, nl, ru, ja, zh, ko; sets the average character width\), \`avgCharWidthEm\` \(override, def - `type\_crimes\_lint`: Lint text, HTML or CSS for common typographic errors. Pass \`text\` \(plain copy, an HTML fragment or a stylesheet\) and optionally \`kind\`: auto \(default\), text, html or css. Checks: two spaces after a period, repeated spaces, straight double quotes and apostrophes where curly belong, hyphen or double h - `vertical\_rhythm`: Snap a type scale to a baseline grid. Pass \`baseline\` \(px, default 8\) and \`sizes\`: an array of pixel sizes, or "name:size" strings such as "h1:48" and "body:16". Optional: \`bodySize\` \(default 16\) and \`rootPx\` \(default 16\). Returns, per size, a line-height rounded to a whole number of baseline units - `type\_pairing\_check`: Check a font pairing against a built-in table of about 55 common families \(Helvetica, Arial, Inter, Roboto, Open Sans, Lato, Georgia, Times New Roman, Garamond, Caslon, Jenson, Palatino, Baskerville, Playfair Display, Bodoni, Trade Gothic, Futura, Knockout, Champion Gothic, Oswald, Courier New, JetB - `build\_grid`: Build a column grid from page or container width. Pass \`width\`, and optionally \`columns\` \(default 12\), \`gutter\` \(default 24\), \`margin\` \(default 24\). Returns the column width, the x position of every column, the width of every span from 1 to N columns, CSS grid code \(fixed pixel and fluid fr versions - `build\_spacing\_scale`: Generate spacing tokens from a base unit. Pass \`base\` \(px, default 8\) and one of: nothing \(linear 4/8-point ladder: half step, 1x, 1.5x, 2x, 3x, 4x, 5x, 6x, 8x ...\), \`ratio\` \(modular: base times ratio to the power n, starting at the base\), or \`steps\` \(your own list of px values\). \`count\` sets the to - `calculate\_proportion`: Work out proportions. Pass \`ratio\` \(golden, root2 or a-series, root3, any a:b such as 3:2 or 16:9, or a decimal such as 1.414; default golden\) and \`width\` or \`height\`. Optionally \`orientation\` \(landscape by default, or portrait\) and \`container\` \(length to split; defaults to the long side\). Returns t - `plan\_breakpoints`: Plan responsive breakpoints from content. Pass \`contentWidths\` \(list of px widths where your layout starts to fail or needs to change, found by dragging the browser or frame\), and optionally \`deviceTargets\` \(px widths of devices you must support; these are checked against the result, never used to c - `check\_proximity\_alignment`: Find layout slips that read as mistakes. Pass \`boxes\` \(array or JSON string of \{x, y, w, h, label\}, 2 to 400 boxes\) or \`html\` plus optional \`css\`. For markup, geometry comes from data-x, data-y, data-w, data-h attributes or from left, top, width and height in px \(inline style, or simple .class, \#id - `palette\_harmony`: Build colour harmonies from base colours. Pass \`colors\` \(one to six colours as hex, rgb\(\), hsl\(\) or CSS names, comma or newline separated, or an array\) and optionally \`harmony\` \(complementary, analogous, triadic, split-complementary or tetradic\) to return one scheme. Hue is rotated in OKLCH with lig - `tint\_shade\_scale`: Generate a 50, 100, 200 ... 900, 950 scale from one \`color\` \(hex, rgb\(\), hsl\(\) or a CSS name\) and optionally a \`name\` for the CSS variables. Your colour is kept exactly on the step nearest its own lightness; other steps follow a fixed OKLCH lightness curve with the hue held and chroma tapering towar - `color\_meaning\_check`: Check status or state colours for colour-vision problems. Pass \`states\` as lines or comma-separated entries such as \`error: \#d32f2f, success: \#2e7d32\`, or an array of \{label, color\}. Labels like error, success, warning and info \(and close variants\) get matching icon and text suggestions; any other l - `dark\_mode\_palette`: Derive a dark counterpart from light-mode tokens. Pass \`tokens\` as \`name: colour\` lines \(CSS custom properties work\), a JSON object of name to colour, or an array of \{name, color\}. Roles are guessed from the name \(surface, raised surface, text, border, accent, on-accent\) and then from the colour. Su - `colour\_temperature\_mix`: Read a palette's balance. Pass \`colors\` \(two to sixty\) as hex, rgb\(\), hsl\(\) or CSS names, optionally each followed by its area share, such as \`\#1b3a5c 55%, \#f2efe6 30%, \#e4572e 10%\`, or an array of strings or \{color, share\}. Returns warm, cool, neutral and in-between share, a chroma-weighted warm/co - `trunk\_test`: Answer the six questions of Steve Krug's trunk test \(Don't Make Me Think\) from a page's markup: what site is this, what page am I on, what are the major sections, what are my options at this level, where am I in the scheme of things, how can I search. Pass a public \`url\` \(fetched safely, public host - `check\_form`: Check a form's markup against the style rules in Luke Wroblewski's Web Form Design. Pass a public \`url\` \(fetched safely, public hosts only\) or pasted \`html\`. Reports findings with severity \(high, medium, low, info\) and a fix for label association and placement, placeholder used as a label, required - `analyse\_card\_sort`: Analyse an open card sort \(method after Donna Spencer, Card Sorting\). Pass \`participants\`: an array with one entry per person, each a map of group name to a list of cards \(or \{id, groups: \{...\}\}\). Accepts 3 to 60 participants and 5 to 100 distinct cards. Returns a similarity matrix \(percent of parti - `calc\_fitts\_hick`: Estimate movement time with Fitts's law \(Shannon form: a + b \* log2\(distance / width + 1\)\) and decision time with the Hick-Hyman law \(a + b \* log2\(choices + 1\)\). Pass \`distance\` and \`width\` for one target, \`choices\` for a choice set, and/or \`layouts\`: 2 or 3 layouts, each \{name, targets: \[\{label, di - `plan\_usability\_test`: Build a usability test plan skeleton with fixed template logic \(no model call\). Pass \`goal\` \(what you need to learn\), \`participants\` \(a number, a list of criteria, or \{count, groups, profile\}\) and \`tasks\` \(strings, or \{name, scenario, start, success\}\). Optional: \`product\`, \`method\` \(moderated or unm - `chart\_lint`: Lint a chart specification for graphical integrity, in the tradition of Edward Tufte \(The Visual Display of Quantitative Information\) and Alberto Cairo \(How Charts Lie\). Pass \`spec\` as a JSON object or JSON string with: type \(bar, column, line, area, pie, donut, scatter, bubble\), title, source, unit - `chart\_chooser`: Pick a chart type from the question being asked and the shape of the data. Pass \`question\` \(compare, trend, distribution, part-to-whole, relationship, ranking, geography\) and any of: \`categories\` \(number of groups or items\), \`points\` \(observations or time steps\), \`series\` \(number of series\), \`thirdV - `chart\_colour\_check`: Check a set of chart series colours. Pass \`colors\` \(list or comma-separated string of hex, rgb\(\), hsl\(\) or CSS names, up to 24\), \`background\` \(default \#ffffff\) and \`chartType\` \(bar, line, area, pie, scatter, map and so on\). Returns: contrast of each colour against the background with the 3:1 minimum - `data\_table\_vs\_chart`: Decide whether data belongs in a table, small multiples, a sparkline or a chart. Pass \`rows\`, \`cols\` \(numeric columns or series\), \`purpose\` \(lookup, compare, pattern, monitor\), \`precision\` \(exact or approximate\), \`space\` \(inline, tiny, normal, large\), \`timeSeries\` \(boolean\), \`mixedUnits\` \(boolean\), - `number\_format\_check`: Audit how numbers are displayed. Pass \`numbers\` \(the strings exactly as shown, as a list or newline or comma-separated text; JSON numbers lose their formatting so strings are better\), \`context\` \(axis, tooltip, table cell, headline\), and optionally \`locale\` \(en-US, de-DE, fr-FR and so on\), \`raw\` \(the - `css\_contrast\_pairs`: Extracts real foreground and background colour pairs from CSS instead of guessing roles from token names. Pass a public \`url\` \(the page, its style blocks and up to 12 linked stylesheets are fetched\) or paste \`css\` \(and optionally \`html\` for its style blocks\). For every rule that sets \`color\`, it fin - `alt\_text\_quality`: Reads alt text on a page. Pass a public \`url\` or \`html\`. Counts every img element \(not a sample\) and states how many it read and how many it skipped as aria-hidden or presentational. Flags missing alt, file names and camera names \(IMG\_1234, Name\_With\_Underscores.jpg\), alt equal to the file stem, pla - `error\_message\_check`: Checks UI and error strings against WCAG 3.3.1 \(Error Identification\), 3.3.3 \(Error Suggestion\), 4.1.3 \(status messages that vanish\) and plain-language convention. Pass \`messages\`: a list of strings, or objects \`\{ text, where, autoDismissMs \}\` where \`where\` is inline, toast, tooltip, placeholder and - `touch\_target\_css`: Static estimate of the rendered size of interactive elements \(a, button, input, select, textarea, summary, role=button/link, onclick\) for WCAG 2.5.8 Target Size \(Minimum, 24px\) and the 44px guidance. Pass \`html\` and \`css\`, or a public \`url\` \(page plus up to 12 stylesheets\). It matches CSS rules to e - `page\_weight\_report`: Weighs a public page from its delivered HTML. Pass \`url\`. Reports HTML bytes \(uncompressed, plus the server's reported transfer length when given\), element count, link count and distinct link targets, image count with lazy-loaded and no-dimension counts, iframes, media, inline style and script bytes - `repeated\_label\_check`: Finds repetition that makes a page harder to scan by ear. Pass a public \`url\` or \`html\`. Reports: a heading and a link with the same text in the same region or close in reading order \(for example a section heading and a "see all" link with the same words\); duplicate heading text within a region; lin - `rendered\_vs\_static\_notes`: Lookup for the gap between what our static tools read and what a browser renders. Pass \`finding\`: a finding or tool name \(for example "unnamed link", "alt text", "contrast", "touch targets", "duplicate landmark", "aria-hidden", "carousel"\) or a WCAG number. Returns when the static result over-report - `site\_inventory`: Pro. Map a site into page types. Crawls the site from \`url\` \(same origin only, up to 40 pages, 4 requests at a time, or only the \`paths\` you list\), uses sitemap.xml to find pages, and obeys robots.txt for the user agent ATPDesigners. Reads static HTML only. The result opens with coverage: pages read - `site\_heading\_outline`: Pro. Check heading structure across a site. Crawls the site from \`url\` \(same origin only, up to 40 pages, 4 requests at a time, or only the \`paths\` you list\), uses sitemap.xml to find pages, and obeys robots.txt for the user agent ATPDesigners. Reads static HTML only. The result opens with coverage: - `site\_meta\_audit`: Pro. Audit head metadata across a site. Crawls the site from \`url\` \(same origin only, up to 40 pages, 4 requests at a time, or only the \`paths\` you list\), uses sitemap.xml to find pages, and obeys robots.txt for the user agent ATPDesigners. Reads static HTML only. The result opens with coverage: pag - `site\_link\_health`: Pro. Check the links on a site. Crawls the site from \`url\` \(same origin only, up to 40 pages, 4 requests at a time, or only the \`paths\` you list\), uses sitemap.xml to find pages, and obeys robots.txt for the user agent ATPDesigners. Reads static HTML only. The result opens with coverage: pages read - `site\_consistency`: Pro. Find templates that drift. Crawls the site from \`url\` \(same origin only, up to 40 pages, 4 requests at a time, or only the \`paths\` you list\), uses sitemap.xml to find pages, and obeys robots.txt for the user agent ATPDesigners. Reads static HTML only. The result opens with coverage: pages read - `site\_page\_diff`: Pro. Fetch two public pages \(\`url\` and \`compareUrl\`, which must differ; use it for staging against production\) and return a structural diff: metadata, landmarks, headings, links, images, stylesheets and scripts \(same-host links compared by path\), text length, and the change in static accessibility f - `site\_performance\_hints`: Pro. Spot static performance problems across a site. Crawls the site from \`url\` \(same origin only, up to 40 pages, 4 requests at a time, or only the \`paths\` you list\), uses sitemap.xml to find pages, and obeys robots.txt for the user agent ATPDesigners. Reads static HTML only. The result opens with - `site\_audit\_summary`: Pro. Score a site in one call. Crawls the site from \`url\` \(same origin only, up to 40 pages, 4 requests at a time, or only the \`paths\` you list\), uses sitemap.xml to find pages, and obeys robots.txt for the user agent ATPDesigners. Reads static HTML only. The result opens with coverage: pages read o - `extract\_design\_tokens`: Extract the design tokens a stylesheet actually uses. Pass \`css\` \(free\) or a public \`url\` \(Pro; every linked and inline stylesheet is read\). Returns colours \(hex, with alpha kept, grouped as text, background, border\), font families, font sizes, weights, line heights, spacing from margin, padding and - `audit\_token\_scales`: Audit the scales behind a set of design values. Pass \`css\` \(free\), a public \`url\` \(Pro\), or \`values\` \(JSON with any of colors, fontSizes, spacing, radii; each a list of strings, or \{value, count\} objects\). Reports: colours within deltaE 2 of a more used colour \(with the one to keep\), font sizes, spa - `audit\_type\_scale`: Audit a stylesheet's typography. Pass \`css\` \(free\) or a public \`url\` \(Pro\). Reads font-size, the font shorthand and line-height, converts rem and em with the root size the CSS sets, and reports: every size with its use count, the modular ratio that best explains the sizes \(major second to octave, wi - `audit\_spacing`: Audit spacing in a stylesheet. Pass \`css\` \(free\) or a public \`url\` \(Pro\). Reads margin, padding and gap properties \(shorthands split into their parts; rem and em converted with the root size the CSS sets; auto and 0 skipped\), then reports the detected base unit \(8 if 85% of uses fit, else 4, else no - `inventory\_components`: Inventory the components in a stylesheet and, if given, its markup. Pass \`css\` and optionally \`html\` \(free\), or a public \`url\` \(Pro, which also reads the page markup\). Classes are grouped into roles \(button, card, input, badge, nav, alert, modal, avatar, tooltip\) from their names, then variants are - `check\_state\_coverage`: Check interaction states in a stylesheet. Pass \`css\` \(free\) or a public \`url\` \(Pro\). Finds links, buttons, inputs, selects, summaries and classes that look interactive \(btn, link, tab, toggle, switch, checkbox, chip, dropdown, form-control and others\) or that already have a hover or focus rule, then - `score\_design\_system`: Score a design system from its CSS. Pass \`css\` and optionally \`html\` and \`pairs\` \(free\), or a public \`url\` \(Pro\). The score is out of 100 and weighted: tokens 25 \(share of colour, size, spacing, radius and shadow declarations that go through a variable, full marks at 60%, scaled down below 8 custom - `compare\_token\_sets`: Compare two versions of a design system. Pass \`before\` and \`after\` \(each CSS with custom properties, W3C design tokens JSON, or a flat key/value JSON object; free\) or \`before\_url\` and \`after\_url\` \(Pro\). Tokens are matched by name. Reports added, removed, renamed \(same value under a new name\) and cha - `dtcg\_to\_css`: Convert W3C design tokens \(DTCG\) JSON into code. Pass \`tokens\` \(JSON text or object\) and optionally \`format\` \(css, tailwind or both; default both\) and \`prefix\` \(added to every CSS name\). Reads $type and $value with group-level $type inheritance, \{alias\} references \(kept as var\(\) references in CSS, r - `css\_to\_dtcg`: Convert CSS custom properties into W3C design tokens \(DTCG\) JSON. Pass \`css\` \(a :root block, a whole stylesheet, or a Tailwind v4 @theme block\). Each variable is typed from its value and name \(colour, dimension in px or rem, duration, number, fontFamily, fontWeight, cubicBezier, shadow\), grouped by - `draft\_brand\_checklist`: Produce a deterministic brand guideline skeleton. Pass \`name\` \(required\), and optionally \`audience\`, \`tone\` \(words, comma separated or a list\) and \`constraints\` \(a list or lines such as "must meet WCAG AA" or "no stock photography"\). Returns thirteen sections \(purpose, audience, voice, logo, colour, - `design\_easing`: Describe an easing and get CSS back. Pass \`easing\` as a name \(ease, ease-out, ease-out-cubic, ease-in-out-quart, ease-out-back and others\), as \`cubic-bezier\(x1,y1,x2,y2\)\` \(x values must sit between 0 and 1\), or as \`spring\` with optional \`mass\`, \`stiffness\`, \`damping\`. Optional \`duration\_ms\` \(bezier - `plan\_durations`: Plan animation durations. Pass \`distance\_px\` \(how far the thing moves, 0 to 5000\), \`size\` \(small, medium, large, fullscreen\), \`complexity\` \(simple, moderate, complex\) and optionally \`kind\` \(enter, exit, state-change\) and \`allow\_long\` \(true to lift the 400 ms UI cap for decorative or page-level motio - `audit\_motion\_css`: Audit pasted CSS for motion problems. Pass \`css\` \(stylesheet text with @keyframes, animation and transition rules\). Optional flash data you measured or know from the design: \`flashes\_per\_second\`, \`flash\_area\_percent\` \(share of the screen that flashes\). Flags: animation or transition of layout proper - `plan\_stagger`: Plan staggered reveals. Pass \`count\` \(1 to 200\), \`duration\_ms\` \(each item's own duration, default 300\), \`pattern\` \(linear, ease-out, ease-in, center-out, edge-in, scattered\), optional \`step\_ms\` \(gap between items\) and \`budget\_ms\` \(cap on the whole sequence, default 600, a convention\). Returns the de - `review\_animation\_principles`: Review a described animation against the twelve animation principles \(squash and stretch, anticipation, staging, pose to pose, follow through, slow in and slow out, arcs, secondary action, timing, exaggeration, solid drawing, appeal\). Pass \`description\` \(what moves, how, how long, why\) and optionall - `lint\_lottie\_json`: Lint a Lottie \(Bodymovin\) animation. Pass \`json\` as the text of the .json file. Checks: valid JSON with the expected top-level fields \(v, fr, ip, op, w, h, layers\), text size \(over about 100 KB is heavy for UI, over 500 KB is very heavy; conventions\), layer count including pre-compositions, expressi - `lint\_email\_html`: Lint pasted email HTML. Checks: size against the roughly 102 KB point where Gmail clips a message, doctype, charset, viewport and lang, layout built on divs, flexbox, grid, float or positioning instead of tables \(Outlook for Windows renders with the Word engine and ignores much modern CSS\), backgrou - `check\_email\_preheader`: Check a preheader \(the preview text after the subject in the inbox\). Pass \`html\` \(the email; the first hidden block at the top of the body is read\) or \`preheader\` text directly, and optionally \`subject\`. Checks: missing preheader, length \(under about 40 characters lets the client pull in body text; - `check\_email\_dark\_mode`: Check how an email will fare in dark mode. Pass \`html\`. Reports whether it declares color-scheme \(meta and CSS\), has a prefers-color-scheme: dark block, uses Outlook.com's \[data-ogsc\]/\[data-ogsb\] hooks, hard-codes white or near-white backgrounds, pairs colours that already have low contrast, uses mi - `check\_email\_accessibility`: Check an email for accessibility basics. Pass \`html\`. Reports: missing lang and title, layout tables without role="presentation", images with no alt or throwaway alt \(image, photo, a file name\), very long alt text, links with vague wording \(click here, read more, here\), links with underline removed - `check\_email\_subject`: Check an email subject line. Pass \`subject\`. Reports length in characters \(phones show roughly the first 30 to 45; desktop 55 to 70, estimates\), word count, spam-trigger words from a short list of about 35 phrases \(filters weigh many signals, so a hit is a nudge, not a verdict\), ALL CAPS, repeated p - `calc\_print\_spec`: Work out print document sizes. Pass \`trim\_width\` and \`trim\_height\` with \`unit\` \(mm, cm, in, pt\), optional \`bleed\` \(default 3 mm; the common European figure, US printers often ask 0.125 in = 3.18 mm\), \`safe\` margin inside trim \(default 5 mm\), and for books \`pages\` \(counted as printed pages, 2 per lea - `calc\_print\_resolution`: Calculate resolution for print. Pass print \`width\` and \`height\` with \`unit\` \(mm, cm, in\), optional \`viewing\_distance\` with \`distance\_unit\` \(cm, in, m\) and optionally \`pixels\_w\`, \`pixels\_h\` of the image you have. Formulas: pixels = size in inches x ppi; the ppi a viewer can resolve at distance d is 1 - `check\_colour\_mode`: Check colours for print. Pass \`colors\` as lines: hex \(\#1a2b3c\), rgb\(26,43,60\), cmyk\(60,40,40,100\) or C=60 M=40 Y=40 K=100, or a spot name \(Pantone, HKS, RAL and so on\). Optionally \`stock\` \(coated, uncoated, newsprint\) for the total area coverage \(TAC, sum of the four ink percentages\) limit, and \`sma - `convert\_paper\_size`: Convert paper sizes. Pass \`size\` by name \(A0 to A10, B0 to B10, C0 to C10, Letter, Legal, Tabloid, Ledger, Executive, Statement, Junior Legal, ANSI C/D/E, Arch A to E, DL, US and EU business cards\) or pass custom \`width\` and \`height\` with \`unit\` \(mm, cm, in, pt\). Returns millimetres, inches, points - `plan\_imposition`: Plan imposition for a booklet or book. Pass \`pages\` \(1 to 1024\) and \`binding\`: saddle \(stitched; one nested stack, pages in multiples of 4\), perfect or sewn \(gathered signatures of \`signature\` pages: 4, 8, 16, 32 or 64; 16 is the common offset size\). Returns pages after padding to the next multiple, Measured by MCP Station. Methods: https://mcpstation.net/methods.html · Terms: https://mcpstation.net/terms.html