Skip to main content
Glama
HalidSaglam

saglitzdesign-mcp

by HalidSaglam

Design Lint

design_lint
Read-onlyIdempotent

Lint HTML/CSS/JSX/Tailwind for design and accessibility anti-patterns like hardcoded colors, missing alt text, and removed focus outlines. Get line-level findings with severity and fixes to correct issues early.

Instructions

Lint a snippet of HTML / CSS / JSX / Tailwind for design & accessibility anti-patterns: hardcoded colors instead of tokens, px font-sizes, removed focus outlines, images without alt, clickable divs, icon-only buttons without labels, positive tabindex, ad-hoc radii, !important overuse. Returns findings with line numbers, severity, and fixes. It reads source and does not measure anything: nothing is rendered, no contrast ratio is computed and no tap target is sized, so no finding is or can be a visual or an accessibility verdict. Returns markdown plus structured output: findings (rule, severity, message, fix, doc, line), a severity summary, and a machine-readable notVisible list of what it could not check. Fast static design-time check — not a replacement for a full audit. Complements design_review_checklist.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
codeYesThe HTML/CSS/JSX/Tailwind snippet to lint

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
summaryYesCounts by severity. Always agrees with `findings` — it is derived from the same list.
findingsYesEvery finding, in the order the markdown report lists them.
notVisibleYesWhat this audit structurally could not check, one limitation per entry. Read it as a peer of `findings`: silence on a subject named here is this tool's reach, not a clean result. Nothing any of these tools reports is measured.

Schema Changelog

Changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. Addedv0.28.0

TDQS

A4.8/5.0
Behavior5/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, and the description reinforces and extends this with valuable behavioral context: 'It reads source and does not measure anything: nothing is rendered, no contrast ratio is computed and no tap target is sized.' It also discloses the output shape (markdown plus structured findings, severity summary, machine-readable notVisible list), so an agent understands the tool's limits and return value beyond what the annotations convey. No contradiction with annotations.

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?

The description is front-loaded with the core purpose and anti-pattern list, then progressively covers limitations, output structure, and tool relationships. It is longer than average but every sentence adds meaningful information. There is minor redundancy between 'Returns findings with line numbers, severity, and fixes' and the later structured-output breakdown, but this is acceptable given the added specificity.

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?

For a simple one-parameter read-only tool with an output schema and rich annotations, this description is complete. It covers accepted input languages, checked anti-patterns, limitations, output format, and the relationship to design_review_checklist. An agent has all the information needed to invoke it correctly and interpret its results.

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

Parameters4/5

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

Schema coverage is 100% and the single 'code' parameter is described as 'The HTML/CSS/JSX/Tailwind snippet to lint.' The description adds extra semantic value by enumerating the anti-patterns it checks for, which helps an agent decide what kind of snippet to pass and what to expect. It does not add format-specific parsing details, but with one well-documented parameter, the marginal gain is modest yet real.

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?

The description names a precise verb and resource: 'Lint a snippet of HTML / CSS / JSX / Tailwind for design & accessibility anti-patterns.' It lists concrete patterns (hardcoded colors, px font-sizes, removed focus outlines, clickable divs, etc.), making the tool's scope unmistakable. It also differentiates itself from sibling tools by explicitly stating what it does not do: no rendering, no contrast ratio computation, no tap target sizing.

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?

The description gives explicit when-to-use context ('Fast static design-time check') and when-not-to-use context ('not a replacement for a full audit'). It names a complementary sibling (design_review_checklist) and warns that findings are not visual or accessibility verdicts, steering agents away from using it in place of measurement-based tools.

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

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/HalidSaglam/saglitzdesign-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server