关于 espresso-mcp
espresso-mcp 通过 MCP 服务提供 Android 设备和模拟器控制功能,面向开展 Android 应用测试的开发者。工具涵盖模拟器管理、应用操作和界面交互。
主要功能
- 01列出可用 AVD 和运行中的模拟器
- 02启动和停止模拟器
- 03安装和管理应用
- 04检查界面层级及当前 Activity
- 05模拟点击、滑动和文本输入
- 06截取屏幕及录制屏幕
适用场景
- 01为应用测试准备 Android 模拟器
- 02在设备上安装并启动 APK
- 03测试时检查界面层级
- 04自动执行手势和文本输入
MCP 相关
espresso-mcp 是一个 MCP 服务,将 Android 模拟器和已连接设备的控制能力作为工具开放,并提供配置和问候语资源。它支持 stdio 或 SSE 模式运行。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
还没有获取到工具列表
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
espresso-mcp
用于 Espresso Android 测试框架的 MCP 服务,旨在提升测试能力并优化开发工作流。
安装
- Python 3.x
- uv:
pip install uv
# Run in stdio mode
uvx espresso-mcp
# Run in sse mode
uvx espresso-mcp --sse
使用方法
- 在 Github Copilot 中:将以下 JSON 配置添加到文件
.vscode/mcp.json
{
"servers": {
"espresso-mcp": {
"command": "uvx",
"args": ["espresso-mcp"],
"env": {}
}
}
}
- 在 Claude 中:将以下 JSON 配置添加到文件
claude_desktop_config.json
{
"mcpServers": {
"terminal": {
"command": "uvx",
"args": ["espresso-mcp", "--timeout-ms", "30000"]
}
}
}
- 使用 OpenAI SDK
from openai import OpenAI
client = OpenAI()
resp = client.responses.create(
model="gpt-4.1",
tools=[
{
"type": "mcp",
"server_label": "espresso-mcp",
"server_url": "http://localhost:8000/sse",
"require_approval": "never",
},
],
input="Open Teams App",
)
print(resp.output_text)
可用工具
espresso-mcp 项目提供以下工具:
- list_avds:列出所有可用的 Android 虚拟设备(AVD)。
- list_emulators:列出所有正在运行的 Android 模拟器。
- start_emulator:按名称启动 Android 模拟器。
- kill_emulator:结束指定的 Android 模拟器。
- dump_ui_hierarchy:导出已连接 Android 设备的 UI 层级结构。
- open_uri:在已连接的 Android 设备上打开 URI。
- list_apps:列出已连接 Android 设备上安装的所有应用。
- install_app:在已连接的 Android 设备上安装 APK。
- start_app:启动已连接的 Android 设备上的指定应用。
- stop_app:停止已连接的 Android 设备上的指定应用。
- uninstall_app:卸载已连接的 Android 设备上的应用。
- clear_app_data:清除已连接的 Android 设备上指定应用的数据。
- take_screenshot:截取已连接 Android 设备的屏幕。
- record_screen:按指定时长录制已连接 Android 设备的屏幕。
- press_button:模拟按下已连接 Android 设备上的按钮。
- type_text:在已连接的 Android 设备上输入文本。
- clear_and_type_text:清除所有文本,并在已连接的 Android 设备上输入新文本。
- replace_text:清除当前文本并输入新文本,以替换已连接 Android 设备上的文本。
- tap:模拟在已连接 Android 设备的指定坐标处轻触。
- swipe:在已连接的 Android 设备上沿指定方向执行滑动手势。
- dump_current_activity:导出已连接 Android 设备当前 Activity 的名称。
资源
提供以下资源:
- config://app:获取静态配置数据。
- greeting://{name}:获取个性化问候语。
本地设置
- Python 3.x
- uv:
pip install uv
# Install dependencies
uv sync
# OR
uv sync --frozen --all-extras --dev
# Run Server
uv run espresso-mcp
# Run in Dev Mode
uv run mcp dev src/espresso_mcp/server.py
调试
- 使用 MCP Inspector
# Install MCP Inspector
yarn global add @modelcontextprotocol/inspector
# Test MCP Server
yarn run @modelcontextprotocol/inspector python server.py
代码检查与测试
# Lint
uv run ruff check
# Tests
uv run pytest
发布
# Build the package
uv build
uv build --wheel
uv build --no-sources
# Upload to PyPI
uv publish
开发说明
uv tool install espresso-mcp
# OR
uvx espresso-mcp
uv init espresso-mcp
uv add "mcp[cli]"
uv run mcp dev server.py
uv tool run espresso-mcp
uv run pre-commit install
pre-commit run --all-files
评论
支持 Markdown
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。