QA Vision: an autonomous vision-only web QA agent
An autonomous QA testing agent, exposed as an MCP server, that explores web applications using only screenshots and coordinate-based interaction — no DOM access, no selectors — and treats its own prediction mismatches (expected vs. actual outcome) as QA signal.
Built in-house by Loomworks. The numbers are real.
- context usage reduction (JPEG screenshot optimization)
- 40%context usage reduction (JPEG screenshot optimization)
- primary MCP tools
- 3primary MCP tools
- QA issue categories tracked
- 10QA issue categories tracked
- severity levels
- 5severity levels
The challenge
Most automated web QA tools rely on the DOM or accessibility tree, which means they test what the code says is there, not necessarily what a real user perceives. We wanted an agent that "sees" a web app the way a human tester does — screenshots and clicks only — so its findings reflect actual visual and usability problems, not just structural ones. That constraint also had to be enforced architecturally, not just as a convention, and the agent had to protect the caller's context window rather than flooding it with raw session data.
How we approached it
Vision-Only Architecture
Enforced the no-DOM, no-selector constraint at the browser-controller level, so the agent physically cannot fall back to structural access even under pressure to "just find the button."
Server-Side Agent & Context Management
Built a server-side agent pattern that keeps the MCP caller's context window clean, with automatic context compaction at an 80% threshold and disk-based artifact storage for full audit trails.
Prediction-Based Anomaly Detection
Implemented the core innovation: the agent records its expected outcome before each action, then compares it to what actually happened. Mismatches become QA findings rather than silent failures.
Testing & Optimization
Built out a full pytest/pytest-asyncio suite covering the agent, browser controller, artifact storage, and QA-findings engine, and optimized screenshot handling for a 40% reduction in context usage.
Results
A working MCP server (qa_inspect, get_results, get_session_status) with an autonomous agent loop, a findings engine spanning 10 issue categories and 5 severity levels, and full screenshot-evidence audit trails. Not an Odoo deliverable — it demonstrates general agentic-systems and MCP-server engineering capability rather than Odoo-specific work.
Have a similar project?
Start with a free AI spec interview. We deliver a fixed-scope quote in days, with hours and price locked before you sign.