home / mcp / espresso mcp server
An MCP Server for the Espresso Android Test Framework, crafted to improve testing capabilities and optimize development workflows.
Configuration
View docs{
"mcpServers": {
"vs4vijay-espresso-mcp": {
"command": "uvx",
"args": [
"espresso-mcp"
]
}
}
}You can run and manage the Espresso MCP Server to enhance Android testing workflows. This server exposes a set of tools that let you list, start, stop, and inspect Android Emulators and apps, capture device UI data, and simulate user actions from your MCP client. It is designed to integrate into your automation setup so you can orchestrate device actions alongside your tests.
To use the Espresso MCP Server, start it from your MCP client and connect your integration or editor tooling to the running server. The server is designed to run in stdio mode or in SSE mode for streaming capabilities. You can access the available actions to control emulators, install and launch apps, interact with the device UI, capture screenshots, and perform input gestures.
Prerequisites you need before installing and running the server are Python 3.x and the uv tool. You install uv with pip and then run the MCP server using the uvx CLI in either stdio or SSE mode.
# Install the uv runtime (Python-based MCP runner)
pip install uv
# Run in stdio mode
uvx espresso-mcp
# Run in sse mode
uvx espresso-mcp --sseConfigure your MCP clients to connect to the Espresso MCP Server by adding the following JSON configurations to their respective MCP configuration files.
{
"servers": {
"espresso-mcp": {
"command": "uvx",
"args": ["espresso-mcp"],
"env": {}
}
}
}If you want to integrate with Claude Desktop, add this JSON to the Claude config file to enable MCP access for the terminal integration.
{
"mcpServers": {
"terminal": {
"command": "uvx",
"args": ["espresso-mcp", "--timeout-ms", "30000"]
}
}
}Lists all available Android Virtual Devices (AVDs) that you can start for testing.
Lists all running Android Emulators to manage your test environment.
Starts an Android Emulator by its name, enabling you to boot and use a fresh device for tests.
Terminates a specified Android Emulator process.
Dumps the UI hierarchy of the connected Android device to inspect view structure.
Opens a given URI on the connected Android device to trigger deep links or app-specific actions.
Lists all installed apps on the connected Android device for inventory and verification.
Installs an APK on the connected Android device to deploy a new version of an app.
Launches a specific app on the connected Android device to begin automated interactions.
Stops a running app on the connected Android device to ensure clean test starts.
Uninstalls an app from the connected Android device to remove test artifacts.
Clears data for a specific app on the connected Android device to reset its state.
Takes a screenshot of the connected Android device for visual verification.
Records the device screen for a specified duration to capture UI interactions.
Simulates a physical or on-screen button press on the connected device.
Types text into the focused input on the connected device.
Clears existing text and then types new text into the focused input.
Replaces current text by clearing and typing new content.
Performs a tap gesture at specific coordinates on the device screen.
Performs a swipe gesture in a chosen direction across the screen.
Dumps the current activity name running on the device for Context awareness.