mobile-mcp-ai 2.1.2__py3-none-any.whl → 2.5.8__py3-none-any.whl

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.
Files changed (65) hide show
  1. mobile_mcp/__init__.py +34 -0
  2. mobile_mcp/config.py +142 -0
  3. mobile_mcp/core/basic_tools_lite.py +3266 -0
  4. {core → mobile_mcp/core}/device_manager.py +2 -2
  5. mobile_mcp/core/dynamic_config.py +272 -0
  6. mobile_mcp/core/ios_client_wda.py +569 -0
  7. mobile_mcp/core/ios_device_manager_wda.py +306 -0
  8. {core → mobile_mcp/core}/mobile_client.py +279 -39
  9. mobile_mcp/core/template_matcher.py +429 -0
  10. mobile_mcp/core/templates/close_buttons/auto_x_0112_151217.png +0 -0
  11. mobile_mcp/core/templates/close_buttons/auto_x_0112_152037.png +0 -0
  12. mobile_mcp/core/templates/close_buttons/auto_x_0112_152840.png +0 -0
  13. mobile_mcp/core/templates/close_buttons/auto_x_0112_153256.png +0 -0
  14. mobile_mcp/core/templates/close_buttons/auto_x_0112_154847.png +0 -0
  15. mobile_mcp/core/templates/close_buttons/gray_x_stock_ad.png +0 -0
  16. {core → mobile_mcp/core}/utils/smart_wait.py +3 -3
  17. mobile_mcp/mcp_tools/__init__.py +10 -0
  18. mobile_mcp/mcp_tools/mcp_server.py +1071 -0
  19. mobile_mcp_ai-2.5.8.dist-info/METADATA +469 -0
  20. mobile_mcp_ai-2.5.8.dist-info/RECORD +32 -0
  21. mobile_mcp_ai-2.5.8.dist-info/entry_points.txt +2 -0
  22. mobile_mcp_ai-2.5.8.dist-info/licenses/LICENSE +201 -0
  23. mobile_mcp_ai-2.5.8.dist-info/top_level.txt +1 -0
  24. core/ai/__init__.py +0 -11
  25. core/ai/ai_analyzer.py +0 -197
  26. core/ai/ai_config.py +0 -116
  27. core/ai/ai_platform_adapter.py +0 -399
  28. core/ai/smart_test_executor.py +0 -520
  29. core/ai/test_generator.py +0 -365
  30. core/ai/test_generator_from_history.py +0 -391
  31. core/ai/test_generator_standalone.py +0 -293
  32. core/assertion/__init__.py +0 -9
  33. core/assertion/smart_assertion.py +0 -341
  34. core/basic_tools.py +0 -377
  35. core/h5/__init__.py +0 -10
  36. core/h5/h5_handler.py +0 -548
  37. core/ios_client.py +0 -219
  38. core/ios_device_manager.py +0 -252
  39. core/locator/__init__.py +0 -10
  40. core/locator/cursor_ai_auto_analyzer.py +0 -119
  41. core/locator/cursor_vision_helper.py +0 -414
  42. core/locator/mobile_smart_locator.py +0 -1640
  43. core/locator/position_analyzer.py +0 -813
  44. core/locator/script_updater.py +0 -157
  45. core/nl_test_runner.py +0 -585
  46. core/smart_app_launcher.py +0 -334
  47. core/smart_tools.py +0 -311
  48. mcp/__init__.py +0 -8
  49. mcp/mcp_server.py +0 -1919
  50. mcp/mcp_server_simple.py +0 -476
  51. mobile_mcp_ai-2.1.2.dist-info/METADATA +0 -567
  52. mobile_mcp_ai-2.1.2.dist-info/RECORD +0 -45
  53. mobile_mcp_ai-2.1.2.dist-info/entry_points.txt +0 -2
  54. mobile_mcp_ai-2.1.2.dist-info/top_level.txt +0 -4
  55. vision/__init__.py +0 -10
  56. vision/vision_locator.py +0 -404
  57. {core → mobile_mcp/core}/__init__.py +0 -0
  58. {core → mobile_mcp/core}/utils/__init__.py +0 -0
  59. {core → mobile_mcp/core}/utils/logger.py +0 -0
  60. {core → mobile_mcp/core}/utils/operation_history_manager.py +0 -0
  61. {utils → mobile_mcp/utils}/__init__.py +0 -0
  62. {utils → mobile_mcp/utils}/logger.py +0 -0
  63. {utils → mobile_mcp/utils}/xml_formatter.py +0 -0
  64. {utils → mobile_mcp/utils}/xml_parser.py +0 -0
  65. {mobile_mcp_ai-2.1.2.dist-info → mobile_mcp_ai-2.5.8.dist-info}/WHEEL +0 -0
@@ -0,0 +1,469 @@
1
+ Metadata-Version: 2.4
2
+ Name: mobile-mcp-ai
3
+ Version: 2.5.8
4
+ Summary: 移动端自动化 MCP Server - 支持 Android/iOS,AI 功能可选(基础工具不需要 AI)
5
+ Home-page: https://github.com/test111ddff-hash/mobile-mcp-ai
6
+ Author: douzi
7
+ Author-email: 1492994674@qq.com
8
+ Project-URL: Documentation, https://github.com/test111ddff-hash/mobile-mcp-ai
9
+ Project-URL: Source, https://github.com/test111ddff-hash/mobile-mcp-ai
10
+ Project-URL: Tracker, https://github.com/test111ddff-hash/mobile-mcp-ai/issues
11
+ Keywords: mobile,automation,testing,android,ios,mcp,ai,pytest,cursor
12
+ Classifier: Development Status :: 4 - Beta
13
+ Classifier: Intended Audience :: Developers
14
+ Classifier: License :: OSI Approved :: Apache Software License
15
+ Classifier: Programming Language :: Python :: 3
16
+ Classifier: Programming Language :: Python :: 3.8
17
+ Classifier: Programming Language :: Python :: 3.9
18
+ Classifier: Programming Language :: Python :: 3.10
19
+ Classifier: Programming Language :: Python :: 3.11
20
+ Classifier: Topic :: Software Development :: Testing
21
+ Classifier: Topic :: Software Development :: Libraries :: Python Modules
22
+ Requires-Python: >=3.8
23
+ Description-Content-Type: text/markdown
24
+ License-File: LICENSE
25
+ Requires-Dist: uiautomator2>=2.16.0
26
+ Requires-Dist: adbutils>=1.2.0
27
+ Requires-Dist: Pillow>=10.0.0
28
+ Requires-Dist: mcp>=0.9.0
29
+ Requires-Dist: python-dotenv>=1.0.0
30
+ Provides-Extra: ai
31
+ Requires-Dist: dashscope>=1.10.0; extra == "ai"
32
+ Requires-Dist: openai>=1.0.0; extra == "ai"
33
+ Requires-Dist: anthropic>=0.3.0; extra == "ai"
34
+ Provides-Extra: test
35
+ Requires-Dist: pytest>=8.0.0; extra == "test"
36
+ Requires-Dist: pytest-asyncio>=0.21.0; extra == "test"
37
+ Requires-Dist: allure-pytest>=2.13.0; extra == "test"
38
+ Provides-Extra: dev
39
+ Requires-Dist: pytest>=8.0.0; extra == "dev"
40
+ Requires-Dist: pytest-asyncio>=0.21.0; extra == "dev"
41
+ Requires-Dist: twine>=4.0.0; extra == "dev"
42
+ Requires-Dist: build>=0.10.0; extra == "dev"
43
+ Provides-Extra: ios
44
+ Requires-Dist: tidevice>=0.11.0; extra == "ios"
45
+ Requires-Dist: facebook-wda>=1.4.0; extra == "ios"
46
+ Provides-Extra: h5
47
+ Requires-Dist: Appium-Python-Client>=3.0.0; extra == "h5"
48
+ Requires-Dist: selenium>=4.0.0; extra == "h5"
49
+ Provides-Extra: all
50
+ Requires-Dist: dashscope>=1.10.0; extra == "all"
51
+ Requires-Dist: openai>=1.0.0; extra == "all"
52
+ Requires-Dist: anthropic>=0.3.0; extra == "all"
53
+ Requires-Dist: Appium-Python-Client>=3.0.0; extra == "all"
54
+ Requires-Dist: selenium>=4.0.0; extra == "all"
55
+ Requires-Dist: pytest>=8.0.0; extra == "all"
56
+ Requires-Dist: pytest-asyncio>=0.21.0; extra == "all"
57
+ Requires-Dist: allure-pytest>=2.13.0; extra == "all"
58
+ Dynamic: author
59
+ Dynamic: author-email
60
+ Dynamic: classifier
61
+ Dynamic: description
62
+ Dynamic: description-content-type
63
+ Dynamic: home-page
64
+ Dynamic: keywords
65
+ Dynamic: license-file
66
+ Dynamic: project-url
67
+ Dynamic: provides-extra
68
+ Dynamic: requires-dist
69
+ Dynamic: requires-python
70
+ Dynamic: summary
71
+
72
+ # 📱 Mobile MCP AI
73
+
74
+ > 让 Cursor 直接控制手机的 MCP 工具
75
+
76
+ <div align="center">
77
+
78
+ [![PyPI](https://img.shields.io/pypi/v/mobile-mcp-ai.svg?style=flat-square&color=blue)](https://pypi.org/project/mobile-mcp-ai/)
79
+ [![Python](https://img.shields.io/badge/python-3.8+-green.svg?style=flat-square)](https://www.python.org/)
80
+ [![License](https://img.shields.io/badge/license-Apache%202.0-orange.svg?style=flat-square)](LICENSE)
81
+ [![Android](https://img.shields.io/badge/Android-支持-brightgreen.svg?style=flat-square&logo=android)](https://developer.android.com/)
82
+ [![iOS](https://img.shields.io/badge/iOS-支持-black.svg?style=flat-square&logo=apple)](docs/iOS_SETUP_GUIDE.md)
83
+
84
+ **⭐ 觉得有用?给个 Star 支持一下!**
85
+
86
+ **📱 支持 Android 和 iOS 双平台**
87
+
88
+ </div>
89
+
90
+ ---
91
+
92
+ ## 🎬 演示
93
+
94
+ <div align="center">
95
+
96
+ ![演示动图](docs/videos/demo.gif)
97
+
98
+ *[查看高清视频 →](docs/videos/demo.mp4)*
99
+
100
+ </div>
101
+
102
+ ---
103
+
104
+ ## ✨ 核心特性
105
+
106
+ <table>
107
+ <tr>
108
+ <td width="50%">
109
+
110
+ ### 🧠 AI 原生驱动
111
+
112
+ 基于 MCP 协议与 Cursor AI 深度集成,自然语言直接操控手机,告别繁琐的脚本编写
113
+
114
+ </td>
115
+ <td width="50%">
116
+
117
+ ### 👁️ 视觉智能识别
118
+
119
+ Cursor AI 自动分析截图,精准定位 UI 元素,游戏、原生应用通吃
120
+
121
+ </td>
122
+ </tr>
123
+ <tr>
124
+ <td width="50%">
125
+
126
+ ### ⚡ 零配置启动
127
+
128
+ `pip install` 一行命令,开箱即用,无需额外 AI 密钥
129
+
130
+ </td>
131
+ <td width="50%">
132
+
133
+ ### 🔄 一键生成脚本
134
+
135
+ 操作即录制,自动生成可复用的 pytest 测试脚本
136
+
137
+ </td>
138
+ </tr>
139
+ <tr>
140
+ <td width="50%">
141
+
142
+ ### 🎯 双模式定位
143
+
144
+ 元素树 + 视觉坐标双引擎,普通 App 秒定位,游戏场景不迷路
145
+
146
+ </td>
147
+ <td width="50%">
148
+
149
+ ### 🛡️ 智能验证机制
150
+
151
+ 按键操作自动验证生效,告别"假成功"
152
+
153
+ </td>
154
+ </tr>
155
+ </table>
156
+
157
+ ---
158
+
159
+ ## 📱 平台支持
160
+
161
+ | 平台 | 支持状态 | 系统要求 | 配置指南 |
162
+ |:---:|:---:|:---:|:---:|
163
+ | **Android** | ✅ 完整支持 | Windows / macOS / Linux | 开箱即用 |
164
+ | **iOS** | ✅ 完整支持 | macOS(必须) | [iOS 配置指南 →](docs/iOS_SETUP_GUIDE.md) |
165
+
166
+ ---
167
+
168
+ ## 📦 安装
169
+
170
+ ```bash
171
+ pip install mobile-mcp-ai
172
+ ```
173
+
174
+ **升级到最新版**
175
+
176
+ ```bash
177
+ pip install --upgrade mobile-mcp-ai
178
+ ```
179
+
180
+ **查看当前版本**
181
+
182
+ ```bash
183
+ pip show mobile-mcp-ai
184
+ ```
185
+
186
+ ---
187
+
188
+ ## 📱 连接设备
189
+
190
+ ### Android 设备
191
+
192
+ 确保手机已开启 USB 调试,然后:
193
+
194
+ ```bash
195
+ adb devices
196
+ ```
197
+
198
+ 看到设备列表即表示连接成功。
199
+
200
+ ### iOS 设备(macOS)
201
+
202
+ iOS 自动化需要额外配置 WebDriverAgent,请参考:
203
+
204
+ 📖 **[iOS 配置指南 →](docs/iOS_SETUP_GUIDE.md)**
205
+
206
+ 快速检查连接:
207
+ ```bash
208
+ tidevice list
209
+ ```
210
+
211
+ ---
212
+
213
+ ## 🎯 新用户快速入门
214
+
215
+ ### 第一步:安装
216
+
217
+ ```bash
218
+ pip install mobile-mcp-ai
219
+ ```
220
+
221
+ ### 第二步:连接设备
222
+
223
+ **Android 用户:**
224
+ ```bash
225
+ # 开启手机 USB 调试,连接电脑
226
+ adb devices
227
+ ```
228
+
229
+ **iOS 用户:**
230
+ ```bash
231
+ # 安装依赖
232
+ pip install tidevice facebook-wda
233
+ brew install libimobiledevice
234
+
235
+ # 检查连接
236
+ tidevice list
237
+ ```
238
+
239
+ > 📖 iOS 需要额外配置 WebDriverAgent,详见 **[iOS 配置指南](docs/iOS_SETUP_GUIDE.md)**
240
+
241
+ ### 第三步:配置 Cursor
242
+
243
+ 编辑 `~/.cursor/mcp.json`:
244
+
245
+ ```json
246
+ {
247
+ "mcpServers": {
248
+ "mobile-automation": {
249
+ "command": "mobile-mcp"
250
+ }
251
+ }
252
+ }
253
+ ```
254
+
255
+ > 💡 提示:会自动检测 Android/iOS 设备,无需额外配置
256
+
257
+ ### 第四步:重启 Cursor
258
+
259
+ 保存配置后,**重启 Cursor** 使配置生效。
260
+
261
+ ### 第五步:开始使用
262
+
263
+ 在 Cursor 中输入:
264
+
265
+ ```
266
+ @MCP 检查设备连接
267
+ ```
268
+
269
+ ```
270
+ @MCP 截图看看当前页面
271
+ ```
272
+
273
+ ```
274
+ @MCP 点击"登录"按钮
275
+ ```
276
+
277
+ ---
278
+
279
+ ## ⚙️ 高级配置
280
+
281
+ ### 方式一:pip 安装后配置(推荐)
282
+
283
+ 先安装:`pip install mobile-mcp-ai`
284
+
285
+ ```json
286
+ {
287
+ "mcpServers": {
288
+ "mobile-automation": {
289
+ "command": "mobile-mcp"
290
+ }
291
+ }
292
+ }
293
+ ```
294
+
295
+ ### 方式二:源码方式配置
296
+
297
+ 如果你是从源码运行:
298
+
299
+ **Android 配置:**
300
+
301
+ ```json
302
+ {
303
+ "mcpServers": {
304
+ "mobile-automation": {
305
+ "command": "/path/to/your/venv/bin/python",
306
+ "args": ["-m", "mobile_mcp.mcp_tools.mcp_server"],
307
+ "cwd": "/path/to/mobile_mcp",
308
+ "env": {
309
+ "MOBILE_PLATFORM": "android"
310
+ }
311
+ }
312
+ }
313
+ }
314
+ ```
315
+
316
+ **iOS 配置:**
317
+
318
+ ```json
319
+ {
320
+ "mcpServers": {
321
+ "mobile-automation": {
322
+ "command": "/path/to/your/venv/bin/python",
323
+ "args": ["-m", "mobile_mcp.mcp_tools.mcp_server"],
324
+ "cwd": "/path/to/mobile_mcp",
325
+ "env": {
326
+ "MOBILE_PLATFORM": "ios"
327
+ }
328
+ }
329
+ }
330
+ }
331
+ ```
332
+
333
+ > ⚠️ 请将 `/path/to/` 替换为你的实际路径
334
+ >
335
+ > 📖 iOS 需要先配置 WebDriverAgent,详见 **[iOS 配置指南](docs/iOS_SETUP_GUIDE.md)**
336
+
337
+ 保存后**重启 Cursor**。
338
+
339
+ ---
340
+
341
+ ## 🚀 使用示例
342
+
343
+ 在 Cursor 中直接对话:
344
+
345
+ **基础操作**
346
+
347
+ ```
348
+ @MCP 列出当前页面所有元素
349
+ ```
350
+
351
+ ```
352
+ @MCP 点击"登录"按钮
353
+ ```
354
+
355
+ ```
356
+ @MCP 在用户名输入框输入 test123
357
+ ```
358
+
359
+ **应用控制**
360
+
361
+ ```
362
+ @MCP 启动微信
363
+ ```
364
+
365
+ ```
366
+ @MCP 打开抖音,向上滑动 3 次
367
+ ```
368
+
369
+ ```
370
+ @MCP 列出手机上所有已安装的应用
371
+ ```
372
+
373
+ **截图分析**
374
+
375
+ ```
376
+ @MCP 截图看看当前页面
377
+ ```
378
+
379
+ ```
380
+ @MCP 截图,然后点击页面上的搜索图标
381
+ ```
382
+
383
+ **测试脚本生成**
384
+
385
+ ```
386
+ @MCP 帮我测试登录流程:输入用户名密码,点击登录
387
+ ```
388
+
389
+ ```
390
+ @MCP 把刚才的操作生成 pytest 测试脚本
391
+ ```
392
+
393
+ **组合操作**
394
+
395
+ ```
396
+ @MCP 打开设置,找到 WLAN,点进去截图
397
+ ```
398
+
399
+ ```
400
+ @MCP 打开微信,点击发现,再点击朋友圈
401
+ ```
402
+
403
+ ---
404
+
405
+ ## 🛠️ 工具列表
406
+
407
+ | 类别 | 工具 | 说明 |
408
+ |:---:|------|------|
409
+ | 📋 | `mobile_list_elements` | 列出页面元素 |
410
+ | 📸 | `mobile_take_screenshot` | 截图 |
411
+ | 📸 | `mobile_screenshot_with_som` | Set-of-Mark 截图(智能标注) |
412
+ | 📸 | `mobile_screenshot_with_grid` | 带网格坐标的截图 |
413
+ | 📐 | `mobile_get_screen_size` | 屏幕尺寸 |
414
+ | 👆 | `mobile_click_by_text` | 文本点击 |
415
+ | 👆 | `mobile_click_by_id` | ID 点击 |
416
+ | 👆 | `mobile_click_at_coords` | 坐标点击 |
417
+ | 👆 | `mobile_click_by_percent` | 百分比点击 |
418
+ | 👆 | `mobile_click_by_som` | SoM 编号点击 |
419
+ | 👆 | `mobile_long_press_by_id` | ID 长按 |
420
+ | 👆 | `mobile_long_press_by_text` | 文本长按 |
421
+ | 👆 | `mobile_long_press_by_percent` | 百分比长按 |
422
+ | 👆 | `mobile_long_press_at_coords` | 坐标长按 |
423
+ | ⌨️ | `mobile_input_text_by_id` | ID 输入 |
424
+ | ⌨️ | `mobile_input_at_coords` | 坐标输入 |
425
+ | 👆 | `mobile_swipe` | 滑动 |
426
+ | ⌨️ | `mobile_press_key` | 按键 |
427
+ | ⏱️ | `mobile_wait` | 等待 |
428
+ | 📦 | `mobile_launch_app` | 启动应用 |
429
+ | 📦 | `mobile_terminate_app` | 终止应用 |
430
+ | 📦 | `mobile_list_apps` | 列出应用 |
431
+ | 📱 | `mobile_list_devices` | 列出设备 |
432
+ | 🔌 | `mobile_check_connection` | 检查连接 |
433
+ | 🔍 | `mobile_find_close_button` | 查找关闭按钮 |
434
+ | 🚫 | `mobile_close_popup` | 关闭弹窗 |
435
+ | 🚫 | `mobile_close_ad` | 智能关闭广告弹窗 |
436
+ | 🎯 | `mobile_template_close` | 模板匹配关闭弹窗 |
437
+ | ➕ | `mobile_template_add` | 添加 X 号模板 |
438
+ | ✅ | `mobile_assert_text` | 断言文本 |
439
+ | 📜 | `mobile_get_operation_history` | 操作历史 |
440
+ | 🗑️ | `mobile_clear_operation_history` | 清空历史 |
441
+ | 📝 | `mobile_generate_test_script` | 生成测试脚本 |
442
+
443
+ ---
444
+
445
+ ## 📞 联系作者
446
+
447
+ <div align="center">
448
+
449
+ <img src="docs/images/wechat-qr.jpg" alt="微信" width="250"/>
450
+
451
+ *添加微信交流(备注:mobile-mcp)*
452
+
453
+ </div>
454
+
455
+ ---
456
+
457
+ ## 📄 License
458
+
459
+ Apache 2.0
460
+
461
+ ---
462
+
463
+ <div align="center">
464
+
465
+ [Gitee](https://gitee.com/chang-xinping/mobile-automation-mcp-service) · [GitHub](https://github.com/test111ddff-hash/mobile-mcp-ai) · [PyPI](https://pypi.org/project/mobile-mcp-ai/)
466
+
467
+ **🚀 让移动端测试更简单**
468
+
469
+ </div>
@@ -0,0 +1,32 @@
1
+ mobile_mcp/__init__.py,sha256=sQJZTL_sxQFzmcS7jOtS2AHCfUySz40vhX96N6u1qy4,816
2
+ mobile_mcp/config.py,sha256=yaFLAV4bc2wX0GQPtZDo7OYF9E88tXV-av41fQsJwK4,4480
3
+ mobile_mcp/core/__init__.py,sha256=ndMy-cLAIsQDG5op7gM_AIplycqZSZPWEkec1pEhvEY,170
4
+ mobile_mcp/core/basic_tools_lite.py,sha256=hmsNjoNH-EsSU7GAclSsYiYKgds0RlmdrVlGmun3gPw,153561
5
+ mobile_mcp/core/device_manager.py,sha256=xG5DoeNFs45pl-FTEhEWblqVwxtFK-FmVEGlNL6EqRI,8798
6
+ mobile_mcp/core/dynamic_config.py,sha256=Ja1n1pfb0HspGByqk2_A472mYVniKmGtNEWyjUjmgK8,9811
7
+ mobile_mcp/core/ios_client_wda.py,sha256=Nq9WxevhTWpVpolM-Ymp-b0nUQV3tXLFszmJHbDC4wA,18770
8
+ mobile_mcp/core/ios_device_manager_wda.py,sha256=A44glqI-24un7qST-E3w6BQD8mV92YVUbxy4rLlTScY,11264
9
+ mobile_mcp/core/mobile_client.py,sha256=ELl2ypgJunsKVkWwhkXN8zco4mj3OnGGqtSEofpSmWc,62714
10
+ mobile_mcp/core/template_matcher.py,sha256=tv8RU6zdeDobqphaP4Y8sicb1esg3gcQlZae1tNyitM,14559
11
+ mobile_mcp/core/templates/close_buttons/auto_x_0112_151217.png,sha256=s7tBVaYLBApNSEXjwi5kX8GXwUqgbNyNVEhXYjN9nd4,27373
12
+ mobile_mcp/core/templates/close_buttons/auto_x_0112_152037.png,sha256=s7tBVaYLBApNSEXjwi5kX8GXwUqgbNyNVEhXYjN9nd4,27373
13
+ mobile_mcp/core/templates/close_buttons/auto_x_0112_152840.png,sha256=s7tBVaYLBApNSEXjwi5kX8GXwUqgbNyNVEhXYjN9nd4,27373
14
+ mobile_mcp/core/templates/close_buttons/auto_x_0112_153256.png,sha256=s7tBVaYLBApNSEXjwi5kX8GXwUqgbNyNVEhXYjN9nd4,27373
15
+ mobile_mcp/core/templates/close_buttons/auto_x_0112_154847.png,sha256=apPPFft1LLP_4KppbRGd2zOl3nfSGYFqzYeyzncaduk,27679
16
+ mobile_mcp/core/templates/close_buttons/gray_x_stock_ad.png,sha256=5D3pOa74Zj21v7I-zpYo2Pe4ZC8PB-N3_yo_LFNnlLw,4504
17
+ mobile_mcp/core/utils/__init__.py,sha256=RhMMsPszmEn8Q8GoNufypVSHJxyM9lio9U6jjpnuoPI,378
18
+ mobile_mcp/core/utils/logger.py,sha256=XXQAHUwT1jc70pq_tYFmL6f_nKrFlYm3hcgl-5RYRg0,3402
19
+ mobile_mcp/core/utils/operation_history_manager.py,sha256=gi8S8HJAMqvkUrY7_-kVbko3Xt7c4GAUziEujRd-N-Y,4792
20
+ mobile_mcp/core/utils/smart_wait.py,sha256=N5wKTUYrNWPruBILqrAjpvtso8Z3GRWCfMIR_aZxPLg,8649
21
+ mobile_mcp/mcp_tools/__init__.py,sha256=xkro8Rwqv_55YlVyhh-3DgRFSsLE3h1r31VIb3bpM6E,143
22
+ mobile_mcp/mcp_tools/mcp_server.py,sha256=fr42BjulYQCBreWoLx5lkWEZjT60Df6RCo_kyXMOHfI,49868
23
+ mobile_mcp/utils/__init__.py,sha256=8EH0i7UGtx1y_j_GEgdN-cZdWn2sRtZSEOLlNF9HRnY,158
24
+ mobile_mcp/utils/logger.py,sha256=Sqq2Nr0Y4p03erqcrbYKVPCGiFaNGHMcE_JwCkeOfU4,3626
25
+ mobile_mcp/utils/xml_formatter.py,sha256=uwTRb3vLbqhT8O-udzWT7s7LsV-DyDUz2DkofD3hXOE,4556
26
+ mobile_mcp/utils/xml_parser.py,sha256=QhL8CWbdmNDzmBLjtx6mEnjHgMFZzJeHpCL15qfXSpI,3926
27
+ mobile_mcp_ai-2.5.8.dist-info/licenses/LICENSE,sha256=HrhfyXIkWY2tGFK11kg7vPCqhgh5DcxleloqdhrpyMY,11558
28
+ mobile_mcp_ai-2.5.8.dist-info/METADATA,sha256=vwWnw9dqb_pqiZz635gcRRW4TvyI_WKavutrapxCBHQ,10495
29
+ mobile_mcp_ai-2.5.8.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
30
+ mobile_mcp_ai-2.5.8.dist-info/entry_points.txt,sha256=KB_FglozgPHBprSM1vFbIzGyheFuHFmGanscRdMJ_8A,68
31
+ mobile_mcp_ai-2.5.8.dist-info/top_level.txt,sha256=lLm6YpbTv855Lbh8BIA0rPxhybIrvYUzMEk9OErHT94,11
32
+ mobile_mcp_ai-2.5.8.dist-info/RECORD,,
@@ -0,0 +1,2 @@
1
+ [console_scripts]
2
+ mobile-mcp = mobile_mcp.mcp_tools.mcp_server:main