Skip to main content
Glama

Scan for AI slop

slop_scan

Scan a website URL, project folder, or HTML file for AI slop; receive a 0–100 score, category scores, ranked findings, and fixes for generic copy and missing trust signals.

Instructions

Scan a website URL, a local project folder (Next.js, Vite/React, Astro, Vue, Svelte, plain HTML, Markdown content…) or a single .html file for AI slop: generic copy, cliché phrasing, template "vibe-coded" design, placeholder leftovers and missing trust signals. Returns a 0-100 slop score, five category scores and findings ranked by impact, each with evidence, a fix and (for folders) file:line locations to edit. Re-scanning the same target automatically shows a before/after comparison. Prefer scanning the project folder when the user is working on the site's code; scan the URL for live sites.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
langNoReport language. Use the language the user is writing in. Default: en.
pagesNoURL only: how many pages of the site to scan. The site is crawled from sitemap.xml and internal links (robots.txt respected), spread across sections; every page gets its own score and findings. Default 30. Use 1 for only the given page.
ignoreNoFolder only: sub-paths to skip, relative to the folder (e.g. ["docs", "src/legacy"]).
renderNoURL only: render with the locally installed Chrome/Edge. "auto" renders only when the server returns an empty JavaScript shell. Default auto.
targetYesA URL (https://example.com, localhost:3000), an absolute or relative project folder path, or a path to an .html file.
compareNoShow a before/after comparison with the previous scan of the same target in this session. Default true.
open_reportNoOpen the visual HTML report in the user's browser when the scan finishes. Only pass true if the user agreed to this. Default false; the report file is written either way.
include_ui_primitivesNoFolder only: also scan components/ui (shadcn primitives). Default false.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.4/5.0
Behavior4/5

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

Adds real behavior beyond the annotations: crawling from sitemap.xml with robots.txt respected, optional local Chrome/Edge rendering, automatic before/after comparison on re-scan, and the fact that a report file is written even when the browser is not opened. It does not contradict readOnlyHint=false/destructiveHint=false, though it could say more about runtime cost and network scope for an openWorldHint tool.

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?

Front-loaded with purpose and return shape, then a concrete usage rule. The one long sentence with the framework list is dense but earns its place by defining scan scope; overall no filler sentences.

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 8 parameters, no output schema, and no return-value documentation in the schema, the description compensates by spelling out the return payload (score, five category scores, ranked findings with evidence, fix, and file:line) and covering the folder/URL/file scoping rules. An agent has what it needs to call this correctly.

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 already 100%, but the description adds interpretation the schema lacks: which target forms count as a 'folder' (Next.js, Vite/React, Astro, Vue, Svelte, plain HTML, Markdown) and the folder-vs-URL-vs-file distinction that drives which parameters apply. That framing is genuinely additive rather than a restatement of the schema descriptions.

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 (scan) and the exact resources it accepts (URL, project folder with framework list, single .html file) plus what it detects (generic copy, cliché phrasing, placeholder leftovers, missing trust signals). The enumeration of supported project types and the description of the returned artifacts (0-100 score, five category scores, ranked findings) leave no ambiguity about what the tool does.

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

Usage Guidelines4/5

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

Explicitly routes the agent: 'Prefer scanning the project folder when the user is working on the site's code; scan the URL for live sites', and open_report adds a consent condition ('Only pass true if the user agreed'). It does not, however, distinguish itself from the closely-named sibling slop_scan_html, which an agent must resolve when the input is raw HTML rather than a file path.

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