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.
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>.zipif~/.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_channelper 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_forcalls around every action. - Raw escape hatch —
run_ats_blockexposes 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.
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。