ubox-mcp-server 0.1.2__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.
@@ -0,0 +1,35 @@
1
+ # 环境配置(包含敏感信息)
2
+ .env
3
+ .env.*
4
+ !env.example
5
+
6
+ # Python
7
+ __pycache__/
8
+ *.py[cod]
9
+ *$py.class
10
+ *.so
11
+ *.egg-info/
12
+ *.egg
13
+ dist/
14
+ build/
15
+ *.whl
16
+
17
+ # 虚拟环境
18
+ .venv/
19
+ venv/
20
+ ENV/
21
+
22
+ # IDE
23
+ .idea/
24
+ .vscode/
25
+ *.swp
26
+ *.swo
27
+ *~
28
+
29
+ # 日志
30
+ *.log
31
+ logs/
32
+
33
+ # 系统文件
34
+ .DS_Store
35
+ Thumbs.db
@@ -0,0 +1,43 @@
1
+ ## 环境
2
+
3
+ - Python 3.11+
4
+ - uv 包管理器
5
+
6
+ ## 安装依赖
7
+
8
+ ```bash
9
+ uv sync
10
+ ```
11
+
12
+ ## 配置
13
+
14
+ ```bash
15
+ # 复制环境变量示例
16
+ cp env.example .env
17
+
18
+ # 编辑 .env 文件,填入UBox配置
19
+ # UBOX_SECRET_ID=your_secret_id
20
+ # UBOX_SECRET_KEY=your_secret_key
21
+ # UBOX_MODE=local
22
+ ```
23
+
24
+ ## 测试
25
+
26
+ ```bash
27
+ uv run python src/ubox_mcp_server/client_example.py
28
+ ```
29
+
30
+ ## 打包与分发
31
+
32
+ ```bash
33
+ # 构建 wheel 包(用于给用户安装)
34
+ uv build
35
+ # 产物:dist/ubox_mcp_server-<version>-py3-none-any.whl
36
+ ```
37
+
38
+ ## 代码入口
39
+
40
+ - 服务器入口:`src/ubox_mcp_server/server.py`(`main()`)
41
+ - 业务封装:`src/ubox_mcp_server/ubox_handler.py`
42
+ - 设备管理:`src/ubox_mcp_server/device_manager.py`
43
+
@@ -0,0 +1,226 @@
1
+ Metadata-Version: 2.4
2
+ Name: ubox-mcp-server
3
+ Version: 0.1.2
4
+ Summary: UBox MCP服务器 - 通过Model Context Protocol暴露UBox设备自动化能力
5
+ Requires-Python: <3.12,>=3.10
6
+ Requires-Dist: mcp>=1.20.0
7
+ Requires-Dist: python-dotenv>=1.1.0
8
+ Requires-Dist: ubox-py-sdk==0.2.22a1
9
+ Description-Content-Type: text/markdown
10
+
11
+ # UBox MCP服务器
12
+
13
+ ## 快速上手
14
+
15
+ ```bash
16
+ # 安装提供的 wheel 文件
17
+ uv tool install --python 3.10.12 ubox_mcp_server-0.1.0-py3-none-any.whl --index-url https://pypi.tuna.tsinghua.edu.cn/simple
18
+ ubox-mcp-server \
19
+ --ubox-secret-id your_id \
20
+ --ubox-secret-key your_key \
21
+ --ubox-mode normal
22
+ ```
23
+
24
+ 在cline中添加如下配置:
25
+
26
+ ```json
27
+ {
28
+ "mcpServers": {
29
+ "ubox-mcp-server": {
30
+ "transport": "http",
31
+ "url": "http://localhost:8000/mcp",
32
+ "description": "UBox MCP Server"
33
+ }
34
+ }
35
+ }
36
+ ```
37
+
38
+ ## 安装(来自打包文件)
39
+
40
+ ```bash
41
+ # 安装提供的 wheel 文件
42
+ uv tool install --python 3.10.12 ubox_mcp_server-0.1.0-py3-none-any.whl --index-url https://pypi.tuna.tsinghua.edu.cn/simple
43
+ ```
44
+
45
+ ## 配置与启动
46
+
47
+ ### 方式1:使用 .env 文件
48
+
49
+ ```bash
50
+ # 创建配置文件
51
+ cat > .env << EOF
52
+ UBOX_SECRET_ID=your_secret_id
53
+ UBOX_SECRET_KEY=your_secret_key
54
+ UBOX_MODE=local
55
+ MCP_MODE=streamable-http
56
+ MCP_HOST=localhost
57
+ MCP_PORT=8000
58
+ EOF
59
+
60
+ # 启动(会自动读取当前目录的 .env 文件)
61
+ ubox-mcp-server
62
+ ```
63
+
64
+ ### 方式2:纯命令行(跨平台)
65
+
66
+ - macOS/Linux:
67
+
68
+ ```bash
69
+ ubox-mcp-server \
70
+ --ubox-secret-id your_id \
71
+ --ubox-secret-key your_key \
72
+ --ubox-mode normal \
73
+ --mcp-mode streamable-http \
74
+ --mcp-port 8000 \
75
+ --log-level DEBUG
76
+ ```
77
+
78
+ - Windows PowerShell:
79
+
80
+ ```powershell
81
+ ubox-mcp-server `
82
+ --ubox-secret-id your_id `
83
+ --ubox-secret-key your_key `
84
+ --ubox-mode normal `
85
+ --mcp-mode streamable-http `
86
+ --mcp-port 8000 `
87
+ --log-level DEBUG
88
+ ```
89
+
90
+ ### 方式3:全部环境变量
91
+
92
+ ```bash
93
+ export UBOX_SECRET_ID=your_secret_id
94
+ export UBOX_SECRET_KEY=your_secret_key
95
+ export UBOX_MODE=local
96
+ export MCP_MODE=streamable-http
97
+ export MCP_HOST=localhost
98
+ export MCP_PORT=8000
99
+
100
+ ubox-mcp-server
101
+ ```
102
+
103
+ ## 简单校验
104
+
105
+ ```bash
106
+ # 列出工具
107
+ curl -X POST http://localhost:8000/mcp \
108
+ -H 'Content-Type: application/json' \
109
+ -d '{"jsonrpc":"2.0","id":1,"method":"tools/list","params":{}}'
110
+ ```
111
+
112
+ ## 获取帮助
113
+
114
+ ```bash
115
+ ubox-mcp-server --help
116
+ ```
117
+
118
+ ## 在 Cline 中使用(VS Code)
119
+
120
+ 1) 启动服务器
121
+
122
+ - macOS/Linux:
123
+
124
+ ```bash
125
+ ubox-mcp-server \
126
+ --ubox-secret-id your_id \
127
+ --ubox-secret-key your_key \
128
+ --ubox-mode local \
129
+ --mcp-mode streamable-http \
130
+ --mcp-port 8000 \
131
+ --log-level DEBUG
132
+ ```
133
+
134
+ - Windows PowerShell:
135
+
136
+ ```powershell
137
+ ubox-mcp-server `
138
+ --ubox-mode local `
139
+ --mcp-mode streamable-http `
140
+ --mcp-port 8000 `
141
+ --log-level DEBUG
142
+ ```
143
+
144
+ 2) 配置 Cline
145
+
146
+ - VS Code 命令面板 → “Cline: Configure MCP Servers” → 添加:
147
+
148
+ ```json
149
+ {
150
+ "mcpServers": {
151
+ "ubox-mcp-server": {
152
+ "transport": "http",
153
+ "url": "http://localhost:8000/mcp",
154
+ "description": "UBox MCP Server"
155
+ }
156
+ }
157
+ }
158
+ ```
159
+
160
+ (如你的 Cline 支持 SSE,也可改为:)
161
+
162
+ ```json
163
+ {
164
+ "mcpServers": {
165
+ "ubox-mcp-server": {
166
+ "transport": "sse",
167
+ "url": "http://localhost:8000/sse"
168
+ }
169
+ }
170
+ }
171
+ ```
172
+
173
+ 3) 使用与验证
174
+
175
+ - Cline 面板应显示 “ubox-mcp-server” 已连接
176
+ - 在对话中输入任务(如“获取设备列表”“连接设备并截图”),Cline 会调用对应工具
177
+
178
+ ## 可配置项一览
179
+
180
+ 以下所有配置可通过三种方式设置(优先级从高到低):
181
+
182
+ 1) 命令行参数(仅标注了有对应 --flag 的项);2) 环境变量;3) .env 文件。
183
+
184
+ ### UBox SDK
185
+
186
+ - UBox 运行模式
187
+ - 环境变量/.env: `UBOX_MODE`(`local`|`normal`)默认 `local`
188
+ - CLI: `--ubox-mode`
189
+ - 必填: 否
190
+ - 本地模式 Base URL(当 `UBOX_MODE=local` 时生效)
191
+ - 环境变量/.env: `UBOX_BASE_URL`(默认 `127.0.0.1:26000`)
192
+ - CLI: `--ubox-base-url`
193
+ - 必填: 否
194
+ - UBox 环境
195
+ - 环境变量/.env: `UBOX_ENV`(`formal`|`test`,默认 `formal`)
196
+ - CLI: `--ubox-env`
197
+ - 必填: 否
198
+ - 默认设备可选参数(若你的流程需要默认值)
199
+ - 环境变量/.env: `UBOX_DEFAULT_UDID`、`UBOX_DEFAULT_OS_TYPE`(默认 `android`)、`UBOX_AUTH_CODE`
200
+ - CLI: 无
201
+
202
+ ### MCP 服务器
203
+
204
+ - 运行模式
205
+ - 环境变量/.env: `MCP_MODE`(`sse`|`streamable-http`,默认 `streamable-http`)
206
+ - CLI: `--mcp-mode`
207
+ - 必填: 否
208
+ - 主机地址
209
+ - 环境变量/.env: `MCP_HOST`(默认 `localhost`)
210
+ - CLI: `--mcp-host`
211
+ - 必填: 否
212
+ - 端口
213
+ - 环境变量/.env: `MCP_PORT`(默认 `8000`)
214
+ - CLI: `--mcp-port`
215
+ - 必填: 否
216
+ - 日志级别
217
+ - 环境变量/.env: `LOG_LEVEL`(`DEBUG`|`INFO`|`WARNING`|`ERROR`,默认 `INFO`)
218
+ - CLI: `--log-level`
219
+ - 必填: 否
220
+ - 写入日志文件
221
+ - 环境变量/.env: `LOG_TO_FILE`(`true`|`false`,默认 `false`)
222
+ - CLI: 无
223
+ - 必填: 否
224
+
225
+
226
+
@@ -0,0 +1,216 @@
1
+ # UBox MCP服务器
2
+
3
+ ## 快速上手
4
+
5
+ ```bash
6
+ # 安装提供的 wheel 文件
7
+ uv tool install --python 3.10.12 ubox_mcp_server-0.1.0-py3-none-any.whl --index-url https://pypi.tuna.tsinghua.edu.cn/simple
8
+ ubox-mcp-server \
9
+ --ubox-secret-id your_id \
10
+ --ubox-secret-key your_key \
11
+ --ubox-mode normal
12
+ ```
13
+
14
+ 在cline中添加如下配置:
15
+
16
+ ```json
17
+ {
18
+ "mcpServers": {
19
+ "ubox-mcp-server": {
20
+ "transport": "http",
21
+ "url": "http://localhost:8000/mcp",
22
+ "description": "UBox MCP Server"
23
+ }
24
+ }
25
+ }
26
+ ```
27
+
28
+ ## 安装(来自打包文件)
29
+
30
+ ```bash
31
+ # 安装提供的 wheel 文件
32
+ uv tool install --python 3.10.12 ubox_mcp_server-0.1.0-py3-none-any.whl --index-url https://pypi.tuna.tsinghua.edu.cn/simple
33
+ ```
34
+
35
+ ## 配置与启动
36
+
37
+ ### 方式1:使用 .env 文件
38
+
39
+ ```bash
40
+ # 创建配置文件
41
+ cat > .env << EOF
42
+ UBOX_SECRET_ID=your_secret_id
43
+ UBOX_SECRET_KEY=your_secret_key
44
+ UBOX_MODE=local
45
+ MCP_MODE=streamable-http
46
+ MCP_HOST=localhost
47
+ MCP_PORT=8000
48
+ EOF
49
+
50
+ # 启动(会自动读取当前目录的 .env 文件)
51
+ ubox-mcp-server
52
+ ```
53
+
54
+ ### 方式2:纯命令行(跨平台)
55
+
56
+ - macOS/Linux:
57
+
58
+ ```bash
59
+ ubox-mcp-server \
60
+ --ubox-secret-id your_id \
61
+ --ubox-secret-key your_key \
62
+ --ubox-mode normal \
63
+ --mcp-mode streamable-http \
64
+ --mcp-port 8000 \
65
+ --log-level DEBUG
66
+ ```
67
+
68
+ - Windows PowerShell:
69
+
70
+ ```powershell
71
+ ubox-mcp-server `
72
+ --ubox-secret-id your_id `
73
+ --ubox-secret-key your_key `
74
+ --ubox-mode normal `
75
+ --mcp-mode streamable-http `
76
+ --mcp-port 8000 `
77
+ --log-level DEBUG
78
+ ```
79
+
80
+ ### 方式3:全部环境变量
81
+
82
+ ```bash
83
+ export UBOX_SECRET_ID=your_secret_id
84
+ export UBOX_SECRET_KEY=your_secret_key
85
+ export UBOX_MODE=local
86
+ export MCP_MODE=streamable-http
87
+ export MCP_HOST=localhost
88
+ export MCP_PORT=8000
89
+
90
+ ubox-mcp-server
91
+ ```
92
+
93
+ ## 简单校验
94
+
95
+ ```bash
96
+ # 列出工具
97
+ curl -X POST http://localhost:8000/mcp \
98
+ -H 'Content-Type: application/json' \
99
+ -d '{"jsonrpc":"2.0","id":1,"method":"tools/list","params":{}}'
100
+ ```
101
+
102
+ ## 获取帮助
103
+
104
+ ```bash
105
+ ubox-mcp-server --help
106
+ ```
107
+
108
+ ## 在 Cline 中使用(VS Code)
109
+
110
+ 1) 启动服务器
111
+
112
+ - macOS/Linux:
113
+
114
+ ```bash
115
+ ubox-mcp-server \
116
+ --ubox-secret-id your_id \
117
+ --ubox-secret-key your_key \
118
+ --ubox-mode local \
119
+ --mcp-mode streamable-http \
120
+ --mcp-port 8000 \
121
+ --log-level DEBUG
122
+ ```
123
+
124
+ - Windows PowerShell:
125
+
126
+ ```powershell
127
+ ubox-mcp-server `
128
+ --ubox-mode local `
129
+ --mcp-mode streamable-http `
130
+ --mcp-port 8000 `
131
+ --log-level DEBUG
132
+ ```
133
+
134
+ 2) 配置 Cline
135
+
136
+ - VS Code 命令面板 → “Cline: Configure MCP Servers” → 添加:
137
+
138
+ ```json
139
+ {
140
+ "mcpServers": {
141
+ "ubox-mcp-server": {
142
+ "transport": "http",
143
+ "url": "http://localhost:8000/mcp",
144
+ "description": "UBox MCP Server"
145
+ }
146
+ }
147
+ }
148
+ ```
149
+
150
+ (如你的 Cline 支持 SSE,也可改为:)
151
+
152
+ ```json
153
+ {
154
+ "mcpServers": {
155
+ "ubox-mcp-server": {
156
+ "transport": "sse",
157
+ "url": "http://localhost:8000/sse"
158
+ }
159
+ }
160
+ }
161
+ ```
162
+
163
+ 3) 使用与验证
164
+
165
+ - Cline 面板应显示 “ubox-mcp-server” 已连接
166
+ - 在对话中输入任务(如“获取设备列表”“连接设备并截图”),Cline 会调用对应工具
167
+
168
+ ## 可配置项一览
169
+
170
+ 以下所有配置可通过三种方式设置(优先级从高到低):
171
+
172
+ 1) 命令行参数(仅标注了有对应 --flag 的项);2) 环境变量;3) .env 文件。
173
+
174
+ ### UBox SDK
175
+
176
+ - UBox 运行模式
177
+ - 环境变量/.env: `UBOX_MODE`(`local`|`normal`)默认 `local`
178
+ - CLI: `--ubox-mode`
179
+ - 必填: 否
180
+ - 本地模式 Base URL(当 `UBOX_MODE=local` 时生效)
181
+ - 环境变量/.env: `UBOX_BASE_URL`(默认 `127.0.0.1:26000`)
182
+ - CLI: `--ubox-base-url`
183
+ - 必填: 否
184
+ - UBox 环境
185
+ - 环境变量/.env: `UBOX_ENV`(`formal`|`test`,默认 `formal`)
186
+ - CLI: `--ubox-env`
187
+ - 必填: 否
188
+ - 默认设备可选参数(若你的流程需要默认值)
189
+ - 环境变量/.env: `UBOX_DEFAULT_UDID`、`UBOX_DEFAULT_OS_TYPE`(默认 `android`)、`UBOX_AUTH_CODE`
190
+ - CLI: 无
191
+
192
+ ### MCP 服务器
193
+
194
+ - 运行模式
195
+ - 环境变量/.env: `MCP_MODE`(`sse`|`streamable-http`,默认 `streamable-http`)
196
+ - CLI: `--mcp-mode`
197
+ - 必填: 否
198
+ - 主机地址
199
+ - 环境变量/.env: `MCP_HOST`(默认 `localhost`)
200
+ - CLI: `--mcp-host`
201
+ - 必填: 否
202
+ - 端口
203
+ - 环境变量/.env: `MCP_PORT`(默认 `8000`)
204
+ - CLI: `--mcp-port`
205
+ - 必填: 否
206
+ - 日志级别
207
+ - 环境变量/.env: `LOG_LEVEL`(`DEBUG`|`INFO`|`WARNING`|`ERROR`,默认 `INFO`)
208
+ - CLI: `--log-level`
209
+ - 必填: 否
210
+ - 写入日志文件
211
+ - 环境变量/.env: `LOG_TO_FILE`(`true`|`false`,默认 `false`)
212
+ - CLI: 无
213
+ - 必填: 否
214
+
215
+
216
+
@@ -0,0 +1,41 @@
1
+ # UBox MCP服务器环境配置示例文件
2
+ # 复制此文件为 .env 并填入实际的配置信息
3
+
4
+ # ==================== UBox SDK 核心配置 ====================
5
+
6
+ # UBox Authorization Token(可选,作为回退方案)
7
+ # 优先从 mcp.json 的 headers.Authorization 中获取 token
8
+ # 如果 mcp.json 中未配置,则回退到此环境变量
9
+ # 注意:token 不需要 "Bearer " 前缀,SDK 调用三方平台时不需要 Bearer
10
+ # UBOX_AUTHORIZATION=your_token_here
11
+
12
+ # UBox运行模式(必填)
13
+ # local: 本地模式,连接本地lab-agent (127.0.0.1:26000)
14
+ # normal: 标准模式,连接线上设备
15
+ UBOX_MODE=local
16
+
17
+ # 可选:本地模式自定义base_url(默认: 127.0.0.1:26000)
18
+ # UBOX_BASE_URL=127.0.0.1:26000
19
+
20
+ # 可选:环境配置(formal/test,默认: formal)
21
+ # UBOX_ENV=formal
22
+
23
+ # ==================== MCP服务器配置 ====================
24
+ # MCP服务器运行模式(stdio/sse/streamable-http)
25
+ # stdio: 标准输入输出模式(默认,推荐本地使用)
26
+ # sse: Server-Sent Events模式
27
+ # streamable-http: Streamable HTTP模式
28
+ MCP_MODE=stdio
29
+
30
+ # MCP服务器主机地址
31
+ MCP_HOST=localhost
32
+
33
+ # MCP服务器端口
34
+ MCP_PORT=8000
35
+
36
+ # ==================== 日志配置 ====================
37
+ # 日志级别(DEBUG/INFO/WARNING/ERROR)
38
+ LOG_LEVEL=INFO
39
+
40
+ # 是否将日志写入文件(true/false)
41
+ LOG_TO_FILE=false
@@ -0,0 +1,39 @@
1
+ [project]
2
+ name = "ubox-mcp-server"
3
+ version = "0.1.2"
4
+ description = "UBox MCP服务器 - 通过Model Context Protocol暴露UBox设备自动化能力"
5
+ readme = "README.md"
6
+ requires-python = ">=3.10,<3.12"
7
+ dependencies = [
8
+ "mcp>=1.20.0",
9
+ "python-dotenv>=1.1.0",
10
+ "ubox-py-sdk==0.2.22a1",
11
+ ]
12
+
13
+ [project.scripts]
14
+ ubox-mcp-server = "ubox_mcp_server.server:main"
15
+
16
+ [build-system]
17
+ requires = ["hatchling"]
18
+ build-backend = "hatchling.build"
19
+
20
+ [tool.hatch.build.targets.wheel]
21
+ packages = ["src/ubox_mcp_server"]
22
+
23
+ [dependency-groups]
24
+ dev = [
25
+ "pytest>=7.0.0",
26
+ "pytest-asyncio>=0.21.0",
27
+ "black>=23.0.0",
28
+ "isort>=5.12.0",
29
+ "flake8>=6.0.0",
30
+ ]
31
+
32
+ [tool.pytest.ini_options]
33
+ asyncio_mode = "auto"
34
+
35
+ [tool.uv]
36
+
37
+ [[tool.uv.index]]
38
+ url = "https://pypi.tuna.tsinghua.edu.cn/simple"
39
+ default = true
@@ -0,0 +1,35 @@
1
+ #!/usr/bin/env python3
2
+ # -*- coding: utf-8 -*-
3
+ """
4
+ UBox MCP服务器包初始化文件
5
+
6
+ 提供包的入口点和主要模块导出
7
+ """
8
+
9
+ import asyncio
10
+
11
+ # 使用相对导入,保持包内部导入的一致性
12
+ from . import server
13
+ from . import ubox_handler
14
+ from . import device_manager
15
+ from . import ubox_config
16
+ from .app_config import AppConfig
17
+
18
+ __version__ = "0.1.0"
19
+
20
+
21
+ def main():
22
+ """主入口点,用于直接运行包"""
23
+ server.main()
24
+
25
+
26
+ __all__ = [
27
+ "main",
28
+ "server",
29
+ "ubox_handler",
30
+ "device_manager",
31
+ "ubox_config",
32
+ "AppConfig",
33
+ "__version__"
34
+ ]
35
+