Skip to main content
Glama

Dark patterns

audit_dark_patterns
Read-only

Audit screen copy, HTML or a public URL for deceptive-design (dark pattern) signals: confirmshaming, forced continuity and hard-to-cancel flows, pre-selected options, false urgency and fake scarcity, misdirection by visual weight, hidden costs, trick questions and double negatives, nagging, forced action or registration, disguised ads, obstruction, and social proof without a source. Give text (one string per line, optional prefixes like button:, link:, checkbox:), and/or html, and/or url. Markup signals include checked inputs, a prominent accept button beside a quiet decline link, countdown timers and cancel flows longer than sign-up flows. Each finding has severity, the evidence string and a fix, and echoes frameworks in general terms (FTC negative option guidance, EU Digital Services Act and Consumer Rights Directive, CPRA). Signals for review, not a legal finding.

Tool call template

This tool declares no required parameters. Add optional parameters from the input schema as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {},
    "name": "audit_dark_patterns"
  }
}

Input Schema

NameRequiredDescriptionDefault
urlNoPublic page to fetch and check (static HTML only)
htmlNoPage or component HTML, to catch checked inputs, timers and control styling
textNoScreen copy and control labels, one per line, with optional prefixes such as button:, link:, checkbox:, text:. You can describe flows too: 'signup: 2 steps', 'cancel: 6 steps'.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A4.4/5.0
Behavior5/5

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

Goes well beyond the readOnly/openWorld annotations: it discloses that URL fetching is static HTML only, describes the return shape (severity, evidence string, fix), notes that frameworks are echoed only in general terms, and adds the important caveat 'Signals for review, not a legal finding.' That is exactly the kind of expectation-setting an agent needs for an advisory audit 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 the verb and scope, then dense enumeration. The pattern list is long but functional for triggering; only the repeated restatement of markup signals between sentence two and three is mildly redundant.

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 no output schema, the description carries the return-value burden and does so (findings with severity, evidence, fix), plus it flags the static-HTML fetch limitation and the non-legal nature of results. An agent has enough to call it and interpret the result correctly.

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 coverage is 100%, so the baseline is 3. The description's per-line text format, optional prefixes, and the markup signals it keys on (checked inputs, accept-vs-decline weight, countdown timers, cancel length) largely restate what the parameter descriptions already say, adding little semantics beyond the schema.

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?

Opens with a specific verb+resource (audit screen copy/HTML/URL for deceptive-design signals) and enumerates the exact pattern families it detects, which lets an agent separate it from siblings like audit_page_accessibility, review_ui_copy, or lint_disclosure_copy without opening any schema.

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 states the input combinations ('Give text ... and/or html, and/or url') and what each surface is good for, which is real usage guidance. It stops short of naming when to prefer this over sibling copy-review tools or when not to run it, so no exclusions or alternatives are given.

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.

Resources