Integrations
Provides capabilities for testing and automating Android applications, including device management, app installation, and UI interaction through the Appium framework.
Enables mobile app automation through Appium, supporting element interactions, app management, device controls, and advanced features like context switching and custom gestures.
Supports automation of iOS applications on devices and simulators, including element interactions and app management through the Appium framework.
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:
- Install and start Appium server:
- 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:
- Start the MCP server:
- In a new terminal, run the 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:
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
You must be authenticated.
local-only server
The server can only run on the client's local machine because it depends on local resources.
Tools
A Model Context Protocol (MCP) server that enables mobile app automation using Appium, supporting various device interactions, element operations, and app management through a standardized protocol.
- Prerequisites
- Setup
- Running Tests
- Test Configuration
- Available Actions
- Troubleshooting
- Contributing
- License
Related Resources
Related MCP Servers
- -securityFlicense-qualityA Model Context Protocol (MCP) server implementation for interacting with Phabricator API. This server allows LLMs to interact with Phabricator through a standardized interface.Last updated -5Python
- AsecurityAlicenseAqualityA beginner-friendly Model Context Protocol (MCP) server that helps users understand MCP concepts, provides interactive examples, and lists available MCP servers. This server is designed to be a helpful companion for developers working with MCP. Also comes with a huge list of servers you can install.Last updated -3936JavaScriptApache 2.0
- -securityFlicense-qualityThis MCP server implementation allows users to manage and expose actions as tools from their Integration App workspace through the Model Context Protocol.Last updated -1014JavaScript
- -security-license-qualityA Model Context Protocol (MCP) server that interacts with system APIs, allowing users to check connections, search employees, register breakfast, and update chemical information by shifts.Last updated -2