Jarvis Appium - MCP server for Mobile Development and Automation | iOS, Android, Simulator, Emulator, and Real Devices
Jarvis Appium is an intelligent MCP (Model Context Protocol) server designed to empower AI assistants with a robust suite of tools for mobile automation. It streamlines mobile app testing by enabling natural language interactions, intelligent locator generation, and automated test creation for both Android and iOS platforms.
- Features
- Prerequisites
- Installation
- Configuration
- Available Tools
- Client Support
- Usage Examples
- Contributing
- License
- Cross-Platform Support: Automate tests for both Android (UiAutomator2) and iOS (XCUITest).
- Cloud Integration: Seamlessly connect with the LambdaTest cloud platform for scalable testing.
- Intelligent Locator Generation: AI-powered element identification using priority-based strategies.
- Interactive Session Management: Easily create and manage sessions on local and cloud-based mobile devices.
- Smart Element Interactions: Perform actions like clicks, text input, screenshots, and element finding.
- App Management: Upload and manage mobile applications on cloud platforms.
- Automated Test Generation: Generate Java/TestNG test code from natural language descriptions.
- Page Object Model Support: Utilize built-in templates that follow industry best practices.
- Flexible Configuration: Customize capabilities and settings for different environments.
Before you begin, ensure you have the following installed:
- Node.js (v22 or higher)
- npm or yarn
- Java Development Kit (JDK) (8 or higher)
- Android SDK (for Android testing)
- Xcode (for iOS testing on macOS)
- Install Android Studio and the Android SDK.
- Set the
ANDROID_HOME
environment variable. - Add the Android SDK tools to your system's PATH.
- Enable USB debugging on your Android device.
- Install the Appium UiAutomator2 driver dependencies.
- Install Xcode from the App Store.
- Install the Xcode Command Line Tools:
xcode-select --install
. - Install iOS simulators through Xcode.
- For real device testing, configure your provisioning profiles.
To integrate Jarvis Appium with your MCP client, add the following to your configuration:
{
"mcpServers": {
"jarvis-appium": {
"disabled": false,
"timeout": 100,
"type": "stdio",
"command": "npx",
"args": ["jarvis-appium"],
"env": {
"ANDROID_HOME": "/path/to/android/sdk",
"CAPABILITIES_CONFIG": "/path/to/your/capabilities.json"
}
}
}
}
Create a capabilities.json
file to define your device capabilities:
{
"android": {
"appium:app": "/path/to/your/android/app.apk",
"appium:deviceName": "Android Device",
"appium:platformVersion": "11.0",
"appium:automationName": "UiAutomator2",
"appium:udid": "your-device-udid"
},
"ios": {
"appium:app": "/path/to/your/ios/app.ipa",
"appium:deviceName": "iPhone 15 Pro",
"appium:platformVersion": "17.0",
"appium:automationName": "XCUITest",
"appium:udid": "your-device-udid"
}
}
Set the CAPABILITIES_CONFIG
environment variable to point to your configuration file.
select_platform
: Choose between "android" or "ios".create_session
: Create a new mobile automation session.create_lambdatest_session
: Create a session on the LambdaTest cloud platform.upload_app_lambdatest
: Upload a mobile app to LambdaTest.appium_activate_app
: Activate a specified app.appium_terminate_app
: Terminate a specified app.
generate_locators
: Generate intelligent locators for all interactive elements on the current screen.appium_find_element
: Find a specific element using various locator strategies.appium_click
: Click on an element.appium_set_value
: Enter text into an input field.appium_get_text
: Retrieve the text content of an element.appium_screenshot
: Capture a screenshot of the current screen.appium_scroll
: Scroll the screen vertically.appium_scroll_to_element
: Scroll until a specific element is found.
appium_generate_tests
: Generate automated test code from natural language scenarios.
Jarvis Appium is designed to be compatible with any MCP-compliant client.
Here's an example prompt to test the Amazon mobile app checkout process:
Open Amazon mobile app, search for "iPhone 15 Pro", select the first search result, add the item to cart, proceed to checkout, sign in with email "[email protected]" and password "testpassword123", select shipping address, choose payment method, review order details, and place the order. Use JAVA + TestNG for test generation.
This example demonstrates a complete e-commerce checkout flow that can be automated using Jarvis Appium's intelligent locator generation and test creation capabilities.
### LambdaTest Cloud Testing
1. **Upload Your App**:
```
Use upload_app_lambdatest with:
- appPath: "/path/to/your/app.apk"
- appName: "My Test App"
```
2. **Create Cloud Session**:
```
Use create_lambdatest_session with:
- platform: "android"
- deviceName: "Galaxy S21"
- platformVersion: "11.0"
- app: "lt://APP_ID_FROM_UPLOAD"
```
## π Contributing
Contributions are welcome! Please feel free to submit a pull request or open an issue to discuss any changes.
## π License
This project is licensed under the MIT License. See the [LICENSE](LICENSE) file for details.