Skip to main content
Glama
HalidSaglam

saglitzdesign-mcp

by HalidSaglam

Audit Project

audit_project
Read-onlyIdempotent

Audit a codebase directory to catch cross-file design inconsistencies and accessibility issues that single-file linting misses, returning ranked findings with file:line references.

Instructions

Audit a real codebase instead of a pasted snippet: point it at a directory and it walks the design source, runs the design/accessibility lint over every file, and scores the whole thing for consistency — how many distinct colours, type sizes, radii, shadows and spacings the project actually uses, and which colours are indistinguishable duplicates. Returns findings ranked worst-file-first with file:line, plus an explicit list of what it did not look at. It reads source and does not measure anything: it loads no page, renders nothing, takes no screenshot, and no finding is or can be a rendered-output result. Returns markdown plus structured output: findings (rule, severity, message, fix, doc, file, line), a severity summary, a machine-readable notVisible list of what it could not check, and a scan block saying how many files and bytes were actually read, which files were skipped for size, which could not be opened, and whether the file or byte cap was hit — check that before trusting any absence in findings. It runs design_lint's rules and the consistency count, and nothing else: run audit_security, audit_generic_design, audit_seo_geo and audit_performance on the same directory for theirs. A missing or non-directory path is returned as an error result, not as an empty audit. Cross-file drift is the thing a single-file lint cannot see, which is the point of this tool. Reads only the directory you name; makes no network call. Pair with measure_screenshot for the rendered result and audit_ux_copy for the words.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
pathYesDirectory to audit. Absolute paths are strongly preferred — a relative path is resolved against the server's working directory, which is usually not your project folder.
extensionsNoOverride which file extensions are scanned, e.g. ['.tsx','.css','.js']. Replaces the default list rather than adding to it, so name every extension you want read, each with a leading dot — 'js' matches nothing and the audit comes back empty, where '.js' works. Defaults to .css, .scss, .sass, .less, .html, .htm, .jsx, .tsx, .vue, .svelte, .astro — that whole list, read from the array the audit actually uses rather than restated here; .js and .ts are excluded by default because most are logic, not UI.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
scanYesWhat the scan reached. Read it before trusting any absence claim: a capped scan looked at part of the project.
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.6/5.0
Behavior5/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, but the description adds substantial context beyond them: 'it loads no page, renders nothing, takes no screenshot, and no finding is or can be a rendered-output result'; 'Reads only the directory you name; makes no network call'; and the error-handling trait 'A missing or non-directory path is returned as an error result, not as an empty audit' plus the file/byte-cap warning. These are exactly the behavioral traits that prevent misuse, and nothing contradicts the 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 long but earns nearly every sentence: it front-loads the core purpose, then covers output shape, safety profile, sibling routing, error behavior, and pairing. Given 35 siblings and a complex multi-part return, the density is justified. Minor redundancy exists ('Cross-file drift... which is the point of this tool' restates the opening's 'instead of a pasted snippet'), which keeps it from a 5.

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 tool of this complexity, nothing essential is missing: inputs (directory + extension override), behavior (read-only, no network), return shape summarized (findings, severity summary, notVisible, scan block) with the output schema covering details, error semantics, exclusions, alternatives, and a cap-related caution that protects against false-negative conclusions. The output schema exists, so the description correctly delegates return-value details to it.

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%, so the baseline is 3; the schema's `extensions` documentation is already exhaustive (leading-dot requirement, replacement semantics, default list, .js/.ts exclusion rationale). The description reinforces the `path` meaning ('point it at a directory') and warns to check the `scan` block, but adds little parameter-specific meaning that the schema doesn't already carry. The schema does the heavy lifting, which the rubric treats as acceptable.

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 opens with a specific verb-resource pair ('Audit a real codebase... point it at a directory') and precisely enumerates what the tool does: walk design source, run design/accessibility lint over every file, score consistency (colors, type sizes, radii, shadows, spacings), and flag indistinguishable duplicates. It distinguishes itself from siblings by name (audit_security, audit_generic_design, audit_seo_geo, audit_performance, design_lint, measure_screenshot, audit_ux_copy), so an agent can tell exactly which tool to pick.

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 routing: 'It runs design_lint's rules and the consistency count, and nothing else: run audit_security, audit_generic_design, audit_seo_geo and audit_performance on the same directory for theirs.' It states when the tool is the right choice ('Cross-file drift is the thing a single-file lint cannot see') and even gives pairing guidance ('Pair with measure_screenshot for the rendered result and audit_ux_copy for the words'). Exclusion is explicit and actionable.

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