Skip to main content
Glama

$ impeccable-mcp

Checks a web page for common design mistakes and tells your AI assistant what it found. It uses impeccable's 59 fixed rules in a headless Chrome browser (one with no window), so no AI model or API key is needed for the check itself.

In plain terms: this is for people who use an AI assistant to build websites. The assistant can ask this service to look at a page and report layout, color and accessibility problems.

A Fathom Works project.

[ quick start ]

Run the service in Docker. It listens on port 8000 and needs a secret token that you make up.

$ docker run -d \
  -p 8000:8000 \
  --shm-size=512mb \
  -e IMPECCABLE_MCP_TOKEN=$(openssl rand -hex 32) \
  ghcr.io/jemplayer82/impeccable-mcp:latest

Point your MCP client (MCP = a plug-in standard that lets an AI assistant use a tool) at this address:

http://localhost:8000/mcp

Send the header Authorization: Bearer <IMPECCABLE_MCP_TOKEN>.

Related MCP server: scribe-me

[ usage ]

Your assistant can call four tools. You normally just ask it to check a page.

Tool

Needs a browser

What it does

scan_url

yes

Opens a URL and returns findings, grouped as slop (signs of AI-made design) or quality (accessibility and design issues). Accepts optional headers / cookies for pages that need a login.

scan_html

no

Checks raw HTML/CSS text. Use it on markup before it is saved to disk.

screenshot

yes

Returns a PNG picture of the page.

list_rules

no

Lists every rule with its id, name, category and description.

Header/cookie values you pass to scan_url will appear in the calling agent's transcript. That's a deliberate tradeoff for reaching authenticated pages, not an oversight — see CONTRIBUTING.md. Don't pass anything you wouldn't want logged.

By default scan_url and screenshot refuse addresses on your own network (RFC1918, loopback and link-local targets). This stops a tricked assistant from probing your home or office network. Set IMPECCABLE_ALLOW_PRIVATE=1 only if you need to scan an internal site. Details are in docs/how-it-works.md.

[ configuration ]

Set these as environment variables on the container.

Variable

Required

What it does

IMPECCABLE_MCP_TOKEN

Yes

Bearer token clients must send. Server refuses to start if unset.

PORT

No

Listen port inside the container. Default 8000.

IMPECCABLE_ALLOW_PRIVATE

No

Set to 1 to allow scans of RFC1918/loopback/link-local targets. Default off.

MAX_CONCURRENCY

No

Max concurrent browser-backed scans. Default 2.

BROWSER_IDLE_TIMEOUT_MS

No

Close the idle browser after this long with no scans. Default 300000 (5 min).

[ docs ]

[ license ]

Apache License 2.0 — see LICENSE.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    MCP server to scrape web pages to clean Markdown via headless Chromium, with support for single or batch URLs.
    -
  • A
    license
    A
    quality
    A
    maintenance
    An MCP server for in-loop design review of web previews. It enables agents to submit a preview URL, receive structured findings with suggested fixes, and recheck after applying changes, while never editing code itself.
    5
    2
    MIT