Skip to main content
Glama

Compare two design systems

designesy_compare
Read-onlyIdempotent

Compare two live design systems by URL to detect token additions, removals, renames, value changes, and contrast drift for migration or reference analysis.

Instructions

Diff two design systems from live URLs — the only URL-scoped design-token diff engine. Fetches both URLs in parallel, extracts their :root custom properties, and produces a structured diff across 8 dimensions: tokens added (in A not B), removed (in B not A), renamed (heuristic Levenshtein ≤ 2), value-changed (same name, different value), scale-stop-changed (spacing/radius/color scale steps), contrast-drift-per-pair (WCAG contrast ratio change for shared color tokens), structure-delta (token count + category distribution), and score-delta (runs /score on both URLs and diffs). Use this to answer 'what actually changed between two design systems' or 'how does our design system differ from a reference'. When NOT to use: for single-site drift detection, use designesy_drift_score; for continuous monitoring, use designesy_monitor_score. Executable — fetches both URLs, extracts CSS + tokens, computes diff. No browser needed. Returns JSON: { ok, urlA, urlB, score (0-100, diff completeness), grade, pass, warn, fail, total, tokensA, tokensB, added[], removed[], renamed[], valueChanged[], scaleDiff, structureDelta, contrastDrift[], scoreDelta, checks[] }. Results cached ~24h server-side per URL pair.

Input Schema

NameRequiredDescriptionDefault
urlAYesFirst URL to compare (e.g. your design system).
urlBYesSecond URL to compare (e.g. a reference or competitor).

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv1.13.8

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations cover safety (readOnly, idempotent, openWorld, non-destructive), so the bar is lower, yet the description still adds substantive behavioral detail: parallel fetching of both URLs, no browser required, heuristic rename threshold (Levenshtein ≤ 2), and ~24h server-side caching per URL pair. The 'Executable' framing also tells the agent this performs the work rather than just planning it.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Purpose, use cases, exclusions, execution model, and return contract are all front-loaded in that order with no filler sentences. The inline enumeration of the full JSON return shape is lengthy, but with no output schema it is the only place that contract is documented, so it earns its space.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, so the description carries the return-value burden and does so with an explicit field list (score, grade, added/removed/renamed/valueChanged, scaleDiff, contrastDrift, scoreDelta, checks). Combined with execution semantics, caching, and sibling routing, an agent has everything needed to call and interpret this tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% for both parameters and the schema already explains urlA/urlB semantics, so the baseline is 3. The description reinforces the intent (your design system vs. reference/competitor) and notes both are fetched in parallel, but adds no format, validation, or normalization rules beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ('Diff two design systems from live URLs') plus a distinguishing scope claim ('the only URL-scoped design-token diff engine') and enumerates the eight diff dimensions produced. An agent can separate this from designesy_drift_score and designesy_monitor_score without opening any schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives concrete use-case phrasings ('what actually changed between two design systems', 'how does our design system differ from a reference') and an explicit 'When NOT to use' clause routing single-site drift to designesy_drift_score and continuous monitoring to designesy_monitor_score. Nothing is left to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.