luma-mcp 1.2.5 → 1.2.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/.env.example +20 -42
- package/CHANGELOG.md +54 -10
- package/README.md +66 -48
- package/build/config.js +3 -3
- package/build/config.js.map +1 -1
- package/build/index.js +5 -6
- package/build/index.js.map +1 -1
- package/build/siliconflow-client.d.ts.map +1 -1
- package/build/siliconflow-client.js.map +1 -1
- package/build/zhipu-client.d.ts +1 -1
- package/build/zhipu-client.d.ts.map +1 -1
- package/build/zhipu-client.js +18 -18
- package/build/zhipu-client.js.map +1 -1
- package/package.json +3 -3
package/.env.example
CHANGED
|
@@ -1,45 +1,23 @@
|
|
|
1
|
-
#
|
|
2
|
-
|
|
3
|
-
# ==========================================
|
|
4
|
-
# 模型提供商选择
|
|
5
|
-
# ==========================================
|
|
6
|
-
# 可选值: zhipu, siliconflow, qwen
|
|
7
|
-
# 默认: zhipu
|
|
1
|
+
# 模型提供商选择:zhipu | siliconflow | qwen
|
|
8
2
|
MODEL_PROVIDER=zhipu
|
|
9
3
|
|
|
10
|
-
#
|
|
11
|
-
#
|
|
12
|
-
# ==========================================
|
|
4
|
+
# ========== Zhipu AI (推荐 - GLM-4.6V) ==========
|
|
5
|
+
# 获取API Key: https://open.bigmodel.cn/
|
|
13
6
|
ZHIPU_API_KEY=your-zhipu-api-key-here
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
#
|
|
17
|
-
#
|
|
18
|
-
# SILICONFLOW_API_KEY=your-siliconflow-api-key
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
#
|
|
22
|
-
#
|
|
23
|
-
# DASHSCOPE_API_KEY=your-dashscope-api-key
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
#
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
# qwen 默认: qwen3-vl-flash
|
|
32
|
-
# MODEL_NAME=
|
|
33
|
-
|
|
34
|
-
# 最大生成 tokens(默认: 4096)
|
|
35
|
-
# MAX_TOKENS=4096
|
|
36
|
-
|
|
37
|
-
# 温度参数 0-1(默认: 0.7)
|
|
38
|
-
# TEMPERATURE=0.7
|
|
39
|
-
|
|
40
|
-
# Top-p 参数 0-1(默认: 0.7)
|
|
41
|
-
# TOP_P=0.7
|
|
42
|
-
|
|
43
|
-
# 是否启用思考模式(仅 GLM-4.5V 支持,默认: false)
|
|
44
|
-
# 启用后可提高分析准确性,但会增加 20-30% tokens 消耗
|
|
45
|
-
# ENABLE_THINKING=false
|
|
7
|
+
MODEL_NAME=glm-4.6v
|
|
8
|
+
|
|
9
|
+
# ========== SiliconFlow (免费 - DeepSeek-OCR) ==========
|
|
10
|
+
# 获取API Key: https://siliconflow.cn/
|
|
11
|
+
# SILICONFLOW_API_KEY=your-siliconflow-api-key
|
|
12
|
+
# MODEL_NAME=deepseek-ai/DeepSeek-OCR
|
|
13
|
+
|
|
14
|
+
# ========== 阿里云 Qwen (Qwen3-VL-Flash) ==========
|
|
15
|
+
# 获取API Key: https://dashscope.aliyun.com/
|
|
16
|
+
# DASHSCOPE_API_KEY=your-dashscope-api-key
|
|
17
|
+
# MODEL_NAME=qwen3-vl-flash
|
|
18
|
+
|
|
19
|
+
# ========== 通用参数 ==========
|
|
20
|
+
MAX_TOKENS=16384
|
|
21
|
+
TEMPERATURE=0.7
|
|
22
|
+
TOP_P=0.7
|
|
23
|
+
ENABLE_THINKING=true
|
package/CHANGELOG.md
CHANGED
|
@@ -1,15 +1,43 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
本项目的所有重大变更都将记录在此文件中。
|
|
4
|
+
|
|
5
|
+
## [1.2.6] - 2025-12-16
|
|
6
|
+
|
|
7
|
+
### Changed
|
|
8
|
+
|
|
9
|
+
- 🚀 **模型升级**: 更新智谱模型从 GLM-4.5V 升级至 GLM-4.6V,性能和理解能力提升
|
|
10
|
+
- 📈 **Token 限制提升**: 默认 maxTokens 从 8192 提升至 16384,支持更详细的分析输出
|
|
11
|
+
- 💡 **思考模式默认开启**: ENABLE_THINKING 默认为 true,提供更准确的分析结果
|
|
12
|
+
- 🧹 **代码清理**: 移除 prompts.ts 提示词模板文件,简化架构
|
|
13
|
+
- 🔧 **TypeScript 优化**: 清理未使用的类型导入,修复 TS6133 警告
|
|
14
|
+
- 📝 **文档完善**: 更新中英文 README,强化三种使用方式说明(粘贴图片、本地路径、URL)
|
|
15
|
+
|
|
16
|
+
### Technical Details
|
|
17
|
+
|
|
18
|
+
- `src/config.ts`: 更新默认模型为 glm-4.6v,默认 maxTokens 改为 16384,enableThinking 默认为 true
|
|
19
|
+
- `src/zhipu-client.ts`: 更新模型引用,清理未使用导入
|
|
20
|
+
- `src/siliconflow-client.ts`: 清理未使用的类型导入
|
|
21
|
+
- `src/index.ts`: 简化 prompt 处理逻辑,直接使用原始提示词
|
|
22
|
+
- 删除 `src/prompts.ts`: 移除 buildAnalysisPrompt 函数
|
|
23
|
+
- README 更新: 模型信息、Token 配置、项目结构、思考模式配置
|
|
24
|
+
|
|
25
|
+
## [1.2.4] - 2025-12-16 (Reverted)
|
|
26
|
+
|
|
27
|
+
### Note
|
|
28
|
+
|
|
29
|
+
此版本因代码回滚问题被回退,所有优化内容已整合至 v1.2.6
|
|
4
30
|
|
|
5
31
|
## [1.2.3] - 2025-11-21
|
|
6
32
|
|
|
7
33
|
### Changed
|
|
34
|
+
|
|
8
35
|
- 🧹 **代码清理**: 移除 Claude 特定调试注释和实验性代码
|
|
9
36
|
- 📝 **工具描述优化**: 简化和专业化工具说明,提升 AI 模型调用成功率
|
|
10
37
|
- 🔧 **路径处理通用化**: 重构 @ 前缀路径处理,移除平台特定命名
|
|
11
38
|
|
|
12
39
|
### Technical Details
|
|
40
|
+
|
|
13
41
|
- 移除 Claude 资源读取相关的实验性代码
|
|
14
42
|
- 重命名 `stripAtPrefix()` 为 `normalizeImageSourcePath()`
|
|
15
43
|
- 清理所有客户端适配器中的调试日志和注释
|
|
@@ -18,19 +46,23 @@ All notable changes to this project will be documented in this file.
|
|
|
18
46
|
## [1.2.2] - 2025-11-20
|
|
19
47
|
|
|
20
48
|
### Added
|
|
49
|
+
|
|
21
50
|
- ✨ **@ 路径支持**: 自动处理 Claude Code 的 @ 文件引用前缀,修复第一次调用失败的问题
|
|
22
51
|
- 📝 **智能 Prompt**: 通用请求自动添加详细指引,保证全面分析
|
|
23
52
|
|
|
24
53
|
### Changed
|
|
54
|
+
|
|
25
55
|
- 🔧 **Prompt 统一**: 简化为单一通用 prompt,智能处理不同场景
|
|
26
56
|
- ✨ **表述优化**: 融合 Minimax 的经典表述,强调“不遗漏细节”和“完整提取”
|
|
27
57
|
- 📚 **文档更新**: 更新项目结构,添加 qwen-client.ts 和测试文件
|
|
28
58
|
|
|
29
59
|
### Fixed
|
|
60
|
+
|
|
30
61
|
- 🐛 **@ 路径问题**: 修复 Claude Code 中 `@folder/image.png` 导致的路径错误
|
|
31
62
|
- 🐛 **编译错误**: 修复 image-processor.ts 中重复声明的变量
|
|
32
63
|
|
|
33
64
|
### Technical Details
|
|
65
|
+
|
|
34
66
|
- 新增 `stripAtPrefix()` 函数处理 Claude Code 的文件引用语法
|
|
35
67
|
- 简化 `buildAnalysisPrompt()` 从两套逻辑到单一逻辑
|
|
36
68
|
- 添加智能请求检测,自动补充详细分析指引
|
|
@@ -38,6 +70,7 @@ All notable changes to this project will be documented in this file.
|
|
|
38
70
|
## [1.2.1] - 2025-11-18
|
|
39
71
|
|
|
40
72
|
### Changed
|
|
73
|
+
|
|
41
74
|
- 📝 **文档优化**: 精简 README,移除冲余配置文件路径说明
|
|
42
75
|
- 📝 **更新日志简化**: 将 README 中的详细更新日志替换为 CHANGELOG.md 链接
|
|
43
76
|
- ✨ **Qwen 测试示例**: 添加 Qwen3-VL-Flash 本地测试命令
|
|
@@ -48,12 +81,14 @@ All notable changes to this project will be documented in this file.
|
|
|
48
81
|
- 🐛 **错误信息**: 优化 API 调用失败排查提示,包含阿里云账户
|
|
49
82
|
|
|
50
83
|
### Fixed
|
|
84
|
+
|
|
51
85
|
- 🐛 **描述修正**: 修正 package.json 中模型名称为 qwen3-vl-flash
|
|
52
86
|
- 📝 **注释精简**: 简化 prompts.ts 注释头
|
|
53
87
|
|
|
54
88
|
## [1.2.0] - 2025-11-17
|
|
55
89
|
|
|
56
90
|
### Added
|
|
91
|
+
|
|
57
92
|
- 🎉 **第三个视觉模型**: 新增阿里云通义千问 Qwen3-VL-Flash 支持
|
|
58
93
|
- 💡 **思考模式**: Qwen3-VL-Flash 支持深度思考模式(enable_thinking),提升复杂场景分析准确性
|
|
59
94
|
- ⚡ **高性价比**: Flash 版本速度更快、成本更低,适合大量使用
|
|
@@ -61,12 +96,14 @@ All notable changes to this project will be documented in this file.
|
|
|
61
96
|
- 🌐 **多地域支持**: 默认使用北京地域,支持新加坡地域配置
|
|
62
97
|
|
|
63
98
|
### Changed
|
|
99
|
+
|
|
64
100
|
- ⚙️ 新增 `MODEL_PROVIDER=qwen` 和 `DASHSCOPE_API_KEY` 环境变量配置
|
|
65
101
|
- 📝 更新所有文档(中英文),添加 Qwen3-VL-Flash 配置示例
|
|
66
102
|
- 💰 默认使用 qwen3-vl-flash 模型,兹顾性能与成本
|
|
67
103
|
- 🏗️ 重构客户端构造函数,统一参数传递方式
|
|
68
104
|
|
|
69
105
|
### Technical Details
|
|
106
|
+
|
|
70
107
|
- 新增文件:
|
|
71
108
|
- `src/qwen-client.ts` - 阿里云通义千问 VL API 客户端实现
|
|
72
109
|
- 修改文件:
|
|
@@ -79,27 +116,32 @@ All notable changes to this project will be documented in this file.
|
|
|
79
116
|
## [1.1.1] - 2025-11-13
|
|
80
117
|
|
|
81
118
|
### Added
|
|
119
|
+
|
|
82
120
|
- 🖼️ **Data URI 支持**: 支持接收 base64 编码的图片数据 (data:image/png;base64,...)
|
|
83
121
|
- 🚀 **为未来做准备**: 当 MCP 客户端支持时,可直接传递用户粘贴的图片
|
|
84
122
|
|
|
85
123
|
### Changed
|
|
124
|
+
|
|
86
125
|
- 📝 更新工具描述,说明支持三种输入格式:本地路径、URL、Data URI
|
|
87
126
|
- ✅ 新增 Data URI 格式验证(MIME 类型、大小限制)
|
|
88
127
|
|
|
89
128
|
## [1.1.0] - 2025-11-13
|
|
90
129
|
|
|
91
130
|
### Added
|
|
131
|
+
|
|
92
132
|
- 🎉 **多模型支持**: 新增硅基流动 DeepSeek-OCR 支持
|
|
93
133
|
- 🆓 **免费选项**: DeepSeek-OCR 通过硅基流动提供完全免费的 OCR 服务
|
|
94
134
|
- 📐 **统一接口**: 创建 VisionClient 接口,支持灵活扩展更多视觉模型
|
|
95
135
|
- ⚙️ **灵活配置**: 通过 `MODEL_PROVIDER` 环境变量轻松切换模型
|
|
96
136
|
|
|
97
137
|
### Changed
|
|
138
|
+
|
|
98
139
|
- 🔧 环境变量命名优化,支持通用配置(`MODEL_NAME`、`MAX_TOKENS` 等)
|
|
99
140
|
- 📝 更新文档,提供双模型配置说明和选择建议
|
|
100
141
|
- 🏗️ 重构代码结构,提升可维护性
|
|
101
142
|
|
|
102
143
|
### Technical Details
|
|
144
|
+
|
|
103
145
|
- 新增文件:
|
|
104
146
|
- `src/vision-client.ts` - 视觉模型客户端统一接口
|
|
105
147
|
- `src/siliconflow-client.ts` - 硅基流动 API 客户端实现
|
|
@@ -113,6 +155,7 @@ All notable changes to this project will be documented in this file.
|
|
|
113
155
|
## [1.0.3] - 2025-11-12
|
|
114
156
|
|
|
115
157
|
### Features
|
|
158
|
+
|
|
116
159
|
- 基于智谱 GLM-4.5V 的视觉理解能力
|
|
117
160
|
- 支持本地文件和远程 URL
|
|
118
161
|
- 内置重试机制
|
|
@@ -122,18 +165,19 @@ All notable changes to this project will be documented in this file.
|
|
|
122
165
|
|
|
123
166
|
**模型对比**:
|
|
124
167
|
|
|
125
|
-
|| 特性
|
|
168
|
+
|| 特性 | GLM-4.5V | DeepSeek-OCR | Qwen3-VL-Flash |
|
|
126
169
|
||----------|----------|--------------|----------------|
|
|
127
|
-
|| 提供商
|
|
128
|
-
|| 费用
|
|
129
|
-
|| 中文理解 | 优秀
|
|
130
|
-
|| OCR 能力 | 良好
|
|
131
|
-
|| 思考模式 | ✅
|
|
132
|
-
|| 速度/成本 | 中等
|
|
133
|
-
|| 综合能力 | 良好
|
|
134
|
-
|| 3D定位
|
|
170
|
+
|| 提供商 | 智谱清言 | 硅基流动 | 阿里云百炼 |
|
|
171
|
+
|| 费用 | 收费 | **免费** | 收费 |
|
|
172
|
+
|| 中文理解 | 优秀 | 良好 | **优秀** |
|
|
173
|
+
|| OCR 能力 | 良好 | **优秀** | 优秀 |
|
|
174
|
+
|| 思考模式 | ✅ | ❌ | ✅ |
|
|
175
|
+
|| 速度/成本 | 中等 | 免费 | **快/低** |
|
|
176
|
+
|| 综合能力 | 良好 | OCR 专精 | **优秀** |
|
|
177
|
+
|| 3D 定位 | ❌ | ❌ | ✅ |
|
|
135
178
|
|
|
136
179
|
**推荐使用场景**:
|
|
180
|
+
|
|
137
181
|
- 需要 OCR/文字识别 → **DeepSeek-OCR** (免费)
|
|
138
182
|
- 需要深度图片理解 → **Qwen3-VL-Flash** 或 **GLM-4.5V**
|
|
139
183
|
- 需要思考模式 → **Qwen3-VL-Flash** 或 **GLM-4.5V**
|
package/README.md
CHANGED
|
@@ -7,8 +7,8 @@
|
|
|
7
7
|
## 特性
|
|
8
8
|
|
|
9
9
|
- **多模型支持**: 支持三个视觉模型
|
|
10
|
-
- GLM-4.
|
|
11
|
-
- DeepSeek-OCR(硅基流动)- **免费使用**,OCR能力强
|
|
10
|
+
- GLM-4.6V(智谱清言)- 付费,中文理解优秀
|
|
11
|
+
- DeepSeek-OCR(硅基流动)- **免费使用**,OCR 能力强
|
|
12
12
|
- Qwen3-VL-Flash(阿里云通义千问)- 付费,速度快成本低,支持思考模式
|
|
13
13
|
- **简单设计**: 单一 `analyze_image` 工具处理所有图片分析任务
|
|
14
14
|
- **智能理解**: 自动识别代码、UI、错误等不同场景
|
|
@@ -48,7 +48,7 @@ npx luma-mcp
|
|
|
48
48
|
|
|
49
49
|
#### Claude Desktop
|
|
50
50
|
|
|
51
|
-
**方案 A: 使用智谱 GLM-4.
|
|
51
|
+
**方案 A: 使用智谱 GLM-4.6V**:
|
|
52
52
|
|
|
53
53
|
```json
|
|
54
54
|
{
|
|
@@ -137,7 +137,7 @@ npx luma-mcp
|
|
|
137
137
|
|
|
138
138
|
在项目根目录或 `.vscode/` 目录下创建 `mcp.json`
|
|
139
139
|
|
|
140
|
-
**方案 A: 使用智谱 GLM-4.
|
|
140
|
+
**方案 A: 使用智谱 GLM-4.6V**:
|
|
141
141
|
|
|
142
142
|
```json
|
|
143
143
|
{
|
|
@@ -189,17 +189,20 @@ npx luma-mcp
|
|
|
189
189
|
|
|
190
190
|
#### Claude Code (命令行)
|
|
191
191
|
|
|
192
|
-
**使用智谱 GLM-4.
|
|
192
|
+
**使用智谱 GLM-4.6V**:
|
|
193
|
+
|
|
193
194
|
```bash
|
|
194
195
|
claude mcp add -s user luma-mcp --env ZHIPU_API_KEY=your-api-key -- npx -y luma-mcp
|
|
195
196
|
```
|
|
196
197
|
|
|
197
198
|
**使用硅基流动 DeepSeek-OCR(免费)**:
|
|
199
|
+
|
|
198
200
|
```bash
|
|
199
201
|
claude mcp add -s user luma-mcp --env MODEL_PROVIDER=siliconflow --env SILICONFLOW_API_KEY=your-api-key -- npx -y luma-mcp
|
|
200
202
|
```
|
|
201
203
|
|
|
202
204
|
**使用阿里云通义千问 Qwen3-VL-Flash**:
|
|
205
|
+
|
|
203
206
|
```bash
|
|
204
207
|
claude mcp add -s user luma-mcp --env MODEL_PROVIDER=qwen --env DASHSCOPE_API_KEY=your-api-key -- npx -y luma-mcp
|
|
205
208
|
```
|
|
@@ -213,11 +216,13 @@ claude mcp add -s user luma-mcp --env MODEL_PROVIDER=qwen --env DASHSCOPE_API_KE
|
|
|
213
216
|
### 重要提示
|
|
214
217
|
|
|
215
218
|
**MCP 工具调用机制**:
|
|
219
|
+
|
|
216
220
|
- MCP 工具需要 AI 模型**主动调用**才会执行
|
|
217
221
|
- 如果使用的 AI 模型本身支持视觉(如 Claude 4.5 Sonnet),它会优先使用自己的视觉能力
|
|
218
222
|
- Luma MCP 主要服务于**不支持视觉的模型**(如 GPT-4、Claude Opus 等文本模型)
|
|
219
223
|
|
|
220
224
|
**如何确保工具被调用**:
|
|
225
|
+
|
|
221
226
|
1. 使用完整工具名:`使用 mcp__luma-mcp__analyze_image 工具分析这张图片`
|
|
222
227
|
2. 使用简化名称:`用 analyze_image 工具查看 ./screenshot.png`
|
|
223
228
|
3. 提供图片路径:`请用图片分析工具查看 ./screenshot.png 中的代码错误`
|
|
@@ -230,12 +235,14 @@ claude mcp add -s user luma-mcp --env MODEL_PROVIDER=qwen --env DASHSCOPE_API_KE
|
|
|
230
235
|
配置完成后,在 Claude 对话中可以这样使用:
|
|
231
236
|
|
|
232
237
|
**推荐用法(明确指示)**:
|
|
238
|
+
|
|
233
239
|
```
|
|
234
240
|
用户: 使用 Luma 分析 ./code-error.png,这段代码为什么报错?
|
|
235
241
|
Claude: [调用 Luma 分析图片,返回详细分析]
|
|
236
242
|
```
|
|
237
243
|
|
|
238
244
|
**或提供图片路径**:
|
|
245
|
+
|
|
239
246
|
```
|
|
240
247
|
用户: 请分析 https://example.com/screenshot.jpg 中的界面问题
|
|
241
248
|
Claude: [自动调用 analyze_image 工具]
|
|
@@ -245,7 +252,8 @@ Claude: [自动调用 analyze_image 工具]
|
|
|
245
252
|
|
|
246
253
|
不需要 MCP 客户端即可测试:
|
|
247
254
|
|
|
248
|
-
**测试智谱 GLM-4.
|
|
255
|
+
**测试智谱 GLM-4.6V**:
|
|
256
|
+
|
|
249
257
|
```bash
|
|
250
258
|
# 设置 API Key
|
|
251
259
|
export ZHIPU_API_KEY="your-api-key" # macOS/Linux
|
|
@@ -256,6 +264,7 @@ npm run test:local ./test.png
|
|
|
256
264
|
```
|
|
257
265
|
|
|
258
266
|
**测试硅基流动 DeepSeek-OCR**:
|
|
267
|
+
|
|
259
268
|
```bash
|
|
260
269
|
# 设置 API Key 和提供商
|
|
261
270
|
export MODEL_PROVIDER=siliconflow
|
|
@@ -269,6 +278,7 @@ npm run test:local ./test.png
|
|
|
269
278
|
```
|
|
270
279
|
|
|
271
280
|
**测试阿里云通义千问 Qwen3-VL-Flash**:
|
|
281
|
+
|
|
272
282
|
```bash
|
|
273
283
|
# 设置 API Key 和提供商
|
|
274
284
|
export MODEL_PROVIDER=qwen
|
|
@@ -282,6 +292,7 @@ npm run test:local ./test.png
|
|
|
282
292
|
```
|
|
283
293
|
|
|
284
294
|
**其他测试命令**:
|
|
295
|
+
|
|
285
296
|
```bash
|
|
286
297
|
# 测试并提问
|
|
287
298
|
npm run test:local ./code-error.png "这段代码有什么问题?"
|
|
@@ -311,66 +322,67 @@ npm run test:local https://example.com/image.jpg
|
|
|
311
322
|
// 通用分析
|
|
312
323
|
analyze_image({
|
|
313
324
|
image_source: "./screenshot.png",
|
|
314
|
-
prompt: "请详细分析这张图片的内容"
|
|
315
|
-
})
|
|
325
|
+
prompt: "请详细分析这张图片的内容",
|
|
326
|
+
});
|
|
316
327
|
|
|
317
328
|
// 代码分析
|
|
318
329
|
analyze_image({
|
|
319
330
|
image_source: "./code-error.png",
|
|
320
|
-
prompt: "这段代码为什么报错?请提供修复建议"
|
|
321
|
-
})
|
|
331
|
+
prompt: "这段代码为什么报错?请提供修复建议",
|
|
332
|
+
});
|
|
322
333
|
|
|
323
334
|
// UI 分析
|
|
324
335
|
analyze_image({
|
|
325
336
|
image_source: "https://example.com/ui.png",
|
|
326
|
-
prompt: "分析这个界面的布局和可用性问题"
|
|
327
|
-
})
|
|
337
|
+
prompt: "分析这个界面的布局和可用性问题",
|
|
338
|
+
});
|
|
328
339
|
|
|
329
340
|
// Data URI (当客户端支持时)
|
|
330
341
|
analyze_image({
|
|
331
342
|
image_source: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUA...",
|
|
332
|
-
prompt: "识别图片中的所有文字"
|
|
333
|
-
})
|
|
343
|
+
prompt: "识别图片中的所有文字",
|
|
344
|
+
});
|
|
334
345
|
```
|
|
335
346
|
|
|
336
347
|
## 环境变量
|
|
337
348
|
|
|
338
349
|
### 通用配置
|
|
339
350
|
|
|
340
|
-
| 变量名 | 必需 | 默认值 | 说明
|
|
341
|
-
|
|
342
|
-
| `MODEL_PROVIDER` | 否 | `zhipu` | 模型提供商:`zhipu`、`siliconflow` 或 `qwen`
|
|
343
|
-
| `MODEL_NAME` | 否 | 见下文 | 模型名称(自动根据提供商选择)
|
|
344
|
-
| `MAX_TOKENS` | 否 | `
|
|
345
|
-
| `TEMPERATURE` | 否 | `0.7` | 温度参数 (0-1)
|
|
346
|
-
| `TOP_P` | 否 | `0.7` | Top-p 参数 (0-1)
|
|
347
|
-
| `ENABLE_THINKING` | 否 | `
|
|
351
|
+
| 变量名 | 必需 | 默认值 | 说明 |
|
|
352
|
+
| ----------------- | ---- | ------- | ---------------------------------------------- |
|
|
353
|
+
| `MODEL_PROVIDER` | 否 | `zhipu` | 模型提供商:`zhipu`、`siliconflow` 或 `qwen` |
|
|
354
|
+
| `MODEL_NAME` | 否 | 见下文 | 模型名称(自动根据提供商选择) |
|
|
355
|
+
| `MAX_TOKENS` | 否 | `16384` | 最大生成 tokens |
|
|
356
|
+
| `TEMPERATURE` | 否 | `0.7` | 温度参数 (0-1) |
|
|
357
|
+
| `TOP_P` | 否 | `0.7` | Top-p 参数 (0-1) |
|
|
358
|
+
| `ENABLE_THINKING` | 否 | `true` | 是否启用思考模式(GLM-4.6V 和 Qwen3-VL-Flash) |
|
|
348
359
|
|
|
349
|
-
### 智谱 GLM-4.
|
|
360
|
+
### 智谱 GLM-4.6V 专用
|
|
350
361
|
|
|
351
|
-
| 变量名 | 必需
|
|
352
|
-
|
|
362
|
+
| 变量名 | 必需 | 默认值 | 说明 |
|
|
363
|
+
| --------------- | ---------------- | ------ | ------------------- |
|
|
353
364
|
| `ZHIPU_API_KEY` | 是(使用智谱时) | - | 智谱 AI 的 API 密钥 |
|
|
354
365
|
|
|
355
|
-
默认模型:`glm-4.
|
|
366
|
+
默认模型:`glm-4.6v`
|
|
356
367
|
|
|
357
368
|
### 硅基流动 DeepSeek-OCR 专用
|
|
358
369
|
|
|
359
|
-
| 变量名 | 必需
|
|
360
|
-
|
|
370
|
+
| 变量名 | 必需 | 默认值 | 说明 |
|
|
371
|
+
| --------------------- | -------------------- | ------ | ------------------- |
|
|
361
372
|
| `SILICONFLOW_API_KEY` | 是(使用硅基流动时) | - | 硅基流动的 API 密钥 |
|
|
362
373
|
|
|
363
374
|
默认模型:`deepseek-ai/DeepSeek-OCR`
|
|
364
375
|
|
|
365
376
|
### 阿里云通义千问 Qwen3-VL-Flash 专用
|
|
366
377
|
|
|
367
|
-
| 变量名
|
|
368
|
-
|
|
369
|
-
| `DASHSCOPE_API_KEY` | 是(使用千问时) | - | 阿里云百炼的 API 密钥
|
|
378
|
+
| 变量名 | 必需 | 默认值 | 说明 |
|
|
379
|
+
| ------------------- | ---------------- | ------ | --------------------- |
|
|
380
|
+
| `DASHSCOPE_API_KEY` | 是(使用千问时) | - | 阿里云百炼的 API 密钥 |
|
|
370
381
|
|
|
371
382
|
默认模型:`qwen3-vl-flash`
|
|
372
383
|
|
|
373
384
|
**思考模式说明**:
|
|
385
|
+
|
|
374
386
|
- 默认开启,提高图片分析的准确性和详细程度
|
|
375
387
|
- 如需关闭(提高速度、降低成本),请在配置文件中设置:
|
|
376
388
|
```json
|
|
@@ -381,7 +393,7 @@ analyze_image({
|
|
|
381
393
|
"args": ["-y", "luma-mcp"],
|
|
382
394
|
"env": {
|
|
383
395
|
"ZHIPU_API_KEY": "your-api-key",
|
|
384
|
-
"
|
|
396
|
+
"ENABLE_THINKING": "false"
|
|
385
397
|
}
|
|
386
398
|
}
|
|
387
399
|
}
|
|
@@ -410,11 +422,10 @@ luma-mcp/
|
|
|
410
422
|
│ ├── index.ts # MCP 服务器入口
|
|
411
423
|
│ ├── config.ts # 配置管理(支持多模型)
|
|
412
424
|
│ ├── vision-client.ts # 视觉模型客户端接口
|
|
413
|
-
│ ├── zhipu-client.ts # GLM-4.
|
|
425
|
+
│ ├── zhipu-client.ts # GLM-4.6V API 客户端
|
|
414
426
|
│ ├── siliconflow-client.ts # DeepSeek-OCR API 客户端
|
|
415
427
|
│ ├── qwen-client.ts # Qwen3-VL API 客户端
|
|
416
428
|
│ ├── image-processor.ts # 图片处理
|
|
417
|
-
│ ├── prompts.ts # 提示词模板
|
|
418
429
|
│ └── utils/
|
|
419
430
|
│ ├── logger.ts # 日志工具
|
|
420
431
|
│ └── helpers.ts # 工具函数
|
|
@@ -435,19 +446,22 @@ luma-mcp/
|
|
|
435
446
|
|
|
436
447
|
### 如何获取 API Key?
|
|
437
448
|
|
|
438
|
-
**智谱 GLM-4.
|
|
449
|
+
**智谱 GLM-4.6V**:
|
|
450
|
+
|
|
439
451
|
1. 访问 [智谱开放平台](https://open.bigmodel.cn/)
|
|
440
452
|
2. 注册/登录账号
|
|
441
453
|
3. 进入控制台创建 API Key
|
|
442
454
|
4. 复制 API Key 到配置文件
|
|
443
455
|
|
|
444
456
|
**硅基流动 DeepSeek-OCR(免费)**:
|
|
457
|
+
|
|
445
458
|
1. 访问 [硅基流动平台](https://cloud.siliconflow.cn/)
|
|
446
459
|
2. 注册/登录账号
|
|
447
460
|
3. 进入 API 管理创建 API Key
|
|
448
461
|
4. 复制 API Key 到配置文件
|
|
449
462
|
|
|
450
463
|
**阿里云通义千问 Qwen3-VL-Flash**:
|
|
464
|
+
|
|
451
465
|
1. 访问 [阿里云百炼平台](https://bailian.console.aliyun.com/)
|
|
452
466
|
2. 注册/登录账号
|
|
453
467
|
3. 进入 API-KEY 管理创建 API Key
|
|
@@ -460,11 +474,13 @@ luma-mcp/
|
|
|
460
474
|
### 什么是 Data URI?
|
|
461
475
|
|
|
462
476
|
Data URI 是一种将图片数据嵌入字符串的方式,格式为:
|
|
477
|
+
|
|
463
478
|
```
|
|
464
479
|
data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUA...
|
|
465
480
|
```
|
|
466
481
|
|
|
467
482
|
**使用场景**:
|
|
483
|
+
|
|
468
484
|
- 当 MCP 客户端(如 Claude Desktop)支持时,可以直接传递用户粘贴的图片
|
|
469
485
|
- 无需保存为临时文件,更加高效
|
|
470
486
|
- 当前支持状态:**服务器已支持**,等待客户端实现
|
|
@@ -490,32 +506,34 @@ data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUA...
|
|
|
490
506
|
|
|
491
507
|
**硅基流动 DeepSeek-OCR**: **完全免费**,无需付费!
|
|
492
508
|
|
|
493
|
-
**智谱 GLM-4.
|
|
509
|
+
**智谱 GLM-4.6V**: 定价请参考[智谱官方定价](https://open.bigmodel.cn/pricing)。
|
|
494
510
|
|
|
495
511
|
**阿里云通义千问 Qwen3-VL-Flash**: 定价请参考[阿里云百炼定价](https://help.aliyun.com/zh/model-studio/getting-started/models)。
|
|
496
512
|
|
|
497
|
-
|
|
513
|
+
典型场景估算(已启用思考模式):
|
|
514
|
+
|
|
498
515
|
- 简单图片理解: 500-1000 tokens
|
|
499
516
|
- 代码截图分析: 1500-2500 tokens
|
|
500
517
|
- 详细 UI 分析: 2000-3000 tokens
|
|
501
518
|
|
|
502
|
-
|
|
519
|
+
关闭思考模式可节省约 20-30% tokens。如需关闭,请设置 `ENABLE_THINKING=false`。
|
|
503
520
|
|
|
504
521
|
### 如何选择模型?
|
|
505
522
|
|
|
506
|
-
| 特性
|
|
507
|
-
|
|
508
|
-
| **费用**
|
|
509
|
-
| **中文理解**
|
|
510
|
-
| **OCR 能力**
|
|
511
|
-
| **思考模式**
|
|
512
|
-
| **速度/成本** | 中等
|
|
513
|
-
| **适用场景**
|
|
523
|
+
| 特性 | GLM-4.6V(智谱) | DeepSeek-OCR(硅基流动) | Qwen3-VL-Flash(阿里云) |
|
|
524
|
+
| ------------- | ---------------- | ------------------------ | ------------------------ |
|
|
525
|
+
| **费用** | 收费 | **完全免费** | 收费 |
|
|
526
|
+
| **中文理解** | 优秀 | 良好 | **优秀** |
|
|
527
|
+
| **OCR 能力** | 良好 | **优秀** | 优秀 |
|
|
528
|
+
| **思考模式** | 支持 | 不支持 | 支持 |
|
|
529
|
+
| **速度/成本** | 中等 | 免费 | **快速/低成本** |
|
|
530
|
+
| **适用场景** | 通用图片分析 | OCR、文字识别 | 快速分析、3D 定位 |
|
|
514
531
|
|
|
515
532
|
**推荐**:
|
|
533
|
+
|
|
516
534
|
- 需要 OCR 或文字识别:选择 **DeepSeek-OCR**(免费)
|
|
517
535
|
- 需要快速低成本分析:选择 **Qwen3-VL-Flash**
|
|
518
|
-
- 需要深度图片理解:选择 **GLM-4.
|
|
536
|
+
- 需要深度图片理解:选择 **GLM-4.6V**
|
|
519
537
|
|
|
520
538
|
## 贡献
|
|
521
539
|
|
|
@@ -528,7 +546,7 @@ MIT License
|
|
|
528
546
|
## 相关链接
|
|
529
547
|
|
|
530
548
|
- [智谱 AI 开放平台](https://open.bigmodel.cn/)
|
|
531
|
-
- [GLM-4.
|
|
549
|
+
- [GLM-4.6V 文档](https://docs.bigmodel.cn/cn/guide/models/vlm/glm-4.6v)
|
|
532
550
|
- [硅基流动平台](https://cloud.siliconflow.cn/)
|
|
533
551
|
- [DeepSeek-OCR 文档](https://docs.siliconflow.cn/cn/api-reference/chat-completions/chat-completions)
|
|
534
552
|
- [阿里云百炼平台](https://bailian.console.aliyun.com/)
|
package/build/config.js
CHANGED
|
@@ -27,7 +27,7 @@ export function loadConfig() {
|
|
|
27
27
|
}
|
|
28
28
|
else {
|
|
29
29
|
apiKey = process.env.ZHIPU_API_KEY;
|
|
30
|
-
defaultModel = 'glm-4.
|
|
30
|
+
defaultModel = 'glm-4.6v';
|
|
31
31
|
if (!apiKey) {
|
|
32
32
|
throw new Error('ZHIPU_API_KEY environment variable is required when using Zhipu provider');
|
|
33
33
|
}
|
|
@@ -36,10 +36,10 @@ export function loadConfig() {
|
|
|
36
36
|
provider,
|
|
37
37
|
apiKey,
|
|
38
38
|
model: process.env.MODEL_NAME || defaultModel,
|
|
39
|
-
maxTokens: parseInt(process.env.MAX_TOKENS || '
|
|
39
|
+
maxTokens: parseInt(process.env.MAX_TOKENS || '16384', 10),
|
|
40
40
|
temperature: parseFloat(process.env.TEMPERATURE || '0.7'),
|
|
41
41
|
topP: parseFloat(process.env.TOP_P || '0.7'),
|
|
42
|
-
enableThinking: process.env.ENABLE_THINKING
|
|
42
|
+
enableThinking: process.env.ENABLE_THINKING !== 'false',
|
|
43
43
|
};
|
|
44
44
|
}
|
|
45
45
|
//# sourceMappingURL=config.js.map
|
package/build/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAcH;;GAEG;AACH,MAAM,UAAU,UAAU;IACxB,aAAa;IACb,MAAM,QAAQ,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,WAAW,EAAE,IAAI,OAAO,CAAkB,CAAC;IAEzF,kBAAkB;IAClB,IAAI,MAA0B,CAAC;IAC/B,IAAI,YAAoB,CAAC;IAEzB,IAAI,QAAQ,KAAK,aAAa,EAAE,CAAC;QAC/B,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC;QACzC,YAAY,GAAG,0BAA0B,CAAC;QAE1C,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CAAC,sFAAsF,CAAC,CAAC;QAC1G,CAAC;IACH,CAAC;SAAM,IAAI,QAAQ,KAAK,MAAM,EAAE,CAAC;QAC/B,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC;QACvC,YAAY,GAAG,gBAAgB,CAAC;QAEhC,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CAAC,6EAA6E,CAAC,CAAC;QACjG,CAAC;IACH,CAAC;SAAM,CAAC;QACN,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC;QACnC,YAAY,GAAG,UAAU,CAAC;QAE1B,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CAAC,0EAA0E,CAAC,CAAC;QAC9F,CAAC;IACH,CAAC;IAED,OAAO;QACL,QAAQ;QACR,MAAM;QACN,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,YAAY;QAC7C,SAAS,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAcH;;GAEG;AACH,MAAM,UAAU,UAAU;IACxB,aAAa;IACb,MAAM,QAAQ,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,WAAW,EAAE,IAAI,OAAO,CAAkB,CAAC;IAEzF,kBAAkB;IAClB,IAAI,MAA0B,CAAC;IAC/B,IAAI,YAAoB,CAAC;IAEzB,IAAI,QAAQ,KAAK,aAAa,EAAE,CAAC;QAC/B,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC;QACzC,YAAY,GAAG,0BAA0B,CAAC;QAE1C,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CAAC,sFAAsF,CAAC,CAAC;QAC1G,CAAC;IACH,CAAC;SAAM,IAAI,QAAQ,KAAK,MAAM,EAAE,CAAC;QAC/B,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC;QACvC,YAAY,GAAG,gBAAgB,CAAC;QAEhC,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CAAC,6EAA6E,CAAC,CAAC;QACjG,CAAC;IACH,CAAC;SAAM,CAAC;QACN,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC;QACnC,YAAY,GAAG,UAAU,CAAC;QAE1B,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CAAC,0EAA0E,CAAC,CAAC;QAC9F,CAAC;IACH,CAAC;IAED,OAAO;QACL,QAAQ;QACR,MAAM;QACN,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,YAAY;QAC7C,SAAS,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,OAAO,EAAE,EAAE,CAAC;QAC1D,WAAW,EAAE,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,KAAK,CAAC;QACzD,IAAI,EAAE,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,KAAK,CAAC;QAC5C,cAAc,EAAE,OAAO,CAAC,GAAG,CAAC,eAAe,KAAK,OAAO;KACxD,CAAC;AACJ,CAAC"}
|
package/build/index.js
CHANGED
|
@@ -60,18 +60,17 @@ async function createServer() {
|
|
|
60
60
|
1000 // 初始延补1秒
|
|
61
61
|
);
|
|
62
62
|
// 注册工具 - 使用 McpServer.tool() API
|
|
63
|
-
server.tool("analyze_image", "
|
|
63
|
+
server.tool("analyze_image", "图像分析工具:支持三种使用方式:1) 用户粘贴图片时直接调用,无需手动指定路径 2) 指定本地图片路径,如./screenshot.png 3) 指定图片URL,如https://example.com/image.png。AI应根据用户问题生成专业的分析提示词(如用户问'网站布局有什么问题',应生成'请详细分析这个网站界面的布局问题,包括视觉层次、对齐方式、间距、响应式设计等方面的问题'),然后传递提示词和图片进行调用。", {
|
|
64
64
|
image_source: z
|
|
65
65
|
.string()
|
|
66
|
-
.describe("
|
|
66
|
+
.describe("要分析的图片来源:支持三种方式 1) 用户粘贴图片时由Claude Desktop自动提供路径 2) 本地文件路径,如./screenshot.png 3) HTTP(S)图片URL,如https://example.com/image.png(支持 PNG、JPG、JPEG、WebP、GIF,最大 10MB)"),
|
|
67
67
|
prompt: z
|
|
68
68
|
.string()
|
|
69
|
-
.
|
|
70
|
-
.describe("可选的任务说明,例如“帮我详细描述这张 UI 设计图的布局和组件”。如果不填,将自动生成整图的详细中文描述。"),
|
|
69
|
+
.describe('分析提示词:AI根据用户问题生成的专业分析提示词。应该包含具体的分析要求和期望的输出格式。'),
|
|
71
70
|
}, async (params) => {
|
|
72
71
|
try {
|
|
73
|
-
//
|
|
74
|
-
const prompt = params.prompt
|
|
72
|
+
// AI应该已经根据用户问题生成了合适的prompt
|
|
73
|
+
const prompt = params.prompt;
|
|
75
74
|
logger.info("Analyzing image", {
|
|
76
75
|
source: params.image_source,
|
|
77
76
|
prompt,
|
package/build/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA;;;GAGG;AAEH,wCAAwC;AACxC,OAAO,EAAE,uBAAuB,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AACpE,uBAAuB,EAAE,CAAC;AAE1B,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC1E,OAAO,EACL,SAAS,EACT,qBAAqB,EACrB,mBAAmB,GACpB,MAAM,oBAAoB,CAAC;AAE5B;;GAEG;AACH,KAAK,UAAU,YAAY;IACzB,MAAM,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;IAE5C,OAAO;IACP,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;IAE5B,cAAc;IACd,IAAI,YAA0B,CAAC;IAE/B,IAAI,MAAM,CAAC,QAAQ,KAAK,aAAa,EAAE,CAAC;QACtC,YAAY,GAAG,IAAI,iBAAiB,CAClC,MAAM,CAAC,MAAM,EACb,MAAM,CAAC,KAAK,EACZ,MAAM,CAAC,SAAS,EAChB,MAAM,CAAC,WAAW,CACnB,CAAC;IACJ,CAAC;SAAM,IAAI,MAAM,CAAC,QAAQ,KAAK,MAAM,EAAE,CAAC;QACtC,YAAY,GAAG,IAAI,UAAU,CAC3B,MAAM,CAAC,MAAM,EACb,MAAM,CAAC,KAAK,EACZ,MAAM,CAAC,SAAS,EAChB,MAAM,CAAC,WAAW,CACnB,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,YAAY,GAAG,IAAI,WAAW,CAC5B,MAAM,CAAC,MAAM,EACb,MAAM,CAAC,KAAK,EACZ,MAAM,CAAC,SAAS,EAChB,MAAM,CAAC,WAAW,EAClB,MAAM,CAAC,IAAI,CACZ,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,IAAI,CAAC,2BAA2B,EAAE;QACvC,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,KAAK,EAAE,YAAY,CAAC,YAAY,EAAE;KACnC,CAAC,CAAC;IAEH,uBAAuB;IACvB,MAAM,MAAM,GAAG,IAAI,SAAS,CAC1B;QACE,IAAI,EAAE,UAAU;QAChB,OAAO,EAAE,OAAO;KACjB,EACD;QACE,YAAY,EAAE;YACZ,KAAK,EAAE,EAAE;SACV;KACF,CACF,CAAC;IAEF,aAAa;IACb,MAAM,gBAAgB,GAAG,SAAS,CAChC,KAAK,EAAE,WAAmB,EAAE,MAAc,EAAE,EAAE;QAC5C,YAAY;QACZ,MAAM,mBAAmB,CAAC,WAAW,CAAC,CAAC;QAEvC,oBAAoB;QACpB,MAAM,YAAY,GAAG,MAAM,aAAa,CAAC,WAAW,CAAC,CAAC;QAEtD,yBAAyB;QACzB,MAAM,UAAU,GAAG,MAAM,CAAC;QAE1B,gBAAgB;QAChB,OAAO,MAAM,YAAY,CAAC,YAAY,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;IACnE,CAAC,EACD,CAAC,EAAE,SAAS;IACZ,IAAI,CAAC,SAAS;KACf,CAAC;IAEF,iCAAiC;IACjC,MAAM,CAAC,IAAI,CACT,eAAe,EACf,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"siliconflow-client.d.ts","sourceRoot":"","sources":["../src/siliconflow-client.ts"],"names":[],"mappings":"AAAA;;;GAGG;
|
|
1
|
+
{"version":3,"file":"siliconflow-client.d.ts","sourceRoot":"","sources":["../src/siliconflow-client.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AA2CvD;;GAEG;AACH,qBAAa,iBAAkB,YAAW,YAAY;IACpD,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,WAAW,CAAoD;gBAE3D,MAAM,EAAE,MAAM,EAAE,KAAK,GAAE,MAAmC,EAAE,SAAS,GAAE,MAAa,EAAE,WAAW,GAAE,MAAY;IAO3H;;OAEG;IACG,YAAY,CAAC,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC;IAqEnG;;OAEG;IACH,YAAY,IAAI,MAAM;CAGvB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"siliconflow-client.js","sourceRoot":"","sources":["../src/siliconflow-client.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"siliconflow-client.js","sourceRoot":"","sources":["../src/siliconflow-client.ts"],"names":[],"mappings":"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"}
|
package/build/zhipu-client.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"zhipu-client.d.ts","sourceRoot":"","sources":["../src/zhipu-client.ts"],"names":[],"mappings":"AAAA;;GAEG;
|
|
1
|
+
{"version":3,"file":"zhipu-client.d.ts","sourceRoot":"","sources":["../src/zhipu-client.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AA4CvD;;GAEG;AACH,qBAAa,WAAY,YAAW,YAAY;IAC9C,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,IAAI,CAAS;IACrB,OAAO,CAAC,WAAW,CAA2D;gBAG5E,MAAM,EAAE,MAAM,EACd,KAAK,GAAE,MAAmB,EAC1B,SAAS,GAAE,MAAa,EACxB,WAAW,GAAE,MAAY,EACzB,IAAI,GAAE,MAAY;IASpB;;OAEG;IACG,YAAY,CAChB,YAAY,EAAE,MAAM,EACpB,MAAM,EAAE,MAAM,EACd,cAAc,CAAC,EAAE,OAAO,GACvB,OAAO,CAAC,MAAM,CAAC;IA8ElB;;OAEG;IACH,YAAY,IAAI,MAAM;CAGvB"}
|
package/build/zhipu-client.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* 智谱 GLM-4.5V API 客户端
|
|
3
3
|
*/
|
|
4
|
-
import axios from
|
|
5
|
-
import { logger } from
|
|
4
|
+
import axios from "axios";
|
|
5
|
+
import { logger } from "./utils/logger.js";
|
|
6
6
|
/**
|
|
7
7
|
* 智谱 API 客户端
|
|
8
8
|
*/
|
|
@@ -12,8 +12,8 @@ export class ZhipuClient {
|
|
|
12
12
|
maxTokens;
|
|
13
13
|
temperature;
|
|
14
14
|
topP;
|
|
15
|
-
apiEndpoint =
|
|
16
|
-
constructor(apiKey, model =
|
|
15
|
+
apiEndpoint = "https://open.bigmodel.cn/api/paas/v4/chat/completions";
|
|
16
|
+
constructor(apiKey, model = "glm-4.6v", maxTokens = 4096, temperature = 0.7, topP = 0.7) {
|
|
17
17
|
this.apiKey = apiKey;
|
|
18
18
|
this.model = model;
|
|
19
19
|
this.maxTokens = maxTokens;
|
|
@@ -28,16 +28,16 @@ export class ZhipuClient {
|
|
|
28
28
|
model: this.model,
|
|
29
29
|
messages: [
|
|
30
30
|
{
|
|
31
|
-
role:
|
|
31
|
+
role: "user",
|
|
32
32
|
content: [
|
|
33
33
|
{
|
|
34
|
-
type:
|
|
34
|
+
type: "image_url",
|
|
35
35
|
image_url: {
|
|
36
36
|
url: imageDataUrl,
|
|
37
37
|
},
|
|
38
38
|
},
|
|
39
39
|
{
|
|
40
|
-
type:
|
|
40
|
+
type: "text",
|
|
41
41
|
text: prompt,
|
|
42
42
|
},
|
|
43
43
|
],
|
|
@@ -46,43 +46,43 @@ export class ZhipuClient {
|
|
|
46
46
|
temperature: this.temperature,
|
|
47
47
|
max_tokens: this.maxTokens,
|
|
48
48
|
top_p: this.topP,
|
|
49
|
-
thinking: { type:
|
|
49
|
+
thinking: { type: "enabled" }, // 默认启用思考模式,提高分析准确性
|
|
50
50
|
};
|
|
51
51
|
// 允许显式禁用 thinking(如需要更快速度)
|
|
52
52
|
if (enableThinking === false) {
|
|
53
53
|
delete requestBody.thinking;
|
|
54
54
|
}
|
|
55
|
-
logger.info(
|
|
55
|
+
logger.info("Calling GLM-4.5V API", {
|
|
56
56
|
model: this.model,
|
|
57
|
-
thinking: !!requestBody.thinking
|
|
57
|
+
thinking: !!requestBody.thinking,
|
|
58
58
|
});
|
|
59
59
|
try {
|
|
60
60
|
const response = await axios.post(this.apiEndpoint, requestBody, {
|
|
61
61
|
headers: {
|
|
62
|
-
|
|
63
|
-
|
|
62
|
+
Authorization: `Bearer ${this.apiKey}`,
|
|
63
|
+
"Content-Type": "application/json",
|
|
64
64
|
},
|
|
65
65
|
timeout: 60000, // 60秒超时
|
|
66
66
|
});
|
|
67
67
|
if (!response.data.choices || response.data.choices.length === 0) {
|
|
68
|
-
throw new Error(
|
|
68
|
+
throw new Error("No response from GLM-4.5V");
|
|
69
69
|
}
|
|
70
70
|
const result = response.data.choices[0].message.content;
|
|
71
71
|
const usage = response.data.usage;
|
|
72
|
-
logger.info(
|
|
72
|
+
logger.info("GLM-4.5V API call successful", {
|
|
73
73
|
tokens: usage?.total_tokens || 0,
|
|
74
|
-
model: response.data.model
|
|
74
|
+
model: response.data.model,
|
|
75
75
|
});
|
|
76
76
|
return result;
|
|
77
77
|
}
|
|
78
78
|
catch (error) {
|
|
79
|
-
logger.error(
|
|
80
|
-
error: error instanceof Error ? error.message : String(error)
|
|
79
|
+
logger.error("GLM-4.5V API call failed", {
|
|
80
|
+
error: error instanceof Error ? error.message : String(error),
|
|
81
81
|
});
|
|
82
82
|
if (axios.isAxiosError(error)) {
|
|
83
83
|
const message = error.response?.data?.error?.message || error.message;
|
|
84
84
|
const status = error.response?.status;
|
|
85
|
-
throw new Error(`GLM-4.5V API error (${status ||
|
|
85
|
+
throw new Error(`GLM-4.5V API error (${status || "unknown"}): ${message}`);
|
|
86
86
|
}
|
|
87
87
|
throw error;
|
|
88
88
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"zhipu-client.js","sourceRoot":"","sources":["../src/zhipu-client.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"zhipu-client.js","sourceRoot":"","sources":["../src/zhipu-client.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "luma-mcp",
|
|
3
|
-
"version": "1.2.
|
|
4
|
-
"description": "Multi-model vision understanding MCP server. Supports GLM-4.
|
|
3
|
+
"version": "1.2.6",
|
|
4
|
+
"description": "Multi-model vision understanding MCP server. Supports GLM-4.6V (Zhipu), DeepSeek-OCR (SiliconFlow - Free), and Qwen3-VL-Flash (Aliyun)",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
7
7
|
"luma-mcp": "build/index.js"
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
"mcp",
|
|
18
18
|
"vision",
|
|
19
19
|
"ai",
|
|
20
|
-
"glm-4.
|
|
20
|
+
"glm-4.6v",
|
|
21
21
|
"zhipu",
|
|
22
22
|
"deepseek-ocr",
|
|
23
23
|
"siliconflow",
|