mcpField
M
Mobile Device Mcp

Mobile Device Mcp

本地服务
github.com/saranshbamaniaAI 与智能体431 周前更新

关于 Mobile Device Mcp

Mobile Device Mcp 是 MCP 服务,让 AI 编码助手检查并操作 Android 设备和 iOS 模拟器。工具涵盖截图、UI 交互、AI 视觉分析、Flutter 组件检查、录屏和测试脚本生成。

主要功能

  1. 01截图与 UI 树检查
  2. 02按坐标或描述进行交互
  3. 03Claude 和 Gemini 视觉分析
  4. 04Flutter 组件树与源码映射
  5. 05录屏和测试生成

适用场景

  1. 01借助助手复现移动 UI 问题
  2. 02检查 Flutter 组件及其源码位置
  3. 03将交互录制为测试脚本
  4. 04在 Android 或 iOS 模拟器上验证应用界面

MCP 相关

MCP 服务向兼容的编码助手提供移动设备工具,助手会将其作为后台进程启动和管理。工具包括设备控制、视觉分析、Flutter 检查和测试生成。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"saranshbamania-mobile-device": {
"command": "npx",
"args": [
"-y",
"mobile-device-mcp"
],
"env": {
"GOOGLE_API_KEY": "<GOOGLE_API_KEY>",
"MOBILE_MCP_LICENSE_KEY": "<MOBILE_MCP_LICENSE_KEY>",
"MCP_ADB_PATH": "<MCP_ADB_PATH>",
"MCP_DEFAULT_DEVICE": "<MCP_DEFAULT_DEVICE>"
}
}
}
}
启动命令npx -y mobile-device-mcp
需要配置的环境变量
GOOGLE_API_KEY密钥Google API key for AI visual analysis tools. Get a free key at aistudio.google.com/apikey
MOBILE_MCP_LICENSE_KEY密钥Pro license key to unlock all 49 tools (format: MDMCP-XXXXX-XXXXX-XXXXX-XXXXX). Get Pro at rzp.io/rzp/r4ijQsJY
MCP_ADB_PATHCustom path to ADB binary. Auto-detected from PATH if not set.
MCP_DEFAULT_DEVICEDevice serial number to use when multiple devices are connected. Auto-detected if only one device is connected.

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npmmobile-device-mcp0.2.9

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

移动设备 MCP

mobile-device-mcp

npm 版本 npm 下载量 GitHub 星标数 许可证:BSL 1.1

为 AI 编码助手(Claude Code、Cursor、Windsurf)提供查看和操作移动设备能力的 MCP 服务。提供 49 个工具,用于截屏、UI 检查、触控交互、AI 驱动的视觉分析、Flutter 小部件树检查、视频录制和测试生成。

AI 助手能读取你的代码,却看不到你的手机。这个工具解决了这个问题。

为什么选择它?

功能mobile-device-mcpmobile-next/mobile-mcpappium/appium-mcp
工具总数4920~15
安装npx(30 秒)npx需要 Appium 服务
AI 视觉分析12 个工具(Claude + Gemini)无基于视觉的查找
Flutter 小部件树10 个工具(Dart VM Service)无无
智能元素查找4 层(本地搜索 <1ms)仅无障碍树XPath/选择器
配套应用(UI 树速度快 23 倍)有无无
视频录制有无无
测试脚本生成TS、Python、JSON无仅 Java/TestNG
iOS 模拟器支持有有有
iOS 真机支持计划中有有
截图压缩89%(251KB->28KB)无50-80%
多提供商 AIClaude + Gemini不适用单一提供商
价格免费 + Pro(₹499/月)免费免费

问题所在

Web 开发者有浏览器 DevTools、Playwright 和 Puppeteer,AI 助手可以点击、截屏并验证修复结果。移动开发者呢?他们只能手动截屏、复制日志,再描述屏幕上的内容。他们成了 AI 和设备之间的人工中间层。

功能介绍

Developer: "The login button doesn't work"

Without this tool:                    With this tool:
  1. Manually screenshot              1. AI calls take_screenshot -> sees the screen
  2. Paste into AI chat               2. AI calls smart_tap("login button") -> taps it
  3. AI guesses what's wrong          3. AI calls verify_screen("error message shown") -> sees result
  4. Apply fix, rebuild               4. AI calls visual_diff -> confirms fix worked
  5. Repeat 4-5 times                 5. Done.

快速开始

安装
npx mobile-device-mcp

无需全局安装,可通过 npx 直接运行。

前提条件
设置(一次性,30 秒)
  1. 获取 Google AI 密钥(提供免费套餐):aistudio.google.com/apikey

  2. 在项目根目录添加 .mcp.json:

macOS / Linux:

{
  "mcpServers": {
    "mobile-device": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "mobile-device-mcp"],
      "env": {
        "GOOGLE_API_KEY": "your-google-api-key"
      }
    }
  }
}

Windows:

{
  "mcpServers": {
    "mobile-device": {
      "type": "stdio",
      "command": "cmd",
      "args": ["/c", "npx", "-y", "mobile-device-mcp"],
      "env": {
        "GOOGLE_API_KEY": "your-google-api-key"
      }
    }
  }
}

使用 Pro 许可证密钥(购买 Pro 后):

macOS / Linux(Pro)
{
  "mcpServers": {
    "mobile-device": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "mobile-device-mcp"],
      "env": {
        "GOOGLE_API_KEY": "your-google-api-key",
        "MOBILE_MCP_LICENSE_KEY": "MDMCP-XXXXX-XXXXX-XXXXX-XXXXX"
      }
    }
  }
}
Windows(Pro)
{
  "mcpServers": {
    "mobile-device": {
      "type": "stdio",
      "command": "cmd",
      "args": ["/c", "npx", "-y", "mobile-device-mcp"],
      "env": {
        "GOOGLE_API_KEY": "your-google-api-key",
        "MOBILE_MCP_LICENSE_KEY": "MDMCP-XXXXX-XXXXX-XXXXX-XXXXX"
      }
    }
  }
}
  1. 从该目录打开 AI 编码助手。 就这么简单。

服务会自动启动和停止,无需手动运行。AI 助手会通过 MCP 协议将其作为后台进程进行管理。

验证是否正常运行

Claude Code: 输入 /mcp,你应该会看到 mobile-device: Connected

Cursor: 在设置中的 MCP 面板查看

然后直接和手机说:

You: "Open my app, tap the login button, type [email protected] in the email field"
AI:  [takes screenshot -> sees the screen -> smart_tap("login button") -> smart_type("email field", "[email protected]")]

You: "Find all the bugs on this screen"
AI:  [analyze_screen -> inspects layout, checks for overflow, missing labels, broken states]

You: "Navigate to settings and verify dark mode works"
AI:  [smart_tap("settings") -> take_screenshot -> smart_tap("dark mode toggle") -> visual_diff -> reports result]

无需测试脚本,无需手动截屏。只需用普通语言描述你想做什么。

适用于任何 AI 编码助手
工具配置文件文档
Claude Code项目根目录中的 .mcp.jsonclaude.ai/docs
Cursor.cursor/mcp.jsoncursor.com/docs
VS Code + CopilotMCP 设置code.visualstudio.com
WindsurfMCP 设置windsurf.com

所有工具都使用相同的 JSON 配置——只需将其放入编辑器对应的文件中。

集成到任何项目

将 .mcp.json 复制到任何移动项目中——Flutter、React Native、Kotlin、Swift——AI 助手便能在该目录中获得设备超能力。无需全局安装。

免费版与 Pro 版

免费版(14 个工具)——无需许可证密钥
工具功能
list_devices列出所有已连接的 Android 设备/模拟器
get_device_info获取型号、制造商、Android 版本和 SDK 级别
get_screen_size获取屏幕分辨率(像素)
take_screenshot截取屏幕截图(PNG 或 JPEG,可配置质量和缩放大小)
get_ui_elements以结构化 JSON 获取无障碍/UI 元素树
tap点击指定坐标
double_tap双击指定坐标
long_press长按指定坐标
swipe在两点之间滑动
type_text在当前焦点字段中输入文本
press_key按下按键(home、back、enter、volume 等)
list_apps列出已安装的应用
get_current_app获取前台应用
get_logs获取支持筛选的 logcat 条目
Pro 版(额外提供 35 个工具)——₹499/月

获取 Pro 许可证——解锁全部 49 个工具。付款后,你将在 1 小时内通过电子邮件收到许可证密钥。将其添加到 .mcp.json 中:

{
  "mcpServers": {
    "mobile-device": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "mobile-device-mcp"],
      "env": {
        "GOOGLE_API_KEY": "your-google-api-key",
        "MOBILE_MCP_LICENSE_KEY": "your-license-key"
      }
    }
  }
}
AI 视觉分析(12 个工具)

使用 AI 视觉(Claude 或 Gemini)理解屏幕上的内容。

工具功能
analyze_screenAI 描述屏幕:应用名称、屏幕类型、可交互元素、可见文本和建议
find_element按描述查找 UI 元素:“登录按钮”、“电子邮件输入框”
smart_tap按描述查找元素并一步点击
smart_type按描述查找输入框、聚焦并输入文本
suggest_actions规划实现目标所需的操作:“登录应用”、“将商品加入购物车”
visual_diff将当前屏幕与之前的截图进行比较——有哪些变化?
extract_text提取屏幕上所有可见文本(AI 驱动的 OCR)
verify_screen验证断言:“登录成功”、“正在显示错误消息”
wait_for_settle等待屏幕停止变化
wait_for_element等待特定元素出现在屏幕上
handle_popup检测并关闭弹出窗口、对话框和权限提示
fill_form一步填写多个表单字段
Flutter Widget Tree(10 个工具)

通过 Dart VM Service Protocol 连接到正在运行的 Flutter 应用。将每个 Widget 映射到其源代码位置(file:line)。

工具功能
flutter_connect发现并连接设备上正在运行的 Flutter 应用
flutter_disconnect断开与 Flutter 应用的连接并清理资源
flutter_get_widget_tree获取完整的 Widget 树(摘要或详细信息)
flutter_get_widget_details获取指定 ID 的 Widget 的详细属性
flutter_find_widget按类型、文本或描述搜索 Widget 树
flutter_get_source_map将每个 Widget 映射到其源代码位置(file:line:column)
flutter_screenshot_widget单独截取指定 Widget 的屏幕截图
flutter_debug_paint切换调试绘制叠加层(显示 Widget 边界和内边距)
flutter_hot_reload热重载 Flutter 应用(保留状态)
flutter_hot_restart热重启 Flutter 应用(重置状态)
iOS 模拟器(4 个工具)

仅限 macOS。通过 xcrun simctl 控制 iOS 模拟器。

工具功能
ios_list_simulators列出可用的 iOS 模拟器
ios_boot_simulator按名称或 UDID 启动模拟器
ios_shutdown_simulator关闭正在运行的模拟器
ios_screenshot截取模拟器的屏幕截图
视频录制(2 个工具)
工具功能
record_screen开始录制设备屏幕
stop_recording停止录制并保存视频
测试生成(3 个工具)
工具功能
start_test_recording开始录制 MCP 工具调用
stop_test_recording停止录制并生成测试脚本
get_recorded_actions以 TypeScript、Python 或 JSON 格式获取录制的操作
应用管理(4 个工具)
工具功能
launch_app按包名启动应用
stop_app强制停止应用
install_app安装 APK
uninstall_app卸载应用

性能

该服务经过优化,可尽量降低延迟和 AI 令牌开销:

  • 四层元素搜索:配套应用(即时)-> 本地文本匹配(<1ms)-> 缓存的 AI -> 新的 AI。smart_tap 比朴素的 AI 调用快 35 倍(205ms 对比 7.6s)。
  • 配套应用:基于 AccessibilityService 的 Android 应用可在 105ms 内提供 UI 树(比 UIAutomator 的 2448ms 快 23 倍)。首次使用时自动安装。
  • 屏幕截图压缩:AI 工具会自动压缩为 JPEG q=60、400w——体积缩小 89%(251KB -> 28KB),且 AI 质量毫无损失。
  • 并行采集:通过 Promise.all() 同时获取屏幕截图和 UI 树。
  • TTL 缓存:5 秒缓存可避免高频连续使用工具时重复调用 ADB。

环境变量

变量描述默认值
GOOGLE_API_KEY 或 GEMINI_API_KEY用于 Gemini 视觉功能的 Google API 密钥(推荐)--
ANTHROPIC_API_KEY用于 Claude 视觉功能的 Anthropic API 密钥--
MOBILE_MCP_LICENSE_KEY用于解锁 Pro 工具的许可证密钥--
MCP_AI_PROVIDER强制指定 AI 提供商:"anthropic" 或 "google"自动检测
MCP_AI_MODEL覆盖 AI 模型gemini-2.5-flash / claude-sonnet-4-20250514
MCP_ADB_PATH自定义 ADB 二进制文件路径自动发现
MCP_DEFAULT_DEVICE默认设备序列号自动发现
MCP_SCREENSHOT_FORMAT"png" 或 "jpeg"jpeg
MCP_SCREENSHOT_QUALITYJPEG 质量(1-100)80
MCP_SCREENSHOT_MAX_WIDTH将屏幕截图调整为此最大宽度720

架构

src/
|-- index.ts              # CLI entry point (auto-discovery, env config)
|-- server.ts             # MCP server factory
|-- license.ts            # License validation and tier gating
|-- types.ts              # Shared interfaces
|-- drivers/android/      # ADB driver (DeviceDriver implementation)
|   |-- adb.ts            # Low-level ADB command wrapper
|   |-- companion-client.ts # TCP client for companion app
|   +-- index.ts          # AndroidDriver class (4-strategy UI element retrieval)
|-- drivers/flutter/      # Dart VM Service driver
|   |-- index.ts          # FlutterDriver (discovery, inspection, source mapping, hot reload)
|   +-- vm-service.ts     # JSON-RPC 2.0 WebSocket client (DDS redirect handling)
|-- drivers/ios/          # iOS Simulator driver (macOS only)
|   |-- index.ts          # IOSSimulatorDriver via xcrun simctl
|   +-- simctl.ts         # Low-level simctl command wrapper
|-- tools/                # MCP tool registrations (free + pro gating)
|   |-- device-tools.ts   # Device management
|   |-- screen-tools.ts   # Screenshots & UI inspection
|   |-- interaction-tools.ts # Touch, type, keys
|   |-- app-tools.ts      # App management
|   |-- log-tools.ts      # Logcat
|   |-- ai-tools.ts       # AI-powered tools
|   |-- flutter-tools.ts  # Flutter widget inspection
|   |-- ios-tools.ts      # iOS simulator tools
|   |-- video-tools.ts    # Screen recording
|   +-- recording-tools.ts # Test generation
|-- recording/            # Test script generation
|   |-- recorder.ts       # ActionRecorder (records MCP tool calls)
|   +-- generator.ts      # TestGenerator (TypeScript/Python/JSON output)
|-- ai/                   # AI visual analysis engine
|   |-- client.ts         # Multi-provider client (Anthropic + Google)
|   |-- prompts.ts        # System prompts & UI element summarizer
|   |-- analyzer.ts       # ScreenAnalyzer orchestrator (caching, parallel capture)
|   +-- element-search.ts # Local element search (text/alias matching, no AI needed)
+-- utils/
    |-- discovery.ts      # ADB auto-discovery
    +-- image.ts          # PNG parsing, JPEG compression, bilinear resize

companion-app/            # Android companion app (Kotlin)
                          # AccessibilityService + TCP JSON-RPC for fast UI tree

路线图

  • 支持 iOS 实体设备
  • 多设备编排
  • CI/CD 集成
  • 支持云端设备农场

测试环境

  • 设备:Pixel 8(Android 16)、Samsung Galaxy 系列、Android 模拟器
  • 应用:Telegram、Instagram、Spotify、WhatsApp、YouTube、Chrome、Settings 和 Flutter 应用
  • AI 提供商:Google Gemini 2.5 Flash、Anthropic Claude
  • 平台:Windows 11、macOS(iOS 模拟器)
  • 连接方式:USB 和无线 ADB

许可证

Business Source License 1.1

  • 个人和非商业用途免费
  • 商业用途需购买付费许可证
  • 将于 2030 年 3 月 23 日转为 Apache 2.0

完整条款请参阅 LICENSE。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。