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_HOMEenvironment 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.
