ATR Healer

stroupp/self-healing-mcp
0 starsMITCommunity

Install to Claude Code

This server doesn't publish a one-line install command. Follow the setup in the source repository.

Summary

MCP server for self-healing Selenide + Cucumber regression tests, using AI to fix failed locators and rerun tests.

README.md

ATR Healer

ATR means Automation Test Resilience.

This project is now a local self-healing runner and MCP server for Selenide + Cucumber regression tests. It is not a VS Code extension anymore.

What It Does

Copilot / Continue / Codex
  -> ATR MCP tool or ATR CLI
  -> Cucumber/Selenide test run
  -> failed locator + failed page HTML
  -> Qwen / local fallback healer
  -> safe patch under src/test/**
  -> rerun test
  -> Markdown report

ATR is designed for Java test automation projects that use Page Objects and stable data-test-id selectors.

Commands

Compile ATR:

npm run compile

NPM Package Usage

After ATR is published or packed, users can run it without cloning this repository:

npm install --save-dev atr-healer
npx atr --mode init
npx atr --mode mcp-config --optional-tools true

Global install is also possible:

npm install -g atr-healer
atr --mode init --workspace "C:\path\to\project"
atr --mode mcp-config --optional-tools true

atr --mode init copies lightweight Copilot instructions, prompts, agents, and ATR docs into the target project.

atr --mode mcp-config prints MCP configuration JSON that can be pasted into Copilot/Continue MCP settings.

Before self-healing, the target test project should have a Cucumber failure hook that writes target/failed-page.html. If it is missing, use the installed docs/atr-failure-hook.md instructions to add it under src/test/** before running ATR.

Local Coder LLM

For an internal OpenAI-compatible local coder model, use the local-coder profile. Keep private endpoints and cookies in environment variables:

$env:ATR_LOCAL_CODER_ENDPOINT = "https://<local-llm-host>/v1/chat/completions"
$env:ATR_LOCAL_CODER_COOKIE = "<cookie-name>=<cookie-value>"

atr --workspace "C:\path\to\test-project" `
  --test-command ".\mvnw.cmd test" `
  --feature "src/test/resources/features/example.feature" `
  --scenario "Scenario name" `
  --html-file "target/failed-page.html" `
  --approval-mode auto-test-files `
  --ai-profile local-coder `
  --ai-endpoint "$env:ATR_LOCAL_CODER_ENDPOINT" `
  --ai-cookie-env ATR_LOCAL_CODER_COOKIE

local-coder defaults:

  • provider: openai-compatible
  • model: ONIKS
  • temperature: 0.6
  • max output tokens: 163849
  • JSON response format parameter: disabled
  • API call logs: target/atr-healer/ai-logs

Run the CLI:

npm run atr -- --workspace "C:\path\to\test-project" --test-command ".\\mvnw.cmd test" --feature "src/test/resources/features/transfer.feature" --scenario "Successful transfer" --html-file "target/failed-page.html" --approval-mode auto-test-files --ai-provider openai-compatible --ai-profile alibaba-free --ai-model qwen3.7-plus --ai-endpoint "https://dashscope-intl.aliyuncs.com/compatible-mode/v1" --ai-api-key-env DASHSCOPE_API_KEY

Other CLI modes:

npm run atr -- --mode knowledge --workspace "C:\path\to\project"
npm run atr -- --mode analyze --workspace "C:\path\to\project"
npm run atr -- --mode audit-test-ids --workspace "C:\path\to\project" --page Transfer --project-prefix transfer --include "src/App.jsx"

Start the MCP server:

npm run mcp

Current MCP tools:

atr_knowledge_summary
atr_analyze_project
atr_self_heal_scenario

Optional MCP tools are hidden by default. Enable them when you want Copilot/Continue to access generation-prep workflows:

$env:ATR_MCP_ENABLE_OPTIONAL_TOOLS = "true"
npm run mcp

Optional tools currently include:

atr_audit_test_ids

Qwen Configuration

Keep the DashScope key in your environment:

$env:DASHSCOPE_API_KEY = "<your-key>"

For a permanent Windows user variable:

setx DASHSCOPE_API_KEY "<your-key>"

Open a new terminal after setx.

Safety

In auto-test-files mode, ATR only applies exact changes under:

src/test/**

It must not patch production React source automatically. Adding or changing data-test-id attributes in UI code should be a separate reviewed change.

Docs

  • docs/atr-self-healing.md
  • docs/atr-knowledge-architecture.md
  • docs/codex-atr-usage.md
  • docs/continue-config.example.yaml
  • docs/continue-prompts.md

Mock Project

The example project lives under:

examples/mock-banking-ui

It contains a small React page plus Selenide/Cucumber tests for demonstrating locator healing.

Related MCP servers

Browse all →