Skip to content
Agentmart
Submit a tool

MCP Appium - Mobile Development and Automation Server

MCP server for Appium mobile automation on iOS and Android devices with test creation tools.

Connector by appium · GitHub account verified by the MCP Registry

IndexedLicense unknownLocal (stdio)
Write a review

Install

Works with Claude Code, Codex, VS Code, Cursor, Windsurf, Claude Desktop. Read the repository before you give any tool access to your data.

npx agentmarket install connector/appium-appium-mcp

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

MCP server for Appium mobile automation on iOS and Android devices with test creation tools.

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this server can do and what it asks for, from its tool list and install config. Checked Oct 25, 2026.

Tools
9 read · 16 write · 8 delete
Secrets
None asked for
Install scripts
Not scanned yet
Runs as
Node.js package

Tools by what they do 33

Read from the source code; the running server may list different tools.

Read 9 · Look things up without changing anything.

  • appium_ai
  • appium_find_element
  • appium_find_elements
  • appium_get_active_element
  • appium_get_element_attribute
  • appium_get_text
  • appium_get_window_size
  • appium_mobile_device_info
  • generate_locators

Write 16 · Create, change, send or run things.

  • appium_app_lifecycle
  • appium_context
  • appium_driver_settings
  • appium_generate_tests
  • appium_geolocation
  • appium_get_page_source
  • appium_mobile_clipboard
  • appium_mobile_file
  • appium_mobile_permissions
  • appium_mobile_press_key
  • appium_orientation
  • appium_perform_actions
Show 4 more tools
  • appium_screen_recording
  • appium_screenshot
  • appium_set_value
  • select_device

Delete 8 · Delete, drop, revoke or wipe things.

  • appium_alert
  • appium_drag_and_drop
  • appium_gesture
  • appium_mobile_device_control
  • appium_mobile_keyboard
  • appium_prepare_ios_real_device
  • appium_session_management
  • prepare_ios_simulator

Files it touches

  • Any path the agent passes to its tools

Tools (33)

Read from the source code; the running server may differ. Descriptions are the server’s own words; hidden characters are shown as [U+…].

  • appium_airead-only

    Vision-based AI capabilities (FALLBACK - use only when traditional tools cannot locate the element). Use 'action' to choose: find_element. find_element: locate an element from a natural-language description; returns a coordinate UUID (ai-element:x,y:bbox) usable with appium_gesture. Prefer appium_find_element with xpath/id/accessibility id/text first. Reach for this tool only when the element has no stable identifier, the page source is unavailable, or you need to locate by purely visual cues (color, position, icon).

  • appium_alert

    Handle system alerts with action=accept|dismiss, or read alert text with action=get_text.

  • appium_app_lifecycle

    Manage app lifecycle, installation, state, data, and deep links.

  • appium_context

    Manage Appium contexts with one tool. action=list returns all contexts and current context. action=switch changes to a target context.

  • appium_drag_and_drop

    Perform a drag-and-drop gesture from a source location to a target location. The gesture: long press the source (default 600ms), drag to the target (default 1200ms), then release. Source and target can each be specified as either an element UUID or coordinates. Useful for reordering lists, moving items, drag-to-delete.

  • appium_driver_settings

    Read or update Appium driver session settings (e.g. idle timeouts, selector waits). Use action=get to return JSON settings; action=update merges a map into the session. Works for embedded UiAutomator2/XCUITest sessions and remote WebDriver clients that support Appium settings.

  • appium_find_elementread-only

    Find an element by strategy and selector. Pass its ID as elementUUID to interaction tools. Returns driver attributes as JSON. For drivers supporting elementResponseAttributes, use appium_driver_settings to configure it with shouldUseCompactResponses=false. Prefer accessibility id > id > platform-native > xpath (last resort: slow/brittle). See strategy for platform-specific guidance. To scroll until a target is found, use appium_gesture action=scroll_to_element with the same strategy and selector, rather than repeatedly calling this tool. Vision fallback: appium_ai action=find_element (if enabl…

  • appium_find_elementsread-only

    Find all elements matching a strategy and selector. Returns JSON {elements: [{elementId, attributes?}]}; no matches returns {elements: []}. Pass an elementId as elementUUID to interaction tools. Additional driver attributes are preserved. For drivers supporting elementResponseAttributes, use appium_driver_settings to configure it with shouldUseCompactResponses=false. Use appium_find_element when only one match is needed.

  • appium_generate_tests

    Return a workflow to execute the scenario with MCP tools, then generate test code from observed interactions. Prefer appium_find_element; generate_locators is for broad inspection.

  • appium_geolocation

    Get, set, or reset the device geolocation (GPS coordinates). Works on both iOS (simulators and real devices) and Android (emulators and real devices with mock location enabled). Use action=get to read current coordinates, action=set with latitude/longitude (and optional altitude for Android) to simulate a location, or action=reset to restore the system default. Note: On Android emulators, reset is not supported — use action=set to manually restore coordinates instead. On Android real devices, the mocked location may persist until the GPS cache refreshes.

  • appium_gesture

    Perform a touch gesture. Use 'action' to choose: tap, double_tap, long_press, scroll, swipe, pinch_zoom, scroll_to_element, back. Choose scroll vs swipe by intent: scroll to browse content in a list or feed; swipe to dismiss, switch screens, navigate carousels, or pull-to-refresh (speed=fast). For drag-and-drop use appium_drag_and_drop. For custom multi-touch use appium_perform_actions.

  • appium_get_active_elementread-only

    Get the currently active/focused element and return its UUID for follow-up interactions. [PRIORITY 1: Use this first when you need to find what element currently has focus]

  • appium_get_element_attributeread-only

    Get the value of an element attribute. Use this to check element state (enabled, selected, checked, focused, displayed, clickable) or read properties (name, value, label, content-desc, resource-id, class).

  • appium_get_page_source

    Get current-screen XML. saveToFile=true returns server-local path/bytes and enables selector/pattern summaries.

  • appium_get_textread-only

    Get text from an element

Show 18 more tools
  • appium_get_window_sizeread-only

    Get the width and height of the device screen in pixels. Useful for calculating coordinates for swipes, taps, and scrolls.

  • appium_mobile_clipboard

    Read or set the device clipboard as plain text (Android UiAutomator2 / iOS XCUITest). action=get returns current text; action=set requires content.

  • appium_mobile_device_control

    Control device behavior: lock/unlock the screen, shake the device, or open the notifications panel. Use the action parameter to choose what to do.

  • appium_mobile_device_inforead-only

    Get device information, battery status, or current device time in a single call. Use the "action" parameter to select which data to retrieve. Works on both iOS and Android.

  • appium_mobile_file

    Push or pull a file using Appium mobile extensions. action=push uses payloadBase64, action=pull returns contentBase64.

  • appium_mobile_keyboard

    Hide the software keyboard or check if it is visible (Android UiAutomator2 / iOS XCUITest). action=hide uses mobile: hideKeyboard; action=is_shown uses mobile: isKeyboardShown.

  • appium_mobile_permissions

    Get/update Android app permissions or iOS Simulator privacy services; reset iOS privacy prompts. See action-specific parameters.

  • appium_mobile_press_key

    Press navigation keys (BACK, HOME, APP_SWITCH) on Android or physical buttons (HOME, volume, etc.) on iOS/tvOS.

  • appium_orientation

    Get or set the device/screen orientation. Supports action=get and action=set (LANDSCAPE or PORTRAIT).

  • appium_perform_actions

    Execute raw W3C Actions API sequences for advanced multi-touch gestures not covered by appium_gesture. Use this for custom multi-finger gestures (rotate, three-finger swipe, edge swipes), complex timing sequences, or any gesture requiring precise control over individual touch points. Prefer appium_gesture for standard gestures (tap, scroll, swipe, pinch) — it handles platform differences automatically.

  • appium_prepare_ios_real_device

    Prepare signed WDA for a real iOS device. Omit provisioningProfileUuid to list profiles; ask the user to choose, highlighting recommendedForWda. Pass the chosen UUID to download, package, and sign WDA; wildcard profiles use a concrete WDA bundle ID. Downloads/unsigned IPA are cached per version; signing always reruns. Pass capabilitiesHint to appium_session_management action=create to install/launch the signed WDA. Requires macOS, Xcode 16+, and a paired developer-mode device.

  • appium_screen_recording

    Start or stop screen recording. action=start begins recording; action=stop stops and saves to MP4.

  • appium_screenshot

    Take a screenshot and save as PNG. Optionally provide elementUUID to capture only that element.

  • appium_session_managementcan change or delete data

    Manage Appium sessions. Use action=create to start a session, attach to connect to an existing one, detach to forget an attached session, delete to stop one, list to see all active sessions, or select to switch the active session.

  • appium_set_value

    Enter text into an element

  • generate_locatorsread-only

    Generate locators for all interactable elements on the current page. [PRIORITY 3: Use this for debugging/inspection or when you need comprehensive element info with locator suggestions]

  • prepare_ios_simulator

    Boot an iOS/tvOS simulator, download/cache WDA, and launch it on a free per-simulator port. Pass capabilitiesHint (appium:webDriverAgentUrl) to appium_session_management action=create to reuse WDA. skipWda=true only boots. APPIUM_MCP_WDA_APP_PATH can point to an extracted WebDriverAgentRunner-Runner.app (absolute path) to skip download.

  • select_device

    Discover/select a LOCAL device. Ask for platform if unknown; one device is auto-selected. For multiple devices, ask the user to choose, then pass deviceUdid. Next: prepare_ios_simulator for iOS simulators, then appium_session_management action=create. Skip for REMOTE servers: pass device capabilities (appium:deviceName/appium:udid) and the user-provided remoteServerUrl to session creation.

Signals

Last release
Oct 26, 2026 (2 days ago)

Details

Registry name
io.github.appium/appium-mcp
Version
1.99.0
Auth
No auth
Packages
npm appium-mcp
License
License unknown
First seen
Oct 24, 2026
Last checked
Oct 26, 2026
Cite this page

MCP Appium - Mobile Development and Automation Server. Agent Mart. https://agentmart.dev/connectors/appium-appium-mcp (last updated 2026-10-26)