MCP server for siteglass.io — free local dev-scan of the app you're building (runs a browser on YOUR machine, no account/verification/payment), plus agent-driven web QA, E2E flows, and URL→snapshot archiving.
siteglass MCP has 9 well-named tools with clear action verbs (register, verify, scan, generate, run, render). Descriptions are present and moderately detailed (avg ~150 chars), explaining WHAT each tool does and WHEN to use it in the workflow. Input schemas are visible and typed (z.string(), z.boolean(), z.enum()). However, parameter descriptions are sparse or missing in several tools (e.g., siteglass_render's 'format' enum lacks explanation of what 'rrweb' vs 'pdf' vs 'png' actually produce). Output schemas are NOT documented, responses are free-text summaries without structured field definitions, forcing LLMs to parse unstructured text. Error handling is minimal: most errors return a generic text response without recovery guidance or categorization. No tool annotations (readOnlyHint, destructiveHint, idempotentHint) despite clear risk levels (WRITE, DESTRUCTIVE, READ_ONLY). Tool composition is good, tools chain logically (register → verify → scan → generate → run) and return IDs for polling. Security: API key is auto-created and cached locally, not exposed as a parameter (good), but no audit logging or permission gates visible.
Derive executable E2E test flows from a scan (LLM). Step 4. Returns flow ids.
Poll a render job by render_id (use after siteglass_render if it returned an invoice). If done, returns the permalink + QR code.
Read a flow run's per-step results + capture URLs by run_id (use after siteglass_run_flow if still running).
Read a scan's report + findings by crawl_id (use after siteglass_scan if it was still running).
Register a web app (its deployed URL) with siteglass and get an ownership-proof token to place on it. Step 1.
Archive ANY public web page for a few sats — a permanent, shareable snapshot, returned as a permalink. The bot-friendly alternative to archive.today: no CAPTCHA, no signup, no ownership verification, callable programmatically. Default 'rrweb' captures the live rendered DOM (navigable, post-JS, selectable text + working links); 'pdf' is a single continuous page; 'png' a full-page image. Anonymous calls return a Lightning invoice (pay, then call siteglass_get_render); if your account has credits it archives immediately and returns the permalink.
Output schemas not documented. Tools return free-text summaries (scanSummary, runSummary) without structured field definitions. LLMs must parse unstructured text to extract crawl_id, flow_id, run_id, etc., increasing error likelihood and token waste.
Parameter descriptions incomplete or missing. siteglass_render's 'format' enum (rrweb, pdf, png) lacks explanation of what each format produces. siteglass_run_flow's 'full' boolean lacks detail on what 'destructive actions' means. LLMs cannot infer intent from names alone.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint) despite clear risk levels declared in metadata (READ_ONLY, WRITE, DESTRUCTIVE). Agents cannot distinguish safe vs. unsafe tools without reading descriptions.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 60 | 2026-07-28+ | v2 |
Run one test flow. Returns a run_id; if still running, poll with siteglass_get_run. Step 5.
Crawl a verified site (first scan per site is free). Returns a crawl_id; if still running, poll with siteglass_get_scan. Step 3.
Check that the ownership-proof token is live on the site. Step 2 (after placing the token).
Error handling lacks recovery guidance. Errors return generic text (e.g., 'Error: {j.error}') without categorizing as retryable, user-fixable, or fatal. No suggestions for next steps (e.g., 'Try siteglass_verify_site first').
No confirmation or dry-run pattern for destructive operations. siteglass_run_flow with full=true submits real destructive actions without a confirmation step. Agents can accidentally modify production data.