luma-mcp 1.3.4 → 1.3.6
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/README.md +272 -714
- package/build/config.d.ts +2 -0
- package/build/config.d.ts.map +1 -1
- package/build/config.js +2 -0
- package/build/config.js.map +1 -1
- package/build/hunyuan-client.d.ts +2 -3
- package/build/hunyuan-client.d.ts.map +1 -1
- package/build/hunyuan-client.js +3 -8
- package/build/hunyuan-client.js.map +1 -1
- package/build/image-processor.d.ts +10 -2
- package/build/image-processor.d.ts.map +1 -1
- package/build/image-processor.js +135 -78
- package/build/image-processor.js.map +1 -1
- package/build/index.js +55 -23
- package/build/index.js.map +1 -1
- package/build/qwen-client.d.ts +8 -3
- package/build/qwen-client.d.ts.map +1 -1
- package/build/qwen-client.js +11 -13
- package/build/qwen-client.js.map +1 -1
- package/build/siliconflow-client.d.ts +3 -6
- package/build/siliconflow-client.d.ts.map +1 -1
- package/build/siliconflow-client.js +19 -24
- package/build/siliconflow-client.js.map +1 -1
- package/build/vision-client.d.ts +11 -2
- package/build/vision-client.d.ts.map +1 -1
- package/build/vision-client.js +10 -1
- package/build/vision-client.js.map +1 -1
- package/build/volcengine-client.d.ts +3 -7
- package/build/volcengine-client.d.ts.map +1 -1
- package/build/volcengine-client.js +5 -13
- package/build/volcengine-client.js.map +1 -1
- package/build/zhipu-client.d.ts +2 -5
- package/build/zhipu-client.d.ts.map +1 -1
- package/build/zhipu-client.js +4 -11
- package/build/zhipu-client.js.map +1 -1
- package/package.json +61 -60
package/README.md
CHANGED
|
@@ -1,714 +1,272 @@
|
|
|
1
|
-
# Luma MCP
|
|
2
|
-
|
|
3
|
-
多模型视觉理解 MCP
|
|
4
|
-
|
|
5
|
-
[English](./docs/README_EN.md) | 中文
|
|
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
|
-
"mcpServers": {
|
|
275
|
-
"luma": {
|
|
276
|
-
"command": "npx",
|
|
277
|
-
"args": ["-y", "luma-mcp"],
|
|
278
|
-
"env": {
|
|
279
|
-
"MODEL_PROVIDER": "hunyuan",
|
|
280
|
-
"HUNYUAN_API_KEY": "your-hunyuan-api-key",
|
|
281
|
-
"MODEL_NAME": "hunyuan-t1-vision-20250916"
|
|
282
|
-
}
|
|
283
|
-
}
|
|
284
|
-
}
|
|
285
|
-
}
|
|
286
|
-
```
|
|
287
|
-
|
|
288
|
-
#### Claude Code (命令行)
|
|
289
|
-
|
|
290
|
-
**使用智谱 GLM-4.6V**:
|
|
291
|
-
|
|
292
|
-
```bash
|
|
293
|
-
claude mcp add -s user luma-mcp --env ZHIPU_API_KEY=your-api-key -- npx -y luma-mcp
|
|
294
|
-
```
|
|
295
|
-
|
|
296
|
-
**使用硅基流动 DeepSeek-OCR(免费)**:
|
|
297
|
-
|
|
298
|
-
```bash
|
|
299
|
-
claude mcp add -s user luma-mcp --env MODEL_PROVIDER=siliconflow --env SILICONFLOW_API_KEY=your-api-key -- npx -y luma-mcp
|
|
300
|
-
```
|
|
301
|
-
|
|
302
|
-
**使用阿里云通义千问 Qwen3-VL-Flash**:
|
|
303
|
-
|
|
304
|
-
```bash
|
|
305
|
-
claude mcp add -s user luma-mcp --env MODEL_PROVIDER=qwen --env DASHSCOPE_API_KEY=your-api-key -- npx -y luma-mcp
|
|
306
|
-
```
|
|
307
|
-
|
|
308
|
-
**使用火山方舟 Doubao-Seed-1.6**:
|
|
309
|
-
|
|
310
|
-
```bash
|
|
311
|
-
claude mcp add -s user luma-mcp --env MODEL_PROVIDER=volcengine --env VOLCENGINE_API_KEY=your-api-key --env MODEL_NAME=doubao-seed-1-6-flash-250828 -- npx -y luma-mcp
|
|
312
|
-
```
|
|
313
|
-
|
|
314
|
-
**使用腾讯混元 Hunyuan-Vision-1.5**:
|
|
315
|
-
|
|
316
|
-
```bash
|
|
317
|
-
claude mcp add -s user luma-mcp --env MODEL_PROVIDER=hunyuan --env HUNYUAN_API_KEY=your-api-key --env MODEL_NAME=hunyuan-t1-vision-20250916 -- npx -y luma-mcp
|
|
318
|
-
```
|
|
319
|
-
|
|
320
|
-
#### 其他工具
|
|
321
|
-
|
|
322
|
-
更多 MCP 客户端配置方法请参考[智谱官方文档](https://docs.bigmodel.cn/cn/coding-plan/mcp/vision-mcp-server#claude-code)
|
|
323
|
-
|
|
324
|
-
## 使用方法
|
|
325
|
-
|
|
326
|
-
### 重要提示
|
|
327
|
-
|
|
328
|
-
**MCP 工具调用机制**:
|
|
329
|
-
|
|
330
|
-
- MCP 工具需要 AI 模型**主动调用**才会执行
|
|
331
|
-
- 如果使用的 AI 模型本身支持视觉(如 Claude 4.5 Sonnet),它会优先使用自己的视觉能力
|
|
332
|
-
- Luma MCP 主要服务于**不支持视觉的模型**(如 GPT-4、Claude Opus 等文本模型)
|
|
333
|
-
|
|
334
|
-
**如何确保工具被调用**:
|
|
335
|
-
|
|
336
|
-
1. 使用完整工具名:`使用 mcp__luma-mcp__analyze_image 工具分析这张图片`
|
|
337
|
-
2. 使用简化名称:`用 analyze_image 工具查看 ./screenshot.png`
|
|
338
|
-
3. 提供图片路径:`请用图片分析工具查看 ./screenshot.png 中的代码错误`
|
|
339
|
-
4. 明确提及服务器:`通过 luma-mcp 服务器分析这张图片`
|
|
340
|
-
|
|
341
|
-
**注意**: 直接在聊天框粘贴图片,非视觉模型不会自动调用 Luma,需要明确指示。
|
|
342
|
-
|
|
343
|
-
### 在 Claude code 中使用
|
|
344
|
-
|
|
345
|
-
配置完成后,在 Claude 对话中可以这样使用:
|
|
346
|
-
|
|
347
|
-
**推荐用法(明确指示)**:
|
|
348
|
-
|
|
349
|
-
```
|
|
350
|
-
用户: 使用 Luma 分析 ./code-error.png,这段代码为什么报错?
|
|
351
|
-
Claude: [调用 Luma 分析图片,返回详细分析]
|
|
352
|
-
```
|
|
353
|
-
|
|
354
|
-
**或提供图片路径**:
|
|
355
|
-
|
|
356
|
-
```
|
|
357
|
-
用户: 请分析 https://example.com/screenshot.jpg 中的界面问题
|
|
358
|
-
Claude: [自动调用 analyze_image 工具]
|
|
359
|
-
```
|
|
360
|
-
|
|
361
|
-
### 本地测试
|
|
362
|
-
|
|
363
|
-
不需要 MCP 客户端即可测试:
|
|
364
|
-
|
|
365
|
-
**测试智谱 GLM-4.6V**:
|
|
366
|
-
|
|
367
|
-
```bash
|
|
368
|
-
# 设置 API Key
|
|
369
|
-
export ZHIPU_API_KEY="your-api-key" # macOS/Linux
|
|
370
|
-
$env:ZHIPU_API_KEY="your-api-key" # Windows PowerShell
|
|
371
|
-
|
|
372
|
-
# 测试本地图片
|
|
373
|
-
npm run test:local ./test.png
|
|
374
|
-
```
|
|
375
|
-
|
|
376
|
-
**测试硅基流动 DeepSeek-OCR**:
|
|
377
|
-
|
|
378
|
-
```bash
|
|
379
|
-
# 设置 API Key 和提供商
|
|
380
|
-
export MODEL_PROVIDER=siliconflow
|
|
381
|
-
export SILICONFLOW_API_KEY="your-api-key" # macOS/Linux
|
|
382
|
-
|
|
383
|
-
$env:MODEL_PROVIDER="siliconflow"
|
|
384
|
-
$env:SILICONFLOW_API_KEY="your-api-key" # Windows PowerShell
|
|
385
|
-
|
|
386
|
-
# 测试本地图片
|
|
387
|
-
npm run test:local ./test.png
|
|
388
|
-
```
|
|
389
|
-
|
|
390
|
-
**测试阿里云通义千问 Qwen3-VL-Flash**:
|
|
391
|
-
|
|
392
|
-
```bash
|
|
393
|
-
# 设置 API Key 和提供商
|
|
394
|
-
export MODEL_PROVIDER=qwen
|
|
395
|
-
export DASHSCOPE_API_KEY="your-api-key" # macOS/Linux
|
|
396
|
-
|
|
397
|
-
$env:MODEL_PROVIDER="qwen"
|
|
398
|
-
$env:DASHSCOPE_API_KEY="your-api-key" # Windows PowerShell
|
|
399
|
-
|
|
400
|
-
# 测试本地图片
|
|
401
|
-
npm run test:local ./test.png
|
|
402
|
-
```
|
|
403
|
-
|
|
404
|
-
**测试腾讯混元 Hunyuan-Vision-1.5**:
|
|
405
|
-
|
|
406
|
-
```bash
|
|
407
|
-
# 设置 API Key 和提供商
|
|
408
|
-
export MODEL_PROVIDER=hunyuan
|
|
409
|
-
export HUNYUAN_API_KEY="your-api-key" # macOS/Linux
|
|
410
|
-
|
|
411
|
-
$env:MODEL_PROVIDER="hunyuan"
|
|
412
|
-
$env:HUNYUAN_API_KEY="your-api-key" # Windows PowerShell
|
|
413
|
-
|
|
414
|
-
# 测试本地图片
|
|
415
|
-
npm run test:local ./test.png
|
|
416
|
-
```
|
|
417
|
-
|
|
418
|
-
**其他测试命令**:
|
|
419
|
-
|
|
420
|
-
```bash
|
|
421
|
-
# 测试并提问
|
|
422
|
-
npm run test:local ./code-error.png "这段代码有什么问题?"
|
|
423
|
-
|
|
424
|
-
# 测试远程URL
|
|
425
|
-
npm run test:local https://example.com/image.jpg
|
|
426
|
-
```
|
|
427
|
-
|
|
428
|
-
## 工具说明
|
|
429
|
-
|
|
430
|
-
### analyze_image
|
|
431
|
-
|
|
432
|
-
分析图片内容的通用工具。
|
|
433
|
-
|
|
434
|
-
**参数**:
|
|
435
|
-
|
|
436
|
-
- `image_source` (必需): 图片来源,支持三种格式
|
|
437
|
-
- **本地文件**: 绝对路径或相对路径(例:`./image.png`, `C:\Users\...\image.jpg`)
|
|
438
|
-
- **远程 URL**: https:// 开头的 URL(例:`https://example.com/pic.jpg`)
|
|
439
|
-
- **Data URI**: Base64 编码的图片数据(例:`data:image/png;base64,iVBORw0KGg...`)
|
|
440
|
-
- 支持格式: JPG, PNG, WebP, GIF
|
|
441
|
-
- `prompt` (必需): 分析指令或问题
|
|
442
|
-
|
|
443
|
-
**示例**:
|
|
444
|
-
|
|
445
|
-
```typescript
|
|
446
|
-
// 通用分析
|
|
447
|
-
analyze_image({
|
|
448
|
-
image_source: "./screenshot.png",
|
|
449
|
-
prompt: "请详细分析这张图片的内容",
|
|
450
|
-
});
|
|
451
|
-
|
|
452
|
-
// 代码分析
|
|
453
|
-
analyze_image({
|
|
454
|
-
image_source: "./code-error.png",
|
|
455
|
-
prompt: "这段代码为什么报错?请提供修复建议",
|
|
456
|
-
});
|
|
457
|
-
|
|
458
|
-
// UI 分析
|
|
459
|
-
analyze_image({
|
|
460
|
-
image_source: "https://example.com/ui.png",
|
|
461
|
-
prompt: "分析这个界面的布局和可用性问题",
|
|
462
|
-
});
|
|
463
|
-
|
|
464
|
-
// Data URI (当客户端支持时)
|
|
465
|
-
analyze_image({
|
|
466
|
-
image_source: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUA...",
|
|
467
|
-
prompt: "识别图片中的所有文字",
|
|
468
|
-
});
|
|
469
|
-
```
|
|
470
|
-
|
|
471
|
-
## 环境变量
|
|
472
|
-
|
|
473
|
-
### 通用配置
|
|
474
|
-
|
|
475
|
-
| 变量名 | 必需 | 默认值 | 说明 |
|
|
476
|
-
|------------------------|------|---------|----------------------------------------------------------------|
|
|
477
|
-
| `MODEL_PROVIDER` | 否 | `zhipu` | 模型提供商:`zhipu`、`siliconflow`、`qwen`、`volcengine`、`hunyuan` |
|
|
478
|
-
| `MODEL_NAME` | 否 | 见下文 | 模型名称(自动根据提供商选择) |
|
|
479
|
-
| `MAX_TOKENS` | 否 | `16384` | 最大生成 tokens |
|
|
480
|
-
| `TEMPERATURE` | 否 | `0.7` | 温度参数 (0-1) |
|
|
481
|
-
| `TOP_P` | 否 | `0.7` | Top-p 参数 (0-1) |
|
|
482
|
-
| `ENABLE_THINKING` | 否 | `true` | 是否启用思考模式(GLM-4.6V、Qwen3-VL-Flash、Doubao-Seed-1.6) |
|
|
483
|
-
| `MULTI_CROP` | 否 | `true` | 是否启用多裁剪分析(大图文字场景) |
|
|
484
|
-
| `MULTI_CROP_MAX_TILES` | 否 | `5` | 多裁剪最大分片数(含原图) |
|
|
485
|
-
|
|
486
|
-
### 智谱 GLM-4.6V 专用
|
|
487
|
-
|
|
488
|
-
| 变量名 | 必需 | 默认值 | 说明 |
|
|
489
|
-
|-----------------|----------------|--------|---------------------|
|
|
490
|
-
| `ZHIPU_API_KEY` | 是(使用智谱时) | - | 智谱 AI 的 API 密钥 |
|
|
491
|
-
|
|
492
|
-
默认模型:`glm-4.6v`
|
|
493
|
-
|
|
494
|
-
### 硅基流动 DeepSeek-OCR 专用
|
|
495
|
-
|
|
496
|
-
| 变量名 | 必需 | 默认值 | 说明 |
|
|
497
|
-
|-----------------------|--------------------|--------|---------------------|
|
|
498
|
-
| `SILICONFLOW_API_KEY` | 是(使用硅基流动时) | - | 硅基流动的 API 密钥 |
|
|
499
|
-
|
|
500
|
-
默认模型:`deepseek-ai/DeepSeek-OCR`
|
|
501
|
-
|
|
502
|
-
### 阿里云通义千问 Qwen3-VL-Flash 专用
|
|
503
|
-
|
|
504
|
-
| 变量名 | 必需 | 默认值 | 说明 |
|
|
505
|
-
|---------------------|----------------|--------|-----------------------|
|
|
506
|
-
| `DASHSCOPE_API_KEY` | 是(使用千问时) | - | 阿里云百炼的 API 密钥 |
|
|
507
|
-
|
|
508
|
-
默认模型:`qwen3-vl-flash`
|
|
509
|
-
|
|
510
|
-
### 腾讯混元 Hunyuan-Vision-1.5 专用
|
|
511
|
-
|
|
512
|
-
| 变量名 | 必需 | 默认值 | 说明 |
|
|
513
|
-
|-------------------|----------------|--------|-------------------|
|
|
514
|
-
| `HUNYUAN_API_KEY` | 是(使用混元时) | - | 腾讯混元 API 密钥 |
|
|
515
|
-
|
|
516
|
-
默认模型:`hunyuan-t1-vision-20250916`
|
|
517
|
-
|
|
518
|
-
可选模型:`HY-vision-1.5-instruct`
|
|
519
|
-
|
|
520
|
-
**思考模式说明**:
|
|
521
|
-
|
|
522
|
-
- 默认开启,提高图片分析的准确性和详细程度
|
|
523
|
-
- 如需关闭(提高速度、降低成本),请在配置文件中设置:
|
|
524
|
-
```json
|
|
525
|
-
{
|
|
526
|
-
"mcpServers": {
|
|
527
|
-
"luma": {
|
|
528
|
-
"command": "npx",
|
|
529
|
-
"args": ["-y", "luma-mcp"],
|
|
530
|
-
"env": {
|
|
531
|
-
"ZHIPU_API_KEY": "your-api-key",
|
|
532
|
-
"ENABLE_THINKING": "false"
|
|
533
|
-
}
|
|
534
|
-
}
|
|
535
|
-
}
|
|
536
|
-
}
|
|
537
|
-
```
|
|
538
|
-
- 关闭后可节省 20-30% tokens 消耗,响应速度提升约 30%
|
|
539
|
-
|
|
540
|
-
## 开发
|
|
541
|
-
|
|
542
|
-
```bash
|
|
543
|
-
# 开发模式(监听文件变化)
|
|
544
|
-
npm run watch
|
|
545
|
-
|
|
546
|
-
# 构建
|
|
547
|
-
npm run build
|
|
548
|
-
|
|
549
|
-
# 本地测试
|
|
550
|
-
npm run test:local <图片路径> [问题]
|
|
551
|
-
```
|
|
552
|
-
|
|
553
|
-
## 项目结构
|
|
554
|
-
|
|
555
|
-
```
|
|
556
|
-
luma-mcp/
|
|
557
|
-
├── src/
|
|
558
|
-
│ ├── index.ts # MCP 服务器入口
|
|
559
|
-
│ ├── config.ts # 配置管理(支持多模型)
|
|
560
|
-
│ ├── vision-client.ts # 视觉模型客户端接口
|
|
561
|
-
│ ├── zhipu-client.ts # GLM-4.6V API 客户端
|
|
562
|
-
│ ├── siliconflow-client.ts # DeepSeek-OCR API 客户端
|
|
563
|
-
│ ├── qwen-client.ts # Qwen3-VL API 客户端
|
|
564
|
-
│ ├── volcengine-client.ts # Doubao-Seed-1.6 API 客户端
|
|
565
|
-
│ ├── hunyuan-client.ts # Hunyuan-Vision-1.5 API 客户端
|
|
566
|
-
│ ├── image-processor.ts # 图片处理
|
|
567
|
-
│ └── utils/
|
|
568
|
-
│ ├── logger.ts # 日志工具
|
|
569
|
-
│ └── helpers.ts # 工具函数
|
|
570
|
-
├── test/
|
|
571
|
-
│ ├── test-local.ts # 本地测试脚本
|
|
572
|
-
│ ├── test-qwen.ts # Qwen 测试脚本
|
|
573
|
-
│ ├── test-deepseek-raw.ts # DeepSeek 原始测试脚本
|
|
574
|
-
│ └── test-data-uri.ts # Data URI 测试脚本
|
|
575
|
-
├── docs/
|
|
576
|
-
│ ├── design.md # 设计文档
|
|
577
|
-
│ ├── installation.md # 安装指南
|
|
578
|
-
│ └── README_EN.md # 英文文档
|
|
579
|
-
├── build/ # 编译输出
|
|
580
|
-
└── package.json
|
|
581
|
-
```
|
|
582
|
-
|
|
583
|
-
## 常见问题
|
|
584
|
-
|
|
585
|
-
### 如何获取 API Key?
|
|
586
|
-
|
|
587
|
-
**智谱 GLM-4.6V**:
|
|
588
|
-
|
|
589
|
-
1. 访问 [智谱开放平台](https://open.bigmodel.cn/)
|
|
590
|
-
2. 注册/登录账号
|
|
591
|
-
3. 进入控制台创建 API Key
|
|
592
|
-
4. 复制 API Key 到配置文件
|
|
593
|
-
|
|
594
|
-
**硅基流动 DeepSeek-OCR(免费)**:
|
|
595
|
-
|
|
596
|
-
1. 访问 [硅基流动平台](https://cloud.siliconflow.cn/)
|
|
597
|
-
2. 注册/登录账号
|
|
598
|
-
3. 进入 API 管理创建 API Key
|
|
599
|
-
4. 复制 API Key 到配置文件
|
|
600
|
-
|
|
601
|
-
**阿里云通义千问 Qwen3-VL-Flash**:
|
|
602
|
-
|
|
603
|
-
1. 访问 [阿里云百炼平台](https://bailian.console.aliyun.com/)
|
|
604
|
-
2. 注册/登录账号
|
|
605
|
-
3. 进入 API-KEY 管理创建 API Key
|
|
606
|
-
4. 复制 API Key 到配置文件
|
|
607
|
-
|
|
608
|
-
**腾讯混元 Hunyuan-Vision-1.5**:
|
|
609
|
-
|
|
610
|
-
1. 访问 [腾讯混元控制台](https://cloud.tencent.com/product/hunyuan)
|
|
611
|
-
2. 注册/登录账号
|
|
612
|
-
3. 进入 API Key 管理创建 API Key
|
|
613
|
-
4. 复制 API Key 到配置文件
|
|
614
|
-
|
|
615
|
-
### 支持哪些图片格式?
|
|
616
|
-
|
|
617
|
-
支持 JPG、PNG、WebP、GIF 格式。建议使用 JPG 格式以获得更好的压缩率。
|
|
618
|
-
|
|
619
|
-
### 什么是 Data URI?
|
|
620
|
-
|
|
621
|
-
Data URI 是一种将图片数据嵌入字符串的方式,格式为:
|
|
622
|
-
|
|
623
|
-
```
|
|
624
|
-
data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUA...
|
|
625
|
-
```
|
|
626
|
-
|
|
627
|
-
**使用场景**:
|
|
628
|
-
|
|
629
|
-
- 当 MCP 客户端(如 Claude Desktop)支持时,可以直接传递用户粘贴的图片
|
|
630
|
-
- 无需保存为临时文件,更加高效
|
|
631
|
-
- 当前支持状态:**服务器已支持**,等待客户端实现
|
|
632
|
-
|
|
633
|
-
### 图片大小限制?
|
|
634
|
-
|
|
635
|
-
- 最大文件大小: 10MB
|
|
636
|
-
- 超过 2MB 的图片会自动压缩
|
|
637
|
-
- 推荐分辨率: 800-2048 像素
|
|
638
|
-
|
|
639
|
-
### 如何查看日志?
|
|
640
|
-
|
|
641
|
-
日志文件位置: `~/.luma-mcp/luma-mcp-YYYY-MM-DD.log`
|
|
642
|
-
|
|
643
|
-
### API 调用失败怎么办?
|
|
644
|
-
|
|
645
|
-
1. 检查 API Key 是否正确
|
|
646
|
-
2. 确认账户余额充足(智谱/阿里云)
|
|
647
|
-
3. 检查网络连接
|
|
648
|
-
4. 查看日志文件了解详细错误信息
|
|
649
|
-
|
|
650
|
-
### 成本如何?
|
|
651
|
-
|
|
652
|
-
**硅基流动 DeepSeek-OCR**: **完全免费**,无需付费!
|
|
653
|
-
|
|
654
|
-
**智谱 GLM-4.6V**: 定价请参考[智谱官方定价](https://open.bigmodel.cn/pricing)。
|
|
655
|
-
|
|
656
|
-
**阿里云通义千问 Qwen3-VL-Flash**: 定价请参考[阿里云百炼定价](https://help.aliyun.com/zh/model-studio/getting-started/models)。
|
|
657
|
-
|
|
658
|
-
典型场景估算(已启用思考模式):
|
|
659
|
-
|
|
660
|
-
- 简单图片理解: 500-1000 tokens
|
|
661
|
-
- 代码截图分析: 1500-2500 tokens
|
|
662
|
-
- 详细 UI 分析: 2000-3000 tokens
|
|
663
|
-
|
|
664
|
-
关闭思考模式可节省约 20-30% tokens。如需关闭,请设置 `ENABLE_THINKING=false`。
|
|
665
|
-
|
|
666
|
-
### 如何选择模型?
|
|
667
|
-
|
|
668
|
-
| 特性 | GLM-4.6V(智谱) | DeepSeek-OCR(硅基流动) | Qwen3-VL-Flash(阿里云) | Doubao-Seed-1.6(火山方舟) | Hunyuan-Vision-1.5(腾讯混元) |
|
|
669
|
-
|---------------|----------------|------------------------|------------------------|---------------------------|------------------------------|
|
|
670
|
-
| **费用** | 收费 | **完全免费** | 收费 | 收费 | 收费 |
|
|
671
|
-
| **中文理解** | 优秀 | 良好 | **优秀** | 优秀 | **优秀** |
|
|
672
|
-
| **OCR 能力** | 良好 | **优秀** | 优秀 | 良好 | 优秀 |
|
|
673
|
-
| **思考模式** | 支持 | 不支持 | 支持 | 支持 | 默认思考版模型 |
|
|
674
|
-
| **速度/成本** | 中等 | 免费 | **快速/低成本** | 高性价比 | 中等 |
|
|
675
|
-
| **适用场景** | 通用图片分析 | OCR、文字识别 | 快速分析、3D 定位 | 高性价比通用分析 | 复杂图文推理、多语言理解 |
|
|
676
|
-
|
|
677
|
-
**推荐**:
|
|
678
|
-
|
|
679
|
-
- 需要 OCR 或文字识别:选择 **DeepSeek-OCR**(免费)
|
|
680
|
-
- 需要快速低成本分析:选择 **Qwen3-VL-Flash**
|
|
681
|
-
- 需要高性价比通用分析:选择 **Doubao-Seed-1.6**
|
|
682
|
-
- 需要深度图片理解:选择 **GLM-4.6V**
|
|
683
|
-
- 需要复杂图文推理或多语言理解:选择 **Hunyuan-Vision-1.5**
|
|
684
|
-
|
|
685
|
-
## 贡献
|
|
686
|
-
|
|
687
|
-
欢迎提交 Issue 和 Pull Request!
|
|
688
|
-
|
|
689
|
-
## 许可证
|
|
690
|
-
|
|
691
|
-
MIT License
|
|
692
|
-
|
|
693
|
-
## 相关链接
|
|
694
|
-
|
|
695
|
-
- [智谱 AI 开放平台](https://open.bigmodel.cn/)
|
|
696
|
-
- [GLM-4.6V 文档](https://docs.bigmodel.cn/cn/guide/models/vlm/glm-4.6v)
|
|
697
|
-
- [硅基流动平台](https://cloud.siliconflow.cn/)
|
|
698
|
-
- [DeepSeek-OCR 文档](https://docs.siliconflow.cn/cn/api-reference/chat-completions/chat-completions)
|
|
699
|
-
- [阿里云百炼平台](https://bailian.console.aliyun.com/)
|
|
700
|
-
- [Qwen3-VL 文档](https://help.aliyun.com/zh/model-studio/getting-started/models)
|
|
701
|
-
- [腾讯混元平台](https://cloud.tencent.com/product/hunyuan)
|
|
702
|
-
- [MCP 协议文档](https://modelcontextprotocol.io/)
|
|
703
|
-
|
|
704
|
-
## 更新日志
|
|
705
|
-
|
|
706
|
-
更多更新历史请查看 [CHANGELOG.md](./CHANGELOG.md)
|
|
707
|
-
|
|
708
|
-
## 作者
|
|
709
|
-
|
|
710
|
-
Jochen
|
|
711
|
-
|
|
712
|
-
---
|
|
713
|
-
|
|
714
|
-
**注意**: 请勿在公开仓库中提交包含真实 API Key 的配置文件。
|
|
1
|
+
# Luma MCP
|
|
2
|
+
|
|
3
|
+
多模型视觉理解 MCP 服务器,为不支持原生视觉能力的 AI 助手提供统一的图片分析能力。
|
|
4
|
+
|
|
5
|
+
[English](./docs/README_EN.md) | 中文
|
|
6
|
+
|
|
7
|
+
## 特性
|
|
8
|
+
|
|
9
|
+
- 多模型支持:GLM-4.6V、DeepSeek-OCR、Qwen3-VL-Flash、Doubao-Seed-1.6、Hunyuan-Vision-1.5
|
|
10
|
+
- 单工具设计:统一通过 `image_understand` 完成图片理解
|
|
11
|
+
- 面向复杂截图优化:支持大图多裁剪、文本密集场景保真处理
|
|
12
|
+
- 统一预处理链路:本地文件、远程 URL、Data URI 都进入同一套处理流程
|
|
13
|
+
- 适用场景完整:代码截图、UI 截图、报错截图、文档截图、OCR
|
|
14
|
+
- 标准 MCP 协议:可接入 Claude Desktop、Cline、Claude Code 等客户端
|
|
15
|
+
- 内置重试:降低临时网络或模型请求失败带来的影响
|
|
16
|
+
|
|
17
|
+
## 快速开始
|
|
18
|
+
|
|
19
|
+
### 前置要求
|
|
20
|
+
|
|
21
|
+
- Node.js >= 18
|
|
22
|
+
- 任意一个模型提供商的 API Key
|
|
23
|
+
|
|
24
|
+
### 安装
|
|
25
|
+
|
|
26
|
+
```bash
|
|
27
|
+
git clone https://github.com/JochenYang/luma-mcp.git
|
|
28
|
+
cd luma-mcp
|
|
29
|
+
npm install
|
|
30
|
+
npm run build
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
也可以在 MCP 配置中直接使用:
|
|
34
|
+
|
|
35
|
+
```bash
|
|
36
|
+
npx -y luma-mcp
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
## 配置
|
|
40
|
+
|
|
41
|
+
### Claude Desktop 示例
|
|
42
|
+
|
|
43
|
+
```json
|
|
44
|
+
{
|
|
45
|
+
"mcpServers": {
|
|
46
|
+
"luma": {
|
|
47
|
+
"command": "npx",
|
|
48
|
+
"args": ["-y", "luma-mcp"],
|
|
49
|
+
"env": {
|
|
50
|
+
"MODEL_PROVIDER": "zhipu",
|
|
51
|
+
"ZHIPU_API_KEY": "your-api-key"
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
把 `MODEL_PROVIDER` 和对应密钥替换为你实际使用的提供商:
|
|
59
|
+
|
|
60
|
+
- `zhipu` -> `ZHIPU_API_KEY`
|
|
61
|
+
- `siliconflow` -> `SILICONFLOW_API_KEY`
|
|
62
|
+
- `qwen` -> `DASHSCOPE_API_KEY`
|
|
63
|
+
- `volcengine` -> `VOLCENGINE_API_KEY`
|
|
64
|
+
- `hunyuan` -> `HUNYUAN_API_KEY`
|
|
65
|
+
|
|
66
|
+
可选模型覆盖:
|
|
67
|
+
|
|
68
|
+
- `MODEL_NAME=doubao-seed-1-6-flash-250828`
|
|
69
|
+
- `MODEL_NAME=hunyuan-t1-vision-20250916`
|
|
70
|
+
- `MODEL_NAME=HY-vision-1.5-instruct`
|
|
71
|
+
|
|
72
|
+
### 快捷配置命令
|
|
73
|
+
|
|
74
|
+
#### Claude Code
|
|
75
|
+
|
|
76
|
+
```bash
|
|
77
|
+
# Zhipu
|
|
78
|
+
claude mcp add -s user luma-mcp --env MODEL_PROVIDER=zhipu --env ZHIPU_API_KEY=your-api-key -- npx -y luma-mcp
|
|
79
|
+
|
|
80
|
+
# SiliconFlow
|
|
81
|
+
claude mcp add -s user luma-mcp --env MODEL_PROVIDER=siliconflow --env SILICONFLOW_API_KEY=your-api-key -- npx -y luma-mcp
|
|
82
|
+
|
|
83
|
+
# Qwen
|
|
84
|
+
claude mcp add -s user luma-mcp --env MODEL_PROVIDER=qwen --env DASHSCOPE_API_KEY=your-api-key -- npx -y luma-mcp
|
|
85
|
+
|
|
86
|
+
# Volcengine
|
|
87
|
+
claude mcp add -s user luma-mcp --env MODEL_PROVIDER=volcengine --env VOLCENGINE_API_KEY=your-api-key --env MODEL_NAME=doubao-seed-1-6-flash-250828 -- npx -y luma-mcp
|
|
88
|
+
|
|
89
|
+
# Hunyuan
|
|
90
|
+
claude mcp add -s user luma-mcp --env MODEL_PROVIDER=hunyuan --env HUNYUAN_API_KEY=your-api-key --env MODEL_NAME=hunyuan-t1-vision-20250916 -- npx -y luma-mcp
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
#### 本地开发模式
|
|
94
|
+
|
|
95
|
+
```json
|
|
96
|
+
{
|
|
97
|
+
"mcpServers": {
|
|
98
|
+
"luma": {
|
|
99
|
+
"command": "node",
|
|
100
|
+
"args": ["D:\\codes\\luma-mcp\\build\\index.js"],
|
|
101
|
+
"env": {
|
|
102
|
+
"MODEL_PROVIDER": "zhipu",
|
|
103
|
+
"ZHIPU_API_KEY": "your-api-key"
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
#### Cline / VSCode
|
|
111
|
+
|
|
112
|
+
在项目根目录或 `.vscode/` 下创建 `mcp.json`:
|
|
113
|
+
|
|
114
|
+
```json
|
|
115
|
+
{
|
|
116
|
+
"mcpServers": {
|
|
117
|
+
"luma": {
|
|
118
|
+
"command": "npx",
|
|
119
|
+
"args": ["-y", "luma-mcp"],
|
|
120
|
+
"env": {
|
|
121
|
+
"MODEL_PROVIDER": "zhipu",
|
|
122
|
+
"ZHIPU_API_KEY": "your-api-key"
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
## 使用方式
|
|
130
|
+
|
|
131
|
+
### `image_understand`
|
|
132
|
+
|
|
133
|
+
参数:
|
|
134
|
+
|
|
135
|
+
- `image_source`:本地路径、HTTP(S) 图片 URL、Data URI
|
|
136
|
+
- `prompt`:用户对图片的原始问题
|
|
137
|
+
|
|
138
|
+
示例:
|
|
139
|
+
|
|
140
|
+
```typescript
|
|
141
|
+
image_understand({
|
|
142
|
+
image_source: "./screenshot.png",
|
|
143
|
+
prompt: "分析这个页面的布局和主要组件结构",
|
|
144
|
+
});
|
|
145
|
+
|
|
146
|
+
image_understand({
|
|
147
|
+
image_source: "./code-error.png",
|
|
148
|
+
prompt: "这段代码为什么报错?请给出修复建议",
|
|
149
|
+
});
|
|
150
|
+
|
|
151
|
+
image_understand({
|
|
152
|
+
image_source: "https://example.com/ui.png",
|
|
153
|
+
prompt: "找出这个界面的可用性问题",
|
|
154
|
+
});
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
### 使用建议
|
|
158
|
+
|
|
159
|
+
- 非视觉模型需要明确提示调用 MCP 工具
|
|
160
|
+
- 代码截图、OCR、长图、表格这类文本密集图片会自动启用更保真的处理方式
|
|
161
|
+
- 大图会按配置自动生成原图加裁剪图,提高细节理解能力
|
|
162
|
+
|
|
163
|
+
## 环境变量
|
|
164
|
+
|
|
165
|
+
### 通用配置
|
|
166
|
+
|
|
167
|
+
| 变量名 | 默认值 | 说明 |
|
|
168
|
+
| --- | --- | --- |
|
|
169
|
+
| `MODEL_PROVIDER` | `zhipu` | 模型提供商:`zhipu`、`siliconflow`、`qwen`、`volcengine`、`hunyuan` |
|
|
170
|
+
| `MODEL_NAME` | 自动选择 | 模型名称 |
|
|
171
|
+
| `MAX_TOKENS` | `16384` | 最大生成 token 数 |
|
|
172
|
+
| `TEMPERATURE` | `0.7` | 温度参数 |
|
|
173
|
+
| `TOP_P` | `0.7` | Top-p 参数 |
|
|
174
|
+
| `ENABLE_THINKING` | `true` | 启用思考模式(若模型支持) |
|
|
175
|
+
| `MULTI_CROP` | `true` | 启用大图多裁剪分析 |
|
|
176
|
+
| `MULTI_CROP_MAX_TILES` | `5` | 最大分片数(含原图) |
|
|
177
|
+
| `BASE_VISION_PROMPT` | 内置默认值 | 自定义基础视觉提示词 |
|
|
178
|
+
|
|
179
|
+
### 提供商密钥
|
|
180
|
+
|
|
181
|
+
| 提供商 | 必填环境变量 | 默认模型 |
|
|
182
|
+
| --- | --- | --- |
|
|
183
|
+
| Zhipu | `ZHIPU_API_KEY` | `glm-4.6v` |
|
|
184
|
+
| SiliconFlow | `SILICONFLOW_API_KEY` | `deepseek-ai/DeepSeek-OCR` |
|
|
185
|
+
| Qwen | `DASHSCOPE_API_KEY` | `qwen3-vl-flash` |
|
|
186
|
+
| Volcengine | `VOLCENGINE_API_KEY` | `doubao-seed-1-6-flash-250828` |
|
|
187
|
+
| Hunyuan | `HUNYUAN_API_KEY` | `hunyuan-t1-vision-20250916` |
|
|
188
|
+
|
|
189
|
+
## 本地测试
|
|
190
|
+
|
|
191
|
+
```bash
|
|
192
|
+
# 基础测试
|
|
193
|
+
npm run test:local ./test.png
|
|
194
|
+
|
|
195
|
+
# 带问题测试
|
|
196
|
+
npm run test:local ./code-error.png "这段代码为什么报错?"
|
|
197
|
+
|
|
198
|
+
# 远程图片测试
|
|
199
|
+
npm run test:local https://example.com/image.jpg
|
|
200
|
+
|
|
201
|
+
# 检查源码和测试脚本类型
|
|
202
|
+
npm run typecheck
|
|
203
|
+
```
|
|
204
|
+
|
|
205
|
+
## 图片与处理限制
|
|
206
|
+
|
|
207
|
+
- 支持格式:JPG、PNG、WebP、GIF
|
|
208
|
+
- 最大输入大小:10MB
|
|
209
|
+
- 超过 2MB 的图片会自动压缩
|
|
210
|
+
- 远程 URL 会先拉取到统一预处理链路,再发送给模型
|
|
211
|
+
|
|
212
|
+
## 项目结构
|
|
213
|
+
|
|
214
|
+
```text
|
|
215
|
+
luma-mcp/
|
|
216
|
+
├── src/
|
|
217
|
+
│ ├── index.ts # MCP 服务器入口
|
|
218
|
+
│ ├── config.ts # 配置管理
|
|
219
|
+
│ ├── vision-client.ts # 视觉模型客户端接口
|
|
220
|
+
│ ├── zhipu-client.ts # GLM-4.6V 客户端
|
|
221
|
+
│ ├── siliconflow-client.ts # DeepSeek-OCR 客户端
|
|
222
|
+
│ ├── qwen-client.ts # Qwen3-VL 客户端
|
|
223
|
+
│ ├── volcengine-client.ts # Doubao-Seed-1.6 客户端
|
|
224
|
+
│ ├── hunyuan-client.ts # Hunyuan-Vision-1.5 客户端
|
|
225
|
+
│ ├── image-processor.ts # 图片预处理与裁剪
|
|
226
|
+
│ └── utils/
|
|
227
|
+
│ ├── helpers.ts
|
|
228
|
+
│ └── logger.ts
|
|
229
|
+
├── test/
|
|
230
|
+
│ ├── test-local.ts
|
|
231
|
+
│ ├── test-qwen.ts
|
|
232
|
+
│ ├── test-deepseek-raw.ts
|
|
233
|
+
│ └── test-data-uri.ts
|
|
234
|
+
├── docs/
|
|
235
|
+
│ └── README_EN.md
|
|
236
|
+
├── build/
|
|
237
|
+
├── package.json
|
|
238
|
+
└── tsconfig.json
|
|
239
|
+
```
|
|
240
|
+
|
|
241
|
+
## 模型选择建议
|
|
242
|
+
|
|
243
|
+
- OCR、文字识别:DeepSeek-OCR
|
|
244
|
+
- 快速低成本通用分析:Qwen3-VL-Flash
|
|
245
|
+
- 高性价比通用分析:Doubao-Seed-1.6
|
|
246
|
+
- 深度图片理解:GLM-4.6V
|
|
247
|
+
- 复杂图文推理、多语言:Hunyuan-Vision-1.5
|
|
248
|
+
|
|
249
|
+
## 开发
|
|
250
|
+
|
|
251
|
+
```bash
|
|
252
|
+
npm run watch
|
|
253
|
+
npm run build
|
|
254
|
+
npm run typecheck
|
|
255
|
+
```
|
|
256
|
+
|
|
257
|
+
## 相关链接
|
|
258
|
+
|
|
259
|
+
- [智谱开放平台](https://open.bigmodel.cn/)
|
|
260
|
+
- [硅基流动平台](https://cloud.siliconflow.cn/)
|
|
261
|
+
- [阿里云百炼](https://bailian.console.aliyun.com/)
|
|
262
|
+
- [火山方舟](https://console.volcengine.com/ark)
|
|
263
|
+
- [腾讯混元](https://cloud.tencent.com/product/hunyuan)
|
|
264
|
+
- [MCP 协议](https://modelcontextprotocol.io/)
|
|
265
|
+
|
|
266
|
+
## 更新历史
|
|
267
|
+
|
|
268
|
+
[CHANGELOG.md](./CHANGELOG.md)
|
|
269
|
+
|
|
270
|
+
## 许可证
|
|
271
|
+
|
|
272
|
+
MIT
|