Front-End Checklist
Server Details
Review frontend code and live pages against 386 quality-gated web development rules.
- Status
- Healthy
- Uptime
- 100.0% over 21 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- Repository
- thedaviddias/Front-End-Checklist
- GitHub Stars
- 74,325
TDQS
Scored across 11 tools
Tools target distinct actions across discovery, single-rule guidance, aggregated checklists, and code/URL auditing. Mild overlap exists between get_checklist_rules and get_workflow (same checklist names) and between check_rule and review_code, but descriptions clearly distinguish inputs and outputs.
All 11 tools use snake_case with a consistent verb_noun pattern (audit_url, check_rule, get_rule, list_categories, search_rules). No mixed conventions or vague names; the repeated get_ prefix is predictable.
11 tools is well-scoped for a frontend checklist server, covering discovery, retrieval, explanation, remediation, and static auditing without bloat. Each tool maps to a distinct user intent.
The surface covers the full lifecycle of curated guidance: list categories, search rules, fetch single rules, checklists, workflows, and quick references, plus explain, fix, check, and audit operations. No critical operation for this guidance-only domain appears missing.
Available Tools
11 toolsaudit_urlAudit Live URLARead-onlyIdempotentInspect
Fetches a public HTTPS page and performs a non-exhaustive static review of its HTML, returning prioritized issues and fix guidance. Use it when the user requests an audit of a deployed public page. Localhost, private networks, and plain HTTP URLs are refused. It does not execute the page, measure live Core Web Vitals, or certify accessibility.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | Public URL to audit. Must use https://. Private IPs and localhost are blocked. | |
| focus | No | Only check these categories (default: auto-detected from the fetched HTML). | |
| minPriority | No | Lowest priority to report (default: medium). |
Output Schema
| Name | Required | Description |
|---|---|---|
| error | No | |
| issues | No | |
| source | No | |
| summary | No | |
| suggestions | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, open-world, non-destructive behavior, and the description usefully adds scope limits: static-only analysis, refusal of private/localhost/HTTP targets, and an explicit non-exhaustive caveat. It does not disclose rate limits, payload size caps, or timeout/fetch-failure behavior, which matter for a live network fetch.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with capability, then trigger, then boundaries. Every sentence carries distinct information with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be described. The description covers what the tool does, when to use it, what targets are refused, and what it explicitly does not measure — sufficient for an agent to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all three parameters (url, focus, minPriority) are already fully documented with enum options and defaults. The description only restates the HTTPS-only constraint already present in the url schema, adding no new parameter meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Fetches a public HTTPS page and performs a non-exhaustive static review of its HTML') plus the output shape ('prioritized issues and fix guidance'). This clearly separates it from the rule-lookup and reference siblings, which do not fetch or analyze live pages.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives an explicit trigger ('when the user requests an audit of a deployed public page') and clear exclusions (no localhost, private networks, or plain HTTP; no execution, Core Web Vitals, or accessibility certification). It stops short of naming the overlapping sibling review_code as the alternative for local/source-level analysis.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_ruleCheck Rule ComplianceARead-onlyIdempotentInspect
Checks a code snippet against one named frontend rule using static heuristics and returns findings and verification guidance. Without code, returns manual verification guidance. Use it when the user requests a check of a specific rule or a proposed fix. Results do not establish rendered-state or runtime conformance.
| Name | Required | Description | Default |
|---|---|---|---|
| code | No | Code to test against the rule. Omit to get manual verification steps. | |
| slug | Yes | Rule slug: the kebab-case rule ID, e.g. 'alt-text' or 'doctype'. The ID must identify a rule in the published catalogue. |
Output Schema
| Name | Required | Description |
|---|---|---|
| slug | No | |
| title | No | |
| message | No | |
| analysis | No | |
| fixPrompt | No | |
| categories | No | |
| checkPrompt | No | |
| suggestions | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false, and openWorldHint=false, so safety is covered. The description adds meaningful behavioral context beyond those: it uses static heuristics, returns findings and verification guidance, and explicitly states that results do not establish rendered-state or runtime conformance. This is valuable limitation disclosure, though no auth or rate-limit context is provided.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four sentences, each earning its place: the main operation, the no-code fallback, the usage condition, and the limitation. It is front-loaded with the core behavior and contains no filler or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With a rich annotation set, 100% schema description coverage, and an output schema that handles return values, the description is complete for correct invocation. It covers the main path, the no-code fallback, usage timing, and key limitations, leaving no critical gap for an agent deciding to call this tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both parameters are already documented in the schema, including the meaning of omitting code and the slug format. The description reinforces that the rule must be named and that code omission triggers manual guidance, but it adds no syntax or format detail beyond the schema. Baseline 3 is appropriate when the schema carries the parameter burden.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb and resource: checks a code snippet against one named frontend rule. The scope is tightly constrained to a single rule, which distinguishes it from broader sibling tools like review_code or audit_url. It also states the mechanism, static heuristics, making the purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives a clear condition for use: when the user requests a check of a specific rule or a proposed fix. It also distinguishes the no-code path by returning manual verification guidance. However, it does not explicitly name alternatives or when not to use this tool versus siblings like review_code or audit_url.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
explain_ruleExplain Frontend RuleARead-onlyIdempotentInspect
Explains one frontend rule, including its background, impact on users and the business, and related categories. Use it when the user asks why a practice matters or requests educational context. It returns explanation guidance rather than applying a fix.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | Rule slug: the kebab-case rule ID, e.g. 'alt-text' or 'doctype'. The ID must identify a rule in the published catalogue. |
Output Schema
| Name | Required | Description |
|---|---|---|
| slug | No | |
| title | No | |
| message | No | |
| categories | No | |
| suggestions | No | |
| explainPrompt | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds value by clarifying that the tool returns explanation guidance rather than applying a fix, which tells the agent the output is advisory content, not a mutation or a remediation action.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, front-loaded with the core action, then usage, then output nature. Every sentence earns its place with no repetition of the name or title.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With a full output schema present, the description does not need to explain return values, and annotations cover safety. It is complete for the core call, but the unresolved overlap with the get_rule sibling leaves a small ambiguity an agent must resolve elsewhere.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only one parameter exists and schema description coverage is 100%, so the schema already documents the slug format and the catalogue constraint. The description adds nothing about the slug, which is the expected baseline when the schema does the work.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb and resource ('Explains one frontend rule') and enumerates the content it covers (background, user/business impact, related categories). It distinguishes itself from fix_rule by stating it returns explanation guidance rather than applying a fix, but it never clarifies how it differs from the sibling get_rule, which an agent can only infer.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It states a clear trigger condition: 'Use it when the user asks why a practice matters or requests educational context.' That is explicit when-to-use guidance. There is no when-not guidance beyond the implicit contrast with fix_rule, so it falls short of naming alternatives outright.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fix_ruleGet Rule FixARead-onlyIdempotentInspect
Returns step-by-step remediation guidance and priority for one named frontend rule. Use it when the user requests implementation or fix instructions for a known issue. Optional codeSnippet provides context; the tool does not edit files or apply changes.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | Rule slug: the kebab-case rule ID, e.g. 'alt-text' or 'doctype'. The ID must identify a rule in the published catalogue. | |
| codeSnippet | No | Code that violates the rule, so the fix guidance can reference it. |
Output Schema
| Name | Required | Description |
|---|---|---|
| slug | No | |
| title | No | |
| message | No | |
| priority | No | |
| fixPrompt | No | |
| codeContext | No | |
| suggestions | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description's added value is resolving the misleading 'fix_rule' name by stating explicitly that it 'does not edit files or apply changes' and that codeSnippet is context-only, which tells the agent this is purely advisory despite the mutation-flavored name.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences with zero filler: purpose first, then the usage trigger, then the non-mutation boundary and optional parameter note. Every sentence earns its place and the key information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With a full output schema, complete annotations, and 100% parameter documentation, the description only needs to cover purpose, trigger, and the advisory-only nature, all of which it does. Minor gap: it does not mention the priority field's semantics or any catalogue-membership failure mode beyond the schema's slug note.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the schema already documents slug (kebab-case catalogue ID) and codeSnippet (violating code for context). The description's note that codeSnippet is optional and provides context only restates the schema, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: it 'returns step-by-step remediation guidance and priority for one named frontend rule.' That output type (remediation steps + priority) is distinct from siblings like explain_rule (explanation), check_rule (evaluation), and get_rule (raw data), so an agent can route to it without opening a schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives a clear positive trigger ('when the user requests implementation or fix instructions for a known issue') and an implicit exclusion ('for a known issue' implies this is not for discovery). No sibling is named as an alternative, so it falls short of the explicit when/when-not/alternative bar.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_checklist_rulesGet Checklist RulesARead-onlyIdempotentInspect
Returns titles, priorities, verification and remediation prompts for every rule in a curated checklist. Use it when the user requests guidance for an entire checklist. includeContent optionally adds each rule’s long-form body. Available checklists: accessibility-essentials, comprehensive-audit, core-web-vitals, html-foundations, image-optimization, javascript-resilience, launch-checklist, performance-quick-wins, privacy-and-consent, security-audit, seo-audit, testing-checklist.
| Name | Required | Description | Default |
|---|---|---|---|
| checklist | Yes | Checklist slug. Available: 'accessibility-essentials', 'comprehensive-audit', 'core-web-vitals', 'html-foundations', 'image-optimization', 'javascript-resilience', 'launch-checklist', 'performance-quick-wins', 'privacy-and-consent', 'security-audit', 'seo-audit', 'testing-checklist' | |
| includeContent | No | Include full MDX body content (large). Default false returns title, description, prompts, and metadata only. |
Output Schema
| Name | Required | Description |
|---|---|---|
| error | No | |
| rules | No | |
| checklist | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish read-only, idempotent, non-destructive, closed-world behavior, so the safety bar is met. The description still adds real context: the optional includeContent flag pulls long-form bodies and is explicitly flagged as large, which is a useful performance cue the annotations don't convey.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the return contract well, but the final sentence re-lists all twelve checklist slugs verbatim from the schema enum, which is pure duplication that consumes roughly half the text. The parameter behavior sentence earns its place; the slug list does not.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return-value explanation is not strictly required, yet the description usefully summarizes the payload shape and the includeContent tradeoff. A two-parameter, enum-constrained read tool needs little more; only the sibling routing detail is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both parameters are already documented in the schema, making 3 the baseline. The description restates includeContent's behavior ('optionally adds each rule's long-form body') without adding format, size, or default nuance beyond what the schema says.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (returns) plus the resource (rules in a curated checklist) and enumerates the returned fields (titles, priorities, verification/remediation prompts). The 'every rule in an entire checklist' scope implicitly separates it from singular siblings like get_rule or check_rule, but no sibling is named explicitly, so it falls short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a clear activation condition: 'Use it when the user requests guidance for an entire checklist.' That cleanly implies the bulk-listing case, but it names no alternative (e.g., get_rule for a single rule, search_rules for filtering) or exclusion, so it stops at 4 rather than 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_quick_referenceGet Quick ReferenceARead-onlyIdempotentInspect
Returns a compact checklist for one frontend category, filtered by priority and formatted as JSON, Markdown, or a task list. Use it when the user requests a concise checklist for a deployment, review, or team handoff.
| Name | Required | Description | Default |
|---|---|---|---|
| format | No | Output format (default: 'json'). Use 'markdown' for readable docs, 'checklist' for copy-paste task lists. | |
| category | Yes | Category name, e.g. 'accessibility', 'performance', or 'seo' (see list_categories). | |
| priorityFilter | No | Filter by priority level (default: 'critical+high'). Use 'all' for comprehensive lists, 'critical' for essentials only. |
Output Schema
| Name | Required | Description |
|---|---|---|
| error | No | |
| items | No | |
| category | No | |
| markdown | No | |
| totalCount | No | |
| displayName | No | |
| priorityFilter | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and closed-world scope, so the safety profile is fully covered. The description adds useful behavior context by naming the three output formats and the default priority filtering, but says nothing about size limits, pagination, or what happens for an unknown category.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, zero padding, with the core capability front-loaded and the usage condition second. Every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With a 3-parameter schema fully documented, enums on two params, and an output schema handling return values, the description only needs to frame purpose and usage. It does that adequately, with the sole omission being differentiation from the similar checklist sibling.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so every parameter including the two enums is already documented in the schema with defaults and usage hints. The description's mention of format and priority adds no meaning beyond that, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Returns a compact checklist for one frontend category') plus the filtering and formatting dimensions, so the agent knows exactly what it produces. It does not, however, distinguish itself from the sibling get_checklist_rules, which sounds like an overlapping capability.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives a usage context ('when the user requests a concise checklist for a deployment, review, or team handoff'), which is real guidance. But it offers no when-not guidance and never mentions the near-identical sibling get_checklist_rules, leaving the agent to guess which of the two checklist tools to pick.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_ruleGet Rule GuidanceARead-onlyIdempotentInspect
Returns complete guidance for one known rule slug: requirements, rationale, verification and remediation prompts, code examples, sources, and related rules. Use it when the user requests detailed guidance for a specific frontend rule. Unknown slugs return similar suggestions.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | Rule slug: the kebab-case rule ID, e.g. 'alt-text' or 'doctype'. The ID must identify a rule in the published catalogue. | |
| includeUrl | No | Include the rule's web URL in response (default: false) |
Output Schema
| Name | Required | Description |
|---|---|---|
| url | No | |
| slug | No | |
| title | No | |
| content | No | |
| message | No | |
| prompts | No | |
| sources | No | |
| priority | No | |
| aiContext | No | |
| categories | No | |
| difficulty | No | |
| description | No | |
| subcategory | No | |
| suggestions | No | |
| relatedRules | No | |
| estimatedTime | No | |
| sourceSummary | No | |
| primaryCategory | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, non-destructive and closed-world, so the safety profile is covered. The description adds genuine behavioral context beyond that: unknown slugs do not fail but return similar suggestions, and it enumerates the response payload's content areas. It says nothing about rate limits or response size, but for a read-only lookup that gap is minor.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the payload contents and followed by the usage condition. The first sentence's long enumeration is justified because it is the main differentiator from lookup/validation siblings, though it is list-heavy and could be tightened.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, the description need not explain return values in detail, and it correctly focuses on scope, usage condition and the unknown-slug fallback. The one missing element is explicit routing among the many rule-related siblings, which matters given ten peer tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and both parameters are documented there, including the kebab-case slug format and the includeUrl default, so the schema does the heavy lifting. The description only reinforces 'one known rule slug' and the unknown-slug fallback, adding marginal semantics. Baseline 3 applies when the schema is complete.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Returns complete guidance for one known rule slug') and enumerates exactly what is returned: requirements, rationale, verification/remediation prompts, code examples, sources, related rules. It is clearly not a discovery or validation tool. However, it never differentiates itself from close siblings like explain_rule or check_rule, so the agent must infer the boundary.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Use it when the user requests detailed guidance for a specific frontend rule' gives a clear triggering condition and implicitly covers the 'known slug' prerequisite. It offers no when-not guidance and does not route the agent to search_rules (for discovery) or explain_rule (for a lighter explanation), leaving sibling disambiguation to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_workflowGet Audit WorkflowARead-onlyIdempotentInspect
Returns the ordered steps of a curated audit workflow, including rule slugs, priorities, and categories. Use it when the user requests a structured audit such as a pre-launch checklist. Available workflows: accessibility-essentials, comprehensive-audit, core-web-vitals, html-foundations, image-optimization, javascript-resilience, launch-checklist, performance-quick-wins, privacy-and-consent, security-audit, seo-audit, testing-checklist.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | The checklist workflow slug. Available: 'accessibility-essentials', 'comprehensive-audit', 'core-web-vitals', 'html-foundations', 'image-optimization', 'javascript-resilience', 'launch-checklist', 'performance-quick-wins', 'privacy-and-consent', 'security-audit', 'seo-audit', 'testing-checklist' |
Output Schema
| Name | Required | Description |
|---|---|---|
| icon | No | |
| slug | No | |
| error | No | |
| steps | No | |
| title | No | |
| highCount | No | |
| difficulty | No | |
| totalRules | No | |
| description | No | |
| criticalCount | No | |
| estimatedTime | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so the safety profile is fully covered structurally. The description adds only that the returned steps are ordered and carry priorities/categories, which is thin beyond what the schema and annotations supply.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The first two sentences are tight and front-loaded, but the third sentence redundantly restates the entire enum already present in the input schema, which is wasted space and offers no new information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, the description need not explain return values, and the workflow-name list duplicated from the schema is harmless. What is missing is any guidance on choosing among the twelve workflows, but the tool is otherwise adequately described.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the enum is fully documented in the schema, so the baseline is 3. The description merely re-lists the same twelve slugs with no added semantic guidance (e.g., which workflow suits which situation), so no credit above baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The first sentence names a specific verb and resource and enumerates what is returned (ordered steps, rule slugs, priorities, categories). An agent can distinguish it from rule-lookup siblings like get_rule or check_rule, though it never explicitly contrasts with get_checklist_rules, the closest sibling.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives a clear trigger condition: 'Use it when the user requests a structured audit such as a pre-launch checklist.' This is a concrete usage context, but there is no when-not guidance or explicit routing away from the rule-level siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_categoriesList Rule CategoriesARead-onlyIdempotentInspect
Lists available frontend rule categories, their descriptions, and rule counts. Use it when the user asks what the checklist covers or needs valid category names.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| categories | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is fully covered. The description adds that descriptions and rule counts are returned, but an output schema exists, so this is largely redundant. No permission or pagination context is added.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences with the capability statement front-loaded and the usage condition second. No filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
A zero-parameter listing tool with a rich annotation set and an output schema needs only a clear statement of what it returns and when to reach for it; both are present. Nothing an agent needs to invoke it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, which sets the baseline at 4. There is nothing further for the description to clarify about inputs.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Lists), resource (frontend rule categories), and the returned fields (descriptions, rule counts). This distinguishes it cleanly from the rule-level siblings like get_rule, search_rules, and check_rule.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
"Use it when the user asks what the checklist covers or needs valid category names" gives explicit trigger conditions, including the practical case of discovering valid category identifiers. It does not name alternative tools or exclusions, so it falls short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
review_codeReview Frontend CodeARead-onlyIdempotentInspect
Runs a non-exhaustive static heuristic review of pasted HTML, CSS, or JavaScript against multiple frontend best practices and returns prioritized issues, fix guidance, and suggestions for manual verification. Use it when the user requests a review, audit, or debugging of source code. An empty issue list means no provable static issue was found; it does not establish accessibility conformance or runtime correctness.
| Name | Required | Description | Default |
|---|---|---|---|
| code | Yes | The HTML, CSS, or JavaScript source to review (a snippet or a whole file). | |
| focus | No | Only check these categories (default: auto-detected from the code). | |
| minPriority | No | Lowest priority to report (default: medium). |
Output Schema
| Name | Required | Description |
|---|---|---|
| issues | No | |
| summary | No | |
| suggestions | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond the annotations by disclosing that the review is 'non-exhaustive' and that an empty issue list 'does not establish accessibility conformance or runtime correctness' — a meaningful limitation an agent must know before relaying results. Annotations already cover the safe-read profile, and the description adds substantive behavioral caveats.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences, front-loaded with the action and scope, followed by usage trigger and the critical non-exhaustiveness caveat. No filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be detailed, yet the description still summarizes them. With 100% schema coverage and clear annotations, nothing an agent needs to select or call this tool is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents code, focus, and minPriority including their defaults. The description adds no syntax, format, or interaction detail beyond the structured fields, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('static heuristic review of pasted HTML, CSS, or JavaScript') and names what it returns (prioritized issues, fix guidance, manual-verification suggestions). The word 'pasted' implicitly distinguishes it from audit_url, which operates on live URLs.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly gives the trigger condition: 'Use it when the user requests a review, audit, or debugging of source code.' It does not, however, name the alternative for live pages (audit_url) or state when NOT to use it, so it falls short of full routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_rulesSearch Frontend RulesARead-onlyIdempotentInspect
Finds frontend rules by keywords, category, and priority, returning paginated slugs, titles, and short summaries. Use it when the user requests relevant practices for a technology, concern, or pattern, such as web fonts or accessible forms.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results to return (default: 20, max: 100) | |
| query | No | Keywords to match, e.g. 'lazy loading images'. Omit to list rules by filters only. | |
| cursor | No | Cursor from a previous response, to fetch the next page of results. | |
| categories | No | Only return rules in these categories. | |
| priorities | No | Only return rules with these priorities. |
Output Schema
| Name | Required | Description |
|---|---|---|
| rules | No | |
| nextCursor | No | |
| totalCount | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this a safe, idempotent, non-destructive, closed-world read, so the safety burden is covered. The description adds genuinely new behavioral context: results are paginated and are short summaries rather than full rule bodies, which tells the agent to follow up with get_rule for detail. It stops short of describing empty-result or cursor-expiry behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, zero filler. The capability and return shape come first, then the usage trigger, which is the right front-loading for an agent scanning for the right tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, return values need not be detailed, and the description still gives a useful summary of them. All five parameters are covered between schema and description. The only omission is routing guidance against the many similar-looking siblings, which is a minor gap for a search tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so limit, query, cursor, categories and priorities are all already documented in the schema, including the note that query may be omitted to filter only. The description names the same three filter axes but adds no format or combination semantics beyond the schema; baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (finds/searches) and resource (frontend rules) plus the filter dimensions (keywords, category, priority) and the shape of what comes back (paginated slugs, titles, short summaries). The mention of lightweight summary results implicitly distinguishes it from get_rule/explain_rule, but no sibling is named explicitly, so it falls short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
"Use it when the user requests relevant practices for a technology, concern, or pattern, such as web fonts or accessible forms" gives a clear triggering condition with concrete examples. It does not, however, state when NOT to use it or name an alternative such as get_checklist_rules or get_quick_reference, which a crowded sibling set would benefit from.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
8 tool updates
- Changed
audit_url2 fields changed- changed
Input schema / properties / focus / descriptionPrevious value: -"Optional: Focus review on specific categories (default: auto-detect from fetched HTML)"New value: +"Only check these categories (default: auto-detected from the fetched HTML)." - changed
Input schema / properties / minPriority / descriptionPrevious value: -"Optional: Minimum priority level to report (default: medium)"New value: +"Lowest priority to report (default: medium)."
- Changed
check_rule2 fields changed- changed
Input schema / properties / code / descriptionPrevious value: -"Code snippet to analyze against the rule (optional)"New value: +"Code to test against the rule. Omit to get manual verification steps." - changed
Input schema / properties / slug / descriptionPrevious value: -"The rule's slug (e.g., 'doctype', 'alt-text')"New value: +"Rule slug: the kebab-case rule ID, e.g. 'alt-text' or 'doctype'. The ID must identify a rule in the published catalogue."
- Changed
explain_rule1 field changed- changed
Input schema / properties / slug / descriptionPrevious value: -"The rule's slug"New value: +"Rule slug: the kebab-case rule ID, e.g. 'alt-text' or 'doctype'. The ID must identify a rule in the published catalogue."
- Changed
fix_rule2 fields changed- changed
Input schema / properties / codeSnippet / descriptionPrevious value: -"Optional: code or HTML snippet for context-aware fix suggestion"New value: +"Code that violates the rule, so the fix guidance can reference it." - changed
Input schema / properties / slug / descriptionPrevious value: -"The rule's slug"New value: +"Rule slug: the kebab-case rule ID, e.g. 'alt-text' or 'doctype'. The ID must identify a rule in the published catalogue."
- Changed
get_quick_reference1 field changed- changed
Input schema / properties / category / descriptionPrevious value: -"The category to get a quick reference for (e.g., 'accessibility', 'performance', 'seo')"New value: +"Category name, e.g. 'accessibility', 'performance', or 'seo' (see list_categories)."
- Changed
get_rule1 field changed- changed
Input schema / properties / slug / descriptionPrevious value: -"The rule's unique slug (e.g., 'doctype', 'alt-text')"New value: +"Rule slug: the kebab-case rule ID, e.g. 'alt-text' or 'doctype'. The ID must identify a rule in the published catalogue."
- Changed
review_code3 fields changed- changed
Input schema / properties / code / descriptionPrevious value: -"The HTML, CSS, or JavaScript code to review"New value: +"The HTML, CSS, or JavaScript source to review (a snippet or a whole file)." - changed
Input schema / properties / focus / descriptionPrevious value: -"Optional: Focus review on specific categories (default: auto-detect from code)"New value: +"Only check these categories (default: auto-detected from the code)." - changed
Input schema / properties / minPriority / descriptionPrevious value: -"Optional: Minimum priority level to report (default: medium)"New value: +"Lowest priority to report (default: medium)."
- Changed
search_rules4 fields changed- changed
Input schema / properties / categories / descriptionPrevious value: -"Filter by categories (array)"New value: +"Only return rules in these categories." - changed
Input schema / properties / cursor / descriptionPrevious value: -"Pagination cursor from previous response"New value: +"Cursor from a previous response, to fetch the next page of results." - changed
Input schema / properties / priorities / descriptionPrevious value: -"Filter by priorities (array)"New value: +"Only return rules with these priorities." - changed
Input schema / properties / query / descriptionPrevious value: -"Free-text search query"New value: +"Keywords to match, e.g. 'lazy loading images'. Omit to list rules by filters only."
11 tool updates
- First observed
audit_url - First observed
check_rule - First observed
explain_rule - First observed
fix_rule - First observed
get_checklist_rules - First observed
get_quick_reference - First observed
get_rule - First observed
get_workflow - First observed
list_categories - First observed
review_code - First observed
search_rules
Related MCP Connectors
Pre-launch website QA: deterministic rule-based scans, readiness score, and blockers for agents.
Audit public webpages and supplied markup for HTML, CSS, SEO, JSON-LD, and link issues.
Scores website pages for communication quality, tracks regressions, surfaces a fix queue.
Scan a web page for accessibility, security, privacy, quality and SEO issues, with fixes.
Related MCP Servers
- AlicenseAqualityCmaintenanceRelease gate agents call before they tell users a public website is ready to ship. Scans public websites across security, SEO, accessibility, legal compliance, and sustainability.9MIT

uxlintofficial
AlicenseAqualityBmaintenanceAudits any site's UX the way a design-literate reviewer would — contrast, tap targets, type scale, colour discipline, scan patterns, copy — and returns the rule, the source line and the exact fix.6Apache 2.0
SEO Score APIofficial
AlicenseNot gradedqualityNot gradedmaintenanceAutomated SEO, AEO, ADA auditing for your website or project.440 npmMIT- AlicenseAqualityCmaintenancePoint your coding agent at a URL and get a real-browser QA audit: broken signup/login/checkout flows, JS console errors, missing analytics, consent + security headers, mobile tap targets, and accessibility — returned as machine-verified findings graded A-F.4436 PyPI2Apache 2.0
Glama MCP Gateway
Add one secure layer between your agents and this server.