
Appium Gestures
STDIOMCP server providing resources and tools for Appium mobile gestures automation.
MCP server providing resources and tools for Appium mobile gestures automation.
An MCP (Model Context Protocol) server providing resources and tools for Appium mobile gestures.
Documentation resources for common Appium mobile gestures:
Tools to generate code for these gestures in different languages:
# Clone the repository git clone https://github.com/yourusername/mcp-appium-gestures.git cd mcp-appium-gestures # Install dependencies npm install
# Start the server with stdio transport npm start # or npm run start:stdio
# Start the server with SSE transport on default port (8080) npm run start:sse # Start the server with SSE transport on a custom port npm run start:sse:port 3000
# Test with mcp-cli npm run dev # Inspect with MCP Inspector npm run inspect
To use this MCP server with Claude, you need to add it to your MCP settings configuration file. The location of this file depends on your platform:
/Users/[username]/Library/Application Support/Cursor/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json
/Users/[username]/Library/Application Support/Claude/claude_desktop_config.json
Add the following configuration to the mcpServers
object in the settings file:
{ "mcpServers": { "appium-gestures": { "command": "npx", "disabled": false, "args": ["mcp-appium-gestures"], "autoApprove": [], "timeout": 300, "transportType": "stdio" } } }
Once configured, you can use the MCP server's tools and resources directly in Claude:
<use_mcp_tool>
<server_name>appium-gestures</server_name>
<tool_name>generate-tap-code</tool_name>
<arguments>
{
"language": "javascript",
"useElement": true,
"elementId": "login-button"
}
</arguments>
</use_mcp_tool>
Or access resources:
<access_mcp_resource>
<server_name>appium-gestures</server_name>
<uri>gesture://tap</uri>
</access_mcp_resource>
The server provides documentation resources for the following gestures:
gesture://tap
- Tap gesture documentationgesture://swipe
- Swipe gesture documentationgesture://scroll
- Scroll gesture documentationgesture://pinch-zoom
- Pinch and zoom gestures documentationgesture://long-press
- Long press gesture documentationgesture://drag-drop
- Drag and drop gesture documentationgesture://double-tap
- Double tap gesture documentationYou can also access a specific gesture by name using the template: gesture://{name}
The server provides the following tools to generate code for Appium gestures:
Generates code for tap gesture.
Parameters:
language
: 'javascript' or 'java'useElement
: boolean - whether to tap on an element or at coordinateselementId
: string (required if useElement is true) - the element ID to tap onx
: number (required if useElement is false) - x coordinate to tap aty
: number (required if useElement is false) - y coordinate to tap atGenerates code for swipe gesture.
Parameters:
language
: 'javascript' or 'java'startX
: number - starting x coordinatestartY
: number - starting y coordinateendX
: number - ending x coordinateendY
: number - ending y coordinateduration
: number (optional, default: 500) - duration of the swipe in millisecondsGenerates code for scroll gesture.
Parameters:
language
: 'javascript' or 'java'direction
: 'up', 'down', 'left', or 'right'useElement
: boolean (optional, default: false) - whether to scroll to an elementelementId
: string (optional) - the element ID to scroll todistance
: number (optional, default: 300) - distance to scrollGenerates code for long press gesture.
Parameters:
language
: 'javascript' or 'java'useElement
: boolean - whether to long press on an element or at coordinateselementId
: string (required if useElement is true) - the element ID to long press onx
: number (required if useElement is false) - x coordinate to long press aty
: number (required if useElement is false) - y coordinate to long press atduration
: number (optional, default: 2000) - duration of the long press in millisecondsGenerates code for double tap gesture.
Parameters:
language
: 'javascript' or 'java'useElement
: boolean - whether to double tap on an element or at coordinateselementId
: string (required if useElement is true) - the element ID to double tap onx
: number (required if useElement is false) - x coordinate to double tap aty
: number (required if useElement is false) - y coordinate to double tap atpauseDuration
: number (optional, default: 200) - pause duration between taps in millisecondsMIT