{"id":30441811,"url":"https://github.com/appiumtestdistribution/jarvis-appium","last_synced_at":"2025-08-23T07:36:30.504Z","repository":{"id":300371234,"uuid":"1000130284","full_name":"AppiumTestDistribution/jarvis-appium","owner":"AppiumTestDistribution","description":"Appium MCP on Steroids!","archived":false,"fork":false,"pushed_at":"2025-08-01T16:59:31.000Z","size":9803,"stargazers_count":34,"open_issues_count":5,"forks_count":8,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-08-16T22:59:59.874Z","etag":null,"topics":["goose","mcp","mcp-appium","mcp-ios","mcp-mobile","test-generator"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/AppiumTestDistribution.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-06-11T10:02:22.000Z","updated_at":"2025-08-11T09:45:24.000Z","dependencies_parsed_at":"2025-06-21T10:36:01.143Z","dependency_job_id":null,"html_url":"https://github.com/AppiumTestDistribution/jarvis-appium","commit_stats":null,"previous_names":["appiumtestdistribution/jarvis-appium"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/AppiumTestDistribution/jarvis-appium","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AppiumTestDistribution%2Fjarvis-appium","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AppiumTestDistribution%2Fjarvis-appium/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AppiumTestDistribution%2Fjarvis-appium/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AppiumTestDistribution%2Fjarvis-appium/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AppiumTestDistribution","download_url":"https://codeload.github.com/AppiumTestDistribution/jarvis-appium/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AppiumTestDistribution%2Fjarvis-appium/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":271745913,"owners_count":24813530,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-23T02:00:09.327Z","response_time":69,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["goose","mcp","mcp-appium","mcp-ios","mcp-mobile","test-generator"],"created_at":"2025-08-23T07:36:25.838Z","updated_at":"2025-08-23T07:36:30.490Z","avatar_url":"https://github.com/AppiumTestDistribution.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n  \u003cimg src=\"src/assets/jarvislogo.png\" alt=\"Jarvis Appium Logo\" width=\"500\"/\u003e\n\u003c/div\u003e\n\n# Jarvis Appium\n\nAn intelligent MCP (Model Context Protocol) server that provides AI assistants with powerful tools and resources for Appium mobile automation. Jarvis Appium enables seamless mobile app testing through natural language interactions, intelligent locator generation, and automated test creation.\n\n## 🚀 Features\n\n- **Cross-Platform Support**: Android (UiAutomator2) and iOS (XCUITest) automation\n- **Cloud Integration**: Native LambdaTest cloud platform support for scalable testing\n- **Intelligent Locator Generation**: AI-powered element identification with priority-based strategies\n- **Interactive Session Management**: Create and manage local and cloud mobile device sessions\n- **Smart Element Interactions**: Click, text input, screenshot, and element finding capabilities\n- **App Management**: Upload and manage mobile apps on cloud platforms\n- **Automated Test Generation**: Generate Java/TestNG test code from natural language descriptions\n- **Page Object Model Support**: Built-in templates following best practices\n- **Flexible Configuration**: Environment-specific capabilities and settings\n\n## 📋 Prerequisites\n\nBefore using Jarvis Appium, ensure you have the following installed:\n\n### System Requirements\n\n- **Node.js** (v16 or higher)\n- **npm** or **yarn**\n- **Java Development Kit (JDK)** 8 or higher\n- **Android SDK** (for Android testing)\n- **Xcode** (for iOS testing on macOS)\n\n### Mobile Testing Setup\n\n#### Android Setup\n\n1. Install Android Studio and Android SDK\n2. Set `ANDROID_HOME` environment variable\n3. Add Android SDK tools to your PATH\n4. Enable USB debugging on your Android device\n5. Install Appium UiAutomator2 driver dependencies\n\n#### iOS Setup (macOS only)\n\n1. Install Xcode from the App Store\n2. Install Xcode Command Line Tools: `xcode-select --install`\n3. Install iOS simulators through Xcode\n4. For real device testing, configure provisioning profiles\n\n## 🛠️ Installation\n\n### As an MCP Server\n\nAdd Jarvis Appium to your MCP client configuration:\n\n```json\n{\n  \"mcpServers\": {\n    \"jarvis-appium\": {\n      \"disabled\": false,\n      \"timeout\": 100,\n      \"type\": \"stdio\",\n      \"command\": \"npx\",\n      \"args\": [\"jarvis-appium\"],\n      \"env\": {\n        \"ANDROID_HOME\": \"/path/to/android/sdk\",\n        \"CAPABILITIES_CONFIG\": \"/path/to/your/capabilities.json\"\n      }\n    }\n  }\n}\n```\n\n## ⚙️ Configuration\n\n### Capabilities Configuration\n\nCreate a `capabilities.json` file to define your device capabilities:\n\n```json\n{\n  \"android\": {\n    \"appium:app\": \"/path/to/your/android/app.apk\",\n    \"appium:deviceName\": \"Android Device\",\n    \"appium:platformVersion\": \"11.0\",\n    \"appium:automationName\": \"UiAutomator2\",\n    \"appium:udid\": \"your-device-udid\"\n  },\n  \"ios\": {\n    \"appium:app\": \"/path/to/your/ios/app.ipa\",\n    \"appium:deviceName\": \"iPhone 15 Pro\",\n    \"appium:platformVersion\": \"17.0\",\n    \"appium:automationName\": \"XCUITest\",\n    \"appium:udid\": \"your-device-udid\"\n  }\n}\n```\n\nSet the `CAPABILITIES_CONFIG` environment variable to point to your configuration file.\n\n## 🎯 Available Tools\n\n### Session Management\n\n#### `select_platform`\n\nChoose between Android or iOS platform for testing.\n\n#### `create_session`\n\nCreate a new mobile automation session with specified capabilities.\n\n- **Parameters**:\n  - `platform`: \"android\" or \"ios\"\n  - `capabilities`: Optional custom W3C capabilities\n\n#### `create_lambdatest_session`\n\nCreate a new mobile automation session on LambdaTest cloud platform.\n\n- **Parameters**:\n  - `platform`: \"android\" or \"ios\"\n  - `deviceName`: Device name (e.g., \"Galaxy S21\", \"iPhone 13 Pro\")\n  - `platformVersion`: Platform version (e.g., \"11.0\", \"15.0\")\n  - `app`: Optional app URL from LambdaTest (lt://APP_ID format)\n  - `buildName`: Optional build name for organizing tests\n  - `testName`: Optional test name for this session\n  - `ltOptions`: Optional LambdaTest-specific settings (video, logs, etc.)\n  - `capabilities`: Optional additional W3C capabilities\n\n#### `upload_app_lambdatest`\n\nUpload a mobile app to LambdaTest cloud storage for testing.\n\n- **Parameters**:\n  - `appPath`: Local path to the app file (APK/IPA)\n  - `appName`: Optional custom name for the app\n\n#### `appium_activate_app`\n\nActivate the app passed as input\n\n- **Parameters**:\n  - `id`: Bundle ID or app-package\n\n#### `appium_terminate_app`\n\nTerminate the app passed as input\n\n- **Parameters**:\n  - `id`: Bundle ID or app-package\n\n### Element Interaction\n\n#### `generate_locators`\n\nAnalyze the current screen and generate intelligent locators for all interactive elements.\n\n- Returns prioritized locator strategies (ID, accessibility ID, XPath, etc.)\n- Filters for clickable and focusable elements\n\n#### `appium_find_element`\n\nFind a specific element on the screen using various locator strategies.\n\n- **Parameters**:\n  - `strategy`: Locator strategy (id, xpath, accessibility id, etc.)\n  - `selector`: Element selector string\n\n#### `appium_click`\n\nClick on an element using its UUID.\n\n- **Parameters**:\n  - `elementUUID`: Element identifier returned by find_element\n\n#### `appium_set_value`\n\nEnter text into an input field.\n\n- **Parameters**:\n  - `elementUUID`: Element identifier\n  - `text`: Text to enter\n\n#### `appium_get_text`\n\nRetrieve text content from an element.\n\n- **Parameters**:\n  - `elementUUID`: Element identifier\n\n#### `appium_screenshot`\n\nCapture a screenshot of the current screen.\n\n#### `appium_scroll`\n\nScrolls the screen vertically in a certain direction\n\n- **Parameters**:\n  - `direction`: up or down. Default down\n\n#### `appium_scroll_to_element`\n\nScrolls up or down until finding certain element\n\n- **Parameters**:\n  - `strategy`: Locator strategy (id, xpath, accessibility id, etc.)\n  - `selector`: Element selector string\n\n### Test Generation\n\n#### `appium_generate_tests`\n\nGenerate automated test code from natural language test scenarios.\n\n- **Parameters**:\n  - `steps`: Array of test steps in natural language\n- Generates Java/TestNG code following Page Object Model patterns\n\n## 📚 Available Resources\n\n### `generate://code-with-locators`\n\nJava template resource for generating Page Object Model classes with cross-platform locator annotations.\n\n## 🔧 Usage Examples\n\n### Basic Test Automation Workflow\n\n1. **Select Platform and Create Session**:\n\n```\nUse select_platform to choose \"android\"\nUse create_session with platform \"android\"\n```\n\n2. **Generate Locators for Current Screen**:\n\n```\nUse generate_locators to analyze the current page\n```\n\n3. **Interact with Elements**:\n\n```\nUse appium_find_element to locate the login button\nUse appium_click to tap the login button\nUse appium_set_value to enter username\n```\n\n4. **Generate Test Code**:\n\n```\nUse appium_generate_tests with steps:\n- \"Open the app\"\n- \"Enter username 'testuser'\"\n- \"Enter password 'testpass'\"\n- \"Click login button\"\n- \"Verify dashboard is displayed\"\n```\n\n### LambdaTest Cloud Testing Workflow\n\n#### 1. Upload Your App (if needed)\n\n```\nUse upload_app_lambdatest with:\n- appPath: \"/path/to/your/app.apk\"\n- appName: \"My Test App\"\n```\n\n#### 2. Create Cloud Session\n\n```\nUse create_lambdatest_session with:\n- platform: \"android\"\n- deviceName: \"Galaxy S21\"\n- platformVersion: \"11.0\"\n- app: \"lt://APP_ID_FROM_UPLOAD\"\n- buildName: \"Sprint 1 Testing\"\n- testName: \"Login Flow Test\"\n```\n\n#### 3. Continue with Normal Testing\n\n```\nUse generate_locators, appium_find_element, appium_click, etc.\nView your test execution at: https://automation.lambdatest.com\n```\n\n### Example Test Scenarios\n\n#### Gmail Automation\n\n```\nSteps:\n1. Open Gmail app\n2. Compose an email to user@example.com with subject \"Test email from Jarvis Appium\"\n3. Add body as \"Hello World!\"\n4. Send the email\n```\n\n#### Todo App Testing\n\n```\nSteps:\n1. Open TODO app\n2. Add a todo item with title \"Complete Appium automation\"\n3. Set due date to June 25, 2025\n4. Add to personal list\n5. Mark as completed\n```\n\n#### LambdaTest Cloud Testing Example\n\n```\nSteps:\n1. Upload app: upload_app_lambdatest(\"/path/to/app.apk\", \"MyApp\")\n2. Create session: create_lambdatest_session(\"android\", \"Pixel 6\", \"12.0\", \"lt://APP123\")\n3. Generate locators and interact with elements\n4. View results in LambdaTest dashboard\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fappiumtestdistribution%2Fjarvis-appium","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fappiumtestdistribution%2Fjarvis-appium","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fappiumtestdistribution%2Fjarvis-appium/lists"}