mobile-mcp-ai 2.6.12__tar.gz → 2.7.3__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {mobile_mcp_ai-2.6.12/mobile_mcp_ai.egg-info → mobile_mcp_ai-2.7.3}/PKG-INFO +47 -19
- {mobile_mcp_ai-2.6.12 → mobile_mcp_ai-2.7.3}/README.md +39 -18
- {mobile_mcp_ai-2.6.12 → mobile_mcp_ai-2.7.3}/core/basic_tools_lite.py +571 -52
- {mobile_mcp_ai-2.6.12 → mobile_mcp_ai-2.7.3}/mcp_tools/mcp_server.py +111 -104
- {mobile_mcp_ai-2.6.12 → mobile_mcp_ai-2.7.3/mobile_mcp_ai.egg-info}/PKG-INFO +47 -19
- {mobile_mcp_ai-2.6.12 → mobile_mcp_ai-2.7.3}/mobile_mcp_ai.egg-info/SOURCES.txt +0 -5
- {mobile_mcp_ai-2.6.12 → mobile_mcp_ai-2.7.3}/mobile_mcp_ai.egg-info/requires.txt +8 -0
- {mobile_mcp_ai-2.6.12 → mobile_mcp_ai-2.7.3}/setup.py +10 -1
- mobile_mcp_ai-2.6.12/core/tool_selection_helper.py +0 -168
- mobile_mcp_ai-2.6.12/docs/EXECUTION_BEST_PRACTICES.md +0 -230
- mobile_mcp_ai-2.6.12/docs/STRATEGY_SUMMARY.md +0 -129
- mobile_mcp_ai-2.6.12/docs/TOOL_SELECTION_STRATEGY.md +0 -208
- {mobile_mcp_ai-2.6.12 → mobile_mcp_ai-2.7.3}/LICENSE +0 -0
- {mobile_mcp_ai-2.6.12 → mobile_mcp_ai-2.7.3}/MANIFEST.in +0 -0
- {mobile_mcp_ai-2.6.12 → mobile_mcp_ai-2.7.3}/__init__.py +0 -0
- {mobile_mcp_ai-2.6.12 → mobile_mcp_ai-2.7.3}/config.py +0 -0
- {mobile_mcp_ai-2.6.12 → mobile_mcp_ai-2.7.3}/core/__init__.py +0 -0
- {mobile_mcp_ai-2.6.12 → mobile_mcp_ai-2.7.3}/core/device_manager.py +0 -0
- {mobile_mcp_ai-2.6.12 → mobile_mcp_ai-2.7.3}/core/dynamic_config.py +0 -0
- {mobile_mcp_ai-2.6.12 → mobile_mcp_ai-2.7.3}/core/ios_client_wda.py +0 -0
- {mobile_mcp_ai-2.6.12 → mobile_mcp_ai-2.7.3}/core/ios_device_manager_wda.py +0 -0
- {mobile_mcp_ai-2.6.12 → mobile_mcp_ai-2.7.3}/core/mobile_client.py +0 -0
- {mobile_mcp_ai-2.6.12 → mobile_mcp_ai-2.7.3}/core/template_matcher.py +0 -0
- {mobile_mcp_ai-2.6.12 → mobile_mcp_ai-2.7.3}/core/templates/close_buttons/auto_x_0112_151217.png +0 -0
- {mobile_mcp_ai-2.6.12 → mobile_mcp_ai-2.7.3}/core/templates/close_buttons/auto_x_0112_152037.png +0 -0
- {mobile_mcp_ai-2.6.12 → mobile_mcp_ai-2.7.3}/core/templates/close_buttons/auto_x_0112_152840.png +0 -0
- {mobile_mcp_ai-2.6.12 → mobile_mcp_ai-2.7.3}/core/templates/close_buttons/auto_x_0112_153256.png +0 -0
- {mobile_mcp_ai-2.6.12 → mobile_mcp_ai-2.7.3}/core/templates/close_buttons/auto_x_0112_154847.png +0 -0
- {mobile_mcp_ai-2.6.12 → mobile_mcp_ai-2.7.3}/core/templates/close_buttons/gray_x_stock_ad.png +0 -0
- {mobile_mcp_ai-2.6.12 → mobile_mcp_ai-2.7.3}/core/utils/__init__.py +0 -0
- {mobile_mcp_ai-2.6.12 → mobile_mcp_ai-2.7.3}/core/utils/logger.py +0 -0
- {mobile_mcp_ai-2.6.12 → mobile_mcp_ai-2.7.3}/core/utils/operation_history_manager.py +0 -0
- {mobile_mcp_ai-2.6.12 → mobile_mcp_ai-2.7.3}/core/utils/smart_wait.py +0 -0
- {mobile_mcp_ai-2.6.12 → mobile_mcp_ai-2.7.3}/docs/iOS_SETUP_GUIDE.md +0 -0
- {mobile_mcp_ai-2.6.12 → mobile_mcp_ai-2.7.3}/mcp_tools/__init__.py +0 -0
- {mobile_mcp_ai-2.6.12 → mobile_mcp_ai-2.7.3}/mobile_mcp_ai.egg-info/dependency_links.txt +0 -0
- {mobile_mcp_ai-2.6.12 → mobile_mcp_ai-2.7.3}/mobile_mcp_ai.egg-info/entry_points.txt +0 -0
- {mobile_mcp_ai-2.6.12 → mobile_mcp_ai-2.7.3}/mobile_mcp_ai.egg-info/not-zip-safe +0 -0
- {mobile_mcp_ai-2.6.12 → mobile_mcp_ai-2.7.3}/mobile_mcp_ai.egg-info/top_level.txt +0 -0
- {mobile_mcp_ai-2.6.12 → mobile_mcp_ai-2.7.3}/requirements.txt +0 -0
- {mobile_mcp_ai-2.6.12 → mobile_mcp_ai-2.7.3}/setup.cfg +0 -0
- {mobile_mcp_ai-2.6.12 → mobile_mcp_ai-2.7.3}/templates/close_buttons/auto_x_0112_151217.png +0 -0
- {mobile_mcp_ai-2.6.12 → mobile_mcp_ai-2.7.3}/templates/close_buttons/auto_x_0112_152037.png +0 -0
- {mobile_mcp_ai-2.6.12 → mobile_mcp_ai-2.7.3}/templates/close_buttons/auto_x_0112_152840.png +0 -0
- {mobile_mcp_ai-2.6.12 → mobile_mcp_ai-2.7.3}/templates/close_buttons/auto_x_0112_153256.png +0 -0
- {mobile_mcp_ai-2.6.12 → mobile_mcp_ai-2.7.3}/templates/close_buttons/auto_x_0112_154847.png +0 -0
- {mobile_mcp_ai-2.6.12 → mobile_mcp_ai-2.7.3}/templates/close_buttons/gray_x_stock_ad.png +0 -0
- {mobile_mcp_ai-2.6.12 → mobile_mcp_ai-2.7.3}/utils/__init__.py +0 -0
- {mobile_mcp_ai-2.6.12 → mobile_mcp_ai-2.7.3}/utils/logger.py +0 -0
- {mobile_mcp_ai-2.6.12 → mobile_mcp_ai-2.7.3}/utils/xml_formatter.py +0 -0
- {mobile_mcp_ai-2.6.12 → mobile_mcp_ai-2.7.3}/utils/xml_parser.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: mobile-mcp-ai
|
|
3
|
-
Version: 2.
|
|
3
|
+
Version: 2.7.3
|
|
4
4
|
Summary: 移动端自动化 MCP Server - 支持 Android/iOS,AI 功能可选(基础工具不需要 AI)
|
|
5
5
|
Home-page: https://github.com/test111ddff-hash/mobile-mcp-ai
|
|
6
6
|
Author: douzi
|
|
@@ -46,6 +46,10 @@ Requires-Dist: facebook-wda>=1.4.0; extra == "ios"
|
|
|
46
46
|
Provides-Extra: h5
|
|
47
47
|
Requires-Dist: Appium-Python-Client>=3.0.0; extra == "h5"
|
|
48
48
|
Requires-Dist: selenium>=4.0.0; extra == "h5"
|
|
49
|
+
Provides-Extra: windows
|
|
50
|
+
Requires-Dist: pyautogui>=0.9.0; extra == "windows"
|
|
51
|
+
Requires-Dist: pyperclip>=1.8.0; extra == "windows"
|
|
52
|
+
Requires-Dist: pygetwindow>=0.0.9; extra == "windows"
|
|
49
53
|
Provides-Extra: all
|
|
50
54
|
Requires-Dist: dashscope>=1.10.0; extra == "all"
|
|
51
55
|
Requires-Dist: openai>=1.0.0; extra == "all"
|
|
@@ -55,6 +59,9 @@ Requires-Dist: selenium>=4.0.0; extra == "all"
|
|
|
55
59
|
Requires-Dist: pytest>=8.0.0; extra == "all"
|
|
56
60
|
Requires-Dist: pytest-asyncio>=0.21.0; extra == "all"
|
|
57
61
|
Requires-Dist: allure-pytest>=2.13.0; extra == "all"
|
|
62
|
+
Requires-Dist: pyautogui>=0.9.0; extra == "all"
|
|
63
|
+
Requires-Dist: pyperclip>=1.8.0; extra == "all"
|
|
64
|
+
Requires-Dist: pygetwindow>=0.0.9; extra == "all"
|
|
58
65
|
Dynamic: author
|
|
59
66
|
Dynamic: author-email
|
|
60
67
|
Dynamic: classifier
|
|
@@ -336,6 +343,34 @@ tidevice list
|
|
|
336
343
|
|
|
337
344
|
保存后**重启 Cursor**。
|
|
338
345
|
|
|
346
|
+
### 批量执行用例(飞书集成)
|
|
347
|
+
|
|
348
|
+
如果你需要从飞书多维表格批量执行用例,`mobile_open_new_chat` 功能会自动打开新会话继续执行。
|
|
349
|
+
|
|
350
|
+
**macOS 用户:** 需要开启辅助功能权限
|
|
351
|
+
|
|
352
|
+
| 步骤 | 操作 |
|
|
353
|
+
|:---:|------|
|
|
354
|
+
| 1 | 打开「系统设置」 |
|
|
355
|
+
| 2 | 点击「隐私与安全性」 |
|
|
356
|
+
| 3 | 点击「辅助功能」 |
|
|
357
|
+
| 4 | 点击 + 号,添加 **Cursor.app** |
|
|
358
|
+
| 5 | 确保开关已打开 ✅ |
|
|
359
|
+
|
|
360
|
+
> ⚠️ 没有此权限,无法自动打开新会话继续执行
|
|
361
|
+
|
|
362
|
+
**Windows 用户:** 需要安装额外依赖
|
|
363
|
+
|
|
364
|
+
```bash
|
|
365
|
+
pip install mobile-mcp-ai[windows]
|
|
366
|
+
```
|
|
367
|
+
|
|
368
|
+
或手动安装:
|
|
369
|
+
|
|
370
|
+
```bash
|
|
371
|
+
pip install pyautogui pyperclip pygetwindow
|
|
372
|
+
```
|
|
373
|
+
|
|
339
374
|
---
|
|
340
375
|
|
|
341
376
|
## 🚀 使用示例
|
|
@@ -404,24 +439,17 @@ tidevice list
|
|
|
404
439
|
|
|
405
440
|
## 🛠️ 工具列表
|
|
406
441
|
|
|
407
|
-
| 类别 | 工具 | 说明 |
|
|
408
|
-
|
|
409
|
-
| 📋 | `mobile_list_elements` | 列出页面元素 |
|
|
410
|
-
|
|
|
411
|
-
|
|
|
412
|
-
| 📸 | `
|
|
413
|
-
|
|
|
414
|
-
|
|
|
415
|
-
| 👆 | `
|
|
416
|
-
| 👆 | `
|
|
417
|
-
| 👆 | `
|
|
418
|
-
| 📐 | `mobile_get_screen_size` | 屏幕尺寸 | 辅助工具 |
|
|
419
|
-
|
|
420
|
-
> 💡 **工具选择策略**:优先使用控件树定位(`list_elements` + `click_by_text/id`),截图仅作为兜底方案。
|
|
421
|
-
>
|
|
422
|
-
> 📖 详细指南:
|
|
423
|
-
> - [工具选择策略指南](docs/TOOL_SELECTION_STRATEGY.md) - 详细的工具选择策略和决策树
|
|
424
|
-
> - [用例执行最佳实践](docs/EXECUTION_BEST_PRACTICES.md) - 用例执行流程和优化建议
|
|
442
|
+
| 类别 | 工具 | 说明 |
|
|
443
|
+
|:---:|------|------|
|
|
444
|
+
| 📋 | `mobile_list_elements` | 列出页面元素 |
|
|
445
|
+
| 📸 | `mobile_take_screenshot` | 截图 |
|
|
446
|
+
| 📸 | `mobile_screenshot_with_som` | Set-of-Mark 截图(智能标注) |
|
|
447
|
+
| 📸 | `mobile_screenshot_with_grid` | 带网格坐标的截图 |
|
|
448
|
+
| 📐 | `mobile_get_screen_size` | 屏幕尺寸 |
|
|
449
|
+
| 👆 | `mobile_click_by_text` | 文本点击 |
|
|
450
|
+
| 👆 | `mobile_click_by_id` | ID 点击 |
|
|
451
|
+
| 👆 | `mobile_click_at_coords` | 坐标点击 |
|
|
452
|
+
| 👆 | `mobile_click_by_percent` | 百分比点击 |
|
|
425
453
|
| 👆 | `mobile_click_by_som` | SoM 编号点击 |
|
|
426
454
|
| 👆 | `mobile_long_press_by_id` | ID 长按 |
|
|
427
455
|
| 👆 | `mobile_long_press_by_text` | 文本长按 |
|
|
@@ -265,6 +265,34 @@ tidevice list
|
|
|
265
265
|
|
|
266
266
|
保存后**重启 Cursor**。
|
|
267
267
|
|
|
268
|
+
### 批量执行用例(飞书集成)
|
|
269
|
+
|
|
270
|
+
如果你需要从飞书多维表格批量执行用例,`mobile_open_new_chat` 功能会自动打开新会话继续执行。
|
|
271
|
+
|
|
272
|
+
**macOS 用户:** 需要开启辅助功能权限
|
|
273
|
+
|
|
274
|
+
| 步骤 | 操作 |
|
|
275
|
+
|:---:|------|
|
|
276
|
+
| 1 | 打开「系统设置」 |
|
|
277
|
+
| 2 | 点击「隐私与安全性」 |
|
|
278
|
+
| 3 | 点击「辅助功能」 |
|
|
279
|
+
| 4 | 点击 + 号,添加 **Cursor.app** |
|
|
280
|
+
| 5 | 确保开关已打开 ✅ |
|
|
281
|
+
|
|
282
|
+
> ⚠️ 没有此权限,无法自动打开新会话继续执行
|
|
283
|
+
|
|
284
|
+
**Windows 用户:** 需要安装额外依赖
|
|
285
|
+
|
|
286
|
+
```bash
|
|
287
|
+
pip install mobile-mcp-ai[windows]
|
|
288
|
+
```
|
|
289
|
+
|
|
290
|
+
或手动安装:
|
|
291
|
+
|
|
292
|
+
```bash
|
|
293
|
+
pip install pyautogui pyperclip pygetwindow
|
|
294
|
+
```
|
|
295
|
+
|
|
268
296
|
---
|
|
269
297
|
|
|
270
298
|
## 🚀 使用示例
|
|
@@ -333,24 +361,17 @@ tidevice list
|
|
|
333
361
|
|
|
334
362
|
## 🛠️ 工具列表
|
|
335
363
|
|
|
336
|
-
| 类别 | 工具 | 说明 |
|
|
337
|
-
|
|
338
|
-
| 📋 | `mobile_list_elements` | 列出页面元素 |
|
|
339
|
-
|
|
|
340
|
-
|
|
|
341
|
-
| 📸 | `
|
|
342
|
-
|
|
|
343
|
-
|
|
|
344
|
-
| 👆 | `
|
|
345
|
-
| 👆 | `
|
|
346
|
-
| 👆 | `
|
|
347
|
-
| 📐 | `mobile_get_screen_size` | 屏幕尺寸 | 辅助工具 |
|
|
348
|
-
|
|
349
|
-
> 💡 **工具选择策略**:优先使用控件树定位(`list_elements` + `click_by_text/id`),截图仅作为兜底方案。
|
|
350
|
-
>
|
|
351
|
-
> 📖 详细指南:
|
|
352
|
-
> - [工具选择策略指南](docs/TOOL_SELECTION_STRATEGY.md) - 详细的工具选择策略和决策树
|
|
353
|
-
> - [用例执行最佳实践](docs/EXECUTION_BEST_PRACTICES.md) - 用例执行流程和优化建议
|
|
364
|
+
| 类别 | 工具 | 说明 |
|
|
365
|
+
|:---:|------|------|
|
|
366
|
+
| 📋 | `mobile_list_elements` | 列出页面元素 |
|
|
367
|
+
| 📸 | `mobile_take_screenshot` | 截图 |
|
|
368
|
+
| 📸 | `mobile_screenshot_with_som` | Set-of-Mark 截图(智能标注) |
|
|
369
|
+
| 📸 | `mobile_screenshot_with_grid` | 带网格坐标的截图 |
|
|
370
|
+
| 📐 | `mobile_get_screen_size` | 屏幕尺寸 |
|
|
371
|
+
| 👆 | `mobile_click_by_text` | 文本点击 |
|
|
372
|
+
| 👆 | `mobile_click_by_id` | ID 点击 |
|
|
373
|
+
| 👆 | `mobile_click_at_coords` | 坐标点击 |
|
|
374
|
+
| 👆 | `mobile_click_by_percent` | 百分比点击 |
|
|
354
375
|
| 👆 | `mobile_click_by_som` | SoM 编号点击 |
|
|
355
376
|
| 👆 | `mobile_long_press_by_id` | ID 长按 |
|
|
356
377
|
| 👆 | `mobile_long_press_by_text` | 文本长按 |
|