Quash — Mobile App Automation

io.github.Abhinav-Sai-Quash由 GitHub 帳號 Abhinav-Sai-Quash 發布v1.1.0更新於 Oct 24, 2026

Drive Android & iOS mobile-app automation from your AI agent on locally connected devices.

已驗證STDIO僅桌面效率與工作流開發者工具

概覽

AI 產生的概覽

讓 AI 助理透過 Quash 引擎在本地連接的 Android 與 iOS 裝置上執行自然語言測試任務並產生測試案例。

可以做什麼
Quash MCP 將 AI 助理連接到 Quash(mahoraga)自動化引擎,從而在連接到本機的裝置上驅動真實的行動應用程式自動化。工具包括 connect(偵測裝置並進行健康檢查)、execute(執行自然語言測試任務並串流進度)、generate_test_cases(依提示、本機檔案或 git 儲存庫產生測試案例),以及 setup_portal、setup_simulator、setup_device 用於裝置準備。它也能管理應用程式與建置、安裝 APK,並瀏覽執行紀錄、報告、測試案例與測試套件。
適用情境
當你希望 AI 助理在連接到電腦的真實 Android 裝置、模擬器、iOS 模擬器或實體 iPhone 上測試或操作行動應用程式時使用。適合需要自然語言執行測試、產生測試案例並查看執行報告的 QA 與開發流程,無需手寫自動化腳本。
執行需求
由 Quash 安裝程式安裝為本機 stdio 程序,支援 macOS 13+(Apple Silicon)或 Windows 10/11(x64);iOS 工具僅限 macOS。Android 需要 PATH 中有 adb,並連接開啟 USB 偵錯的裝置;iOS 需要 Xcode;還需要 Quash 帳號。環境變數:QUASH_SIDECAR_CMD(必需)、QUASH_TEST_GEN_AGENT_CMD,以及 QUASH_API_TOKEN(使用 Google 登入時可省略)。
安裝前請注意
安裝程式會執行遠端 shell 指令碼或 PowerShell 命令,並下載自動化引擎、測試產生元件與 Android 端 Portal APK。QUASH_API_TOKEN 是僅顯示一次的密鑰,重新產生會使舊權杖失效。伺服器預設登入 Quash 正式環境,可安裝建置並變更裝置設定,使用前請評估。未簽署二進位檔可能觸發 Gatekeeper 或 SmartScreen 警告。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Quash — Mobile App Automation,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

Quash MCP

The Quash MCP server lets an AI agent (Claude Code, Claude Desktop, Cursor, …) drive real mobile-app automation on a connected device: run natural-language test tasks, generate test cases from prompts/docs/repos, manage apps & builds, and pull back streamed runs and reports — all powered by the Quash (mahoraga) automation engine.

This guide covers installing it on macOS or Windows, wiring it into your agent, generating an API token, preparing a device, and using every tool.


Platform support

PlatformAndroidiOS (simulator + physical)Installer
macOS (Apple Silicon)✅✅install.sh (curl … | sh)
Windows (x64)✅❌ (Apple toolchain is macOS-only)install.ps1 (irm … | iex)

iOS automation needs Xcode / WebDriverAgent / devicectl / iproxy, which exist only on macOS — so the iOS tools (setup_simulator, setup_device) appear in the macOS build only. Windows is Android-only. Linux x86_64 can be built from source but isn't published as a release binary.


1. Prerequisites

  • macOS 13+ (Apple Silicon) or Windows 10/11 (x64).
  • adb on your PATH (Android platform-tools) for Android automation. On Windows the installer also detects %LOCALAPPDATA%\Android\Sdk.
  • A device: an Android device/emulator (USB debugging on), or — on macOS — an iOS simulator or a physical iPhone (Developer Mode on, trusted, USB).
  • A Quash account to authenticate (step 3 for a token, or browser sign-in in step 5).
  • For iOS on macOS: Xcode installed (for the WebDriverAgent build).

The installer also downloads the automation engine, a bundled test-generation component, and the on-device Android Portal APK.


2. Install

One command installs everything and auto-registers the server in every supported agent config it finds (Claude Code, Claude Desktop, Cursor). Pick your platform:

macOS

sh
curl -fsSL https://raw.githubusercontent.com/Oscorp-HQ/quash-mcp-releases/main/install.sh | sh

Windows (PowerShell)

powershell
irm https://raw.githubusercontent.com/Oscorp-HQ/quash-mcp-releases/main/install.ps1 | iex

This installs the latest release into ~/.quash (macOS) / %USERPROFILE%\.quash (Windows) and connects to Quash production automatically — no backend URL to configure.

Cursor users: after running the installer above (needed for the engine), you can one-click add the MCP server to Cursor:

[Add Quash to Cursor]

(The installer already auto-registers Cursor, so this is only needed if you skipped that or removed the entry.)

Options (env vars)

macOS gotcha: environment variables must go on the piped sh, not on curl — a prefix on curl is ignored. On Windows, set $env:… before the irm.

macOS — wire your token in / pin a version:

sh
# Token at install time (recommended — see step 3):curl -fsSL https://raw.githubusercontent.com/Oscorp-HQ/quash-mcp-releases/main/install.sh | QUASH_API_TOKEN=qsh_xxxxxxxx sh
# Pin a specific version:curl -fsSL https://raw.githubusercontent.com/Oscorp-HQ/quash-mcp-releases/main/install.sh | QUASH_VERSION=v1.1.0 sh

Windows — same, via $env::

powershell
$env:QUASH_API_TOKEN = "qsh_xxxxxxxx"irm https://raw.githubusercontent.com/Oscorp-HQ/quash-mcp-releases/main/install.ps1 | iex
Env varDefaultPurpose
QUASH_API_TOKEN(unset)API token; if set, the MCP signs in automatically on startup
QUASH_VERSIONlatestRelease tag to install
QUASH_BACKEND_URLproductionOverride the backend (staging/local)
QUASH_FORCE01 forces a full reinstall even if the version matches

Re-running the installer is safe: it refreshes config and, with QUASH_FORCE=1, reinstalls the binaries. Reconnecting the agent does not update the server — only re-running the installer does.


3. Generate an API token from the Quash app

The token lets the MCP authenticate without a browser. (Prefer not to manage a token? Skip to step 5 and use Google sign-in instead.)

  1. Open the Quash desktop app and sign in.
  2. Go to Settings → Integrations.
  3. Click Generate token (or regenerate to replace an existing one).
  4. Copy the token — it starts with qsh_. It's shown once; store it safely.

Generating a new token invalidates the previous one, so update it everywhere you use it. The token is scoped to the organization you're signed into and is stored only in your agent's MCP config env block — never passed through the chat.


4. Add it to your agent

The installer auto-registers the quash server, so usually there's nothing to do. To verify or add it manually, the entry looks like this — use the paths for your platform:

macOS

jsonc
{  "mcpServers": {    "quash": {      "type": "stdio",      "command": "/Users/<you>/.quash/bin/quash-mcp",      "env": {        "QUASH_SIDECAR_CMD": "/Users/<you>/.quash/sidecar/quash-sidecar/quash-sidecar",        "QUASH_TEST_GEN_AGENT_CMD": "/Users/<you>/.quash/test-gen-venv/bin/python -m test_gen_agent",        "QUASH_API_TOKEN": "qsh_xxxxxxxx"      }    }  }}

Windows

jsonc
{  "mcpServers": {    "quash": {      "type": "stdio",      "command": "C:\\Users\\<you>\\.quash\\bin\\quash-mcp\\quash-mcp.exe",      "env": {        "QUASH_SIDECAR_CMD": "C:\\Users\\<you>\\.quash\\sidecar\\quash-sidecar\\quash-sidecar.exe",        "QUASH_API_TOKEN": "qsh_xxxxxxxx",        "ANDROID_HOME": "C:\\Users\\<you>\\AppData\\Local\\Android\\Sdk"      }    }  }}

Config file locations: Claude Code → ~/.claude.json (macOS) / %USERPROFILE%\.claude.json (Windows); Claude Desktop → ~/Library/Application Support/Claude/claude_desktop_config.json / %APPDATA%\Claude\claude_desktop_config.json; Cursor → ~/.cursor/mcp.json / %USERPROFILE%\.cursor\mcp.json.

After editing config, restart the agent (or /mcp → reconnect in Claude Code).

JetBrains IDEs (IntelliJ IDEA, PyCharm)

JetBrains AI Assistant supports MCP over stdio. After running the installer (step 2):

  1. Open Settings → Tools → AI Assistant → Model Context Protocol (MCP).

  2. Easiest: click Import from Claude — since the installer already registered Quash in Claude Desktop, the quash server is pulled in automatically.

  3. Or add manually: click Add, then paste this JSON (JetBrains does not expand environment variables, so use absolute paths — replace <you> with your username):

    macOS

    jsonc
    {  "mcpServers": {    "quash": {      "command": "/Users/<you>/.quash/bin/quash-mcp",      "env": {        "QUASH_SIDECAR_CMD": "/Users/<you>/.quash/sidecar/quash-sidecar/quash-sidecar",        "QUASH_TEST_GEN_AGENT_CMD": "/Users/<you>/.quash/test-gen-venv/bin/python -m test_gen_agent"      }    }  }}

    Windows

    jsonc
    {  "mcpServers": {    "quash": {      "command": "C:\\Users\\<you>\\.quash\\bin\\quash-mcp\\quash-mcp.exe",      "env": {        "QUASH_SIDECAR_CMD": "C:\\Users\\<you>\\.quash\\sidecar\\quash-sidecar\\quash-sidecar.exe",        "QUASH_TEST_GEN_AGENT_CMD": "C:\\Users\\<you>\\.quash\\test-gen-venv\\Scripts\\python.exe -m test_gen_agent"      }    }  }}
  4. Click OK → Apply to start the server.

Android Studio: its agent (Gemini Agent Mode) currently supports MCP over HTTP/Streamable only, not stdio, so the config above does not apply there yet.


5. Authenticate

  • If you set QUASH_API_TOKEN, the server signs in automatically on startup.
  • Otherwise, ask the agent to authenticate:
    • Google (browser): "Use Quash, run auth with mode google."
    • Token: "Use Quash, run auth with my token qsh_…."

Check status anytime with the about / configure tools.


6. Prepare the device

  1. Connect — "Use Quash, connect." It detects the device (or lists them if several), warms the engine, and runs a setup health check.
  2. Finish setup for that device type:
    • Android — if connect reports "Portal not ready", run setup_portal: it installs the on-device Quash Portal app and enables its accessibility service (idempotent). If the device blocks it, it returns manual_required with the steps for Settings → Accessibility.
    • iOS simulator (macOS) — run setup_simulator: builds + launches WebDriverAgent for the booted simulator (no signing needed).
    • iOS physical iPhone (macOS) — run setup_device: resolves your Apple Developer signing team (set it with configure signing_team=<TEAMID>, or it's auto-detected from your keychain), builds + signs WebDriverAgent, starts the USB tunnel, and launches it. Requires Xcode, Developer Mode on, and the iPhone trusted over USB.

7. Using the tools

Ask the agent in plain language; it calls these tools:

ToolWhat it doesPlatform
aboutServer name, running version, latest release, update commandall
authSign in (google browser flow, or token)all
connectDetect/select a device; health-check adb, Portal, engine, authall
configureView/change execution + test-gen settings (model, temperature, max steps, vision, signing_team)all
setup_portalInstall the Android Portal app + enable accessibility (idempotent)all
setup_simulatorBuild + launch WebDriverAgent for a booted iOS simulatormacOS
setup_deviceSign + launch WebDriverAgent on a physical iPhone over USBmacOS
executeRun a natural-language test task on the device (streams progress)all
generate_test_casesGenerate test cases from a prompt, local files, or a git repoall
usageCurrent plan, remaining minutes, feature limitsall
list_appsList apps in your orgall
buildsList builds for an app (version, tag, installable)all
install_buildDownload a build's APK and install it on the deviceall
runsBrowse recent runs, or fetch one run's full report + share linkall
test_cases / suitesBrowse test cases and suitesall

Typical first session:

"Use Quash: connect, then setup_portal if needed."          # Android"Use Quash: connect, then setup_simulator."                 # iOS simulator (macOS)"Run this on the device: open Settings and turn on Airplane mode.""Show me the report for that run.""Generate test cases for https://github.com/acme/my-app."

8. Updating

Re-run the installer for your platform (macOS curl … | sh, Windows irm … | iex), then restart the agent. Confirm with the about tool — it reports the running version and whether a newer release exists.


9. Troubleshooting

  • "Portal not ready" (Android) → run setup_portal. If it returns manual_required, enable Mahoraga Portal under Settings → Accessibility.
  • adb / device not found → install Android platform-tools, ensure adb is on PATH (Windows: set ANDROID_HOME), and that the device shows under adb devices.
  • iOS setup_device signing fails (macOS) → set your team with configure signing_team=<TEAMID>, ensure your Apple ID is signed into Xcode → Settings → Accounts (with an Apple Development certificate in the keychain), and the iPhone is in Developer Mode + trusted.
  • Session expired / not authenticated → re-run auth, or refresh QUASH_API_TOKEN (generating a new token invalidates the old one).
  • A run isn't visible in the app → the run's org must match the app's org; check the execute result's warning field.
  • macOS Gatekeeper warning → public binaries are ad-hoc signed; if blocked, allow them under System Settings → Privacy & Security.
  • Windows SmartScreen / Defender → unsigned binaries may prompt "Windows protected your PC"; click More info → Run anyway, or add a Defender exclusion for %USERPROFILE%\.quash.

來源:README.md,提交 ff3528e

工具

0
SourceWeft 尚未在沙箱中啟動過該軟體包,因此其工具未知。

版本歷史

1
  1. v1.1.0最新Sep 16, 2026

評分

已滿足適用檢查項的 40%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分

    請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。

  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分

    請在儲存庫或註冊中心條目中宣告授權條款。