@demox-site/mcp-server 1.0.4 → 1.0.5
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.
- package/LICENSE +21 -0
- package/README.md +175 -147
- package/dist/api/DemoxClient.d.ts.map +1 -1
- package/dist/api/DemoxClient.js +33 -19
- package/dist/api/DemoxClient.js.map +1 -1
- package/dist/cli.js +0 -0
- package/dist/index.js +22 -15
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 demox-site
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
# @demox/mcp-server
|
|
1
|
+
# @demox-site/mcp-server
|
|
2
2
|
|
|
3
|
-
[](https://www.npmjs.com/package/@demox/mcp-server)
|
|
3
|
+
[](https://www.npmjs.com/package/@demox-site/mcp-server)
|
|
4
4
|
[](https://opensource.org/licenses/MIT)
|
|
5
5
|
|
|
6
6
|
> Demox MCP Server - 通过 AI 部署静态网站到 Demox 平台
|
|
@@ -11,10 +11,8 @@
|
|
|
11
11
|
- [功能特性](#功能特性)
|
|
12
12
|
- [快速开始](#快速开始)
|
|
13
13
|
- [配置步骤](#配置步骤)
|
|
14
|
-
- [CLI 工具](#cli-工具)
|
|
15
14
|
- [可用工具](#可用工具)
|
|
16
15
|
- [使用示例](#使用示例)
|
|
17
|
-
- [文档](#文档)
|
|
18
16
|
- [常见问题](#常见问题)
|
|
19
17
|
- [技术支持](#技术支持)
|
|
20
18
|
|
|
@@ -27,61 +25,44 @@ MCP (Model Context Protocol) 是 AI 助手与工具之间的标准化协议,
|
|
|
27
25
|
## 功能特性
|
|
28
26
|
|
|
29
27
|
- 🚀 **一键部署**: 部署静态网站到 Demox 平台
|
|
30
|
-
-
|
|
31
|
-
-
|
|
32
|
-
-
|
|
33
|
-
-
|
|
34
|
-
-
|
|
28
|
+
- 📦 **自动打包**: 支持直接传入目录,自动打包成 ZIP
|
|
29
|
+
- ☁️ **云存储上传**: 使用 CloudBase Storage,支持大文件(最大 500MB)
|
|
30
|
+
- 🔐 **自动登录**: Token 过期时自动触发登录流程
|
|
31
|
+
- 💻 **AI 集成**: 与 Claude Code、Cursor 等 MCP 客户端无缝集成
|
|
32
|
+
- 📋 **网站管理**: 查看、删除、管理已部署的网站
|
|
35
33
|
|
|
36
34
|
---
|
|
37
35
|
|
|
38
36
|
## 快速开始
|
|
39
37
|
|
|
40
|
-
### 安装
|
|
38
|
+
### 安装 MCP Server
|
|
41
39
|
|
|
42
|
-
|
|
43
|
-
```bash
|
|
44
|
-
# 无需安装,自动使用最新版本
|
|
45
|
-
npx @demox/mcp-server
|
|
46
|
-
```
|
|
47
|
-
|
|
48
|
-
**方式 2: 全局安装**
|
|
49
|
-
```bash
|
|
50
|
-
npm install -g @demox/mcp-server
|
|
51
|
-
```
|
|
40
|
+
**在 AI 工具配置中使用 npx(推荐)**
|
|
52
41
|
|
|
53
|
-
|
|
42
|
+
无需安装,直接在配置文件中使用:
|
|
54
43
|
|
|
55
|
-
```
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
demox-mcp
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
44
|
+
```json
|
|
45
|
+
{
|
|
46
|
+
"mcpServers": {
|
|
47
|
+
"demox": {
|
|
48
|
+
"command": "npx",
|
|
49
|
+
"args": ["-y", "@demox-site/mcp-server"]
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
}
|
|
64
53
|
```
|
|
65
54
|
|
|
55
|
+
配置后重启 AI 工具,首次使用时会自动打开浏览器登录。
|
|
56
|
+
|
|
66
57
|
---
|
|
67
58
|
|
|
68
59
|
## 配置步骤
|
|
69
60
|
|
|
70
|
-
### 1.
|
|
71
|
-
|
|
72
|
-
访问 [Demox MCP 配置页面](https://demox.site/#/mcp-setup) 下载配置文件。
|
|
73
|
-
|
|
74
|
-
或使用 CLI 生成:
|
|
61
|
+
### 1. 配置 AI 工具
|
|
75
62
|
|
|
76
|
-
|
|
77
|
-
demox-mcp config -o demox-mcp.json
|
|
78
|
-
```
|
|
79
|
-
|
|
80
|
-
### 2. 导入配置
|
|
63
|
+
根据您使用的 AI 工具,将以下配置导入到相应位置:
|
|
81
64
|
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
#### Claude Desktop
|
|
65
|
+
#### Claude Desktop / Claude Code
|
|
85
66
|
|
|
86
67
|
**macOS**:
|
|
87
68
|
```bash
|
|
@@ -93,19 +74,18 @@ demox-mcp config -o demox-mcp.json
|
|
|
93
74
|
%APPDATA%/Claude/claude_desktop_config.json
|
|
94
75
|
```
|
|
95
76
|
|
|
77
|
+
**Linux**:
|
|
78
|
+
```bash
|
|
79
|
+
~/.config/Claude/claude_desktop_config.json
|
|
80
|
+
```
|
|
81
|
+
|
|
96
82
|
配置示例:
|
|
97
83
|
```json
|
|
98
84
|
{
|
|
99
85
|
"mcpServers": {
|
|
100
86
|
"demox": {
|
|
101
87
|
"command": "npx",
|
|
102
|
-
"args": ["-y", "@demox/mcp-server"]
|
|
103
|
-
"env": {
|
|
104
|
-
"DEMOX_CLIENT_ID": "demox-mcp-client",
|
|
105
|
-
"DEMOX_AUTH_URL": "https://demox.site/mcp/authorize",
|
|
106
|
-
"DEMOX_API_BASE": "https://demox.site",
|
|
107
|
-
"DEMOX_SERVER_ENV": "moyu-3g5pbxld00f4aead"
|
|
108
|
-
}
|
|
88
|
+
"args": ["-y", "@demox-site/mcp-server"]
|
|
109
89
|
}
|
|
110
90
|
}
|
|
111
91
|
}
|
|
@@ -120,52 +100,21 @@ demox-mcp config -o demox-mcp.json
|
|
|
120
100
|
|
|
121
101
|
所有平台: `~/.cline/mcp.json`
|
|
122
102
|
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
配置完成后,重启您的 AI 工具。
|
|
126
|
-
|
|
127
|
-
### 4. 首次使用
|
|
128
|
-
|
|
129
|
-
首次调用 MCP 工具时,会自动打开浏览器登录。
|
|
130
|
-
|
|
131
|
-
登录成功后,凭证会保存在本地(`~/.demox/token.json`),有效期 30 天。
|
|
132
|
-
|
|
133
|
-
---
|
|
134
|
-
|
|
135
|
-
## CLI 工具
|
|
136
|
-
|
|
137
|
-
安装 MCP Server 后,可以使用 `demox-mcp` CLI 工具:
|
|
138
|
-
|
|
139
|
-
```bash
|
|
140
|
-
# 登录
|
|
141
|
-
demox-mcp login
|
|
103
|
+
#### Continue (VS Code 插件)
|
|
142
104
|
|
|
143
|
-
|
|
144
|
-
demox-mcp status
|
|
105
|
+
所有平台: `~/.continue/mcp.json`
|
|
145
106
|
|
|
146
|
-
|
|
147
|
-
demox-mcp list
|
|
107
|
+
### 2. 重启 AI 工具
|
|
148
108
|
|
|
149
|
-
|
|
150
|
-
demox-mcp deploy ./dist # 自动打包目录 ✨
|
|
151
|
-
demox-mcp deploy ./site.zip # 直接上传 ZIP
|
|
152
|
-
demox-mcp deploy ./dist --name "My Site" # 指定名称
|
|
153
|
-
demox-mcp deploy ./dist --id ABC12345 # 更新现有网站
|
|
109
|
+
配置完成后,重启您的 AI 工具。
|
|
154
110
|
|
|
155
|
-
|
|
156
|
-
demox-mcp delete ABC12345
|
|
111
|
+
### 3. 首次使用
|
|
157
112
|
|
|
158
|
-
|
|
159
|
-
demox-mcp test
|
|
113
|
+
首次调用 MCP 工具时,会自动打开浏览器登录。
|
|
160
114
|
|
|
161
|
-
|
|
162
|
-
demox-mcp config
|
|
115
|
+
登录成功后,凭证会保存在本地(`~/.demox/token.json`),Access Token 有效期 5 分钟,Refresh Token 有效期 30 天。
|
|
163
116
|
|
|
164
|
-
|
|
165
|
-
demox-mcp logout
|
|
166
|
-
```
|
|
167
|
-
|
|
168
|
-
**✨ 新功能**:`deploy` 命令现在支持直接传入目录路径(如 `./dist`),系统会自动打包并部署!
|
|
117
|
+
**自动登录**:Token 过期时会自动打开浏览器,无需手动运行登录命令。
|
|
169
118
|
|
|
170
119
|
---
|
|
171
120
|
|
|
@@ -176,27 +125,43 @@ demox-mcp logout
|
|
|
176
125
|
部署静态网站到 Demox 平台。
|
|
177
126
|
|
|
178
127
|
**参数**:
|
|
179
|
-
- `zipFile` (string,
|
|
180
|
-
-
|
|
181
|
-
- `
|
|
128
|
+
- `zipFile` (string, **必需**): ZIP 文件路径或目录路径
|
|
129
|
+
- 支持本地 ZIP 文件:`./dist.zip`
|
|
130
|
+
- 支持本地目录(自动打包):`./dist`
|
|
131
|
+
- 支持 HTTPS URL(必须 .zip 结尾):`https://example.com/file.zip`
|
|
132
|
+
- `fileName` (string, 可选): 网站名称,用于标识和展示
|
|
133
|
+
- `websiteId` (string, 可选): 网站 ID,更新现有网站时提供
|
|
134
|
+
|
|
135
|
+
**限制**:
|
|
136
|
+
- 仅支持 ZIP 文件格式
|
|
137
|
+
- 最大文件大小:500MB
|
|
138
|
+
- 不支持 base64 编码内容
|
|
182
139
|
|
|
183
140
|
### list_websites
|
|
184
141
|
|
|
185
|
-
|
|
142
|
+
获取用户在 Demox 平台上的所有网站列表。
|
|
143
|
+
|
|
144
|
+
**返回信息**:
|
|
145
|
+
- 网站 ID
|
|
146
|
+
- 网站名称
|
|
147
|
+
- 访问 URL
|
|
148
|
+
- 创建时间
|
|
186
149
|
|
|
187
150
|
### get_website
|
|
188
151
|
|
|
189
152
|
获取指定网站的详细信息。
|
|
190
153
|
|
|
191
154
|
**参数**:
|
|
192
|
-
- `websiteId` (string,
|
|
155
|
+
- `websiteId` (string, **必需**): 要查询的网站 ID
|
|
193
156
|
|
|
194
157
|
### delete_website
|
|
195
158
|
|
|
196
|
-
|
|
159
|
+
删除指定的网站及其所有文件。
|
|
197
160
|
|
|
198
161
|
**参数**:
|
|
199
|
-
- `websiteId` (string,
|
|
162
|
+
- `websiteId` (string, **必需**): 要删除的网站 ID
|
|
163
|
+
|
|
164
|
+
**⚠️ 注意**: 此操作不可撤销
|
|
200
165
|
|
|
201
166
|
---
|
|
202
167
|
|
|
@@ -209,11 +174,14 @@ demox-mcp logout
|
|
|
209
174
|
|
|
210
175
|
Claude: 好的,我来帮您部署 dist 目录。
|
|
211
176
|
|
|
212
|
-
[
|
|
177
|
+
[检测到目录,自动打包成 ZIP...]
|
|
178
|
+
[正在上传文件到 CloudBase Storage...]
|
|
179
|
+
[文件上传成功]
|
|
213
180
|
|
|
214
181
|
✅ 网站部署成功!
|
|
215
182
|
网站名称: dist
|
|
216
|
-
|
|
183
|
+
网站 ID: ABC12345
|
|
184
|
+
访问地址: https://abc12345.demox.site
|
|
217
185
|
```
|
|
218
186
|
|
|
219
187
|
### 在 Cursor 中
|
|
@@ -226,56 +194,70 @@ Claude: 好的,我来帮您部署 dist 目录。
|
|
|
226
194
|
# Cursor 会自动:
|
|
227
195
|
# 1. 检测到项目目录(如 ./dist)
|
|
228
196
|
# 2. 自动打包成 ZIP
|
|
229
|
-
# 3.
|
|
230
|
-
# 4.
|
|
197
|
+
# 3. 上传到云存储
|
|
198
|
+
# 4. 调用云函数部署
|
|
199
|
+
# 5. 返回访问链接
|
|
231
200
|
```
|
|
232
201
|
|
|
233
|
-
###
|
|
202
|
+
### 示例对话
|
|
234
203
|
|
|
235
|
-
|
|
236
|
-
# 方式 1: 部署目录(自动打包)✨
|
|
237
|
-
demox-mcp deploy ./dist
|
|
204
|
+
**场景 1:部署新网站**
|
|
238
205
|
|
|
239
|
-
|
|
240
|
-
|
|
206
|
+
```
|
|
207
|
+
用户: 把我的 react 项目的 build 目录部署到 Demox
|
|
241
208
|
|
|
242
|
-
|
|
243
|
-
demox-mcp deploy ./dist --name "My Portfolio"
|
|
209
|
+
Claude: 我来帮您部署 React 项目的 build 目录。
|
|
244
210
|
|
|
245
|
-
|
|
246
|
-
|
|
211
|
+
[正在打包目录 ./build...]
|
|
212
|
+
[文件大小: 2.3MB]
|
|
213
|
+
|
|
214
|
+
✅ 网站部署成功!
|
|
215
|
+
网站名称: build
|
|
216
|
+
网站 ID: XYZ67890
|
|
217
|
+
访问地址: https://xyz67890.demox.site
|
|
218
|
+
|
|
219
|
+
您现在可以访问上述地址查看您的网站了。
|
|
247
220
|
```
|
|
248
221
|
|
|
249
|
-
|
|
222
|
+
**场景 2:更新现有网站**
|
|
250
223
|
|
|
251
|
-
```
|
|
252
|
-
|
|
224
|
+
```
|
|
225
|
+
用户: 更新网站 ABC12345
|
|
253
226
|
|
|
254
|
-
|
|
255
|
-
const accessToken = await oauthManager.ensureAuthenticated();
|
|
256
|
-
const client = new DemoxClient(accessToken);
|
|
227
|
+
Claude: 我来帮您更新网站 ABC12345。
|
|
257
228
|
|
|
258
|
-
|
|
259
|
-
const result = await client.deployWebsite(
|
|
260
|
-
{
|
|
261
|
-
zipFile: "./site.zip",
|
|
262
|
-
fileName: "My Site",
|
|
263
|
-
},
|
|
264
|
-
accessToken
|
|
265
|
-
);
|
|
229
|
+
[文件大小: 2.5MB]
|
|
266
230
|
|
|
267
|
-
|
|
231
|
+
✅ 网站部署成功!
|
|
232
|
+
网站名称: my-project
|
|
233
|
+
网站 ID: ABC12345
|
|
234
|
+
访问地址: https://abc12345.demox.site
|
|
268
235
|
```
|
|
269
236
|
|
|
270
|
-
|
|
237
|
+
**场景 3:查看所有网站**
|
|
271
238
|
|
|
272
|
-
|
|
239
|
+
```
|
|
240
|
+
用户: 显示我部署的所有网站
|
|
273
241
|
|
|
274
|
-
|
|
242
|
+
Claude: 我来帮您查看所有已部署的网站。
|
|
275
243
|
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
244
|
+
📋 您的网站列表(共 3 个)
|
|
245
|
+
|
|
246
|
+
1. **my-portfolio**
|
|
247
|
+
- ID: `ABC12345`
|
|
248
|
+
- URL: https://abc12345.demox.site
|
|
249
|
+
- 创建时间: 2026-01-20 14:30:00
|
|
250
|
+
|
|
251
|
+
2. **blog**
|
|
252
|
+
- ID: `XYZ67890`
|
|
253
|
+
- URL: https://xyz67890.demox.site
|
|
254
|
+
- 创建时间: 2026-01-21 09:15:00
|
|
255
|
+
|
|
256
|
+
3. **docs**
|
|
257
|
+
- ID: `DEF24680`
|
|
258
|
+
- URL: https://def24680.demox.site
|
|
259
|
+
- 创建时间: 2026-01-22 16:45:00
|
|
260
|
+
```
|
|
279
261
|
|
|
280
262
|
---
|
|
281
263
|
|
|
@@ -283,25 +265,43 @@ console.log("部署成功:", result.url);
|
|
|
283
265
|
|
|
284
266
|
### Token 过期怎么办?
|
|
285
267
|
|
|
286
|
-
Token
|
|
268
|
+
**自动登录**:系统会在 Token 过期时自动打开浏览器登录,无需手动操作。
|
|
269
|
+
|
|
270
|
+
登录成功后会自动重试失败的工具调用。
|
|
271
|
+
|
|
272
|
+
### 支持哪些文件格式?
|
|
273
|
+
|
|
274
|
+
**仅支持 ZIP 文件或目录**:
|
|
275
|
+
- ✅ 本地 ZIP 文件:`./dist.zip`
|
|
276
|
+
- ✅ 本地目录:`./dist`(自动打包成 ZIP)
|
|
277
|
+
- ✅ HTTPS URL:`https://example.com/file.zip`(必须 .zip 结尾)
|
|
278
|
+
- ❌ 其他压缩格式(tar.gz, rar 等)
|
|
279
|
+
- ❌ Base64 编码内容
|
|
280
|
+
|
|
281
|
+
### 最大文件大小限制?
|
|
282
|
+
|
|
283
|
+
**500MB**
|
|
284
|
+
|
|
285
|
+
大文件会被流式传输,不会占用大量内存。
|
|
287
286
|
|
|
288
287
|
### 如何撤销授权?
|
|
289
288
|
|
|
290
|
-
|
|
291
|
-
demox-mcp logout
|
|
292
|
-
```
|
|
289
|
+
删除本地 Token 文件:
|
|
293
290
|
|
|
294
|
-
或删除本地 Token 文件:
|
|
295
291
|
```bash
|
|
296
292
|
rm ~/.demox/token.json
|
|
297
293
|
```
|
|
298
294
|
|
|
295
|
+
下次使用时会自动触发登录。
|
|
296
|
+
|
|
299
297
|
### 支持哪些 AI 工具?
|
|
300
298
|
|
|
299
|
+
所有支持 MCP 协议的 AI 工具:
|
|
301
300
|
- Claude Desktop / Claude Code
|
|
302
301
|
- Cursor AI
|
|
303
302
|
- Cline (VS Code 插件)
|
|
304
|
-
-
|
|
303
|
+
- Continue (VS Code 插件)
|
|
304
|
+
- 其他 MCP 客户端
|
|
305
305
|
|
|
306
306
|
### 多台设备可以使用吗?
|
|
307
307
|
|
|
@@ -309,19 +309,41 @@ rm ~/.demox/token.json
|
|
|
309
309
|
|
|
310
310
|
### 如何查看调试日志?
|
|
311
311
|
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
312
|
+
MCP Server 的日志会输出到 stderr,可以在 AI 工具的日志中查看。
|
|
313
|
+
|
|
314
|
+
---
|
|
315
|
+
|
|
316
|
+
## 技术细节
|
|
317
|
+
|
|
318
|
+
### 文件上传流程
|
|
319
|
+
|
|
320
|
+
```
|
|
321
|
+
输入(文件/目录/URL)
|
|
322
|
+
↓
|
|
323
|
+
转换为本地 ZIP 文件
|
|
324
|
+
↓
|
|
325
|
+
检查文件大小(最大 500MB)
|
|
326
|
+
↓
|
|
327
|
+
上传到 CloudBase Storage(流式传输)
|
|
328
|
+
↓
|
|
329
|
+
获取 fileId
|
|
330
|
+
↓
|
|
331
|
+
云函数从 Storage 下载并部署
|
|
315
332
|
```
|
|
316
333
|
|
|
317
|
-
|
|
334
|
+
### 安全性
|
|
335
|
+
|
|
336
|
+
- **OAuth 2.0 认证**: 使用标准的 OAuth 2.0 协议
|
|
337
|
+
- **Token 加密存储**: 本地存储的 Token 包含 Refresh Token
|
|
338
|
+
- **自动刷新**: Access Token 过期后自动刷新
|
|
339
|
+
- **作用域限制**: Token 仅包含必要的权限范围
|
|
318
340
|
|
|
319
341
|
---
|
|
320
342
|
|
|
321
343
|
## 技术支持
|
|
322
344
|
|
|
323
|
-
- 📖 **文档**: https://
|
|
324
|
-
- 🐛 **Issues**: https://github.com/demox/mcp-server/issues
|
|
345
|
+
- 📖 **文档**: https://demox.site
|
|
346
|
+
- 🐛 **Issues**: https://github.com/demox-site/mcp-server/issues
|
|
325
347
|
- 📧 **邮箱**: support@demox.site
|
|
326
348
|
|
|
327
349
|
---
|
|
@@ -332,7 +354,7 @@ DEBUG=demox:* demox-mcp test
|
|
|
332
354
|
|
|
333
355
|
```bash
|
|
334
356
|
# 克隆项目
|
|
335
|
-
git clone https://github.com/demox/mcp-server.git
|
|
357
|
+
git clone https://github.com/demox-site/mcp-server.git
|
|
336
358
|
cd mcp-server
|
|
337
359
|
|
|
338
360
|
# 安装依赖
|
|
@@ -344,13 +366,19 @@ npm run dev
|
|
|
344
366
|
# 构建
|
|
345
367
|
npm run build
|
|
346
368
|
|
|
347
|
-
#
|
|
348
|
-
|
|
369
|
+
# 测试 MCP Server
|
|
370
|
+
node dist/index.js
|
|
349
371
|
```
|
|
350
372
|
|
|
351
373
|
### 贡献
|
|
352
374
|
|
|
353
|
-
|
|
375
|
+
欢迎贡献代码!请遵循以下步骤:
|
|
376
|
+
|
|
377
|
+
1. Fork 本仓库
|
|
378
|
+
2. 创建特性分支 (`git checkout -b feature/AmazingFeature`)
|
|
379
|
+
3. 提交更改 (`git commit -m 'Add some AmazingFeature'`)
|
|
380
|
+
4. 推送到分支 (`git push origin feature/AmazingFeature`)
|
|
381
|
+
5. 开启 Pull Request
|
|
354
382
|
|
|
355
383
|
---
|
|
356
384
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DemoxClient.d.ts","sourceRoot":"","sources":["../../src/api/DemoxClient.ts"],"names":[],"mappings":"AAGA;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;GAEG;AACH,MAAM,WAAW,OAAO;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;;GAGG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,gBAAgB,CAAS;gBAErB,WAAW,CAAC,EAAE,MAAM;IAKhC;;OAEG;YACW,YAAY;IA8C1B;;OAEG;IACG,aAAa,CACjB,MAAM,EAAE,YAAY,EACpB,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"DemoxClient.d.ts","sourceRoot":"","sources":["../../src/api/DemoxClient.ts"],"names":[],"mappings":"AAGA;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;GAEG;AACH,MAAM,WAAW,OAAO;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;;GAGG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,gBAAgB,CAAS;gBAErB,WAAW,CAAC,EAAE,MAAM;IAKhC;;OAEG;YACW,YAAY;IA8C1B;;OAEG;IACG,aAAa,CACjB,MAAM,EAAE,YAAY,EACpB,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,YAAY,CAAC;IAwExB;;OAEG;YACW,WAAW;IAiBzB;;OAEG;YACW,WAAW;IAKzB;;OAEG;YACW,gBAAgB;IAa9B;;OAEG;YACW,kBAAkB;IAwBhC;;OAEG;YACW,wBAAwB;IA2CtC;;OAEG;YACW,uBAAuB;IAgBrC;;OAEG;YACW,oBAAoB;IAelC;;OAEG;IACH,OAAO,CAAC,QAAQ;IAUhB;;OAEG;IACG,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAe3D;;OAEG;IACG,aAAa,CACjB,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,IAAI,CAAC;IAehB;;OAEG;IACG,UAAU,CACd,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;IAe1B;;OAEG;YACW,eAAe;IAkB7B;;OAEG;IACG,WAAW,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;CAiBzD"}
|
package/dist/api/DemoxClient.js
CHANGED
|
@@ -54,16 +54,17 @@ export class DemoxClient {
|
|
|
54
54
|
// 处理输入路径(文件、目录或 URL),统一转换为本地 ZIP 文件
|
|
55
55
|
let localFilePath = null;
|
|
56
56
|
if (params.zipFile.startsWith("http://") || params.zipFile.startsWith("https://")) {
|
|
57
|
-
// URL:
|
|
57
|
+
// URL: 必须是 .zip 结尾
|
|
58
|
+
if (!params.zipFile.toLowerCase().endsWith(".zip")) {
|
|
59
|
+
throw new Error(`只支持 ZIP 文件,URL 必须以 .zip 结尾`);
|
|
60
|
+
}
|
|
58
61
|
logger.debug("检测到 ZIP URL,正在下载...");
|
|
59
62
|
const buffer = await this.downloadZipFileToBuffer(params.zipFile);
|
|
60
63
|
localFilePath = await this.saveBufferToTempFile(buffer);
|
|
61
64
|
}
|
|
62
65
|
else if (this.isBase64(params.zipFile) && !params.zipFile.startsWith("/") && !params.zipFile.startsWith(".")) {
|
|
63
|
-
// Base64:
|
|
64
|
-
|
|
65
|
-
const buffer = Buffer.from(params.zipFile, 'base64');
|
|
66
|
-
localFilePath = await this.saveBufferToTempFile(buffer);
|
|
66
|
+
// Base64: 不再支持(无法验证文件类型)
|
|
67
|
+
throw new Error(`不支持直接传入 Base64 内容,请提供 ZIP 文件路径或 URL`);
|
|
67
68
|
}
|
|
68
69
|
else {
|
|
69
70
|
// 本地路径:文件或目录
|
|
@@ -74,20 +75,25 @@ export class DemoxClient {
|
|
|
74
75
|
logger.debug(`检测到目录: ${params.zipFile},正在打包...`);
|
|
75
76
|
localFilePath = await this.zipDirectoryToFile(params.zipFile);
|
|
76
77
|
}
|
|
77
|
-
else if (params.zipFile.endsWith(".zip")) {
|
|
78
|
+
else if (params.zipFile.toLowerCase().endsWith(".zip")) {
|
|
78
79
|
// ZIP 文件:直接使用
|
|
79
80
|
localFilePath = params.zipFile;
|
|
80
81
|
}
|
|
81
82
|
else {
|
|
82
|
-
throw new Error(
|
|
83
|
+
throw new Error(`不支持的文件类型,仅支持 .zip 文件或目录`);
|
|
83
84
|
}
|
|
84
85
|
}
|
|
85
86
|
if (!localFilePath) {
|
|
86
87
|
throw new Error(`无法处理输入文件`);
|
|
87
88
|
}
|
|
88
|
-
//
|
|
89
|
+
// 显示文件大小并检查限制
|
|
89
90
|
const fileSize = await this.getFileSize(localFilePath);
|
|
90
91
|
logger.info(`文件大小: ${(fileSize / 1024 / 1024).toFixed(2)}MB`);
|
|
92
|
+
// 检查文件大小限制(最大 500MB,避免内存溢出)
|
|
93
|
+
const maxFileSize = 500 * 1024 * 1024; // 500MB
|
|
94
|
+
if (fileSize > maxFileSize) {
|
|
95
|
+
throw new Error(`文件过大 (${(fileSize / 1024 / 1024).toFixed(2)}MB),当前最大支持 500MB`);
|
|
96
|
+
}
|
|
91
97
|
// 一律使用 CloudBase Storage 上传
|
|
92
98
|
logger.info("正在上传文件到 CloudBase Storage...");
|
|
93
99
|
const fileId = await this.uploadToCloudBaseStorage(localFilePath, accessToken);
|
|
@@ -163,27 +169,35 @@ export class DemoxClient {
|
|
|
163
169
|
*/
|
|
164
170
|
async uploadToCloudBaseStorage(filePath, accessToken) {
|
|
165
171
|
const config = loadConfig();
|
|
166
|
-
// 初始化 CloudBase
|
|
167
|
-
const app = cloudbase.init({
|
|
168
|
-
env: config.serverEnv,
|
|
169
|
-
accessToken,
|
|
170
|
-
});
|
|
171
172
|
try {
|
|
172
173
|
const fs = await import("fs");
|
|
173
174
|
const pathModule = await import("path");
|
|
174
175
|
const fileName = pathModule.basename(filePath);
|
|
175
176
|
const cloudPath = `mcp-uploads/${Date.now()}-${fileName}`;
|
|
176
177
|
logger.info(`正在上传文件到 CloudBase Storage: ${cloudPath}`);
|
|
177
|
-
//
|
|
178
|
-
const
|
|
179
|
-
|
|
180
|
-
|
|
178
|
+
// 初始化 CloudBase
|
|
179
|
+
const app = cloudbase.init({
|
|
180
|
+
env: config.serverEnv,
|
|
181
|
+
accessToken,
|
|
182
|
+
});
|
|
183
|
+
// 使用 Stream 上传(避免内存溢出)
|
|
184
|
+
const fileStream = fs.createReadStream(filePath);
|
|
185
|
+
return new Promise((resolve, reject) => {
|
|
186
|
+
app.uploadFile({
|
|
187
|
+
cloudPath,
|
|
188
|
+
fileContent: fileStream,
|
|
189
|
+
}).then((result) => {
|
|
190
|
+
logger.info(`文件上传成功: ${result.fileID}`);
|
|
191
|
+
resolve(result.fileID);
|
|
192
|
+
}).catch((error) => {
|
|
193
|
+
logger.error("上传文件到 CloudBase Storage 失败:", error.message);
|
|
194
|
+
reject(new Error(`上传文件失败: ${error.message}`));
|
|
195
|
+
});
|
|
181
196
|
});
|
|
182
|
-
logger.info(`文件上传成功: ${result.fileID}`);
|
|
183
|
-
return result.fileID;
|
|
184
197
|
}
|
|
185
198
|
catch (error) {
|
|
186
199
|
logger.error("上传文件到 CloudBase Storage 失败:", error.message);
|
|
200
|
+
logger.error("错误详情:", error);
|
|
187
201
|
throw new Error(`上传文件失败: ${error.message}`);
|
|
188
202
|
}
|
|
189
203
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DemoxClient.js","sourceRoot":"","sources":["../../src/api/DemoxClient.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,SAAS,MAAM,qBAAqB,CAAC;AAgC5C;;;GAGG;AACH,MAAM,OAAO,WAAW;IACd,gBAAgB,CAAS;IAEjC,YAAY,WAAoB;QAC9B,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;QAC5B,IAAI,CAAC,gBAAgB,GAAG,MAAM,CAAC,gBAAgB,CAAC;IAClD,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,YAAY,CACxB,IAAY,EACZ,IAAyB,EACzB,WAAmB;QAEnB,IAAI,CAAC;YACH,MAAM,CAAC,KAAK,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC;YAE/B,eAAe;YACf,MAAM,CAAC,KAAK,CAAC,YAAY,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC;YAElD,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,gBAAgB,EAAE;gBAClD,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE;oBACP,cAAc,EAAE,kBAAkB;oBAClC,eAAe,EAAE,UAAU,WAAW,EAAE;iBACzC;gBACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;oBACnB,YAAY,EAAE,IAAI;oBAClB,IAAI;iBACL,CAAC;aACH,CAAC,CAAC;YAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;gBACjB,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;gBACxC,MAAM,IAAI,KAAK,CAAC,QAAQ,QAAQ,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC,CAAC;YAC3D,CAAC;YAED,MAAM,YAAY,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;YAE3C,OAAO;YACP,IAAI,YAAY,IAAI,YAAY,CAAC,KAAK,EAAE,CAAC;gBACvC,MAAM,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC;gBACjC,MAAM,IAAI,KAAK,CACb,IAAI,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EACnF,EAAE,CACH,CAAC;YACJ,CAAC;YAED,OAAO,YAAY,CAAC;QACtB,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,MAAM,CAAC,KAAK,CAAC,YAAY,IAAI,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;YAClD,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,aAAa,CACjB,MAAoB,EACpB,WAAmB;QAEnB,MAAM,CAAC,IAAI,CAAC,WAAW,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;QAE1C,oCAAoC;QACpC,IAAI,aAAa,GAAkB,IAAI,CAAC;QAExC,IAAI,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YAClF,
|
|
1
|
+
{"version":3,"file":"DemoxClient.js","sourceRoot":"","sources":["../../src/api/DemoxClient.ts"],"names":[],"mappings":"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"}
|
package/dist/cli.js
CHANGED
|
File without changes
|
package/dist/index.js
CHANGED
|
@@ -41,13 +41,13 @@ class DemoxMCPServer {
|
|
|
41
41
|
tools: [
|
|
42
42
|
{
|
|
43
43
|
name: "deploy_website",
|
|
44
|
-
description: "部署静态网站到 Demox
|
|
44
|
+
description: "部署静态网站到 Demox 平台。**仅支持 ZIP 文件或目录**,系统会自动上传到云存储并部署。",
|
|
45
45
|
inputSchema: {
|
|
46
46
|
type: "object",
|
|
47
47
|
properties: {
|
|
48
48
|
zipFile: {
|
|
49
49
|
type: "string",
|
|
50
|
-
description: "
|
|
50
|
+
description: "ZIP 文件路径或目录路径。支持:1) 本地 ZIP 文件(如 ./dist.zip) 2) 本地目录(如 ./dist)- 自动打包成 ZIP 3) HTTPS URL(必须以 .zip 结尾)。**不支持 base64 内容**。",
|
|
51
51
|
},
|
|
52
52
|
websiteId: {
|
|
53
53
|
type: "string",
|
|
@@ -212,16 +212,17 @@ demox-mcp login
|
|
|
212
212
|
}
|
|
213
213
|
}
|
|
214
214
|
logger.info(`开始部署网站: ${fileName}`);
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
215
|
+
try {
|
|
216
|
+
const result = await this.demoxClient.deployWebsite({
|
|
217
|
+
zipFile,
|
|
218
|
+
websiteId,
|
|
219
|
+
fileName,
|
|
220
|
+
}, accessToken);
|
|
221
|
+
return {
|
|
222
|
+
content: [
|
|
223
|
+
{
|
|
224
|
+
type: "text",
|
|
225
|
+
text: `✅ 网站部署成功!
|
|
225
226
|
|
|
226
227
|
**网站名称**: ${fileName}
|
|
227
228
|
**网站 ID**: ${result.websiteId}
|
|
@@ -229,9 +230,15 @@ demox-mcp login
|
|
|
229
230
|
**部署路径**: ${result.path}
|
|
230
231
|
|
|
231
232
|
您现在可以访问上述地址查看您的网站了。`,
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
233
|
+
},
|
|
234
|
+
],
|
|
235
|
+
};
|
|
236
|
+
}
|
|
237
|
+
catch (error) {
|
|
238
|
+
logger.error("部署失败:", error);
|
|
239
|
+
// 确保错误被正确传播,不会导致进程崩溃
|
|
240
|
+
throw error;
|
|
241
|
+
}
|
|
235
242
|
}
|
|
236
243
|
/**
|
|
237
244
|
* 处理网站列表
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EACL,qBAAqB,EACrB,sBAAsB,GACvB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAE3C;;;;;;;;GAQG;AACH,MAAM,cAAc;IACV,MAAM,CAAS;IACf,YAAY,CAAe;IAC3B,WAAW,GAAuB,IAAI,CAAC;IAE/C;QACE,MAAM,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;QAEzC,IAAI,CAAC,MAAM,GAAG,IAAI,MAAM,CACtB;YACE,IAAI,EAAE,mBAAmB;YACzB,OAAO,EAAE,OAAO;SACjB,EACD;YACE,YAAY,EAAE;gBACZ,KAAK,EAAE,EAAE;aACV;SACF,CACF,CAAC;QAEF,IAAI,CAAC,YAAY,GAAG,IAAI,YAAY,EAAE,CAAC;QAEvC,IAAI,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC;IAED;;OAEG;IACK,aAAa;QACnB,OAAO;QACP,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,sBAAsB,EAAE,KAAK,IAAI,EAAE;YAC/D,OAAO;gBACL,KAAK,EAAE;oBACL;wBACE,IAAI,EAAE,gBAAgB;wBACtB,WAAW,EACT,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|