mcpField
J
JevSim

JevSim

ローカル
github.com開発ツール06 週間前に更新

JevSim について

JevSimは、iOSとAndroidアプリを操作するエージェント向けのローカルMCPサーバーです。アクセシビリティ操作をまとめて実行し、各ステップを検証します。必要に応じてJevが説明から対象コントロールを選びます。

主な機能

  1. 011回の呼び出しで最大10ステップを実行
  2. 02デバイスのアクセシビリティ状態を確認
  3. 03期待条件で各ステップを検証
  4. 04説明からコントロールを選択
  5. 05iOSシミュレーターとAndroidに対応

活用シーン

  1. 01既知のアプリ操作フローを実行
  2. 02UIの不具合手順を再現
  3. 03フォームを操作して検証
  4. 04デバイス上のUI変更を確認

MCP 対応

JevSimはMCPクライアントに、状態確認、画面検査、ワークフロー実行のツールを提供します。iOSではXcodeBuildMCP、AndroidではAppium/UIAutomator2に接続します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"huaaudio-jevsim": {
"command": "npx",
"args": [
"-y",
"@huaaudio/jevsim"
],
"env": {
"TYPESAFE_API_KEY": "<TYPESAFE_API_KEY>",
"JEVSIM_MODEL": "<JEVSIM_MODEL>",
"JEVSIM_XCODE_COMMAND": "<JEVSIM_XCODE_COMMAND>",
"JEVSIM_XCODE_ARGS": "<JEVSIM_XCODE_ARGS>",
"JEVSIM_ANDROID_APPIUM_URL": "<JEVSIM_ANDROID_APPIUM_URL>",
"JEVSIM_ADB_COMMAND": "<JEVSIM_ADB_COMMAND>"
}
}
}
}
起動コマンドnpx -y @huaaudio/jevsim
設定が必要な環境変数
TYPESAFE_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 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npm@huaaudio/jevsim0.1.0

ツール

3

掲載時のツール一覧 · 3 週間前に更新

パラメーター型必須説明
platformenumいいえios | android

詳細

JevSim

English | 简体中文

1 回のエージェントツール呼び出しで、モバイル UI の一連の操作を完了します。

JevSim は、iOS および Android アプリを操作するエージェント向けのローカル MCP サーバーです。画面遷移、テキスト入力、保存、確認といった短いプランを渡すと、操作のたびにメインの推論ループへ戻ることなく、手順を実行します。テキストベースの選択モデルである Jev が、説明文と現在のアクセシビリティコントロールを照合します。XcodeBuildMCP(iOS)または Appium/UIAutomator2(Android)が操作を実行し、結果を確認します。

人間の方は、このリポジトリの URL をエージェントに渡し、**「iOS/Android プロジェクトに JevSim をインストールして、MCP ツールに接続し、セットアップを確認してください。」**と依頼してください。以下の手順は、そのエージェント向けです。

速度の比較

同じ iOS 設定アプリの 10 回のタップによるツアーを、操作のたびに同じ確認を行いながら再実行しました。5 つのセクションを開き、それぞれから戻ります。純粋なエージェントとは、メインエージェントが各画面を読み取り、XcodeBuildMCP を通じて次のコントロールを選択する方法です。エージェント + JevSimとは、jevsim_run_steps 呼び出し 1 回でルート全体を委任し、Jev が 10 個すべてのターゲットを選択する方法です。

方法実行時間の中央値検証済みの実行回数速度向上
純粋なエージェント + XcodeBuildMCP117.3 s3/31×
エージェント + JevSim + XcodeBuildMCP35.7 s3/33.3×

2026 年 9 月 21 日に測定:Codex 上の GPT-6-astra(高い推論能力)、Jev 1.13.0、XcodeBuildMCP 2.7.0、iPhone 17e/iOS 26.5 シミュレーター。時間には、観察、ターゲットの選択、操作、確認、中間のエージェント/ツール間の往復が含まれます。セットアップと初期のルート計画は含まれません。これは各方法で 3 回実行した 1 つのナビゲーションベンチマークであり、一般的なデバッグや Android での速度を保証するものではありません。実行の詳細と再現手順。

エージェントのインストール

  1. 環境を確認します。 Node.js 24 と npm を使用します。ユーザーのプロジェクトに応じてプラットフォームを選び、該当するバックエンドのみをインストールします。利用可能な場合は、既存のツールと認証情報を再利用します。
  2. npm パッケージを使用します。 MCP クライアントが npx -y --package=@huaaudio/[email protected] jevsim を実行するように設定します。これにより、コンパイル済みのパッケージがダウンロードされます。クローンやビルドは不要です。クライアントの PATH が制限されている場合は、Node.js 24 の npx に絶対パスを指定します。開発にはソースからのインストールも利用できます。
  3. バックエンドを準備します。 iOS の場合は、macOS、Xcode、起動済みのシミュレーターを使用します。JevSim は固定バージョンの XcodeBuildMCP プロセスを独自に起動します。Android の場合は、ADB とデバイス/エミュレーターを準備し、Android の手順に従って UIAutomator2 を使用するローカル Appium を起動します。既存のツールを使用して、ユーザーのアプリをビルド、インストール、起動します。
  4. Jev を設定します。 クライアントのシークレット/環境設定から TYPESAFE_API_KEY を渡します。npm ランチャーは .env を自動的には読み込みません。必要に応じて環境ファイルを使用した起動方法を使います。既存の .env はそのまま保持し、.env.example はテンプレートとしてのみ使用します。キーを表示したり、コミットしたりしないでください。正確な識別子を使用するワークフローは、キーがなくても利用できます。
  5. MCP サーバーを登録し、動作を確認します。 絶対パスでの起動、クライアント設定、準備完了の確認については、エージェント向けインストール手順書に従います。他の MCP サーバーはそのまま保持します。3 つすべてのツールを検出し、選択したバックエンドに接続して、対象デバイスを確認できれば、インストールは完了です。不足している前提条件があれば、具体的に報告します。

ワークフローを委任する

ツール用途
jevsim_statusバックエンドの接続状況、認証情報の有無、デバイス一覧を確認します
jevsim_inspect明示的に指定したデバイスの現在のアクセシビリティ状態を読み取ります
jevsim_run_steps指定した1~10個のステップを60秒以内に実行し、結果、所要時間、停止理由を受け取ります

まず、status と inspect を呼び出します。iOS の場合は、確認した simulatorId を渡します。Android の場合は、platform: "android" と ADB の deviceId を渡します。アプリとユーザーのタスクに基づいて計画を立ててください。各ステップには、バックエンドで検証できる expect 条件を必ず含めます。

たとえば、アプリで指定された遷移先の識別子が公開されている場合に限り、これは1つのステップになります。

{
  "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 を確認してからアプリを調べ、計画を立て直してください。ワークフローや結果が不確かなアクションを、決して確認せずに再実行しないでください。エージェントの使用方法と復旧を参照してください。

使用する場面

既知の一連の操作を委任します。バグの再現、画面への移動、フォームの操作、変更の検証などが該当します。ビルド、コード編集、視覚的な解釈、新しい情報に依存する判断はメインエージェントで行ってください。長い作業は、範囲を限定した複数の手順に分割します。

  • 対応環境: iOS Simulator と Android のネイティブアクセシビリティに対応しています。Android は macOS 上の Android 15 エミュレーターで実機テスト済みです。物理 Android デバイスと Windows/Linux ホストは未検証です。
  • 入力: Android は Unicode と空文字への置き換えに対応しています。テスト済みの iOS バックエンドが受け付けるのは、空でない印字可能な ASCII 文字のみです。
  • 制限事項: アクセスできないコントロール、Android WebView、任意のデスクトップ GUI には、ほかのツールが必要です。JevSim はスクリーンショットを解釈しません。
  • データ: セマンティック選択では、アクセシビリティテキストとフィールド値が TypeSafe に送信されます。識別子を厳密に指定するワークフローでは、これらのリクエストを省略します。ツールのトランスクリプトとバックエンドログにアプリのデータが含まれる場合があります。データの取り扱いを参照してください。

参考情報

エージェントのインストール · エージェントの使用方法 · ツール · 設定 · トラブルシューティング · リリースノート

コントリビューター向け:開発ガイドには、フィクスチャ、テスト、ベンチマークの再現方法、実装履歴が記載されています。

MIT。独立したプロジェクトです。自動化バックエンドと TypeSafe サービスには、それぞれ独自の利用規約とライセンスが適用されます。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。