关于 JevSim
JevSim 是面向 iOS 和 Android 应用自动化 Agent 的本地 MCP 服务。它可批量执行无障碍界面操作并逐步验证;需要时由 Jev 根据控件描述选择目标。
主要功能
- 01单次调用执行最多 10 步界面操作
- 02检查设备无障碍状态
- 03按预期条件验证每一步
- 04根据描述选择控件
- 05支持 iOS 模拟器和 Android
适用场景
- 01执行已知的应用导航流程
- 02复现界面故障步骤
- 03操作并验证表单
- 04检查设备上的界面更改
MCP 相关
JevSim 向 MCP 客户端提供状态查询、界面检查和工作流执行工具。它通过 XcodeBuildMCP 连接 iOS,或通过 Appium/UIAutomator2 连接 Android。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
npx -y @huaaudio/jevsimTYPESAFE_API_KEY密钥TypeSafe API key for semantic selection. Exact-identifier workflows need no key.JEVSIM_MODELTypeSafe selection model.JEVSIM_XCODE_COMMANDiOS only: XcodeBuildMCP executable. Use an absolute path if needed.JEVSIM_XCODE_ARGSiOS only: JSON array of XcodeBuildMCP arguments.JEVSIM_ANDROID_APPIUM_URLAndroid only: separately running Appium 3/UIAutomator2 server on loopback.JEVSIM_ADB_COMMANDAndroid only: adb executable. Use an absolute path if needed.本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。
工具
3收录的工具列表 · 更新于 3 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| platform | enum | 否 | ios | android |
详细介绍
JevSim
通过一次 Agent 工具调用完成一组移动端 UI 操作。
JevSim 是一款本地 MCP 服务,供操作 iOS 和 Android 应用的 Agent 使用。给它一份简短计划——导航、输入文本、保存、验证——它就会执行这些步骤,不必在每次交互后都返回主推理循环。文本选择模型 Jev 会将描述与当前的无障碍控件匹配。XcodeBuildMCP(iOS)或 Appium/UIAutomator2(Android)负责执行操作并检查结果。
如果你是人类用户,请将此仓库 URL 提供给你的 Agent,并要求它:“为我的 iOS/Android 项目安装 JevSim,将其连接到你的 MCP 工具,并验证配置。” 以下说明面向该 Agent。
速度对比
我们使用相同的检查方式,重新运行了同一套 iOS“设置”十次点击流程:打开五个部分,并在每次打开后返回。纯 Agent 指主 Agent 通过 XcodeBuildMCP 读取每个屏幕并选择下一个控件。Agent + JevSim 指通过一次 jevsim_run_steps 调用委派整个流程,由 Jev 选择全部十个目标。
| 方式 | 执行时间中位数 | 验证通过的运行次数 | 加速比 |
|---|---|---|---|
| 纯 Agent + XcodeBuildMCP | 117.3 s | 3/3 | 1× |
| Agent + JevSim + XcodeBuildMCP | 35.7 s | 3/3 | 3.3× |
测量日期:2026 年 9 月 21 日。使用 Codex 中的 GPT-6-astra(高推理能力)、Jev 1.13.0、XcodeBuildMCP 2.7.0,以及 iPhone 17e / iOS 26.5 Simulator。计时包含观察、目标选择、操作、检查,以及 Agent/工具之间的中间往返;不包含环境配置和初始流程规划。这是一次导航基准测试,每种方式运行三次,并不代表一般调试或 Android 速度保证。运行详情和复现方法。
Agent 安装
- 检查环境。 使用 Node.js 24 和 npm。根据用户的项目选择平台,并且只安装对应的后端。可用时复用现有工具和凭据。
- 使用 npm 软件包。 将 MCP 客户端配置为运行
npx -y --package=@huaaudio/[email protected] jevsim。此命令会下载编译后的软件包;无需克隆或构建。如果客户端的 PATH 受限,请使用 Node.js 24 的npx绝对路径。开发时仍可使用源码安装。 - 准备后端。 对于 iOS,请使用 macOS 和 Xcode,并启动模拟器;JevSim 会启动自己的固定版本 XcodeBuildMCP 进程。对于 Android,请准备 ADB 和设备/模拟器,然后按照 Android 说明启动本地 Appium 和 UIAutomator2。使用现有工具构建、安装并启动用户的应用。
- 配置 Jev。 通过客户端的密钥/环境配置提供
TYPESAFE_API_KEY。npm 启动器不会自动读取.env;如有需要,请使用通过 env 文件启动选项。保留现有的.env;仅将 .env.example 用作模板。切勿打印或提交密钥。无需密钥也可使用精确标识符工作流。 - 注册并验证 MCP 服务。 按照 Agent 安装操作手册配置绝对启动路径、客户端配置和就绪检查。保留其他 MCP 服务。能够发现全部三个工具、连接到所选后端并检查指定设备,即表示安装完成。请准确报告任何缺失的前置条件。
委派工作流
| 工具 | 用途 |
|---|---|
jevsim_status | 检查后端连接、凭据是否存在以及设备清单 |
jevsim_inspect | 读取一个明确指定设备的当前辅助功能状态 |
jevsim_run_steps | 在 60 秒内执行 1–10 个提供的步骤;返回结果、耗时和任何停止原因 |
先调用 status 和 inspect。对于 iOS,传入观察到的 simulatorId;对于 Android,传入 platform: "android" 和 ADB deviceId。根据应用和用户的任务制定计划。每个步骤都必须包含一个可由后端验证的 expect 条件。
例如,仅当你的应用公开了所述目标标识符时,这才是一个步骤:
{
"action": "tap",
"target": { "description": "Open the profile editor" },
"expect": { "predicate": "exists", "identifier": "profile.name" }
}
在可用时使用唯一且已观察到的 target.identifier,即可跳过模型请求。否则,Jev 会从当前兼容操作的控件中进行选择,或放弃操作。它无法凭空编造步骤或生成输入文本。支持的操作包括 tap、type、scroll、wait 和 assert。请参阅请求架构和完整示例。
直到调用返回前,请锁定该设备。completed 结果表示提供的每个预期都已匹配。如果执行停止,请检查 completedSteps、reason 和 actionStatus,然后检查应用并重新制定计划。**切勿盲目重放工作流或不确定的操作。**请参阅Agent 用法和恢复。
适用场景
委派已知操作序列:复现 Bug、导航到某个屏幕、测试表单或验证更改。构建、代码编辑、视觉解读以及依赖新信息的决策,应由主 Agent 处理。将较长的工作拆分为范围明确的序列。
- **支持范围:**iOS Simulator 和原生 Android 辅助功能。已在 macOS 上的 Android 15 模拟器中进行实时测试;实体 Android 设备以及 Windows/Linux 主机尚未验证。
- **输入:**Android 支持 Unicode 和清空替换。经过测试的 iOS 后端仅接受非空的可打印 ASCII 字符。
- **限制:**无法访问的控件、Android WebView 和任意桌面 GUI 需要使用其他工具。JevSim 不会解读屏幕截图。
- **数据:**语义选择会将辅助功能文本和字段值发送给 TypeSafe。使用精确标识符的工作流会跳过这些请求。工具对话记录和后端日志可能包含应用数据;请参阅数据处理。
参考
Agent 安装 · Agent 用法 · 工具 · 配置 · 故障排除 · 发行说明
贡献者:有关测试夹具、测试、基准复现和实现历史,请参阅开发指南。
MIT。这是一个独立项目;自动化后端和 TypeSafe 服务各自适用其条款和许可。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。