Skip to main content
Glama
localhost-qa-mcp

localhost-qa-mcp

by movahedi-ca

localhost-qa-mcp

A localhost-only headless browser MCP server for agent-driven QA.

Agents are good at writing UI code and bad at looking at it. This gives the agent hands on a real headless Chrome for Testing: navigate local dev servers, screenshot at mobile and desktop widths, click through interactions, and assert a clean console with no failed requests — all as MCP tools.

Why not just use an existing browser MCP?

Existing browser MCP servers (Chrome DevTools MCP, Playwright MCP) are general-purpose: they will happily drive the browser anywhere on the public web. This one is deliberately narrower:

  • Localhost-only, enforced in code (src/guard.js). Only localhost, 127.0.0.1, ::1, hostnames resolving exclusively to loopback, and file:// URLs load. Everything else is rejected before the browser sees it. No stealth mode, no fingerprint spoofing, no proxy support.

  • Zero browser download. Uses an existing Chrome for Testing / Playwright Chromium binary instead of fetching one.

  • QA-shaped toolset. Twelve tools covering the local QA loop and nothing else: navigate, snapshot, screenshot, viewport, click, fill, key press, wait, evaluate, console, network, close.

Related MCP server: fovea-web

Install

Node 18+ required.

git clone https://github.com/movahedi-ca/localhost-qa-mcp.git
cd localhost-qa-mcp
npm install

Use

Stdio MCP server:

node src/server.js

CHROME_PATH overrides the Chrome binary location. Default: ~/.cache/ms-playwright/chromium-1246/chrome-linux64/chrome.

Claude Code config:

{
  "mcpServers": {
    "localhost-qa": {
      "command": "node",
      "args": ["/path/to/localhost-qa-mcp/src/server.js"]
    }
  }
}

Test

node test/run.js

24 assertions: every tool against a local fixture page (including its deliberate console error and 404s), guard rejections for external URLs, 0.0.0.0, subdomain tricks, unresolvable hosts, embedded credentials, and non-http schemes, plus interceptor tests proving server-side redirects and evaluate-originated fetches to external hosts are blocked.

Security

See SECURITY.md. Short version: localhost-only is a code guarantee, not a policy; evaluate runs page-context JS only; all browser content is untrusted data, never instructions.

License

MIT — see LICENSE.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      Not graded
      quality
      B
      maintenance
      Enables local opencode agents to control a live Chrome browser via MCP tools, including tab management, JavaScript execution, clicking, form filling, page reading, screenshots, and console log retrieval.
      2
      MIT
    • A
      license
      Not graded
      quality
      C
      maintenance
      Enables cross-browser mobile-first responsive layout auditing and browser automation, including overflow detection, tap target checks, viewport/media query introspection, and screenshot matrices via MCP.
      MIT
    • A
      license
      Not graded
      quality
      C
      maintenance
      Enables AI agents to drive a real Chrome instance over the Chrome DevTools Protocol — opening and navigating tabs, reading compact YAML page outlines with refs, clicking, typing, scrolling, screenshotting, and evaluating scripts — with no browser extension or installed dependencies. It also audits pages for horizontal overflow and WCAG AA contrast, available both as an MCP tool and as a CI-friendly CLI.
      15 npm
      MIT
    • A
      license
      A
      quality
      C
      maintenance
      Enables measuring DOM elements and capturing screenshots in a real local Chrome browser over the DevTools Protocol, with in-page login so httpOnly cookies apply and overlay-masking before capture. It removes common Chrome automation traps such as sandbox kills, WebSocket origin rejection, and Retina pixel scaling, with no npm or Python dependencies beyond the MCP SDK.
      2
      MIT