JevSim

io.github.huaaudioPublished by GitHub account huaaudiov0.1.0Updated Oct 24, 2026

Run verified iOS and Android UI workflows in one agent tool call with Jev.

VerifiedSTDIODesktop onlyBrowser AutomationDeveloper Tools

Overview

AI-generated overview

Lets an assistant run short, verified iOS and Android UI sequences in a single tool call instead of one round trip per tap.

What you can do
JevSim is a local MCP server that executes a supplied plan of one to ten UI steps against an iOS simulator or Android device. Three tools are exposed: jevsim_status for backend connectivity, credential presence and device inventory; jevsim_inspect for the current accessibility state of one device; and jevsim_run_steps for running tap, type, scroll, wait and assert actions with per-step expectations. A text-based selection model named Jev matches step descriptions to current accessibility controls, while XcodeBuildMCP on iOS or Appium/UIAutomator2 on Android performs the actions and checks results.
When to use it
Worth adding when an assistant repeatedly drives a mobile app through known sequences such as reproducing a bug, navigating to a screen, exercising a form, or verifying a change. It is meant for delegating bounded, pre-planned routes while builds, code edits, screenshot interpretation and open-ended decisions stay in the main agent.
Requirements
Runs locally over stdio via npx from the npm package @huaaudio/jevsim, requiring Node.js 24 and npm. iOS needs macOS, Xcode and a booted simulator; Android needs ADB, a device or emulator, and a separately running local Appium 3/UIAutomator2 server. Optional environment variables include JEVSIM_MODEL, JEVSIM_ADB_COMMAND, JEVSIM_ANDROID_APPIUM_URL, JEVSIM_XCODE_COMMAND and JEVSIM_XCODE_ARGS. Semantic selection needs the TYPESAFE_API_KEY secret; exact-identifier workflows need no key.
Before you install
Semantic selection sends accessibility text and field values to the TypeSafe service, and exact-identifier workflows skip those requests. Tool transcripts and backend logs may contain app data. The TYPESAFE_API_KEY secret must be supplied through the client's secret or environment configuration, never printed or committed, and the npm launcher does not read .env automatically. Steps act on a real device or simulator, so a device should be reserved until a call returns and workflows or…

Installation

In SourceWeft

  1. Open JevSim in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README

JevSim

English | 简体中文

Complete a mobile UI sequence in one agent tool call.

JevSim is a local MCP server for agents working with iOS and Android apps. Give it a short plan—navigate, enter text, save, verify—and it executes the steps without returning to your main reasoning loop after every interaction. Jev, a text-based selection model, matches descriptions to current accessibility controls. XcodeBuildMCP (iOS) or Appium/UIAutomator2 (Android) performs the actions and checks the results.

If you are a human, give your agent this repository URL and ask: “Install JevSim for my iOS/Android project, connect it to your MCP tools, and verify the setup.” The instructions below are for that agent.

Speed comparison

We reran the same ten-tap iOS Settings tour with the same checks after every action: open five sections and return from each. Pure agent means the main agent reads each screen and chooses the next control through XcodeBuildMCP. Agent + JevSim means it delegates the full route in one jevsim_run_steps call, with Jev selecting all ten targets.

ApproachMedian execution timeVerified runsSpeedup
Pure agent + XcodeBuildMCP117.3 s3/31×
Agent + JevSim + XcodeBuildMCP35.7 s3/33.3×

Measured September 21, 2026: GPT-6-astra (high reasoning) in Codex, Jev 1.13.0, XcodeBuildMCP 2.7.0, iPhone 17e / iOS 26.5 Simulator. Times include observations, target decisions, actions, checks, and intermediate agent/tool round trips; setup and initial route planning are excluded. This is one navigation benchmark with three runs per approach, not a general debugging or Android speed guarantee. Run details and reproduction.

Agent installation

  1. Inspect the environment. Use Node.js 24 and npm. Choose the platform from the user's project; install only that backend. Reuse existing tools and credentials where available.
  2. Use the npm package. Configure the MCP client to run npx -y --package=@huaaudio/[email protected] jevsim. This downloads the compiled package; no clone or build is needed. Use an absolute path to Node.js 24’s npx if the client has a restricted PATH. Source installation remains available for development.
  3. Prepare the backend. For iOS, use macOS, Xcode, and a booted simulator; JevSim starts its own pinned XcodeBuildMCP process. For Android, prepare ADB and a device/emulator, then start local Appium with UIAutomator2 using the Android instructions. Build, install, and launch the user's app with your existing tools.
  4. Configure Jev. Supply TYPESAFE_API_KEY through your client's secret/environment configuration. The npm launcher does not automatically read .env; use the env-file launch option if needed. Preserve an existing .env; use .env.example only as a template. Never print or commit the key. Exact-identifier workflows also work without a key.
  5. Register and verify the MCP server. Follow the agent installation runbook for absolute launch paths, client configuration, and readiness checks. Preserve other MCP servers. Installation is complete when you can discover all three tools, connect to the chosen backend, and inspect the intended device. Report any missing prerequisite precisely.

Delegate a workflow

ToolUse it to
jevsim_statusCheck backend connectivity, credential presence, and device inventory
jevsim_inspectRead the current accessibility state of one explicit device
jevsim_run_stepsExecute 1–10 supplied steps within 60 seconds; receive outcomes, timings, and any stop reason

Call status and inspect first. For iOS, pass the observed simulatorId; for Android, pass platform: "android" and the ADB deviceId. Derive the plan from the app and the user's task. Every step must include a backend-verifiable expect condition.

For example, this is one step only if your app exposes the stated destination identifier:

json
{  "action": "tap",  "target": { "description": "Open the profile editor" },  "expect": { "predicate": "exists", "identifier": "profile.name" }}

Use a unique observed target.identifier when available; it skips the model request. Otherwise, Jev selects among current action-compatible controls or abstains. It cannot invent steps or generate typing text. Supported actions are tap, type, scroll, wait, and assert. See the request schema and complete example.

Reserve the device until the call returns. A completed result means every supplied expectation matched. If execution stops, inspect completedSteps, reason, and actionStatus, then inspect the app and re-plan. Never blindly replay a workflow or an uncertain action. See agent usage and recovery.

When to use it

Delegate known sequences: reproduce a bug, navigate to a screen, exercise a form, or verify a change. Keep builds, code edits, visual interpretation, and decisions that depend on new information in your main agent. Split longer work into bounded sequences.

  • Supported: iOS Simulator and native Android accessibility. Android has been live-tested on an Android 15 emulator on macOS; physical Android devices and Windows/Linux hosts remain unvalidated.
  • Input: Android supports Unicode and empty replacement. The tested iOS backend accepts nonempty printable ASCII only.
  • Limits: inaccessible controls, Android WebViews, and arbitrary desktop GUIs need other tools. JevSim does not interpret screenshots.
  • Data: semantic selection sends accessibility text and field values to TypeSafe. Exact-identifier workflows skip those requests. Tool transcripts and backend logs may contain app data; see data handling.

Reference

Agent installation · Agent usage · Tools · Configuration · Troubleshooting · Release notes

Contributors: development guide for fixtures, tests, benchmark reproduction, and implementation history.

MIT. Independent project; automation backends and the TypeSafe service have their own terms and licenses.

Source: README.md at commit fa2ba17

Tools

0
SourceWeft has not started this package in its sandbox yet, so its tools are not known.

Version history

1
  1. v0.1.0LatestSep 21, 2026

Score

50% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts

    Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.

  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts