File size: 5,832 Bytes
eb846d0
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
---
title: 删除资源 API
description: 删除各种资源的 API 端点,包括服务器、组和配置等
---

# 删除资源 API

本文档描述了用于删除各种资源的 API 端点。

## 删除 MCP 服务器

删除指定的 MCP 服务器配置。

### 端点

```http
DELETE /api/servers/{id}
```

### 参数

| 参数名 | 类型   | 位置 | 必需 | 描述               |
| ------ | ------ | ---- | ---- | ------------------ |
| id     | string | path || 服务器的唯一标识符 |

### 请求示例

```bash
curl -X DELETE \
  'https://api.mcphub.io/api/servers/mcp-server-123' \
  -H 'Authorization: Bearer YOUR_API_TOKEN' \
  -H 'Content-Type: application/json'
```

### 响应

#### 成功响应 (204 No Content)

```json
{
  "success": true,
  "message": "服务器已成功删除",
  "data": {
    "id": "mcp-server-123",
    "deletedAt": "2024-01-15T10:30:00Z"
  }
}
```

#### 错误响应

**404 Not Found**

```json
{
  "error": {
    "code": "SERVER_NOT_FOUND",
    "message": "指定的服务器不存在",
    "details": {
      "serverId": "mcp-server-123"
    }
  }
}
```

**409 Conflict**

```json
{
  "error": {
    "code": "SERVER_IN_USE",
    "message": "服务器正在使用中,无法删除",
    "details": {
      "activeConnections": 5,
      "associatedGroups": ["group-1", "group-2"]
    }
  }
}
```

## 删除服务器组

删除指定的服务器组。

### 端点

```http
DELETE /api/groups/{id}
```

### 参数

| 参数名 | 类型    | 位置  | 必需 | 描述                           |
| ------ | ------- | ----- | ---- | ------------------------------ |
| id     | string  | path  || 组的唯一标识符                 |
| force  | boolean | query || 是否强制删除(包含服务器的组) |

### 请求示例

```bash
curl -X DELETE \
  'https://api.mcphub.io/api/groups/production-group?force=true' \
  -H 'Authorization: Bearer YOUR_API_TOKEN' \
  -H 'Content-Type: application/json'
```

### 响应

#### 成功响应 (204 No Content)

```json
{
  "success": true,
  "message": "服务器组已成功删除",
  "data": {
    "id": "production-group",
    "deletedServers": ["server-1", "server-2"],
    "deletedAt": "2024-01-15T10:30:00Z"
  }
}
```

## 删除配置项

删除指定的配置项。

### 端点

```http
DELETE /api/config/{key}
```

### 参数

| 参数名 | 类型   | 位置 | 必需 | 描述     |
| ------ | ------ | ---- | ---- | -------- |
| key    | string | path || 配置键名 |

### 请求示例

```bash
curl -X DELETE \
  'https://api.mcphub.io/api/config/custom-setting' \
  -H 'Authorization: Bearer YOUR_API_TOKEN'
```

### 响应

#### 成功响应 (200 OK)

```json
{
  "success": true,
  "message": "配置项已删除",
  "data": {
    "key": "custom-setting",
    "previousValue": "old-value",
    "deletedAt": "2024-01-15T10:30:00Z"
  }
}
```

## 批量删除

### 批量删除服务器

删除多个 MCP 服务器。

#### 端点

```http
DELETE /api/servers/batch
```

#### 请求体

```json
{
  "serverIds": ["server-1", "server-2", "server-3"],
  "force": false
}
```

#### 响应

```json
{
  "success": true,
  "message": "批量删除完成",
  "data": {
    "deleted": ["server-1", "server-3"],
    "failed": [
      {
        "id": "server-2",
        "reason": "服务器正在使用中"
      }
    ],
    "summary": {
      "total": 3,
      "deleted": 2,
      "failed": 1
    }
  }
}
```

## 软删除 vs 硬删除

### 软删除

默认情况下,MCPHub 使用软删除机制:

- 资源被标记为已删除但保留在数据库中
- 可以通过恢复 API 恢复删除的资源
- 删除的资源在列表 API 中默认不显示

### 硬删除

使用 `permanent=true` 参数执行硬删除:

```bash
curl -X DELETE \
  'https://api.mcphub.io/api/servers/mcp-server-123?permanent=true' \
  -H 'Authorization: Bearer YOUR_API_TOKEN'
```

<Warning>硬删除操作不可逆,请谨慎使用。</Warning>

## 权限要求

| 操作       | 所需权限                 |
| ---------- | ------------------------ |
| 删除服务器 | `servers:delete`         |
| 删除组     | `groups:delete`          |
| 删除配置   | `config:delete`          |
| 硬删除     | `admin:permanent_delete` |

## 错误代码

| 错误代码                   | HTTP 状态码 | 描述             |
| -------------------------- | ----------- | ---------------- |
| `RESOURCE_NOT_FOUND`       | 404         | 资源不存在       |
| `RESOURCE_IN_USE`          | 409         | 资源正在使用中   |
| `INSUFFICIENT_PERMISSIONS` | 403         | 权限不足         |
| `VALIDATION_ERROR`         | 400         | 请求参数验证失败 |
| `INTERNAL_ERROR`           | 500         | 服务器内部错误   |

## 最佳实践

### 1. 删除前检查

在删除资源前,建议先检查资源的使用情况:

```bash
# 检查服务器使用情况
curl -X GET \
  'https://api.mcphub.io/api/servers/mcp-server-123/usage' \
  -H 'Authorization: Bearer YOUR_API_TOKEN'
```

### 2. 备份重要数据

对于重要资源,建议在删除前进行备份:

```bash
# 导出服务器配置
curl -X GET \
  'https://api.mcphub.io/api/servers/mcp-server-123/export' \
  -H 'Authorization: Bearer YOUR_API_TOKEN' \
  > server-backup.json
```

### 3. 使用事务删除

对于复杂的删除操作,使用事务确保数据一致性:

```json
{
  "transaction": true,
  "operations": [
    {
      "type": "delete",
      "resource": "server",
      "id": "server-1"
    },
    {
      "type": "delete",
      "resource": "group",
      "id": "group-1"
    }
  ]
}
```

## 恢复删除的资源

软删除的资源可以通过恢复 API 恢复:

```bash
curl -X POST \
  'https://api.mcphub.io/api/servers/mcp-server-123/restore' \
  -H 'Authorization: Bearer YOUR_API_TOKEN'
```