ats-mcp

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.

Category
Visit Server

README

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.

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