Skip to main content
Glama

Audit page themes and contrast

audit_theme
Read-onlyIdempotent

Run a read-only theme audit on a public HTTP(S) page, free in full. Fetches but never modifies the page, then checks inline style CSS for brace errors, token gaps, incomplete dark themes, missing body backgrounds, and WCAG body-text contrast. External stylesheets are counted but not fetched. Use audit_endpoint instead for MCP, CORS, discovery, and payment readiness.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
urlYesPublic HTTP(S) page to fetch and inspect. Direct localhost, .local, loopback, private IPv4, and IPv6-literal targets are rejected. Inline style CSS is analyzed; external stylesheets are not fetched.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
noteNoAudit coverage and inline-style limitation.
specNo
errorNoMachine-readable target or fetch failure.
gradeNoOverall grade derived from the check counts.
checksNoEvery inline-CSS theme, token, background, and contrast finding.
detailNoFetch failure detail.
reasonNoWhy the target URL was rejected.
targetNoCanonical page URL inspected.
summaryNo
checkedAtNo

TDQS

A4.7/5.0
Behavior5/5

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

Annotations already mark the tool as read-only, idempotent, open-world, and non-destructive, but the description adds valuable behavioral context: it fetches the page, never modifies it, analyzes inline style CSS, only counts external stylesheets without fetching them, and rejects certain target types. This goes beyond what annotations provide and clarifies the tool's actual runtime behavior.

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

Conciseness5/5

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

The description is three sentences with no wasted words: it front-loads the core action, details the checks and fetch behavior, and closes with a sibling-tool pointer. Every sentence contributes to correct tool selection and use.

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?

With one well-documented parameter, rich annotations, an output schema, explicit target restrictions, and a clear sibling alternative, the description fully covers what an agent needs to invoke the tool correctly. There are no significant missing details about side effects, scope, or selection.

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%, and the schema's url parameter already explains the target restrictions and CSS analysis behavior. The description reinforces the same points but adds little new semantic detail beyond the schema, so the baseline score of 3 is appropriate.

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 and resource: 'Run a read-only theme audit on a public HTTP(S) page.' It then enumerates concrete audit checks such as brace errors, token gaps, incomplete dark themes, missing body backgrounds, and WCAG body-text contrast, making the tool's function unambiguous and distinct from its siblings.

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 clearly states when to use this tool versus audit_endpoint: 'Use audit_endpoint instead for MCP, CORS, discovery, and payment readiness.' It also implies the appropriate use case (theme/contrast/CSS auditing) and notes URL restrictions, giving an agent enough context to select between alternatives.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

TDQS

A4.4/5.0
Disambiguation4/5

Most tools target clearly distinct resources or actions, and cross-references like 'use get_fix instead' sharply reduce confusion. A minor source of ambiguity is the cluster of redemption/offer tools (get_fix, get_skill, get_offer) and the three status-check tools, but their descriptions disambiguate them well.

Naming Consistency5/5

All tools follow a consistent lowercase snake_case verb_noun pattern: audit_, check_, get_, list_, order_, request_, search_, submit_. The naming style is uniform and predictable across different domains.

Tool Count4/5

At 17 tools, the surface is slightly above the ideal 3-15 range but remains justified given the server's broad scope: catalog browsing, paid redemption, audits, services, requests, submissions, and checkout support. It is dense but not bloated.

Completeness4/5

The lifecycle coverage is strong: discover, get, request, submit, check status, order, pay, and redeem are all represented. Minor gaps exist, such as no cancellation/refund path, no way to update a submitted fix, and merch ordering delegated entirely to an external storefront.