425 lines
10 KiB
Markdown
425 lines
10 KiB
Markdown
---
|
|
title: "Enable TEA MCP Enhancements"
|
|
description: Configure Playwright MCP servers for live browser verification during TEA workflows
|
|
---
|
|
|
|
# Enable TEA MCP Enhancements
|
|
|
|
Configure Model Context Protocol (MCP) servers to enable live browser verification, exploratory mode, and recording mode in TEA workflows.
|
|
|
|
## What are MCP Enhancements?
|
|
|
|
MCP (Model Context Protocol) servers enable AI agents to interact with live browsers during test generation. This allows TEA to:
|
|
|
|
- **Explore UIs interactively** - Discover actual functionality through browser automation
|
|
- **Verify selectors** - Generate accurate locators from real DOM
|
|
- **Validate behavior** - Confirm test scenarios against live applications
|
|
- **Debug visually** - Use trace viewer and screenshots during generation
|
|
|
|
## When to Use This
|
|
|
|
**For UI Testing:**
|
|
- Want exploratory mode in `test-design` (browser-based UI discovery)
|
|
- Want recording mode in `atdd` or `automate` (verify selectors with live browser)
|
|
- Want healing mode in `automate` (fix tests with visual debugging)
|
|
- Need accurate selectors from actual DOM
|
|
- Debugging complex UI interactions
|
|
|
|
**For API Testing:**
|
|
- Want healing mode in `automate` (analyze failures with trace data)
|
|
- Need to debug test failures (network responses, request/response data, timing)
|
|
- Want to inspect trace files (network traffic, errors, race conditions)
|
|
|
|
**For Both:**
|
|
- Visual debugging (trace viewer shows network + UI)
|
|
- Test failure analysis (MCP can run tests and extract errors)
|
|
- Understanding complex test failures (network + DOM together)
|
|
|
|
**Don't use if:**
|
|
- You don't have MCP servers configured
|
|
|
|
## Prerequisites
|
|
|
|
- BMad Method installed
|
|
- TEA agent available
|
|
- IDE with MCP support (Cursor, VS Code with Claude extension)
|
|
- Node.js v18 or later
|
|
- Playwright installed
|
|
|
|
## Available MCP Servers
|
|
|
|
**Two Playwright MCP servers** (actively maintained, continuously updated):
|
|
|
|
### 1. Playwright MCP - Browser Automation
|
|
|
|
**Command:** `npx @playwright/mcp@latest`
|
|
|
|
**Capabilities:**
|
|
- Navigate to URLs
|
|
- Click elements
|
|
- Fill forms
|
|
- Take screenshots
|
|
- Extract DOM information
|
|
|
|
**Best for:** Exploratory mode, recording mode
|
|
|
|
### 2. Playwright Test MCP - Test Runner
|
|
|
|
**Command:** `npx playwright run-test-mcp-server`
|
|
|
|
**Capabilities:**
|
|
- Run test files
|
|
- Analyze failures
|
|
- Extract error messages
|
|
- Show trace files
|
|
|
|
**Best for:** Healing mode, debugging
|
|
|
|
### Recommended: Configure Both
|
|
|
|
Both servers work together to provide full TEA MCP capabilities.
|
|
|
|
## Setup
|
|
|
|
### 1. Configure MCP Servers
|
|
|
|
Add to your IDE's MCP configuration:
|
|
|
|
```json
|
|
{
|
|
"mcpServers": {
|
|
"playwright": {
|
|
"command": "npx",
|
|
"args": ["@playwright/mcp@latest"]
|
|
},
|
|
"playwright-test": {
|
|
"command": "npx",
|
|
"args": ["playwright", "run-test-mcp-server"]
|
|
}
|
|
}
|
|
}
|
|
```
|
|
|
|
See [TEA Overview](/docs/tea/explanation/tea-overview.md#playwright-mcp-enhancements) for IDE-specific config locations.
|
|
|
|
### 2. Enable in BMAD
|
|
|
|
Answer "Yes" when prompted during installation, or set in config:
|
|
|
|
```yaml
|
|
# _bmad/bmm/config.yaml
|
|
tea_use_mcp_enhancements: true
|
|
```
|
|
|
|
### 3. Verify MCPs Running
|
|
|
|
Ensure your MCP servers are running in your IDE.
|
|
|
|
## How MCP Enhances TEA Workflows
|
|
|
|
### test-design: Exploratory Mode
|
|
|
|
**Without MCP:**
|
|
- TEA infers UI functionality from documentation
|
|
- Relies on your description of features
|
|
- May miss actual UI behavior
|
|
|
|
**With MCP:**
|
|
TEA can open live browser to:
|
|
```
|
|
"Let me explore the profile page to understand the UI"
|
|
|
|
[TEA navigates to /profile]
|
|
[Takes screenshot]
|
|
[Extracts accessible elements]
|
|
|
|
"I see the profile has:
|
|
- Name field (editable)
|
|
- Email field (editable)
|
|
- Avatar upload button
|
|
- Save button
|
|
- Cancel button
|
|
|
|
I'll design tests for these interactions."
|
|
```
|
|
|
|
**Benefits:**
|
|
- Accurate test design based on actual UI
|
|
- Discovers functionality you might not describe
|
|
- Validates test scenarios are possible
|
|
|
|
### atdd: Recording Mode
|
|
|
|
**Without MCP:**
|
|
- TEA generates selectors from best practices
|
|
- TEA infers API patterns from documentation
|
|
|
|
**With MCP (Recording Mode):**
|
|
|
|
**For UI Tests:**
|
|
```
|
|
[TEA navigates to /login with live browser]
|
|
[Inspects actual form fields]
|
|
|
|
"I see:
|
|
- Email input has label 'Email Address' (not 'Email')
|
|
- Password input has label 'Your Password'
|
|
- Submit button has text 'Sign In' (not 'Login')
|
|
|
|
I'll use these exact selectors."
|
|
```
|
|
|
|
**For API Tests:**
|
|
```
|
|
[TEA analyzes trace files from test runs]
|
|
[Inspects network requests/responses]
|
|
|
|
"I see the API returns:
|
|
- POST /api/login → 200 with { token, userId }
|
|
- Response time: 150ms
|
|
- Required headers: Content-Type, Authorization
|
|
|
|
I'll validate these in tests."
|
|
```
|
|
|
|
**Benefits:**
|
|
- UI: Accurate selectors from real DOM
|
|
- API: Validated request/response patterns from trace
|
|
- Both: Tests work on first run
|
|
|
|
### automate: Healing + Recording Modes
|
|
|
|
**Without MCP:**
|
|
- TEA analyzes test code only
|
|
- Suggests fixes based on static analysis
|
|
- Generates tests from documentation/code
|
|
|
|
**With MCP:**
|
|
|
|
**Healing Mode (UI + API):**
|
|
```
|
|
[TEA opens trace file]
|
|
[Analyzes screenshots + network tab]
|
|
|
|
UI failures: "Button selector changed from 'Save' to 'Save Changes'"
|
|
API failures: "Response structure changed, expected {id} got {userId}"
|
|
|
|
[TEA makes fixes]
|
|
[Verifies with trace analysis]
|
|
```
|
|
|
|
**Recording Mode (UI + API):**
|
|
```
|
|
UI: [Inspects actual DOM, generates verified selectors]
|
|
API: [Analyzes network traffic, validates request/response patterns]
|
|
|
|
[Generates tests with verified patterns]
|
|
[Tests work on first run]
|
|
```
|
|
|
|
**Benefits:**
|
|
- Visual debugging + trace analysis (not just UI)
|
|
- Verified selectors (UI) + network patterns (API)
|
|
- Tests verified against actual application behavior
|
|
|
|
## Usage Examples
|
|
|
|
### Exploratory Mode Example
|
|
|
|
```
|
|
User: Run test-design
|
|
|
|
TEA: What feature are you designing tests for?
|
|
|
|
User: The checkout flow at https://shop.example.com
|
|
|
|
TEA: [With MCP] Let me explore the checkout flow
|
|
[Opens browser]
|
|
[Navigates to checkout]
|
|
[Takes screenshots]
|
|
[Identifies all interactive elements]
|
|
|
|
TEA: I've explored the checkout flow. I found:
|
|
- 4-step wizard (Cart → Shipping → Payment → Confirm)
|
|
- Shipping options (Standard, Express, Overnight)
|
|
- Payment methods (Credit Card, PayPal)
|
|
- Promo code field
|
|
- Order summary with real-time totals
|
|
|
|
Test design will cover all these scenarios.
|
|
```
|
|
|
|
### Recording Mode Example
|
|
|
|
```
|
|
User: Run atdd for user registration feature
|
|
|
|
TEA: [With MCP] Let me verify the registration form selectors
|
|
[Opens browser at /register]
|
|
[Inspects form]
|
|
|
|
TEA: I see the actual form has:
|
|
- "Full Name" label (not "Name")
|
|
- "Email Address" label (not "Email")
|
|
- "Create Password" label (not "Password")
|
|
- "I agree to Terms" checkbox
|
|
- "Create Account" button (not "Register")
|
|
|
|
Generating tests with verified selectors...
|
|
```
|
|
|
|
### Healing Mode Example
|
|
|
|
```
|
|
User: Run automate with healing mode
|
|
|
|
TEA: [With MCP] Running tests and checking for failures
|
|
[Runs test suite]
|
|
[Test fails: selector not found]
|
|
|
|
TEA: Test failed on selector '.submit-btn'
|
|
[Opens trace viewer]
|
|
[Sees button class changed to '.submit-button']
|
|
|
|
Fixing selector and verifying...
|
|
[Updates test]
|
|
[Re-runs with MCP]
|
|
[Test passes]
|
|
|
|
Updated test with corrected selector.
|
|
```
|
|
|
|
## Troubleshooting
|
|
|
|
### MCP Servers Not Running
|
|
|
|
**Problem:** TEA says MCP enhancements aren't available.
|
|
|
|
**Causes:**
|
|
1. MCP servers not configured in IDE
|
|
2. Config syntax error in JSON
|
|
3. IDE not restarted after config
|
|
|
|
**Solution:**
|
|
```bash
|
|
# Verify MCP config file exists
|
|
ls ~/.cursor/config.json
|
|
|
|
# Validate JSON syntax
|
|
cat ~/.cursor/config.json | python -m json.tool
|
|
|
|
# Restart IDE
|
|
# Cmd+Q (quit) then reopen
|
|
```
|
|
|
|
### Browser Doesn't Open
|
|
|
|
**Problem:** MCP enabled but browser never opens.
|
|
|
|
**Causes:**
|
|
1. Playwright browsers not installed
|
|
2. Headless mode enabled
|
|
3. MCP server crashed
|
|
|
|
**Solution:**
|
|
```bash
|
|
# Install browsers
|
|
npx playwright install
|
|
|
|
# Check MCP server logs (in IDE)
|
|
# Look for error messages
|
|
|
|
# Try manual MCP server
|
|
npx @playwright/mcp@latest
|
|
# Should start without errors
|
|
```
|
|
|
|
### TEA Doesn't Use MCP
|
|
|
|
**Problem:** `tea_use_mcp_enhancements: true` but TEA doesn't use browser.
|
|
|
|
**Causes:**
|
|
1. Config not saved
|
|
2. Workflow run before config update
|
|
3. MCP servers not running
|
|
|
|
**Solution:**
|
|
```bash
|
|
# Verify config
|
|
grep tea_use_mcp_enhancements _bmad/bmm/config.yaml
|
|
# Should show: tea_use_mcp_enhancements: true
|
|
|
|
# Restart IDE (reload MCP servers)
|
|
|
|
# Start fresh chat (TEA loads config at start)
|
|
```
|
|
|
|
### Selector Verification Fails
|
|
|
|
**Problem:** MCP can't find elements TEA is looking for.
|
|
|
|
**Causes:**
|
|
1. Page not fully loaded
|
|
2. Element behind modal/overlay
|
|
3. Element requires authentication
|
|
|
|
**Solution:**
|
|
TEA will handle this automatically:
|
|
- Wait for page load
|
|
- Dismiss modals if present
|
|
- Handle auth if needed
|
|
|
|
If persistent, provide TEA more context:
|
|
```
|
|
"The element is behind a modal - dismiss the modal first"
|
|
"The page requires login - use credentials X"
|
|
```
|
|
|
|
### MCP Slows Down Workflows
|
|
|
|
**Problem:** Workflows take much longer with MCP enabled.
|
|
|
|
**Cause:** Browser automation adds overhead.
|
|
|
|
**Solution:**
|
|
Use MCP selectively:
|
|
- **Enable for:** Complex UIs, new projects, debugging
|
|
- **Disable for:** Simple features, well-known patterns, API-only testing
|
|
|
|
Toggle quickly:
|
|
```yaml
|
|
# For this feature (complex UI)
|
|
tea_use_mcp_enhancements: true
|
|
|
|
# For next feature (simple API)
|
|
tea_use_mcp_enhancements: false
|
|
```
|
|
|
|
## Related Guides
|
|
|
|
**Getting Started:**
|
|
- [TEA Lite Quickstart Tutorial](/docs/tea/tutorials/tea-lite-quickstart.md) - Learn TEA basics first
|
|
|
|
**Workflow Guides (MCP-Enhanced):**
|
|
- [How to Run Test Design](/docs/tea/how-to/workflows/run-test-design.md) - Exploratory mode with browser
|
|
- [How to Run ATDD](/docs/tea/how-to/workflows/run-atdd.md) - Recording mode for accurate selectors
|
|
- [How to Run Automate](/docs/tea/how-to/workflows/run-automate.md) - Healing mode for debugging
|
|
|
|
**Other Customization:**
|
|
- [Integrate Playwright Utils](/docs/tea/how-to/customization/integrate-playwright-utils.md) - Production-ready utilities
|
|
|
|
## Understanding the Concepts
|
|
|
|
- [TEA Overview](/docs/tea/explanation/tea-overview.md) - MCP enhancements in lifecycle
|
|
- [Engagement Models](/docs/tea/explanation/engagement-models.md) - When to use MCP enhancements
|
|
|
|
## Reference
|
|
|
|
- [TEA Configuration](/docs/tea/reference/configuration.md) - tea_use_mcp_enhancements option
|
|
- [TEA Command Reference](/docs/tea/reference/commands.md) - MCP-enhanced workflows
|
|
- [Glossary](/docs/tea/glossary/index.md#test-architect-tea-concepts) - MCP Enhancements term
|
|
|
|
---
|
|
|
|
Generated with [BMad Method](https://bmad-method.org) - TEA (Test Architect)
|