Internal platform build — not a client engagement
Internal platform (developer tooling)Custom Software Development

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

  1. 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."

  2. 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.

  3. 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.

  4. 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.

Fixed scope, locked priceYour code, your control