Testa logo

Testa

Drives an iOS Simulator through screen reading, real HID gestures, assertions, and deterministic CI flow replay.

Install Testa

Pick your client, then add it in one click or paste the config.

STDIONode.js
~/Library/Application Support/Claude/claude_desktop_config.json
claude_desktop_config.json
{
  "mcpServers": {
    "testa": {
      "command": "npx",
      "args": [
        "-y",
        "@valewnrt/testa-mcp"
      ]
    }
  }
}

Settings → Developer → Edit Config, merge this into mcpServers, then fully quit and reopen Claude Desktop.

We couldn’t confirm it starts correctly

The install command didn't complete successfully in our automated test.

npx -y @valewnrt/testa-mcp

r notsup Unsupported platform for @valewnrt/testa-mcp@0.2.2: wanted {"os":"darwin"} (current: {"os":"linux"}) npm error notsup Valid os: darwin npm error notsup Actual os: linux npm notice npm notice New major version of npm available! 10.9.9 -> 12.2.1 npm notice Changelog: https://github.com/npm/cli/releases/tag/v12.2.1 npm notice To update run: npm install -g npm@12.2.1 npm notice npm error A complete log of this run can be found in: /home/user/.npm/_logs/2026-10-28T12_51_58_959Z-debug-0.log

This is an experimental automated check and can have false negatives — missing environment variables, a slow cold install, etc. It doesn’t necessarily mean something’s wrong. Last checked Today.

Overview

Drive an iOS Simulator with the testa MCP server through accessibility-tree and on-device OCR screen reading, real HID input, and verification commands. It connects to Apple’s CoreSimulator-related frameworks through a local native binary and can record agent sessions as flow files for deterministic CI replay. Reach for it when testing iOS, React Native, Expo, or SwiftUI apps without adding test IDs, including interfaces with limited accessibility data.

Use cases

  • Test iOS apps without adding test IDs
  • Replay recorded simulator flows in CI
  • Verify screens with accessibility data or OCR
  • Audit accessibility labels and tap targets
  • Exercise gestures and device conditions

Key features

  • Accessibility-tree and on-device OCR screen reading
  • Real HID touch, keyboard, and multi-touch input
  • Token-efficient UI diffs after actions
  • Deterministic flow recording and CI replay
  • Accessibility audits and OCR-aware visual diffs
  • Simulator environment controls

Security & health

What it can reach and how reliably it runs — from our own checks, not the maintainer’s claims.

ActiveLast checked 1d ago

Recent health check succeeded.

5/5 checks healthy over the last 38d

Supply-chain signal

No high-severity advisories surfaced by our automated scan.

Critical 0High 0Medium 0Low 0

Scanned 12d ago via OSV.dev · @valewnrt/testa-mcp (npm)

Adoption & maintenance

Factual signals from GitHub, npm, and our automated checks — not a rating.

GitHub stars3Stargazers on the source repository.
npm downloads264Package downloads in the last 30 days.
Last commit19d agoMost recent push to the default branch.
Install checkInconclusiveInstall command did not finish in our automated test.

How Testa works

What testa MCP server does

The testa MCP server lets an AI agent operate an iOS Simulator as part of an end-to-end testing loop. It can inspect visible interface elements, identify text through Apple Vision OCR, send touch and keyboard input, and check whether expected labels, values, or elements are present.

The server is intended for iOS applications built with React Native, Expo, SwiftUI, or native frameworks. Because it can use OCR when the accessibility tree has no matching element, it can interact with visible text in apps that do not expose useful test identifiers. It also supports interfaces such as WebViews and canvas-based screens when visible text can be recognized.

How it works

A local daemon keeps the simulator connection and accessibility translator warm. The first request may take several seconds while the daemon starts; later operations are reported at roughly 60 milliseconds per call, with marginal snapshot timings documented by the project.

Screen inspection returns compact element descriptions rather than images by default. Actions such as tapping, typing, or swiping return a settled UI diff, allowing an agent to observe only changes after an action. Selectors can refer to an element reference, accessibility identifier, visible label, or coordinates. OCR can be used explicitly or as a fallback for finding, asserting, and waiting.

Sessions can be recorded into plain-text flow files. A recorded flow can then run in CI without a model in the loop, producing JUnit output and failure artifact bundles.

Setup and configuration

Installation is supported through the project’s Homebrew tap or from source with the included installation script. Running setup installs the skill and registers the MCP server. The documented environment requires macOS, Xcode 26, iOS 26 simulators, and Swift 6.

A typical workflow boots a named simulator, installs an app bundle, launches its bundle identifier, and then observes or controls the app. The local service uses a per-user Unix socket with 0600 permissions. The project states that it makes no network connection and collects no telemetry.

Tools and capabilities

The testa MCP server covers these simulator operations:

  • Read the accessibility tree or visible text through OCR.
  • Tap, long-press, type, clear, set field values, swipe, drag, and drag-and-drop.
  • Perform pinch, rotate, multi-touch, hardware-button, key, and key-combination input.
  • Wait for elements to appear or disappear and assert existence, labels, or values.
  • Control simulator conditions including notifications, GPS, biometrics, appearance, Dynamic Type, locale, pasteboard, photos, launch arguments, and launch environment.
  • Run accessibility audits and OCR-aware visual comparisons.
  • Capture screenshots and record or replay flows.

Limitations and notes

The testa MCP server is focused on iOS and requires Apple’s simulator tooling on macOS; it is not documented here as an Android or web testing server. OCR is intended for visible text and may not replace accessibility-tree data for every interface.

The project describes the runtime binary as dependency-free and communicates directly with Apple frameworks and tools including CoreSimulator, SimulatorKit, AccessibilityPlatformTranslation, Vision, and simctl.

Reviews

No reviews yet — be the first to share how it worked for you.

Frequently Asked Questions about Testa

testa is an MCP server that connects AI agents to Apple’s iOS Simulator through a local native binary. Its main tools cover screen inspection through accessibility data or OCR, taps, typing, swipes, gestures, assertions, waits, screenshots, device controls, and flow recording for deterministic CI replay.

Install it with the project’s Homebrew tap and run `testa setup`, or clone the repository and execute `./install.sh`. Setup installs the skill and registers the MCP server. Running it requires macOS, Xcode 26, iOS 26 simulators, and Swift 6.

Yes, testa can test apps without test IDs. It reads the accessibility tree when available and falls back to Apple Vision OCR for visible text, allowing agents to work with screens that expose little or no accessibility information.

Record an interaction with `testa flow record save <file>.flow`, then run the saved file with `testa flow run <file>.flow`. The replay is deterministic, uses no model in the loop, and can produce JUnit output and failure artifact bundles.

Testa ships an MCP server, and its standard MCP command is `testa mcp`; consult the project’s client-specific setup documentation before relying on Cursor integration.

Related MCP servers

Add a badge to your READMEShow it’s listed — live SVG, Markdown or HTML.

AllMCPs Directory Badge

Full Badge Customizer

Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.

Badge Style:
Live Dynamic SVG PreviewTesta AllMCPs Directory Badge
Markdown (GitHub README)
[![AllMCPs](https://allmcps.com/api/badge/testa?style=directory)](https://allmcps.com/mcp/testa)
HTML Embed
<a href="https://allmcps.com/mcp/testa"><img src="https://allmcps.com/api/badge/testa?style=directory" alt="Testa on AllMCPs" /></a>