appium-mcp
If you are the rightful owner of appium-mcp and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.
The MCP Appium Server is a Model Context Protocol server implementation designed for mobile app automation using Appium.
MCP Appium Server
A Model Context Protocol (MCP) server implementation for mobile app automation using Appium.
Prerequisites
- Node.js (v14 or higher)
- Java Development Kit (JDK)
- Android SDK (for Android testing)
- Xcode (for iOS testing, macOS only)
- Appium Server
- Android device or emulator / iOS device or simulator
Setup
- Install dependencies:
npm install
- Install and start Appium server:
npm install -g appium
appium
- Set up Android device/emulator:
- Enable Developer Options on your Android device
- Enable USB Debugging
- Connect device via USB or start an emulator
- Verify device is connected using
adb devices
Running Tests
- Build the project:
npm run build
- Start the MCP server:
npm run dev
- In a new terminal, run the test:
npm test
Test Configuration
The example test uses the Android Settings app as a demo. To test your own app:
-
Edit
examples/appium-test.ts
:- Update
deviceName
to match your device - Set
app
path to your APK file, or - Update
appPackage
andappActivity
for an installed app
- Update
-
Common capabilities configuration:
const capabilities: AppiumCapabilities = {
platformName: 'Android',
deviceName: 'YOUR_DEVICE_NAME',
automationName: 'UiAutomator2',
// For installing and testing an APK:
app: './path/to/your/app.apk',
// OR for testing an installed app:
appPackage: 'your.app.package',
appActivity: '.MainActivity',
noReset: true
};
Available Actions
The MCP server supports various Appium actions:
-
Element Interactions:
- Find elements
- Tap/click
- Type text
- Scroll to element
- Long press
-
App Management:
- Launch/close app
- Reset app
- Get current package/activity
-
Device Controls:
- Screen orientation
- Keyboard handling
- Device lock/unlock
- Screenshots
- Battery info
-
Advanced Features:
- Context switching (Native/WebView)
- File operations
- Notifications
- Custom gestures
Troubleshooting
-
Device not found:
- Check
adb devices
output - Verify USB debugging is enabled
- Try reconnecting the device
- Check
-
App not installing:
- Verify APK path is correct
- Check device has enough storage
- Ensure app is signed for debug
-
Elements not found:
- Use Appium Inspector to verify selectors
- Check if elements are visible on screen
- Try different locator strategies
-
Connection issues:
- Verify Appium server is running
- Check port conflicts
- Ensure correct capabilities are set
Contributing
Feel free to submit issues and pull requests for additional features or bug fixes.
License
MIT