Skip to main content
Glama

Tester Agent

Tester Agent is an open-source MCP server for exploratory web QA. A model in Codex or Antigravity can inspect a live Chromium page, see its viewport, click and fill controls, verify outcomes, and export findings for developers. Each project supplies a URL and its test criteria; there is no project-specific Playwright script to write.

  • Functional QA: check single scenarios or complete workflows with ordered checkpoints and assertions.

  • Visual QA: compare desktop and mobile, inspect layout and accessibility signals, and attach screenshot evidence to findings.

  • Defensive QA: observe transport, headers, cookie flags and password forms. Verify expected sign-in, sign-out and role behavior through the normal UI with QA accounts. This is not a penetration testing tool.

Install from GitHub

Requires Node.js 24+, npm and the Chromium build installed by Playwright. The installer targets macOS and Linux; Codex setup uses the codex CLI. If that CLI is unavailable, register the MCP manually in Codex Desktop.

git clone https://github.com/datb2404981/tester-agent-mcp.git
cd tester-agent-mcp
npm ci
npx playwright install chromium
node scripts/install.mjs --dry-run --only=codex
node scripts/install.mjs --only=codex

For Antigravity, use node scripts/install.mjs --only=antigravity. Omit --only to install both. Restart Codex Desktop or reload Antigravity's MCP configuration and open a new chat. If migrating a recognized older Tester Agent install, preview the change with --dry-run --replace-managed first. The installer also installs six QA skills; the server exposes those same guides as MCP prompts and resources.

For manual setup, add a stdio server called tester-agent. Set the command to the absolute path to Node (find it with node -p 'process.execPath'), and set its sole argument to the absolute path to src/server.mjs in the clone. The skills are also available in the repository's skills directory.

Related MCP server: QualityMax QA MCP

Try it in a new chat

With your local test app running, replace the URL below with its address:

Dùng Tester Agent kiểm tra http://localhost:3000. Bắt đầu ở chế độ chỉ đọc. Nhìn giao diện trên desktop và mobile, tìm tràn ngang và lỗi trợ năng. Ghi rõ các kiểm tra đã làm và xuất báo cáo Markdown cho dev.

For a workflow that changes data, provide the expected outcome, authorized QA environment and disposable test data. The model drives the browser tool by tool. The MCP server has no separate model provider or API key; visual judgment requires an MCP client and model that can consume image results. This version runs browser QA and read-only scans through the connected model, without an Explorbot script runner.

Register remote targets with environment=qa and allowRemote=true. Use allowWrites=true only for authorized test data. Register necessary API or asset origins in allowedOrigins. Page navigation is limited to the registered site and base path; assets and APIs can use registered origins. The server stops at HTTP redirects, so flows that require a redirect (such as some sign-in and SSO flows) are blocked. Use the final URL for read-only checks where applicable. Read-only mode limits requests and interaction, but a GET can still have side effects. Use isolated QA data and review evidence before sharing it. Input masking and text redaction do not guarantee that a page contains no sensitive data.

Reports

tester_browser_finish and tester_test_web return the original report and a bug report in JSON and Markdown. The default output directory is ~/.tester-agent/projects/<project>/output/reports. Set TESTER_STATE_DIR to use a different root. List and read the reports with tester_project_artifacts and tester_project_read_artifact.

Each finding carries a severity, expected and actual behavior, reproduction steps when recorded, evidence, and verification status. PASS applies only to the completed checks. FAIL records a failed check or observed error; BLOCKED means execution or evidence was incomplete. REVIEW_REQUIRED marks signals or findings that need judgment. OBSERVED describes a passive audit, without a claim of security or WCAG compliance. A scan does not verify business workflows.

Update or remove

To update, run git pull --ff-only, npm ci and npx playwright install chromium inside the clone. Reload your MCP client. To remove the server, run codex mcp remove tester-agent or remove its entry from Antigravity's MCP settings. Installed skills and report data can be removed separately.

Run npm test after installing Chromium. The suite runs against a disposable local website and does not require model credentials.

MIT license

Available Tools

18 tools
tester_browser_accessibility_auditKiểm tra dấu hiệu lỗi accessibility trên DOM thực tếA

Phát hiện input thiếu nhãn, button/link thiếu tên, ảnh thiếu alt và nhảy cấp heading. Đây là kiểm tra một phần, vấn đề được đánh dấu REVIEW_REQUIRED để model xác minh.

Inputs: project (required).

tester_browser_actionAI thao tác trình duyệtB

Điều hướng, click theo vai trò/CSS hoặc tọa độ từ ảnh, điền input, nhấn phím, hover và cuộn. Click tọa độ, điền và nhấn phím cần allowWrites=true. Chỉ dùng dữ liệu QA giả.

Inputs: action (required), project (required), x, y, +6 more.

tester_browser_assertAI kiểm chứng kết quảB

Xác nhận UI, URL, trạng thái HTTP đã quan sát trong test case hoặc tràn ngang. Mã HTTP không đủ để kết luận phân quyền hoặc nghiệp vụ thành công nếu thiếu kiểm tra trạng thái cuối.

Inputs: type (required), project (required), name, path, +4 more.

tester_browser_caseAI bắt đầu hoặc kết thúc một test caseC

kind=check dành cho kiểm tra đơn giản. kind=flow dành cho E2E, phải khai báo trước các bước và kiểm chứng từng bước bằng tester_browser_step và assertion. Thiếu bước sẽ BLOCKED.

Inputs: phase (required), project (required), kind, name, +3 more.

tester_browser_finishĐóng phiên và xuất báo cáo kiểm thửB

Ghi lại các thao tác cùng kết quả assertion, trả về PASS/FAIL/BLOCKED và lưu báo cáo đúng dự án.

Inputs: project (required).

tester_browser_inspectAI quan sát trạng thái websiteB

Trả về nội dung giao diện và lỗi JS hiện tại để AI tự khám phá, sinh bước kiểm thử tiếp theo.

Inputs: project (required).

tester_browser_layout_auditĐo lỗi tràn ngang ở viewport hiện tạiC

Đọc chiều rộng trang tại desktop hoặc mobile. Chỉ số tràn ngang cần được đối chiếu với ảnh để nhận định lỗi UI.

Inputs: project (required).

tester_browser_resizeAI đổi kích thước màn hình để kiểm thử responsiveA

Đổi viewport desktop 1366×768 hoặc mobile 390×844 mà vẫn giữ phiên đăng nhập và trang hiện tại.

Inputs: project (required), viewport (required).

tester_browser_security_auditAI quan sát cấu hình bảo mật của trangB

Kiểm tra thụ động HTTPS, header, cookie phiên và form mật khẩu trên trang đang mở. Không gửi request bổ sung hay thử payload tấn công. Cảnh báo là REVIEW_REQUIRED.

Inputs: project (required).

tester_browser_seeMắt của AI: nhìn giao diện thật bằng hình ảnhB

Trả về JPEG trực tiếp dưới dạng ảnh MCP cùng accessibility tree, kích thước viewport và lỗi JS. Dùng sau khi mở trang hoặc mỗi thao tác để model đa phương thức tự quan sát và phát hiện lỗi giao diện.

Inputs: project (required).

tester_browser_startAI mở phiên kiểm thử trình duyệtB

Mở Chromium theo dự án đã đăng ký. Sau đó gọi tester_browser_see để model thực sự nhìn thấy ảnh website.

Inputs: project (required), goal, page, viewport.

tester_browser_stepAI kiểm chứng từng bước của luồng E2EC

Bắt đầu bước theo thứ tự của tester_browser_case kind=flow, thao tác và kiểm chứng bằng tester_browser_assert, rồi finish bước. Bước không có assertion thực tế sẽ BLOCKED.

Inputs: id (required), phase (required), project (required).

tester_browser_visual_findingAI ghi nhận lỗi giao diện bằng bằng chứng hình ảnhB

Sau khi nhìn ảnh qua tester_browser_see, model ghi lỗi bố cục, responsive, màu chữ, khoảng cách, nút che khuất hoặc đề xuất thẩm mỹ. Tự chụp ảnh bằng chứng và đưa vào báo cáo QA theo dự án. Đánh giá thẩm mỹ của AI được đánh dấu REVIEW_REQUIRED.

Inputs: kind (required), project (required), category (required), severity (required), +5 more.

tester_project_artifactsBáo cáo kiểm thử theo dự ánC

Liệt kê báo cáo QA của một dự án được đăng ký.

Inputs: project (required), kind.

tester_project_read_artifactĐọc kết quả kiểm thử theo dự ánC

Đọc báo cáo QA của dự án cụ thể.

Inputs: kind (required), name (required), project (required).

tester_projectsDanh sách dự án webB

Liệt kê dự án đã đăng ký, URL và quyền kiểm thử.

Inputs: no named parameters.

tester_register_projectĐăng ký website cần kiểm thửA

Đăng ký một dự án web bất kỳ theo URL. Mặc định chỉ chấp nhận localhost và chỉ đọc. Website QA từ xa cần allowRemote=true. Muốn AI tự bấm form trong QA phải bật allowWrites=true.

Inputs: baseUrl (required), project (required), allowRemote, allowWrites, +2 more.

tester_test_webTester Agent kiểm thử websiteB

Kiểm tra trang, console, HTTP và responsive bằng Playwright. Dùng tester_browser_* cho các luồng nghiệp vụ có thao tác và assertion.

Inputs: project (required), mode, page, maxPages, +1 more.

Tool Schema Changelog

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

Loading tool schema changelog…

    TDQS

    B3.2/5.0

    Scored across 18 tools

    Disambiguation3/5

    Most tools have distinct roles and the descriptions explicitly steer usage (tester_test_web tells the caller to use tester_browser_* for flows), but two pairs genuinely overlap: tester_browser_see vs tester_browser_inspect both return rendered content and JS errors, and tester_browser_layout_audit vs tester_browser_visual_finding both concern layout/visual defects. tester_test_web also partially duplicates the one-shot check path of tester_browser_case kind=check.

    Naming Consistency4/5

    A predictable scheme is used: tester_* for project/report operations and tester_browser_* for the 13-14 session tools, all snake_case with noun or verb tails. Minor deviations exist in verb style (tester_browser_step, tester_browser_case are noun-like rather than imperative), but the prefix grouping makes the set easy to scan.

    Tool Count3/5

    18 tools is on the heavy side for a single-purpose agent and sits in the 16-25 'feels heavy' band. Several audit tools (security/layout/accessibility) could plausibly be one parameterized audit tool, and see/inspect could merge, but each tool still maps to a discrete step of a QA pipeline.

    Completeness5/5

    Coverage is strong end to end: project registration/listing, session start and viewport control, case/step/assert lifecycle, multi-dimension auditing, visual-finding capture, and PASS/FAIL/BLOCKED report persistence plus artifact listing/reading. Only a session-close/cleanup or project-delete operation is absent, which doesn't block the main workflows.

    Maintenance

    ActivityMaintained
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      A
      quality
      B
      maintenance
      Enables coding agents to independently verify web changes by scanning pages, inspecting UI structure, generating Playwright reproductions, and executing tests with structured QA evidence.
      4
      85 npm
      4
      MIT
    • A
      license
      Not graded
      quality
      B
      maintenance
      Provides browser control and testing tools for AI agents, enabling step-by-step web app testing with user confirmation, bug evidence capture, and report generation.
      1
      MIT