MCP Test Automation Framework

MCP Test Automation Framework

Enables AI-powered web test automation with self-healing locators and automatic GitHub checkin.

Category
Visit Server

README

πŸ€– MCP Test Automation Framework

SQA Test Automation powered by Claude/Deepseek AI with self-healing locators and auto GitHub checkin


πŸ—οΈ Architecture

mcp-automation/
β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ mcp/                  # MCP Server (connects AI to browser)
β”‚   β”‚   β”œβ”€β”€ mcp-server.ts     # MCP tool definitions & handlers
β”‚   β”‚   └── index.ts
β”‚   β”œβ”€β”€ core/                 # Core modules
β”‚   β”‚   β”œβ”€β”€ browser-manager.ts  # Playwright browser lifecycle
β”‚   β”‚   β”œβ”€β”€ config.ts           # Settings loader
β”‚   β”‚   └── logger.ts           # Logging utility
β”‚   β”œβ”€β”€ healing/              # Self-Healing Engine
β”‚   β”‚   └── locator-healer.ts   # Alternative locator strategies
β”‚   β”œβ”€β”€ scripts/              # Utility scripts
β”‚   β”‚   └── git-auto-checkin.ts # Auto commit & push to GitHub
β”‚   β”œβ”€β”€ tests/                # Test definitions
β”‚   β”‚   β”œβ”€β”€ types.ts
β”‚   β”‚   └── google-search.ts
β”‚   β”œβ”€β”€ mcp-server-entry.ts   # MCP server entry point
β”‚   └── runner.ts             # Direct test runner
β”œβ”€β”€ config/
β”‚   └── settings.json         # Framework configuration
β”œβ”€β”€ logs/                     # Run logs & screenshots
β”œβ”€β”€ .github/workflows/        # CI/CD pipeline
β”œβ”€β”€ package.json
β”œβ”€β”€ tsconfig.json
└── README.md

πŸ”„ How It Works

  1. AI (Claude/Deepseek) calls MCP tool
          β”‚
          β–Ό
  2. Playwright executes browser action
          β”‚
          β–Ό
  3. Element not found? 
          β”‚
          β–Ό
  4. Self-Healing Engine kicks in
     β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
     β”‚ Tries: role β†’ text β†’        β”‚
     β”‚ placeholder β†’ label β†’ testIdβ”‚
     β”‚ β†’ CSS β†’ XPath β†’ aria-label  β”‚
     β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
          β”‚
          β–Ό
  5. Found? β†’ Logs healing action, proceeds
     Not found? β†’ Screenshot, reports failure
          β”‚
          β–Ό
  6. GitHub Auto Checkin
     β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
     β”‚ Creates branch              β”‚
     β”‚ test-run/<name>-<timestamp> β”‚
     β”‚ Stages & commits all files  β”‚
     β”‚ Pushes to remote            β”‚
     β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

πŸš€ Quick Start

1. Install dependencies

npm install
npx playwright install chromium

2. Configure

Edit config/settings.json:

  • Set AI provider and API keys (via env vars)
  • Configure browser options
  • Set GitHub remote URL

3. Set API Keys (optional β€” for AI features)

set ANTHROPIC_API_KEY=sk-ant-...    # For Claude
set DEEPSEEK_API_KEY=sk-...         # For Deepseek

4. Run tests directly

npm run dev

5. Start MCP Server (for AI assistant connection)

npm run mcp-server

Then connect your AI assistant (Claude/Deepseek) to this MCP server.


πŸ› οΈ MCP Tools Available to AI

Tool Description
navigate Navigate to a URL
click Click an element (with self-healing)
type / fill Type text into fields (with self-healing)
get_text Get element text (with self-healing)
wait_for_selector Wait for element to appear
screenshot Capture page screenshot
press_key Press keyboard keys
run_test Execute a full test case
auto_checkin Commit & push to GitHub
get_healing_summary View self-healing stats

πŸ§ͺ Self-Healing

When a locator fails, the engine tries these strategies in order:

  1. getByRole β€” Find by ARIA role
  2. getByText β€” Find by text content
  3. getByPlaceholder β€” Find by placeholder attribute
  4. getByLabel β€” Find by associated label
  5. getByTestId β€” Find by data-testid
  6. CSS selector β€” Try original selector as CSS
  7. CSS alternatives β€” e.g., textarea β†’ input, attribute variations
  8. [aria-label] β€” Find by aria-label attribute

All healing actions are logged to logs/healing-log.json.


πŸ“€ GitHub Auto Checkin

After each test run, the framework automatically:

  1. Creates a new branch: test-run/<test-name>-<timestamp>
  2. Stages all changed files (tests, logs, screenshots)
  3. Commits with descriptive message
  4. Pushes to remote

πŸ”§ Configuration

See config/settings.json for all options:

Section Key Description
ai provider "auto", "claude", or "deepseek"
browser headless true/false for headed mode
selfHealing enabled Enable/disable self-healing
selfHealing maxRetries Max healing attempts per locator
github autoCheckin Enable auto commit/push
logging level "debug", "info", "warn", "error"

πŸ“„ License

MIT

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured