MCP Hub
Back to servers

ats-mcp

Test automation across web, mobile, desktop, API, and SAP GUI via ActionTestScript. 30 tools covering the Playwright MCP surface plus native multi-platform reach.

glama
Updated
Apr 16, 2026

ats-mcp

An MCP server that lets an LLM drive ActionTestScript test sessions — web, mobile, desktop, and API — through ats-core's REPL.

Use it with Claude Code, Claude Desktop, Cursor, or any MCP-capable client to have the assistant actually interact with a system under test: launch channels, click elements, capture screenshots, inspect the DOM or the mobile view hierarchy, run ATS scripts — all as tool calls.

Two distributions are available, both wired to the same set of tools:

InstallBest for
npmnpx -y ats-mcp (package)Node-friendly devs, the broader MCP community
JARDownload ats-mcp-X.Y.Z.jar from ReleasesUsers who already have Java but no Node

How it works

MCP client (Claude Code / Desktop / …)
         │
         ▼
   ats-mcp launcher  (Node OR Java — see /node and /java in this repo)
         │
   spawns / loads
         │
         ▼
  AtsReplServer (ats-core)
         │
  ┌──────┼──────┬───────┐
  ▼      ▼      ▼       ▼
 web   mobile  desktop api

On first use, the launcher provisions everything ATS needs under ~/.actiontestscript/:

  • libs — downloaded from https://actiontestscript.org/releases/ats-libs/<version>.zip if ~/.actiontestscript/libs/ is missing.
  • system driver (for desktop-app automation) — latest version pulled from https://actiontestscript.org/releases/ats-drivers/<os>/system/, upgraded automatically when a newer one is published.
  • browser drivers — fetched on-demand by ats-core itself on the first start_channel per browser/version.

No manual install step — npx -y ats-mcp or java -jar ats-mcp.jar is enough to go from zero to web/desktop/api automation.

Prerequisites

  • Java 17+ (always required — ats-core is JVM). Install from Adoptium Temurin or your package manager.
  • Node 18+ (only if you use the npm distribution). Install from nodejs.org or your package manager.

No Maven required — both distributions ship pre-built. Maven is only needed to build the JAR from source (see java/).

Configure your MCP client

Claude Code

Add a .mcp.json at the project root:

{
  "mcpServers": {
    "ats": {
      "command": "npx",
      "args": ["-y", "ats-mcp@latest"]
    }
  }
}

Or, with the JAR:

{
  "mcpServers": {
    "ats": {
      "command": "java",
      "args": ["-jar", "/path/to/ats-mcp-0.4.0.jar"]
    }
  }
}

Claude Desktop

Same shape, in claude_desktop_config.json.

Environment variables

NamePurposeDefault
ATS_VERSIONVersion of ats-automated-testing to bootstrap.3.6.6
ATS_HOMEWhere ATS libs and drivers live.~/.actiontestscript
JAVA_BINPath to the java executable.java on PATH

Tools exposed

30 tools, grouped by purpose:

Session / channels

ToolWhat it does
start_channelOpen a web / mobile / desktop / api / SAP channel
stop_channelClose a channel
switch_channelMake a channel active

Navigation (web)

ToolWhat it does
goto_urlNavigate to a URL
navigate_backBrowser history back
navigate_forwardBrowser history forward
refreshReload the current page

Interaction

ToolWhat it does
clickMouse-click on an element
hoverMouse-over an element
send_keysType text into an element
press_keyPress a special key (ENTER, TAB, arrows, F-keys…)
scrollScroll an element by a signed pixel offset
drag / dropTwo-step drag-and-drop on source → target
select_optionSelect a <select> option by text/value/index
file_uploadUpload a local file to a file-input
handle_dialogAccept/dismiss/default a JS alert/confirm/prompt

Inspection

ToolWhat it does
screenshotCapture a PNG of the current state
capture_treeDump the DOM / view hierarchy
find_elementsEnumerate elements matching a CSS selector (web) or SAP tag
evaluate_jsRun JavaScript in the page and return its value
console_logsJS console messages captured on the active web channel
network_listHTTP requests captured (with index for network_detail)
network_detailFull request/response for one exchange
network_cookiesCookies on the active web channel

Window / tabs

ToolWhat it does
window_resizeResize (and optionally move) the window
window_switchSwitch tabs by index / name / URL substring
window_new_tabOpen a new tab, optionally at a URL
window_closeClose the current tab/window

Escape hatch

ToolWhat it does
run_ats_blockExecute a sequence of raw ATS action lines

Positioning vs Playwright MCP

ats-mcp covers the same interaction surface as @playwright/mcp for the web, plus three things Playwright doesn't do:

  • Multi-platform — web, mobile (Android/iOS physical, simulators, emulators, Genymotion Cloud), desktop apps (via the ATS system driver), REST/SOAP APIs, and SAP GUI.
  • Implicit wait built-in — element lookups retry with backoff, so the LLM doesn't need to stitch wait_for calls around every action.
  • Raw escape hatchrun_ats_block exposes the full ATS action vocabulary when a purpose-built tool isn't enough.

Repo layout

ats-mcp/
├── node/      — TypeScript implementation (published to npm)
├── java/      — Maven implementation (released as a fat JAR)
├── README.md
└── .gitlab-ci.yml

Both implementations target the same protocol surface and share the same tool definitions.

License

Apache-2.0 — same as ats-core.

Reviews

No reviews yet

Sign in to write a review