MCP server for visual regression testing and migration validation between origin and target websites
10 tools with complete input schemas and descriptions, but quality is uneven. Tool names follow verb_noun convention (init_, resume, next_, diff_, verify_, mark_, skip_, get_). Descriptions are present but brief (10-50 chars), lacking context on WHEN to use each tool or what happens to state. Parameters have types but many lack descriptions (e.g., 'configPath' in init_migration and resume has no description text visible in schema). Output schemas are not documented, LLMs cannot predict what fields to expect. Error handling is minimal; no recovery guidance. No tool annotations (readOnlyHint/destructiveHint). Risk labels (READ_ONLY, WRITE) are metadata but not exposed in MCP schema.
Capture + diff current page.
Return structured FixProposal[] for current page, or for specified pagePath.
Initialize migration from config path.
Mark current page as having known issues (note optional).
Mark current page matched.
Advance to next pending page.
Resume migration from existing state.
Output schemas not documented. LLMs cannot predict return types or plan downstream calls. E.g., what fields does 'status' return? What structure does 'get_fix_proposals' yield?
Parameter descriptions missing or minimal. 'configPath' in init_migration and resume has no description text in schema. LLMs cannot infer what path format is expected (absolute? relative? must exist?).
Tool descriptions too brief (10-50 chars). Lack context on WHEN to use each tool, prerequisites, or state side effects. E.g., 'Mark current page matched' does not explain what 'matched' means or what state changes occur.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 48 | 2026-07-28+ | v2 |
Skip current page with reason.
Get progress summary.
Re-diff current page after edits.
No tool annotations (readOnlyHint/destructiveHint/idempotentHint). Risk labels exist in metadata but are not exposed in MCP schema. LLMs cannot determine which tools are safe to retry or have side effects.
No error handling guidance. If init_migration fails (e.g., config not found), LLM receives no recovery hint. No categorization of errors as retryable, user-fixable, or fatal.