mobile-mcp-ai 2.6.4__tar.gz → 2.6.6__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.4/mobile_mcp_ai.egg-info → mobile_mcp_ai-2.6.6}/PKG-INFO +43 -3
- {mobile-mcp-ai-2.6.4 → mobile_mcp_ai-2.6.6}/config.py +0 -32
- {mobile-mcp-ai-2.6.4 → mobile_mcp_ai-2.6.6}/core/basic_tools_lite.py +445 -271
- {mobile-mcp-ai-2.6.4 → mobile_mcp_ai-2.6.6}/mcp_tools/mcp_server.py +306 -216
- {mobile-mcp-ai-2.6.4 → mobile_mcp_ai-2.6.6/mobile_mcp_ai.egg-info}/PKG-INFO +43 -3
- {mobile-mcp-ai-2.6.4 → mobile_mcp_ai-2.6.6}/setup.py +1 -1
- {mobile-mcp-ai-2.6.4 → mobile_mcp_ai-2.6.6}/LICENSE +0 -0
- {mobile-mcp-ai-2.6.4 → mobile_mcp_ai-2.6.6}/MANIFEST.in +0 -0
- {mobile-mcp-ai-2.6.4 → mobile_mcp_ai-2.6.6}/README.md +0 -0
- {mobile-mcp-ai-2.6.4 → mobile_mcp_ai-2.6.6}/__init__.py +0 -0
- {mobile-mcp-ai-2.6.4 → mobile_mcp_ai-2.6.6}/core/__init__.py +0 -0
- {mobile-mcp-ai-2.6.4 → mobile_mcp_ai-2.6.6}/core/device_manager.py +0 -0
- {mobile-mcp-ai-2.6.4 → mobile_mcp_ai-2.6.6}/core/dynamic_config.py +0 -0
- {mobile-mcp-ai-2.6.4 → mobile_mcp_ai-2.6.6}/core/ios_client_wda.py +0 -0
- {mobile-mcp-ai-2.6.4 → mobile_mcp_ai-2.6.6}/core/ios_device_manager_wda.py +0 -0
- {mobile-mcp-ai-2.6.4 → mobile_mcp_ai-2.6.6}/core/mobile_client.py +0 -0
- {mobile-mcp-ai-2.6.4 → mobile_mcp_ai-2.6.6}/core/template_matcher.py +0 -0
- {mobile-mcp-ai-2.6.4 → mobile_mcp_ai-2.6.6}/core/templates/close_buttons/auto_x_0112_151217.png +0 -0
- {mobile-mcp-ai-2.6.4 → mobile_mcp_ai-2.6.6}/core/templates/close_buttons/auto_x_0112_152037.png +0 -0
- {mobile-mcp-ai-2.6.4 → mobile_mcp_ai-2.6.6}/core/templates/close_buttons/auto_x_0112_152840.png +0 -0
- {mobile-mcp-ai-2.6.4 → mobile_mcp_ai-2.6.6}/core/templates/close_buttons/auto_x_0112_153256.png +0 -0
- {mobile-mcp-ai-2.6.4 → mobile_mcp_ai-2.6.6}/core/templates/close_buttons/auto_x_0112_154847.png +0 -0
- {mobile-mcp-ai-2.6.4 → mobile_mcp_ai-2.6.6}/core/templates/close_buttons/gray_x_stock_ad.png +0 -0
- {mobile-mcp-ai-2.6.4 → mobile_mcp_ai-2.6.6}/core/utils/__init__.py +0 -0
- {mobile-mcp-ai-2.6.4 → mobile_mcp_ai-2.6.6}/core/utils/logger.py +0 -0
- {mobile-mcp-ai-2.6.4 → mobile_mcp_ai-2.6.6}/core/utils/operation_history_manager.py +0 -0
- {mobile-mcp-ai-2.6.4 → mobile_mcp_ai-2.6.6}/core/utils/smart_wait.py +0 -0
- {mobile-mcp-ai-2.6.4 → mobile_mcp_ai-2.6.6}/docs/iOS_SETUP_GUIDE.md +0 -0
- {mobile-mcp-ai-2.6.4 → mobile_mcp_ai-2.6.6}/mcp_tools/__init__.py +0 -0
- {mobile-mcp-ai-2.6.4 → mobile_mcp_ai-2.6.6}/mobile_mcp_ai.egg-info/SOURCES.txt +0 -0
- {mobile-mcp-ai-2.6.4 → mobile_mcp_ai-2.6.6}/mobile_mcp_ai.egg-info/dependency_links.txt +0 -0
- {mobile-mcp-ai-2.6.4 → mobile_mcp_ai-2.6.6}/mobile_mcp_ai.egg-info/entry_points.txt +0 -0
- {mobile-mcp-ai-2.6.4 → mobile_mcp_ai-2.6.6}/mobile_mcp_ai.egg-info/not-zip-safe +0 -0
- {mobile-mcp-ai-2.6.4 → mobile_mcp_ai-2.6.6}/mobile_mcp_ai.egg-info/requires.txt +0 -0
- {mobile-mcp-ai-2.6.4 → mobile_mcp_ai-2.6.6}/mobile_mcp_ai.egg-info/top_level.txt +0 -0
- {mobile-mcp-ai-2.6.4 → mobile_mcp_ai-2.6.6}/requirements.txt +0 -0
- {mobile-mcp-ai-2.6.4 → mobile_mcp_ai-2.6.6}/setup.cfg +0 -0
- {mobile-mcp-ai-2.6.4 → mobile_mcp_ai-2.6.6}/templates/close_buttons/auto_x_0112_151217.png +0 -0
- {mobile-mcp-ai-2.6.4 → mobile_mcp_ai-2.6.6}/templates/close_buttons/auto_x_0112_152037.png +0 -0
- {mobile-mcp-ai-2.6.4 → mobile_mcp_ai-2.6.6}/templates/close_buttons/auto_x_0112_152840.png +0 -0
- {mobile-mcp-ai-2.6.4 → mobile_mcp_ai-2.6.6}/templates/close_buttons/auto_x_0112_153256.png +0 -0
- {mobile-mcp-ai-2.6.4 → mobile_mcp_ai-2.6.6}/templates/close_buttons/auto_x_0112_154847.png +0 -0
- {mobile-mcp-ai-2.6.4 → mobile_mcp_ai-2.6.6}/templates/close_buttons/gray_x_stock_ad.png +0 -0
- {mobile-mcp-ai-2.6.4 → mobile_mcp_ai-2.6.6}/utils/__init__.py +0 -0
- {mobile-mcp-ai-2.6.4 → mobile_mcp_ai-2.6.6}/utils/logger.py +0 -0
- {mobile-mcp-ai-2.6.4 → mobile_mcp_ai-2.6.6}/utils/xml_formatter.py +0 -0
- {mobile-mcp-ai-2.6.4 → mobile_mcp_ai-2.6.6}/utils/xml_parser.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
2
|
Name: mobile-mcp-ai
|
|
3
|
-
Version: 2.6.
|
|
3
|
+
Version: 2.6.6
|
|
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
|
|
@@ -21,13 +21,53 @@ Classifier: Topic :: Software Development :: Testing
|
|
|
21
21
|
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
22
22
|
Requires-Python: >=3.8
|
|
23
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
|
|
24
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"
|
|
25
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"
|
|
26
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"
|
|
27
43
|
Provides-Extra: ios
|
|
44
|
+
Requires-Dist: tidevice>=0.11.0; extra == "ios"
|
|
45
|
+
Requires-Dist: facebook-wda>=1.4.0; extra == "ios"
|
|
28
46
|
Provides-Extra: h5
|
|
47
|
+
Requires-Dist: Appium-Python-Client>=3.0.0; extra == "h5"
|
|
48
|
+
Requires-Dist: selenium>=4.0.0; extra == "h5"
|
|
29
49
|
Provides-Extra: all
|
|
30
|
-
|
|
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
|
|
31
71
|
|
|
32
72
|
# 📱 Mobile MCP AI
|
|
33
73
|
|
|
@@ -102,31 +102,6 @@ class Config:
|
|
|
102
102
|
"false"
|
|
103
103
|
).lower() == "true"
|
|
104
104
|
|
|
105
|
-
# ==================== Token 优化(省钱模式)====================
|
|
106
|
-
# 启用 Token 优化(默认开启,只精简格式,不影响准确度)
|
|
107
|
-
TOKEN_OPTIMIZATION_ENABLED: bool = os.getenv(
|
|
108
|
-
"TOKEN_OPTIMIZATION_ENABLED",
|
|
109
|
-
"true"
|
|
110
|
-
).lower() == "true"
|
|
111
|
-
|
|
112
|
-
# list_elements 最大返回元素数量(默认 0 = 不限制,确保准确度)
|
|
113
|
-
MAX_ELEMENTS_RETURN: int = int(os.getenv("MAX_ELEMENTS_RETURN", "0"))
|
|
114
|
-
|
|
115
|
-
# take_screenshot_with_som 最大返回元素数量(默认 0 = 不限制)
|
|
116
|
-
MAX_SOM_ELEMENTS_RETURN: int = int(os.getenv("MAX_SOM_ELEMENTS_RETURN", "0"))
|
|
117
|
-
|
|
118
|
-
# 精简返回信息(只移除冗余提示文字,不影响数据)
|
|
119
|
-
COMPACT_RESPONSE: bool = os.getenv(
|
|
120
|
-
"COMPACT_RESPONSE",
|
|
121
|
-
"true"
|
|
122
|
-
).lower() == "true"
|
|
123
|
-
|
|
124
|
-
# 精简工具描述(减少每次请求的 token)
|
|
125
|
-
COMPACT_TOOL_DESCRIPTION: bool = os.getenv(
|
|
126
|
-
"COMPACT_TOOL_DESCRIPTION",
|
|
127
|
-
"true"
|
|
128
|
-
).lower() == "true"
|
|
129
|
-
|
|
130
105
|
@classmethod
|
|
131
106
|
def get_ai_platform(cls) -> Optional[str]:
|
|
132
107
|
"""获取优先使用的AI平台"""
|
|
@@ -162,13 +137,6 @@ class Config:
|
|
|
162
137
|
"device": {
|
|
163
138
|
"default_device_id": cls.DEFAULT_DEVICE_ID,
|
|
164
139
|
"lock_orientation": cls.LOCK_SCREEN_ORIENTATION,
|
|
165
|
-
},
|
|
166
|
-
"token_optimization": {
|
|
167
|
-
"enabled": cls.TOKEN_OPTIMIZATION_ENABLED,
|
|
168
|
-
"max_elements": cls.MAX_ELEMENTS_RETURN,
|
|
169
|
-
"max_som_elements": cls.MAX_SOM_ELEMENTS_RETURN,
|
|
170
|
-
"compact_response": cls.COMPACT_RESPONSE,
|
|
171
|
-
"compact_tool_desc": cls.COMPACT_TOOL_DESCRIPTION,
|
|
172
140
|
}
|
|
173
141
|
}
|
|
174
142
|
|