Skip to main content
Glama

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:

Install

Best for

npm

npx -y ats-mcp

Node-friendly devs, the broader MCP community

JAR

Download ats-mcp-X.Y.Z.jar from Releases

Users 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)

  • Node 18+ (only if you use the npm distribution)

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

Name

Purpose

Default

ATS_VERSION

Version of ats-automated-testing to bootstrap.

3.6.6

ATS_HOME

Where ATS libs and drivers live.

~/.actiontestscript

JAVA_BIN

Path to the java executable.

java on PATH

Tools exposed

30 tools, grouped by purpose:

Session / channels

Tool

What it does

start_channel

Open a web / mobile / desktop / api / SAP channel

stop_channel

Close a channel

switch_channel

Make a channel active

Navigation (web)

Tool

What it does

goto_url

Navigate to a URL

navigate_back

Browser history back

navigate_forward

Browser history forward

refresh

Reload the current page

Interaction

Tool

What it does

click

Mouse-click on an element

hover

Mouse-over an element

send_keys

Type text into an element

press_key

Press a special key (ENTER, TAB, arrows, F-keys…)

scroll

Scroll an element by a signed pixel offset

drag / drop

Two-step drag-and-drop on source → target

select_option

Select a <select> option by text/value/index

file_upload

Upload a local file to a file-input

handle_dialog

Accept/dismiss/default a JS alert/confirm/prompt

Inspection

Tool

What it does

screenshot

Capture a PNG of the current state

capture_tree

Dump the DOM / view hierarchy

find_elements

Enumerate elements matching a CSS selector (web) or SAP tag

evaluate_js

Run JavaScript in the page and return its value

console_logs

JS console messages captured on the active web channel

network_list

HTTP requests captured (with index for network_detail)

network_detail

Full request/response for one exchange

network_cookies

Cookies on the active web channel

Window / tabs

Tool

What it does

window_resize

Resize (and optionally move) the window

window_switch

Switch tabs by index / name / URL substring

window_new_tab

Open a new tab, optionally at a URL

window_close

Close the current tab/window

Escape hatch

Tool

What it does

run_ats_block

Execute 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.

-
security - not tested
F
license - not found
-
quality - not tested

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/actiontestscript/ats-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server