@fasttest-ai/qa-agent
v0.4.3
Published
FastTest Agent — MCP server that turns your coding agent into a QA engineer. Test, explore, and break web apps using Playwright.
Maintainers
Readme
FastTest Agent
An MCP server that turns your coding agent into a QA engineer. Test, explore, and break web apps using Playwright -- driven entirely by your AI's reasoning.
npx -y @fasttest-ai/qa-agent installWhat it does
FastTest Agent is a Model Context Protocol server that gives coding agents (Claude Code, Cursor, Windsurf, VS Code Copilot, Codex) the ability to:
- Test web applications by driving a real browser
- Explore apps to discover pages, forms, and flows
- Heal broken CSS selectors automatically
- Save tests as reusable suites for CI/CD replay and in editor replay
- Break apps with adversarial inputs (chaos mode)
The MCP server provides browser tools and structured prompts.
How it works
Your IDE (Claude Code, Cursor, etc.)
│
├── Reasoning (your coding agent)
│
└── Tools (this MCP server)
├── browser_navigate, browser_click, browser_fill, ...
├── test, explore, chaos, vibe_shield
├── heal (selector self-repair)
└── save_suite, run (cloud features)- You say "test the login flow on localhost:3000"
- The
testtool navigates to the URL, captures a page snapshot, and returns testing instructions - Your coding agent reads the snapshot and drives browser tools to execute tests
- Results are reported inline. Optionally, save as a suite for CI/CD.
Installation
Claude Code (recommended)
npx -y @fasttest-ai/qa-agent installThis registers the MCP server and auto-approves its tools.
Other IDEs
Add to your MCP configuration:
{
"mcpServers": {
"fasttest": {
"command": "npx",
"args": ["-y", "@fasttest-ai/qa-agent"]
}
}
}Quick start
Once installed, just ask your coding agent:
"Test the login flow on http://localhost:3000"
"Explore my app at http://localhost:5173 and find all testable flows"
"Break my app at http://localhost:3000/signup"Tools
Browser tools (16)
Direct Playwright wrappers for page interaction:
| Tool | Description |
| ---------------------------------------- | ------------------------------------------------------------- |
| browser_navigate | Navigate to a URL |
| browser_click | Click an element |
| browser_fill | Fill a form field |
| browser_fill_form | Fill multiple fields at once |
| browser_screenshot | Capture a screenshot |
| browser_snapshot | Get the accessibility tree |
| browser_assert | Run assertions (visible, hidden, text, URL, count, attribute) |
| browser_wait | Wait for an element or timeout |
| browser_press_key | Press keyboard keys |
| browser_evaluate | Execute JavaScript |
| browser_console_logs | Get console log messages |
| browser_save_session | Save cookies/localStorage |
| browser_restore_session | Restore a saved session |
| browser_go_back / browser_go_forward | History navigation |
| browser_handle_dialog | Accept/dismiss alerts |
| browser_file_upload | Upload files |
| browser_drag | Drag and drop |
| browser_resize | Resize viewport |
| browser_tabs | Manage browser tabs |
| browser_network_requests | List captured network requests |
Domain tools (14)
Higher-level tools that return structured prompts for your coding agent:
| Tool | Description |
| ----------------- | ------------------------------------------------------------------- |
| test | Test a web app (navigates, snapshots, returns testing instructions) |
| explore | Discover pages, forms, and flows |
| chaos | Adversarial testing (XSS, SQL injection, fuzzing) |
| vibe_shield | One-command safety net: explore, generate tests, run regressions |
| heal | Fix broken CSS selectors using multiple strategies |
| setup | Authenticate with FastTest cloud (device auth flow) |
| save_suite | Save tests as a reusable suite |
| update_suite | Update existing test cases |
| run | Execute a saved test suite |
| status | Check execution status |
| cancel | Cancel a running execution |
| list_projects | List QA projects |
| list_suites | List test suites |
| health | Check backend connectivity |
| healing_history | View selector healing patterns |
Cloud features (optional)
FastTest Agent works fully offline with browser tools. For persistent test suites, CI/CD replay, regression tracking, and a dashboard, connect to FastTest Cloud:
> Use the setup tool to connect to FastTest cloudThis opens a browser for secure device authentication. Once connected:
save_suitepersists tests for replayrunexecutes suites and tracks regressionsvibe_shieldon subsequent calls shows what broke since last run- CI runner (
fasttest-ci) runs suites in GitHub Actions
CI/CD usage
# .github/workflows/tests.yml
- name: Run FastTest suite
run: npx -y @fasttest-ai/qa-agent ci --api-key ${{ secrets.FASTTEST_API_KEY }} --suite-id ${{ vars.SUITE_ID }}Use {{VAR_NAME}} placeholders in test steps for secrets (passwords, API keys). The runner resolves them from environment variables at execution time.
CLI flags
--api-key <key> Organization API key
--base-url <url> Cloud API URL (default: https://api.fasttest.ai)
--headed Show browser window (debug mode)
--browser <type> chromium | firefox | webkit (default: chromium)Architecture
local-skill/
src/
index.ts MCP server — tool registration and routing
browser.ts Playwright lifecycle, sessions, dialogs
actions.ts Browser action wrappers (navigate, click, fill, etc.)
runner.ts Test execution orchestrator
healer.ts Selector healing cascade
cloud.ts HTTPS client to FastTest cloud API
config.ts Config file management (~/.fasttest/)
variables.ts {{VAR}} placeholder resolution
cli.ts CI runner (no MCP dependency)Key design principle: the MCP server never calls an LLM. Your coding agent drives all browser interactions using its own reasoning. The server provides tools and structured prompts.
Development
npm install
npm run build # Compile TypeScript
npm run dev # Watch modeLicense
Apache-2.0
