{"$schema":"https://wellknown.network/schemas/agent-record-v1.json","schemaVersion":"1","id":"ag_w3f6gbscumqu","handle":"designers","url":"https://wellknown.network/agents/designers","links":{"self":"https://wellknown.network/agents/designers/record.json","html":"https://wellknown.network/agents/designers","markdown":"https://wellknown.network/agents/designers/record.md","api":"https://wellknown.network/api/v1/agents/designers","status":"https://wellknown.network/api/v1/agents/designers/status","claim":"https://wellknown.network/agents/designers/claim","claimApi":"https://wellknown.network/api/v1/claims","claimDescriptor":"https://wellknown.network/agents/designers/claim.json","badge":"https://wellknown.network/agents/designers/badge.svg","openapi":"https://wellknown.network/openapi.json","history":"https://wellknown.network/api/v1/agents/designers/history","tools":"https://wellknown.network/api/v1/agents/designers/tools"},"ard":{"identifier":"urn:air:designers.allthepossibles.com:server:designers","type":"application/mcp-server-card+json"},"kind":"mcp_server","declared":{"name":"Designers","summary":"Checks, prompts and skills for designers working with AI: contrast, a11y, heuristics, critique.","description":"Checks, prompts and skills for designers working with AI: contrast, a11y, heuristics, critique.","publisher":{"name":"com.allthepossibles","url":null},"homepage":"https://designers.allthepossibles.com","repository":null,"version":"1.0.0","license":null,"protocols":["mcp"],"tags":[],"pricing":null,"endpoints":[{"url":"https://designers.allthepossibles.com/mcp","type":"mcp_streamable_http","auth":null,"probeable":true}],"skills":null,"tools":null,"extra":{"updatedAt":"2026-10-21T18:41:53.385489Z","publishedAt":"2026-10-21T18:41:53.385489Z","registryName":"com.allthepossibles/designers"},"attribution":{"kind":"mcp_registry","name":"mcp_registry","summary":"mcp_registry","version":"mcp_registry","description":"mcp_registry","homepageUrl":"mcp_registry","publisherName":"mcp_registry"}},"derived":{"capabilities":[{"slug":"productivity.email","name":"Email","confidence":1,"provenance":"derived"},{"slug":"media.3d","name":"3D & Design","confidence":0.977,"provenance":"derived"},{"slug":"analytics.reporting","name":"Reporting & Dashboards","confidence":0.977,"provenance":"derived"},{"slug":"content.localization","name":"Localization","confidence":0.583,"provenance":"derived"},{"slug":"documents.presentations","name":"Presentations","confidence":0.583,"provenance":"derived"},{"slug":"analytics.product","name":"Product Analytics","confidence":0.583,"provenance":"derived"},{"slug":"content.translation","name":"Translation","confidence":0.569,"provenance":"derived"},{"slug":"ai.evaluation","name":"Evaluation & Benchmarks","confidence":0.554,"provenance":"derived"}],"categories":["ai","analytics","content","documents","media","productivity"],"language":"en"},"observed":{"status":"live","statusReason":"Responded 7h ago.","lastOkAt":"2026-10-25T15:26:59.221Z","lastProbedAt":"2026-10-25T15:26:59.221Z","statusComputedAt":"2026-10-25T15:30:19.098Z","reliability30d":{"probes":3,"successRate":1,"p50Ms":45,"basis":"service","measures":{"availability":"availability","latency":"response time","tools":"tool surface observed","summary":"Checks reached the service itself."},"checks":{"total":3,"ok":3,"authBoundaryOk":0,"serviceOk":3,"note":"Counted from the observation rows for the window, checks of the server only (HTTP, A2A card, MCP initialize). ok = authBoundaryOk + serviceOk. `probes` is the sum of daily rollups and includes registry checks, so it can differ from `total`."}},"latestObservations":[{"at":"2026-10-25T15:26:59.221Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":45,"error":null,"detail":{"tools":[{"name":"check_contrast","description":"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 "},{"name":"audit_page_accessibility","description":"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 fie"},{"name":"heuristic_worksheet","description":"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 "},{"name":"detect_design_slop","description":"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 "},{"name":"review_ui_copy","description":"Review interface copy, one string per line, optionally prefixed with a type (button:, error:, empty:, tooltip:, placeholder:, heading:, toast:, label:). Checks "},{"name":"lint_design_feedback","description":"Lint design critique. Sorts each note into observation, opinion, solution-without-problem, vague, or question, explains what is missing, and gives an observatio"},{"name":"plan_critique","description":"Plan a design critique for a stage (concept, wireframe, visual, prototype, build, shipped): a framing statement, timed agenda, the questions that fit the stage,"},{"name":"lint_research_questions","description":"Lint user research questions, one per line, for leading wording, double-barrelled questions, hypotheticals, predictions, loaded words, jargon, closed questions "},{"name":"usability_stats","description":"Usability arithmetic with formulas shown. mode sus: score System Usability Scale responses (rows of ten 1-5 answers) with grade, percentile and 95% interval. mo"},{"name":"lint_tracking_plan","description":"Lint a product analytics tracking plan (event names with optional properties, one per line like 'project_created (template, source)') for mixed naming styles, v"},{"name":"audit_site_accessibility","description":"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 t"},{"name":"check_contrast_tokens","description":"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 a"},{"name":"build_heuristic_report","description":"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), lo"},{"name":"getting_started","description":"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)."},{"name":"whoami","description":"Show the caller's plan (Free or Pro) and how many calls remain today on each tool. Does not use up a daily call."},{"name":"check_touch_targets","description":"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 "},{"name":"lint_token_names","description":"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"},{"name":"lint_design_md","description":"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"},{"name":"doctor","description":"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 fo"},{"name":"save_project_context","description":"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"},{"name":"get_project_context","description":"Pro. List the saved project context, or read one item by name."},{"name":"generate_conformance_report","description":"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"},{"name":"screen_reader_script","description":"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 leve"},{"name":"check_motion","description":"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 `u"},{"name":"audit_email_accessibility","description":"Accessibility audit of marketing or transactional email HTML. Pass the full source as `html`. Checks layout tables missing role=presentation, missing lang and t"},{"name":"check_reflow","description":"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/"},{"name":"lint_disclosure_copy","description":"Lint financial, legal and consent copy (fees, rates, terms, privacy notices, error and decline messages) for plain language. Give text and optionally kind (fee,"},{"name":"audit_dark_patterns","description":"Audit screen copy, HTML or a public URL for deceptive-design (dark pattern) signals: confirmshaming, forced continuity and hard-to-cancel flows, pre-selected op"},{"name":"lint_brand_voice","description":"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, p"},{"name":"stress_test_localisation","description":"Stress-test UI strings for translation. Give strings (one per line, optionally 'text | maxChars' or 'label | text | maxChars', or a JSON array of {text, maxChar"},{"name":"scan_pii","description":"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 ev"},{"name":"check_design_drift","description":"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 varia"},{"name":"audit_form","description":"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 messa"},{"name":"modular_scale","description":"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, "},{"name":"measure_leading","description":"Check line length and suggest leading. Pass `fontSizePx` and `containerPx` (the text column width in px). Optional: `charsPerLine` (use a counted value instead "},{"name":"type_crimes_lint","description":"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, ht"},{"name":"vertical_rhythm","description":"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\""},{"name":"type_pairing_check","description":"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,"},{"name":"build_grid","description":"Build a column grid from page or container width. Pass `width`, and optionally `columns` (default 12), `gutter` (default 24), `margin` (default 24). Returns the"},{"name":"build_spacing_scale","description":"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 "},{"name":"calculate_proportion","description":"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 `h"},{"name":"plan_breakpoints","description":"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 bro"},{"name":"check_proximity_alignment","description":"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, g"},{"name":"palette_harmony","description":"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 opti"},{"name":"tint_shade_scale","description":"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"},{"name":"color_meaning_check","description":"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 ar"},{"name":"dark_mode_palette","description":"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 arr"},{"name":"colour_temperature_mix","description":"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%, #f2e"},{"name":"trunk_test","description":"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 section"},{"name":"check_form","description":"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`. Re"},{"name":"analyse_card_sort","description":"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 lis"},{"name":"calc_fitts_hick","description":"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))"},{"name":"plan_usability_test","description":"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 criter"},{"name":"chart_lint","description":"Lint a chart specification for graphical integrity, in the tradition of Edward Tufte (The Visual Display of Quantitative Information) and Alberto Cairo (How Cha"},{"name":"chart_chooser","description":"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, "},{"name":"chart_colour_check","description":"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) "},{"name":"data_table_vs_chart","description":"Decide whether data belongs in a table, small multiples, a sparkline or a chart. Pass `rows`, `cols` (numeric columns or series), `purpose` (lookup, compare, pa"},{"name":"number_format_check","description":"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 "},{"name":"css_contrast_pairs","description":"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"},{"name":"alt_text_quality","description":"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-hid"},{"name":"error_message_check","description":"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 conventi"},{"name":"touch_target_css","description":"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"},{"name":"page_weight_report","description":"Weighs a public page from its delivered HTML. Pass `url`. Reports HTML bytes (uncompressed, plus the server's reported transfer length when given), element coun"},{"name":"repeated_label_check","description":"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 "},{"name":"rendered_vs_static_notes","description":"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\""},{"name":"site_inventory","description":"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"},{"name":"site_heading_outline","description":"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), u"},{"name":"site_meta_audit","description":"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 "},{"name":"site_link_health","description":"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."},{"name":"site_consistency","description":"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."},{"name":"site_page_diff","description":"Pro. Fetch two public pages (`url` and `compareUrl`, which must differ; use it for staging against production) and return a structural diff: metadata, landmarks"},{"name":"site_performance_hints","description":"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"},{"name":"site_audit_summary","description":"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.x"},{"name":"extract_design_tokens","description":"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 (he"},{"name":"audit_token_scales","description":"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"},{"name":"audit_type_scale","description":"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 ro"},{"name":"audit_spacing","description":"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 e"},{"name":"inventory_components","description":"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 m"},{"name":"check_state_coverage","description":"Check interaction states in a stylesheet. Pass `css` (free) or a public `url` (Pro). Finds links, buttons, inputs, selects, summaries and classes that look inte"},{"name":"score_design_system","description":"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 2"},{"name":"compare_token_sets","description":"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; fr"},{"name":"dtcg_to_css","description":"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` "},{"name":"css_to_dtcg","description":"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 i"},{"name":"draft_brand_checklist","description":"Produce a deterministic brand guideline skeleton. Pass `name` (required), and optionally `audience`, `tone` (words, comma separated or a list) and `constraints`"},{"name":"design_easing","description":"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,"},{"name":"plan_durations","description":"Plan animation durations. Pass `distance_px` (how far the thing moves, 0 to 5000), `size` (small, medium, large, fullscreen), `complexity` (simple, moderate, co"},{"name":"audit_motion_css","description":"Audit pasted CSS for motion problems. Pass `css` (stylesheet text with @keyframes, animation and transition rules). Optional flash data you measured or know fro"},{"name":"plan_stagger","description":"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-i"},{"name":"review_animation_principles","description":"Review a described animation against the twelve animation principles (squash and stretch, anticipation, staging, pose to pose, follow through, slow in and slow "},{"name":"lint_lottie_json","description":"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, laye"},{"name":"lint_email_html","description":"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, fl"},{"name":"check_email_preheader","description":"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 `preheade"},{"name":"check_email_dark_mode","description":"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 Ou"},{"name":"check_email_accessibility","description":"Check an email for accessibility basics. Pass `html`. Reports: missing lang and title, layout tables without role=\"presentation\", images with no alt or throwawa"},{"name":"check_email_subject","description":"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, spa"},{"name":"calc_print_spec","description":"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 "},{"name":"calc_print_resolution","description":"Calculate resolution for print. Pass print `width` and `height` with `unit` (mm, cm, in), optional `viewing_distance` with `distance_unit` (cm, in, m) and optio"},{"name":"check_colour_mode","description":"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"},{"name":"convert_paper_size","description":"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 "},{"name":"plan_imposition","description":"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 (ga"}],"toolCount":141,"toolsHash":"42b14a7fd6acb40999689c78c0e7d189fc95f522e750db6eb042a3933633a435","serverName":"designers","capabilities":["tools","prompts","resources"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-25T08:25:54.224Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":53,"error":null,"detail":{"tools":[{"name":"check_contrast","description":"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 "},{"name":"audit_page_accessibility","description":"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 fie"},{"name":"heuristic_worksheet","description":"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 "},{"name":"detect_design_slop","description":"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 "},{"name":"review_ui_copy","description":"Review interface copy, one string per line, optionally prefixed with a type (button:, error:, empty:, tooltip:, placeholder:, heading:, toast:, label:). Checks "},{"name":"lint_design_feedback","description":"Lint design critique. Sorts each note into observation, opinion, solution-without-problem, vague, or question, explains what is missing, and gives an observatio"},{"name":"plan_critique","description":"Plan a design critique for a stage (concept, wireframe, visual, prototype, build, shipped): a framing statement, timed agenda, the questions that fit the stage,"},{"name":"lint_research_questions","description":"Lint user research questions, one per line, for leading wording, double-barrelled questions, hypotheticals, predictions, loaded words, jargon, closed questions "},{"name":"usability_stats","description":"Usability arithmetic with formulas shown. mode sus: score System Usability Scale responses (rows of ten 1-5 answers) with grade, percentile and 95% interval. mo"},{"name":"lint_tracking_plan","description":"Lint a product analytics tracking plan (event names with optional properties, one per line like 'project_created (template, source)') for mixed naming styles, v"},{"name":"audit_site_accessibility","description":"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 t"},{"name":"check_contrast_tokens","description":"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 a"},{"name":"build_heuristic_report","description":"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), lo"},{"name":"getting_started","description":"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)."},{"name":"whoami","description":"Show the caller's plan (Free or Pro) and how many calls remain today on each tool. Does not use up a daily call."},{"name":"check_touch_targets","description":"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 "},{"name":"lint_token_names","description":"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"},{"name":"lint_design_md","description":"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"},{"name":"doctor","description":"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 fo"},{"name":"save_project_context","description":"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"},{"name":"get_project_context","description":"Pro. List the saved project context, or read one item by name."},{"name":"generate_conformance_report","description":"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"},{"name":"screen_reader_script","description":"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 leve"},{"name":"check_motion","description":"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 `u"},{"name":"audit_email_accessibility","description":"Accessibility audit of marketing or transactional email HTML. Pass the full source as `html`. Checks layout tables missing role=presentation, missing lang and t"},{"name":"check_reflow","description":"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/"},{"name":"lint_disclosure_copy","description":"Lint financial, legal and consent copy (fees, rates, terms, privacy notices, error and decline messages) for plain language. Give text and optionally kind (fee,"},{"name":"audit_dark_patterns","description":"Audit screen copy, HTML or a public URL for deceptive-design (dark pattern) signals: confirmshaming, forced continuity and hard-to-cancel flows, pre-selected op"},{"name":"lint_brand_voice","description":"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, p"},{"name":"stress_test_localisation","description":"Stress-test UI strings for translation. Give strings (one per line, optionally 'text | maxChars' or 'label | text | maxChars', or a JSON array of {text, maxChar"},{"name":"scan_pii","description":"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 ev"},{"name":"check_design_drift","description":"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 varia"},{"name":"audit_form","description":"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 messa"},{"name":"modular_scale","description":"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, "},{"name":"measure_leading","description":"Check line length and suggest leading. Pass `fontSizePx` and `containerPx` (the text column width in px). Optional: `charsPerLine` (use a counted value instead "},{"name":"type_crimes_lint","description":"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, ht"},{"name":"vertical_rhythm","description":"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\""},{"name":"type_pairing_check","description":"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,"},{"name":"build_grid","description":"Build a column grid from page or container width. Pass `width`, and optionally `columns` (default 12), `gutter` (default 24), `margin` (default 24). Returns the"},{"name":"build_spacing_scale","description":"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 "},{"name":"calculate_proportion","description":"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 `h"},{"name":"plan_breakpoints","description":"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 bro"},{"name":"check_proximity_alignment","description":"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, g"},{"name":"palette_harmony","description":"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 opti"},{"name":"tint_shade_scale","description":"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"},{"name":"color_meaning_check","description":"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 ar"},{"name":"dark_mode_palette","description":"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 arr"},{"name":"colour_temperature_mix","description":"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%, #f2e"},{"name":"trunk_test","description":"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 section"},{"name":"check_form","description":"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`. Re"},{"name":"analyse_card_sort","description":"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 lis"},{"name":"calc_fitts_hick","description":"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))"},{"name":"plan_usability_test","description":"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 criter"},{"name":"chart_lint","description":"Lint a chart specification for graphical integrity, in the tradition of Edward Tufte (The Visual Display of Quantitative Information) and Alberto Cairo (How Cha"},{"name":"chart_chooser","description":"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, "},{"name":"chart_colour_check","description":"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) "},{"name":"data_table_vs_chart","description":"Decide whether data belongs in a table, small multiples, a sparkline or a chart. Pass `rows`, `cols` (numeric columns or series), `purpose` (lookup, compare, pa"},{"name":"number_format_check","description":"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 "},{"name":"css_contrast_pairs","description":"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"},{"name":"alt_text_quality","description":"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-hid"},{"name":"error_message_check","description":"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 conventi"},{"name":"touch_target_css","description":"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"},{"name":"page_weight_report","description":"Weighs a public page from its delivered HTML. Pass `url`. Reports HTML bytes (uncompressed, plus the server's reported transfer length when given), element coun"},{"name":"repeated_label_check","description":"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 "},{"name":"rendered_vs_static_notes","description":"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\""},{"name":"site_inventory","description":"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"},{"name":"site_heading_outline","description":"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), u"},{"name":"site_meta_audit","description":"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 "},{"name":"site_link_health","description":"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."},{"name":"site_consistency","description":"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."},{"name":"site_page_diff","description":"Pro. Fetch two public pages (`url` and `compareUrl`, which must differ; use it for staging against production) and return a structural diff: metadata, landmarks"},{"name":"site_performance_hints","description":"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"},{"name":"site_audit_summary","description":"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.x"},{"name":"extract_design_tokens","description":"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 (he"},{"name":"audit_token_scales","description":"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"},{"name":"audit_type_scale","description":"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 ro"},{"name":"audit_spacing","description":"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 e"},{"name":"inventory_components","description":"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 m"},{"name":"check_state_coverage","description":"Check interaction states in a stylesheet. Pass `css` (free) or a public `url` (Pro). Finds links, buttons, inputs, selects, summaries and classes that look inte"},{"name":"score_design_system","description":"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 2"},{"name":"compare_token_sets","description":"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; fr"},{"name":"dtcg_to_css","description":"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` "},{"name":"css_to_dtcg","description":"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 i"},{"name":"draft_brand_checklist","description":"Produce a deterministic brand guideline skeleton. Pass `name` (required), and optionally `audience`, `tone` (words, comma separated or a list) and `constraints`"},{"name":"design_easing","description":"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,"},{"name":"plan_durations","description":"Plan animation durations. Pass `distance_px` (how far the thing moves, 0 to 5000), `size` (small, medium, large, fullscreen), `complexity` (simple, moderate, co"},{"name":"audit_motion_css","description":"Audit pasted CSS for motion problems. Pass `css` (stylesheet text with @keyframes, animation and transition rules). Optional flash data you measured or know fro"},{"name":"plan_stagger","description":"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-i"},{"name":"review_animation_principles","description":"Review a described animation against the twelve animation principles (squash and stretch, anticipation, staging, pose to pose, follow through, slow in and slow "},{"name":"lint_lottie_json","description":"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, laye"},{"name":"lint_email_html","description":"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, fl"},{"name":"check_email_preheader","description":"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 `preheade"},{"name":"check_email_dark_mode","description":"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 Ou"},{"name":"check_email_accessibility","description":"Check an email for accessibility basics. Pass `html`. Reports: missing lang and title, layout tables without role=\"presentation\", images with no alt or throwawa"},{"name":"check_email_subject","description":"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, spa"},{"name":"calc_print_spec","description":"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 "},{"name":"calc_print_resolution","description":"Calculate resolution for print. Pass print `width` and `height` with `unit` (mm, cm, in), optional `viewing_distance` with `distance_unit` (cm, in, m) and optio"},{"name":"check_colour_mode","description":"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"},{"name":"convert_paper_size","description":"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 "},{"name":"plan_imposition","description":"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 (ga"}],"toolCount":141,"toolsHash":"42b14a7fd6acb40999689c78c0e7d189fc95f522e750db6eb042a3933633a435","serverName":"designers","capabilities":["tools","prompts","resources"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-25T01:27:45.438Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":34,"error":null,"detail":{"tools":[{"name":"check_contrast","description":"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 "},{"name":"audit_page_accessibility","description":"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 fie"},{"name":"heuristic_worksheet","description":"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 "},{"name":"detect_design_slop","description":"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 "},{"name":"review_ui_copy","description":"Review interface copy, one string per line, optionally prefixed with a type (button:, error:, empty:, tooltip:, placeholder:, heading:, toast:, label:). Checks "},{"name":"lint_design_feedback","description":"Lint design critique. Sorts each note into observation, opinion, solution-without-problem, vague, or question, explains what is missing, and gives an observatio"},{"name":"plan_critique","description":"Plan a design critique for a stage (concept, wireframe, visual, prototype, build, shipped): a framing statement, timed agenda, the questions that fit the stage,"},{"name":"lint_research_questions","description":"Lint user research questions, one per line, for leading wording, double-barrelled questions, hypotheticals, predictions, loaded words, jargon, closed questions "},{"name":"usability_stats","description":"Usability arithmetic with formulas shown. mode sus: score System Usability Scale responses (rows of ten 1-5 answers) with grade, percentile and 95% interval. mo"},{"name":"lint_tracking_plan","description":"Lint a product analytics tracking plan (event names with optional properties, one per line like 'project_created (template, source)') for mixed naming styles, v"},{"name":"audit_site_accessibility","description":"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 t"},{"name":"check_contrast_tokens","description":"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 a"},{"name":"build_heuristic_report","description":"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), lo"},{"name":"getting_started","description":"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)."},{"name":"whoami","description":"Show the caller's plan (Free or Pro) and how many calls remain today on each tool. Does not use up a daily call."},{"name":"check_touch_targets","description":"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 "},{"name":"lint_token_names","description":"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"},{"name":"lint_design_md","description":"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"},{"name":"doctor","description":"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 fo"},{"name":"save_project_context","description":"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"},{"name":"get_project_context","description":"Pro. List the saved project context, or read one item by name."},{"name":"generate_conformance_report","description":"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"},{"name":"screen_reader_script","description":"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 leve"},{"name":"check_motion","description":"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 `u"},{"name":"audit_email_accessibility","description":"Accessibility audit of marketing or transactional email HTML. Pass the full source as `html`. Checks layout tables missing role=presentation, missing lang and t"},{"name":"check_reflow","description":"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/"},{"name":"lint_disclosure_copy","description":"Lint financial, legal and consent copy (fees, rates, terms, privacy notices, error and decline messages) for plain language. Give text and optionally kind (fee,"},{"name":"audit_dark_patterns","description":"Audit screen copy, HTML or a public URL for deceptive-design (dark pattern) signals: confirmshaming, forced continuity and hard-to-cancel flows, pre-selected op"},{"name":"lint_brand_voice","description":"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, p"},{"name":"stress_test_localisation","description":"Stress-test UI strings for translation. Give strings (one per line, optionally 'text | maxChars' or 'label | text | maxChars', or a JSON array of {text, maxChar"},{"name":"scan_pii","description":"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 ev"},{"name":"check_design_drift","description":"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 varia"},{"name":"audit_form","description":"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 messa"},{"name":"modular_scale","description":"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, "},{"name":"measure_leading","description":"Check line length and suggest leading. Pass `fontSizePx` and `containerPx` (the text column width in px). Optional: `charsPerLine` (use a counted value instead "},{"name":"type_crimes_lint","description":"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, ht"},{"name":"vertical_rhythm","description":"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\""},{"name":"type_pairing_check","description":"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,"},{"name":"build_grid","description":"Build a column grid from page or container width. Pass `width`, and optionally `columns` (default 12), `gutter` (default 24), `margin` (default 24). Returns the"},{"name":"build_spacing_scale","description":"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 "},{"name":"calculate_proportion","description":"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 `h"},{"name":"plan_breakpoints","description":"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 bro"},{"name":"check_proximity_alignment","description":"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, g"},{"name":"palette_harmony","description":"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 opti"},{"name":"tint_shade_scale","description":"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"},{"name":"color_meaning_check","description":"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 ar"},{"name":"dark_mode_palette","description":"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 arr"},{"name":"colour_temperature_mix","description":"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%, #f2e"},{"name":"trunk_test","description":"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 section"},{"name":"check_form","description":"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`. Re"},{"name":"analyse_card_sort","description":"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 lis"},{"name":"calc_fitts_hick","description":"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))"},{"name":"plan_usability_test","description":"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 criter"},{"name":"chart_lint","description":"Lint a chart specification for graphical integrity, in the tradition of Edward Tufte (The Visual Display of Quantitative Information) and Alberto Cairo (How Cha"},{"name":"chart_chooser","description":"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, "},{"name":"chart_colour_check","description":"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) "},{"name":"data_table_vs_chart","description":"Decide whether data belongs in a table, small multiples, a sparkline or a chart. Pass `rows`, `cols` (numeric columns or series), `purpose` (lookup, compare, pa"},{"name":"number_format_check","description":"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 "},{"name":"css_contrast_pairs","description":"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"},{"name":"alt_text_quality","description":"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-hid"},{"name":"error_message_check","description":"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 conventi"},{"name":"touch_target_css","description":"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"},{"name":"page_weight_report","description":"Weighs a public page from its delivered HTML. Pass `url`. Reports HTML bytes (uncompressed, plus the server's reported transfer length when given), element coun"},{"name":"repeated_label_check","description":"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 "},{"name":"rendered_vs_static_notes","description":"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\""},{"name":"site_inventory","description":"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"},{"name":"site_heading_outline","description":"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), u"},{"name":"site_meta_audit","description":"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 "},{"name":"site_link_health","description":"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."},{"name":"site_consistency","description":"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."},{"name":"site_page_diff","description":"Pro. Fetch two public pages (`url` and `compareUrl`, which must differ; use it for staging against production) and return a structural diff: metadata, landmarks"},{"name":"site_performance_hints","description":"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"},{"name":"site_audit_summary","description":"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.x"},{"name":"extract_design_tokens","description":"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 (he"},{"name":"audit_token_scales","description":"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"},{"name":"audit_type_scale","description":"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 ro"},{"name":"audit_spacing","description":"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 e"},{"name":"inventory_components","description":"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 m"},{"name":"check_state_coverage","description":"Check interaction states in a stylesheet. Pass `css` (free) or a public `url` (Pro). Finds links, buttons, inputs, selects, summaries and classes that look inte"},{"name":"score_design_system","description":"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 2"},{"name":"compare_token_sets","description":"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; fr"},{"name":"dtcg_to_css","description":"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` "},{"name":"css_to_dtcg","description":"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 i"},{"name":"draft_brand_checklist","description":"Produce a deterministic brand guideline skeleton. Pass `name` (required), and optionally `audience`, `tone` (words, comma separated or a list) and `constraints`"},{"name":"design_easing","description":"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,"},{"name":"plan_durations","description":"Plan animation durations. Pass `distance_px` (how far the thing moves, 0 to 5000), `size` (small, medium, large, fullscreen), `complexity` (simple, moderate, co"},{"name":"audit_motion_css","description":"Audit pasted CSS for motion problems. Pass `css` (stylesheet text with @keyframes, animation and transition rules). Optional flash data you measured or know fro"},{"name":"plan_stagger","description":"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-i"},{"name":"review_animation_principles","description":"Review a described animation against the twelve animation principles (squash and stretch, anticipation, staging, pose to pose, follow through, slow in and slow "},{"name":"lint_lottie_json","description":"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, laye"},{"name":"lint_email_html","description":"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, fl"},{"name":"check_email_preheader","description":"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 `preheade"},{"name":"check_email_dark_mode","description":"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 Ou"},{"name":"check_email_accessibility","description":"Check an email for accessibility basics. Pass `html`. Reports: missing lang and title, layout tables without role=\"presentation\", images with no alt or throwawa"},{"name":"check_email_subject","description":"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, spa"},{"name":"calc_print_spec","description":"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 "},{"name":"calc_print_resolution","description":"Calculate resolution for print. Pass print `width` and `height` with `unit` (mm, cm, in), optional `viewing_distance` with `distance_unit` (cm, in, m) and optio"},{"name":"check_colour_mode","description":"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"},{"name":"convert_paper_size","description":"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 "},{"name":"plan_imposition","description":"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 (ga"}],"toolCount":141,"toolsHash":"d824c33593fbe2c1f831a625b635454614b64f87cc6a76e7bc222f79bfd15c39","serverName":"designers","capabilities":["tools","prompts","resources"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}}],"tools":[{"name":"check_contrast","description":"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 "},{"name":"audit_page_accessibility","description":"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 fie"},{"name":"heuristic_worksheet","description":"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 "},{"name":"detect_design_slop","description":"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 "},{"name":"review_ui_copy","description":"Review interface copy, one string per line, optionally prefixed with a type (button:, error:, empty:, tooltip:, placeholder:, heading:, toast:, label:). Checks "},{"name":"lint_design_feedback","description":"Lint design critique. Sorts each note into observation, opinion, solution-without-problem, vague, or question, explains what is missing, and gives an observatio"},{"name":"plan_critique","description":"Plan a design critique for a stage (concept, wireframe, visual, prototype, build, shipped): a framing statement, timed agenda, the questions that fit the stage,"},{"name":"lint_research_questions","description":"Lint user research questions, one per line, for leading wording, double-barrelled questions, hypotheticals, predictions, loaded words, jargon, closed questions "},{"name":"usability_stats","description":"Usability arithmetic with formulas shown. mode sus: score System Usability Scale responses (rows of ten 1-5 answers) with grade, percentile and 95% interval. mo"},{"name":"lint_tracking_plan","description":"Lint a product analytics tracking plan (event names with optional properties, one per line like 'project_created (template, source)') for mixed naming styles, v"},{"name":"audit_site_accessibility","description":"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 t"},{"name":"check_contrast_tokens","description":"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 a"},{"name":"build_heuristic_report","description":"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), lo"},{"name":"getting_started","description":"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)."},{"name":"whoami","description":"Show the caller's plan (Free or Pro) and how many calls remain today on each tool. Does not use up a daily call."},{"name":"check_touch_targets","description":"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 "},{"name":"lint_token_names","description":"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"},{"name":"lint_design_md","description":"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"},{"name":"doctor","description":"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 fo"},{"name":"save_project_context","description":"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"},{"name":"get_project_context","description":"Pro. List the saved project context, or read one item by name."},{"name":"generate_conformance_report","description":"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"},{"name":"screen_reader_script","description":"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 leve"},{"name":"check_motion","description":"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 `u"},{"name":"audit_email_accessibility","description":"Accessibility audit of marketing or transactional email HTML. Pass the full source as `html`. Checks layout tables missing role=presentation, missing lang and t"},{"name":"check_reflow","description":"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/"},{"name":"lint_disclosure_copy","description":"Lint financial, legal and consent copy (fees, rates, terms, privacy notices, error and decline messages) for plain language. Give text and optionally kind (fee,"},{"name":"audit_dark_patterns","description":"Audit screen copy, HTML or a public URL for deceptive-design (dark pattern) signals: confirmshaming, forced continuity and hard-to-cancel flows, pre-selected op"},{"name":"lint_brand_voice","description":"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, p"},{"name":"stress_test_localisation","description":"Stress-test UI strings for translation. Give strings (one per line, optionally 'text | maxChars' or 'label | text | maxChars', or a JSON array of {text, maxChar"},{"name":"scan_pii","description":"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 ev"},{"name":"check_design_drift","description":"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 varia"},{"name":"audit_form","description":"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 messa"},{"name":"modular_scale","description":"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, "},{"name":"measure_leading","description":"Check line length and suggest leading. Pass `fontSizePx` and `containerPx` (the text column width in px). Optional: `charsPerLine` (use a counted value instead "},{"name":"type_crimes_lint","description":"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, ht"},{"name":"vertical_rhythm","description":"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\""},{"name":"type_pairing_check","description":"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,"},{"name":"build_grid","description":"Build a column grid from page or container width. Pass `width`, and optionally `columns` (default 12), `gutter` (default 24), `margin` (default 24). Returns the"},{"name":"build_spacing_scale","description":"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 "},{"name":"calculate_proportion","description":"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 `h"},{"name":"plan_breakpoints","description":"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 bro"},{"name":"check_proximity_alignment","description":"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, g"},{"name":"palette_harmony","description":"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 opti"},{"name":"tint_shade_scale","description":"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"},{"name":"color_meaning_check","description":"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 ar"},{"name":"dark_mode_palette","description":"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 arr"},{"name":"colour_temperature_mix","description":"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%, #f2e"},{"name":"trunk_test","description":"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 section"},{"name":"check_form","description":"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`. Re"},{"name":"analyse_card_sort","description":"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 lis"},{"name":"calc_fitts_hick","description":"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))"},{"name":"plan_usability_test","description":"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 criter"},{"name":"chart_lint","description":"Lint a chart specification for graphical integrity, in the tradition of Edward Tufte (The Visual Display of Quantitative Information) and Alberto Cairo (How Cha"},{"name":"chart_chooser","description":"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, "},{"name":"chart_colour_check","description":"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) "},{"name":"data_table_vs_chart","description":"Decide whether data belongs in a table, small multiples, a sparkline or a chart. Pass `rows`, `cols` (numeric columns or series), `purpose` (lookup, compare, pa"},{"name":"number_format_check","description":"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 "},{"name":"css_contrast_pairs","description":"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"},{"name":"alt_text_quality","description":"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-hid"},{"name":"error_message_check","description":"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 conventi"},{"name":"touch_target_css","description":"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"},{"name":"page_weight_report","description":"Weighs a public page from its delivered HTML. Pass `url`. Reports HTML bytes (uncompressed, plus the server's reported transfer length when given), element coun"},{"name":"repeated_label_check","description":"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 "},{"name":"rendered_vs_static_notes","description":"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\""},{"name":"site_inventory","description":"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"},{"name":"site_heading_outline","description":"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), u"},{"name":"site_meta_audit","description":"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 "},{"name":"site_link_health","description":"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."},{"name":"site_consistency","description":"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."},{"name":"site_page_diff","description":"Pro. Fetch two public pages (`url` and `compareUrl`, which must differ; use it for staging against production) and return a structural diff: metadata, landmarks"},{"name":"site_performance_hints","description":"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"},{"name":"site_audit_summary","description":"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.x"},{"name":"extract_design_tokens","description":"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 (he"},{"name":"audit_token_scales","description":"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"},{"name":"audit_type_scale","description":"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 ro"},{"name":"audit_spacing","description":"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 e"},{"name":"inventory_components","description":"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 m"},{"name":"check_state_coverage","description":"Check interaction states in a stylesheet. Pass `css` (free) or a public `url` (Pro). Finds links, buttons, inputs, selects, summaries and classes that look inte"},{"name":"score_design_system","description":"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 2"},{"name":"compare_token_sets","description":"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; fr"},{"name":"dtcg_to_css","description":"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` "},{"name":"css_to_dtcg","description":"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 i"},{"name":"draft_brand_checklist","description":"Produce a deterministic brand guideline skeleton. Pass `name` (required), and optionally `audience`, `tone` (words, comma separated or a list) and `constraints`"},{"name":"design_easing","description":"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,"},{"name":"plan_durations","description":"Plan animation durations. Pass `distance_px` (how far the thing moves, 0 to 5000), `size` (small, medium, large, fullscreen), `complexity` (simple, moderate, co"},{"name":"audit_motion_css","description":"Audit pasted CSS for motion problems. Pass `css` (stylesheet text with @keyframes, animation and transition rules). Optional flash data you measured or know fro"},{"name":"plan_stagger","description":"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-i"},{"name":"review_animation_principles","description":"Review a described animation against the twelve animation principles (squash and stretch, anticipation, staging, pose to pose, follow through, slow in and slow "},{"name":"lint_lottie_json","description":"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, laye"},{"name":"lint_email_html","description":"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, fl"},{"name":"check_email_preheader","description":"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 `preheade"},{"name":"check_email_dark_mode","description":"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 Ou"},{"name":"check_email_accessibility","description":"Check an email for accessibility basics. Pass `html`. Reports: missing lang and title, layout tables without role=\"presentation\", images with no alt or throwawa"},{"name":"check_email_subject","description":"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, spa"},{"name":"calc_print_spec","description":"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 "},{"name":"calc_print_resolution","description":"Calculate resolution for print. Pass print `width` and `height` with `unit` (mm, cm, in), optional `viewing_distance` with `distance_unit` (cm, in, m) and optio"},{"name":"check_colour_mode","description":"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"},{"name":"convert_paper_size","description":"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 "},{"name":"plan_imposition","description":"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 (ga"}],"package":null,"toolSurface":{"id":"ts_kvja3br6au9e","endpointId":"ep_gmbwc8nn8qmg","hash":"42b14a7fd6acb40999689c78c0e7d189fc95f522e750db6eb042a3933633a435","toolCount":141,"serverName":"designers","serverVersion":"1.0.0","protocolVersion":"2025-06-18","firstSeenAt":"2026-10-25T08:25:54.235Z","lastSeenAt":"2026-10-25T15:26:59.226Z","observations":2,"toolNames":["check_contrast","audit_page_accessibility","heuristic_worksheet","detect_design_slop","review_ui_copy","lint_design_feedback","plan_critique","lint_research_questions","usability_stats","lint_tracking_plan","audit_site_accessibility","check_contrast_tokens","build_heuristic_report","getting_started","whoami","check_touch_targets","lint_token_names","lint_design_md","doctor","save_project_context","get_project_context","generate_conformance_report","screen_reader_script","check_motion","audit_email_accessibility","check_reflow","lint_disclosure_copy","audit_dark_patterns","lint_brand_voice","stress_test_localisation","scan_pii","check_design_drift","audit_form","modular_scale","measure_leading","type_crimes_lint","vertical_rhythm","type_pairing_check","build_grid","build_spacing_scale","calculate_proportion","plan_breakpoints","check_proximity_alignment","palette_harmony","tint_shade_scale","color_meaning_check","dark_mode_palette","colour_temperature_mix","trunk_test","check_form","analyse_card_sort","calc_fitts_hick","plan_usability_test","chart_lint","chart_chooser","chart_colour_check","data_table_vs_chart","number_format_check","css_contrast_pairs","alt_text_quality","error_message_check","touch_target_css","page_weight_report","repeated_label_check","rendered_vs_static_notes","site_inventory","site_heading_outline","site_meta_audit","site_link_health","site_consistency","site_page_diff","site_performance_hints","site_audit_summary","extract_design_tokens","audit_token_scales","audit_type_scale","audit_spacing","inventory_components","check_state_coverage","score_design_system","compare_token_sets","dtcg_to_css","css_to_dtcg","draft_brand_checklist","design_easing","plan_durations","audit_motion_css","plan_stagger","review_animation_principles","lint_lottie_json","lint_email_html","check_email_preheader","check_email_dark_mode","check_email_accessibility","check_email_subject","calc_print_spec","calc_print_resolution","check_colour_mode","convert_paper_size","plan_imposition","print_file_checklist","approx_print_colour","logo_size_rules","logo_contrast_variants","brand_voice_consistency","naming_check","tagline_review","brand_architecture_planner","colour_palette_brief_check","review_microcopy","error_state_writer_template","content_hierarchy_check","plain_language_check","localisation_readiness","button_label_consistency","notification_copy_check","nav_depth_check","label_clarity_check","url_structure_review","taxonomy_overlap","tree_test_scorer","sitemap_to_outline","cognitive_load_check","check_reading_order","plan_focus_order","check_keyboard_shortcuts","check_input_modality","check_rtl_readiness","check_font_coverage","review_date_number_formats","plan_text_expansion","check_name_fields","check_cjk_line_breaking","review_locale_picker","check_handoff_spec","check_naming_conventions","plan_asset_exports","plan_responsive_images","audit_icon_set","check_svg_bloat","write_design_changelog"],"distinctSurfaces":2},"endpointFacts":[]},"verification":{"claimed":false,"claimedAt":null,"proofs":[]},"provenance":{"sources":[{"source":"mcp_registry","key":"com.allthepossibles/designers","url":"https://registry.modelcontextprotocol.io/v0/servers/com.allthepossibles%2Fdesigners","firstSeenAt":"2026-10-25T00:22:20.912Z","fetchedAt":"2026-10-25T00:22:20.912Z","normalizedAt":"2026-10-25T00:22:20.912Z"}]},"firstSeenAt":"2026-10-25T00:22:20.912Z","updatedAt":"2026-10-25T15:31:51.862Z"}