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.
- ubox_mcp_server-0.1.2/.gitignore +35 -0
- ubox_mcp_server-0.1.2/DEVELOPMENT.md +43 -0
- ubox_mcp_server-0.1.2/PKG-INFO +226 -0
- ubox_mcp_server-0.1.2/README.md +216 -0
- ubox_mcp_server-0.1.2/env.example +41 -0
- ubox_mcp_server-0.1.2/pyproject.toml +39 -0
- ubox_mcp_server-0.1.2/src/ubox_mcp_server/__init__.py +35 -0
- ubox_mcp_server-0.1.2/src/ubox_mcp_server/app_config.py +173 -0
- ubox_mcp_server-0.1.2/src/ubox_mcp_server/client_example.py +216 -0
- ubox_mcp_server-0.1.2/src/ubox_mcp_server/client_sse.py +141 -0
- ubox_mcp_server-0.1.2/src/ubox_mcp_server/client_streamable_http.py +159 -0
- ubox_mcp_server-0.1.2/src/ubox_mcp_server/device_manager.py +582 -0
- ubox_mcp_server-0.1.2/src/ubox_mcp_server/server.py +1762 -0
- ubox_mcp_server-0.1.2/src/ubox_mcp_server/ubox_config.py +164 -0
- ubox_mcp_server-0.1.2/src/ubox_mcp_server/ubox_handler.py +1776 -0
- ubox_mcp_server-0.1.2/uv.lock +929 -0
|
@@ -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
|
+
|