Skip to main content
Glama
appium

MCP Appium

Official
by appium

appium_find_element

Read-only

Locates a mobile UI element by strategy and selector, returning a UUID for subsequent interactions. Prioritizes stable locators like accessibility id over xpath for reliable automation.

Instructions

Find a specific element by strategy and selector which will return a uuid that can be used for interactions.

[PRIORITY 2: Use this to search for a target element.]

Strategy priority: accessibility id > id > platform-native (-ios predicate string / -ios class chain on iOS, -android uiautomator on Android) > xpath (last resort — slow & brittle). See the strategy parameter for the full ranking.

Scrolling until an element appears: use appium_gesture with action=scroll_to_element (same strategy + selector), not this tool.

Vision / natural-language find: use appium_ai with action=find_element, not this tool.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
selectorYesSelector string for the chosen strategy. Do not pass natural-language descriptions of the target here; use appium_ai (action=find_element) for that.
strategyYesLocator strategy. Try in priority order: (1) accessibility id [cross-platform, fastest, most stable], (2) id [Android resource-id; iOS aliases accessibility id], (3) -ios predicate string [iOS native, fast], (4) -ios class chain [iOS native, hierarchy queries], (5) -android uiautomator [Android native, expressive UiSelector], (6) xpath [LAST RESORT — slow on iOS XCUITest, brittle to layout changes], (7) name [legacy; often aliased on iOS], (8) class name [too generic, usually multi-match], (9) css selector [webview/hybrid contexts only]. Platform tips: iOS prefer (1)→(3)→(4); Android prefer (1)→(2)→(5); xpath last on both. For natural-language / vision-based find, use the appium_ai tool (action=find_element), not this one.
sessionIdNoSession ID to target. If omitted, uses the active session.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already mark this as read-only, and the description adds behavioral context beyond that: it returns a UUID for later interactions, provides a strategy priority ranking, and warns that xpath is slow and brittle. It does not describe not-found behavior or waiting semantics, but the annotations carry the safety profile.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured and front-loaded, with the core purpose stated first and clear routing notes following. It is somewhat long and repeats ranking information that also exists in the schema, but every section serves a practical purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only lookup tool with full schema coverage and annotations, the description is largely complete: it defines the return value, strategy selection, and important sibling-tool exclusions. It omits edge-case behavior like 'element not found' or multiple matches, but the core invocation context is covered.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already fully documents strategy, selector, and sessionId. The description reinforces the strategy priority and exclusions, but adds little meaning beyond what the parameter descriptions already provide.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: 'Find a specific element by strategy and selector' and adds the key outcome — returning a UUID for interactions. It also distinguishes itself from related tools by naming the scrolling and vision-based alternatives it is not.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicit when-to-use guidance is provided via a strategy priority ordering, and the description clearly says when NOT to use this tool: scrolling should use appium_gesture with scroll_to_element, and natural-language finding should use appium_ai. This is strong routing guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/appium/appium-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server