image-vision-mcp 1.0.2 → 1.0.3

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 CHANGED
@@ -1,209 +1,245 @@
1
- # Vision MCP Server
2
-
3
- 为 Claude Code 提供图像识别能力的 MCP server,附带 HTTP 图片拦截代理,让纯文本模型(如 GLM)也能接受图片输入,暂只支持用 kimi 来提供视觉能力。
4
-
5
- ## 功能特性
6
-
7
- 本项目包含两部分,可独立或组合使用:
8
-
9
- ### 1. MCP 工具(默认)
10
-
11
- 支持两种图片来源:
12
-
13
- | 工具 | 输入 | 示例 |
14
- |------|------|------|
15
- | `kimi_describe_image` | 本地图片文件 | `C:/Users/me/screenshot.png` |
16
- | `kimi_describe_image` | 网络图片 URL | `https://example.com/img.png` |
17
-
18
- 通过 [Moonshot](https://platform.moonshot.cn) Kimi 视觉模型(如 `kimi-k2.6`)识别,支持本地文件路径与 http(s):// 图片 URL。
19
-
20
- ### 2. HTTP 图片拦截代理(可选)
21
- - 用户在 Claude Code 中直接 `Ctrl+V` 粘贴图片即可
22
- - 在 Claude Code 和上游 LLM API 之间做代理
23
- - 自动拦截请求中的图片,调 Moonshot 识别后替换为文字描述
24
- - 让纯文本模型(如 GLM)也能正常处理图片输入,不再 400 报错
25
-
26
- ## 工作原理
27
-
28
- ```
29
- ┌─────────────────────────────────────────────────────────────────┐
30
- Claude Code │
31
- │ ├─ 调用 MCP 工具 kimi_describe_image → Moonshot API │
32
- │ └─ 发送消息(含图片)→ http://127.0.0.1:8787 (本代理) │
33
- │ ↓ │
34
- │ 代理拦截图片 Moonshot 识别 替换为文字 │
35
- │ ↓ │
36
- │ 转发纯文本请求 上游 LLM API(如 GLM) │
37
- └─────────────────────────────────────────────────────────────────┘
38
- ```
39
-
40
- MCP 工具和代理共享同一进程、同一份 Moonshot 配置,启动 MCP server 时代理自动起来。
41
-
42
- ## 前置条件
43
-
44
- - Node.js >= 18
45
- - Moonshot API Key(在 [platform.moonshot.cn](https://platform.moonshot.cn) 申请)
46
-
47
- ## 配置
48
-
49
- ### 1. 基础配置(启用 MCP 工具)
50
-
51
- 编辑 `~/.claude.json`,加入 MCP server 配置,默认支持本地文件 / URL 识图:
52
-
53
- ```json
54
- {
55
- "mcpServers": {
56
- "vision-mcp": {
57
- "command": "npx",
58
- "args": ["-y", "image-vision-mcp"],
59
- "env": {
60
- "MOONSHOT_API_KEY": "sk-你的-moonshot-api-key",
61
- "MOONSHOT_BASE_URL": "https://api.kimi.com/coding/v1"
62
- }
63
- }
64
- }
65
- }
66
- ```
67
-
68
- 重启 Claude Code 后,对 Claude 说"识别 C:/xxx.png",Claude 会自动调用识图工具。
69
-
70
- ### 2. 高级配置(启用图片代理,可选)
71
-
72
- **什么时候需要**:你用 GLM 等纯文本模型,想在 Claude Code 里直接 `Ctrl+V` 粘贴图片(不用先说"识别图片")。代理会自动拦截图片,调 Moonshot 识别后转发给上游模型。
73
-
74
- | 用法 | 怎么识图 |
75
- |------|----------|
76
- | 只用 MCP 工具(默认) | 对 Claude 说"识别 C:/xxx.png"或网络图片 URL |
77
- | 启用图片代理 | 直接 `Ctrl+V` 粘贴图片到 Claude |
78
-
79
- #### 配置步骤
80
-
81
- **第 1 步**:编辑 `~/.claude.json`,配置 MCP server(在基础配置基础上加 `UPSTREAM_BASE_URL`):
82
-
83
- ```json
84
- {
85
- "mcpServers": {
86
- "vision-mcp": {
87
- "command": "npx",
88
- "args": ["-y", "image-vision-mcp"],
89
- "env": {
90
- "MOONSHOT_API_KEY": "sk-你的-moonshot-key",
91
- "MOONSHOT_BASE_URL": "https://api.kimi.com/coding/v1",
92
- "UPSTREAM_BASE_URL": "https://你的上游-llm-api-地址"
93
- }
94
- }
95
- }
96
- }
97
- ```
98
-
99
- **第 2 步**:编辑 `~/.claude/settings.json`,配置 Claude Code 走代理:
100
-
101
- ```json
102
- {
103
- "env": {
104
- "ANTHROPIC_BASE_URL": "http://127.0.0.1:8787",
105
- "ANTHROPIC_AUTH_TOKEN": "你的上游-llm-api-token"
106
- }
107
- }
108
- ```
109
-
110
- > 两处 `env` 作用不同:
111
- > - `~/.claude/settings.json` `env`:Claude Code 自身读取(走代理 + 上游认证)
112
- > - `~/.claude.json` 里 `mcpServers.vision-mcp.env`:MCP server 进程读取(Moonshot key + 上游纯文本模型请求地址)
113
-
114
- **第 3 步**:重启 Claude Code,直接 `Ctrl+V` 粘贴图片即可。
115
-
116
- #### 环境变量参考
117
-
118
- **Claude Code 端**(`~/.claude/settings.json` 的 `env`):
119
-
120
- | 环境变量 | 必填 | 说明 |
121
- |---------|------|------|
122
- | `ANTHROPIC_BASE_URL` | 是 | `http://127.0.0.1:8787`,代理监听端口从该 URL 解析 |
123
- | `ANTHROPIC_AUTH_TOKEN` | 是 | 上游 LLM API 的认证 token,代理转发时复用 |
124
-
125
- **MCP server 端**(`~/.claude.json` 的 `mcpServers.vision-mcp.env`):
126
-
127
- | 环境变量 | 必填 | 默认值 | 说明 |
128
- |---------|------|--------|------|
129
- | `UPSTREAM_BASE_URL` | 是 | - | 上游 LLM API 地址,未设则代理不启动(MCP 工具仍可用) |
130
- | `UPSTREAM_AUTH_TOKEN` | 否 | 取自 `ANTHROPIC_AUTH_TOKEN` | 上游认证 token |
131
- | `MOONSHOT_API_KEY` | 是 | - | Moonshot API key(MCP 工具与代理共用) |
132
- | `MOONSHOT_BASE_URL` | 是 | - | Moonshot API 端点(如 `https://api.kimi.com/coding/v1`) |
133
- | `MOONSHOT_MODEL` | 否 | `kimi-k2.6` | Moonshot 视觉模型名 |
134
- | `IMAGE_DESC_PROMPT` | 否 | 内置中文提示词 | 代理识别图片时发给 Moonshot 的提示词 |
135
- | `ALLOW_PRIVATE_NETWORK_IMAGES` | 否 | - | 设为 `1` 或 `true` 允许访问内网图片 URL(默认拒绝,防 SSRF) |
136
-
137
-
138
- ## 使用示例
139
-
140
- ### 用 MCP 工具识图
141
-
142
- 默认提示词为 **"请详细描述这张图片的内容。"**。你也可以在对话里指定其他指令,例如"提取图片中的所有文字"、"分析图表数据"、"描述 UI 界面布局"。
143
-
144
- 对 Claude 说:
145
-
146
- ```
147
- 识别这张图:C:/Users/me/screenshot.png
148
- ```
149
- ```
150
- 描述一下这张网络图片:https://example.com/chart.png
151
- ```
152
-
153
- Claude 会自动调用 `kimi_describe_image` 工具。
154
-
155
- ### 用代理粘贴图片(配置代理后)
156
-
157
- Claude Code 输入框里直接 `Ctrl+V` 粘贴图片,再输入问题回车:
158
-
159
- ```
160
- [粘贴图片] 这张图里有什么?
161
- ```
162
-
163
- 代理自动识别图片,把描述和你的问题一起发给上游模型。
164
-
165
- ## 工具参数
166
-
167
- ### `kimi_describe_image`
168
-
169
- | 参数 | 类型 | 必填 | 默认 | 说明 |
170
- |------|------|------|------|------|
171
- | `image` | string | 是 | - | 本地文件路径或 http(s):// 图片 URL |
172
- | `prompt` | string | 否 | "请详细描述这张图片的内容。" | 识图指令,最长 4000 字符 |
173
- | `max_tokens` | number | 否 | 2048 | 返回描述的最大 token 数,1-8192 |
174
-
175
- ## 限制
176
-
177
- - 图片大小上限 20MB(URL 下载与本地文件读取均适用)
178
- - 请求超时 60s(Moonshot API)、30s(图片下载)
179
- - 输出文本超过 25000 字符会截断
180
- - 支持格式:JPEG / JPG / PNG / GIF / WebP / BMP
181
-
182
- ## 故障排查
183
-
184
- | 错误 | 解决方案 |
185
- |------|----------|
186
- | `MOONSHOT_API_KEY 环境变量未设置` | 检查 MCP 配置的 `env.MOONSHOT_API_KEY` |
187
- | `Moonshot API 鉴权失败 (401)` | API key 错误或失效 |
188
- | `Moonshot API 模型不存在 (404)` | 模型名错误(当前用 `kimi-k2.6`) |
189
- | `Moonshot API 限流 (429)` | 请求过于频繁,稍后重试 |
190
- | `无法访问本地文件` | 路径错误或无权限 |
191
- | `下载图片失败` | URL 无法访问或超时 |
192
- | `listen EADDRINUSE 127.0.0.1:8787` | 端口被占用,改 `ANTHROPIC_BASE_URL` 里的端口或关掉占用进程 |
193
- | 代理启动失败但 MCP 工具可用 | 不影响 MCP 工具功能,仅代理不可用 |
194
-
195
- ## 开发
196
-
197
- ```bash
198
- npm run dev # 开发模式(tsx watch,热重载)
199
- npm run build # 编译 TypeScript → dist/
200
- npm run clean # 清理构建产物
201
- ```
202
-
203
- ## 贡献
204
-
205
- 欢迎提 issue 和 PR。当前只支持 Moonshot Kimi,后续计划扩展其他视觉模型(OpenAI、Gemini、通义千问等),架构上已预留扩展点。
206
-
207
- ## License
208
-
209
- [MIT](LICENSE)
1
+ # Vision MCP Server
2
+
3
+ 为 Claude Code 提供图像识别能力的 MCP server,附带 HTTP 图片拦截代理,让纯文本模型(如 GLM)也能接受图片输入。支持任意 OpenAI 兼容的视觉模型(火山方舟豆包、Kimi、智谱 GLM-4V、通义 Qwen-VL、OpenAI GPT-4o 等)。
4
+
5
+ ## 功能特性
6
+
7
+ 本项目包含两部分,可独立或组合使用:
8
+
9
+ ### 1. MCP 工具(默认)
10
+
11
+ 支持两种图片来源:
12
+
13
+ | 工具 | 输入 | 示例 |
14
+ |------|------|------|
15
+ | `vision_describe_image` | 本地图片文件 | `C:/Users/me/screenshot.png` |
16
+ | `vision_describe_image` | 网络图片 URL | `https://example.com/img.png` |
17
+
18
+ 通过视觉模型识别图片,支持本地文件路径与 http(s):// 图片 URL。
19
+
20
+ ### 2. HTTP 图片拦截代理(可选)
21
+ - 用户在 Claude Code 中直接 `Ctrl+V` 粘贴图片即可
22
+ - 在 Claude Code 和上游 LLM API 之间做代理
23
+ - 自动拦截请求中的图片,调视觉模型识别后替换为文字描述
24
+ - 让纯文本模型(如 GLM)也能正常处理图片输入,不再 400 报错
25
+
26
+ ## 支持的视觉模型
27
+
28
+ 只要视觉模型提供 OpenAI 兼容的 `/chat/completions` 端点、且支持 `image_url` + base64 图片输入,均可接入。下表给出代表性示例(模型 ID 以各平台官方文档为准):
29
+
30
+ | 平台 | 模型示例(`VISION_MODEL`) | `VISION_BASE_URL` | 申请入口 |
31
+ |------|----------------------------|-------------------|----------|
32
+ | 火山方舟(豆包) | `doubao-seed-2-1-turbo-260628` / `doubao-seed-2-1-pro-260628` / `doubao-seed-evolving` | `https://ark.cn-beijing.volces.com/api/v3` | console.volcengine.com/ark |
33
+ | 月之暗面 Kimi | `kimi-k2.6` | `https://api.moonshot.cn/v1` | platform.moonshot.cn |
34
+ | 智谱 | `glm-4v-plus` / `glm-4.5v` | `https://open.bigmodel.cn/api/paas/v4` | open.bigmodel.cn |
35
+ | 阿里百炼 | `qwen-vl-max` / `qwen2.5-vl-72b-instruct` | `https://dashscope.aliyuncs.com/compatible-mode/v1` | bailian.console.aliyun.com |
36
+ | 硅基流动 | `Qwen/Qwen2-VL-72B-Instruct` | `https://api.siliconflow.cn/v1` | siliconflow.cn |
37
+ | OpenAI | `gpt-4o` / `gpt-4o-mini` | `https://api.openai.com/v1` | platform.openai.com |
38
+
39
+ > 注:火山方舟上目前只有豆包系列支持视觉输入,GLM / DeepSeek 在方舟上均为纯文本。若要用 GLM-4V / Qwen-VL 等非豆包视觉模型,请走对应平台或硅基流动。
40
+
41
+ ## 工作原理
42
+
43
+ ```
44
+ ┌─────────────────────────────────────────────────────────────────┐
45
+ Claude Code │
46
+ │ ├─ 调用 MCP 工具 vision_describe_image -> 视觉模型 API │
47
+ │ └─ 发送消息(含图片)-> http://127.0.0.1:8787 (本代理) │
48
+ │ ↓ │
49
+ │ 代理拦截图片 -> 调视觉模型识别 -> 替换为文字 │
50
+ │ ↓ │
51
+ │ 转发纯文本请求 -> 上游 LLM API(如 GLM) │
52
+ └─────────────────────────────────────────────────────────────────┘
53
+ ```
54
+
55
+ MCP 工具和代理共享同一进程、同一份视觉模型配置,启动 MCP server 时代理自动起来。
56
+
57
+ ## 前置条件
58
+
59
+ - Node.js >= 18
60
+ - 视觉模型 API Key(见上表,任选一家申请)
61
+
62
+ ## 配置
63
+
64
+ ### 1. 基础配置(启用 MCP 工具)
65
+
66
+ 编辑 `~/.claude.json`,加入 MCP server 配置,默认支持本地文件 / URL 识图。以火山方舟豆包为例:
67
+
68
+ ```json
69
+ {
70
+ "mcpServers": {
71
+ "vision-mcp": {
72
+ "command": "npx",
73
+ "args": ["-y", "image-vision-mcp"],
74
+ "env": {
75
+ "VISION_API_KEY": "你的火山方舟-api-key",
76
+ "VISION_BASE_URL": "https://ark.cn-beijing.volces.com/api/v3",
77
+ "VISION_MODEL": "doubao-seed-2-1-turbo-260628"
78
+ }
79
+ }
80
+ }
81
+ }
82
+ ```
83
+
84
+ 改用 Kimi 示例:
85
+
86
+ ```json
87
+ {
88
+ "mcpServers": {
89
+ "vision-mcp": {
90
+ "command": "npx",
91
+ "args": ["-y", "image-vision-mcp"],
92
+ "env": {
93
+ "VISION_API_KEY": "sk-你的-kimi-api-key",
94
+ "VISION_BASE_URL": "https://api.moonshot.cn/v1",
95
+ "VISION_MODEL": "kimi-k2.6"
96
+ }
97
+ }
98
+ }
99
+ }
100
+ ```
101
+
102
+ 重启 Claude Code 后,对 Claude 说"识别 C:/xxx.png",Claude 会自动调用识图工具。
103
+
104
+ ### 2. 高级配置(启用图片代理,可选)
105
+
106
+ **什么时候需要**:你用 GLM 等纯文本模型,想在 Claude Code 里直接 `Ctrl+V` 粘贴图片(不用先说"识别图片")。代理会自动拦截图片,调视觉模型识别后转发给上游模型。
107
+
108
+ | 用法 | 怎么识图 |
109
+ |------|----------|
110
+ | 只用 MCP 工具(默认) | 对 Claude 说"识别 C:/xxx.png"或网络图片 URL |
111
+ | 启用图片代理 | 直接 `Ctrl+V` 粘贴图片到 Claude |
112
+
113
+ #### 配置步骤
114
+
115
+ **第 1 步**:编辑 `~/.claude.json`,配置 MCP server(在基础配置基础上加 `UPSTREAM_BASE_URL`):
116
+
117
+ ```json
118
+ {
119
+ "mcpServers": {
120
+ "vision-mcp": {
121
+ "command": "npx",
122
+ "args": ["-y", "image-vision-mcp"],
123
+ "env": {
124
+ "VISION_API_KEY": "你的视觉模型-api-key",
125
+ "VISION_BASE_URL": "https://ark.cn-beijing.volces.com/api/v3",
126
+ "VISION_MODEL": "doubao-seed-2-1-turbo-260628"
127
+ }
128
+ }
129
+ }
130
+ }
131
+ ```
132
+
133
+ **第 2 步**:编辑 `~/.claude/settings.json`,配置 Claude Code 走代理:
134
+
135
+ ```json
136
+ {
137
+ "env": {
138
+ "UPSTREAM_BASE_URL": "https://你的上游-llm-api-地址",
139
+ "ANTHROPIC_BASE_URL": "http://127.0.0.1:8787",
140
+ "ANTHROPIC_AUTH_TOKEN": "你的上游-llm-api-token"
141
+ }
142
+ }
143
+ ```
144
+
145
+ > 两处 `env` 作用不同:
146
+ > - `~/.claude/settings.json` 的 `env`:Claude Code 自身读取(走代理 + 上游认证)
147
+ > - `~/.claude.json` 里 `mcpServers.vision-mcp.env`:MCP server 进程读取(视觉模型 key + 上游纯文本模型请求地址)
148
+
149
+ **第 3 步**:重启 Claude Code,直接 `Ctrl+V` 粘贴图片即可。
150
+
151
+ #### 环境变量参考
152
+
153
+ **Claude Code 端**(`~/.claude/settings.json``env`):
154
+
155
+ | 环境变量 | 必填 | 说明 |
156
+ |---------|------|------|
157
+ | `ANTHROPIC_BASE_URL` | | `http://127.0.0.1:8787`,代理监听端口从该 URL 解析 |
158
+ | `ANTHROPIC_AUTH_TOKEN` | 是 | 上游 LLM API 的认证 token,代理转发时复用 |
159
+
160
+ **MCP server 端**(`~/.claude.json` 的 `mcpServers.vision-mcp.env`):
161
+
162
+ | 环境变量 | 必填 | 默认值 | 说明 |
163
+ |---------|------|--------|------|
164
+ | `UPSTREAM_BASE_URL` | 是 | - | 上游 LLM API 地址,未设则代理不启动(MCP 工具仍可用) |
165
+ | `UPSTREAM_AUTH_TOKEN` | 否 | 取自 `ANTHROPIC_AUTH_TOKEN` | 上游认证 token |
166
+ | `VISION_API_KEY` | 是 | - | 视觉模型 API key(MCP 工具与代理共用) |
167
+ | `VISION_BASE_URL` | 是 | - | 视觉模型 API 端点(见支持的平台表) |
168
+ | `VISION_MODEL` | 是 | - | 视觉模型 ID(见支持的平台表) |
169
+ | `IMAGE_DESC_PROMPT` | | 内置中文提示词 | 代理识别图片时发给视觉模型的提示词 |
170
+ | `ALLOW_PRIVATE_NETWORK_IMAGES` | 否 | - | 设为 `1` 或 `true` 允许访问内网图片 URL(默认拒绝,防 SSRF) |
171
+
172
+
173
+ ## 使用示例
174
+
175
+ ### 用 MCP 工具识图
176
+
177
+ 默认提示词为 **"请详细描述这张图片的内容。"**。你也可以在对话里指定其他指令,例如"提取图片中的所有文字"、"分析图表数据"、"描述 UI 界面布局"。
178
+
179
+ Claude 说:
180
+
181
+ ```
182
+ 识别这张图:C:/Users/me/screenshot.png
183
+ ```
184
+ ```
185
+ 描述一下这张网络图片:https://example.com/chart.png
186
+ ```
187
+
188
+ Claude 会自动调用 `vision_describe_image` 工具。
189
+
190
+ ### 用代理粘贴图片(配置代理后)
191
+
192
+ Claude Code 输入框里直接 `Ctrl+V` 粘贴图片,再输入问题回车:
193
+
194
+ ```
195
+ [粘贴图片] 这张图里有什么?
196
+ ```
197
+
198
+ 代理自动识别图片,把描述和你的问题一起发给上游模型。
199
+
200
+ ## 工具参数
201
+
202
+ ### `vision_describe_image`
203
+
204
+ | 参数 | 类型 | 必填 | 默认 | 说明 |
205
+ |------|------|------|------|------|
206
+ | `image` | string | 是 | - | 本地文件路径或 http(s):// 图片 URL |
207
+ | `prompt` | string | 否 | "请详细描述这张图片的内容。" | 识图指令,最长 4000 字符 |
208
+ | `max_tokens` | number | 否 | 2048 | 返回描述的最大 token 数,1-8192 |
209
+
210
+ ## 限制
211
+
212
+ - 图片大小上限 20MB(URL 下载与本地文件读取均适用)
213
+ - 请求超时 60s(视觉模型 API)、30s(图片下载)
214
+ - 输出文本超过 25000 字符会截断
215
+ - 支持格式:JPEG / JPG / PNG / GIF / WebP / BMP
216
+
217
+ ## 故障排查
218
+
219
+ | 错误 | 解决方案 |
220
+ |------|----------|
221
+ | `VISION_API_KEY 环境变量未设置` | 检查 MCP 配置的 `env.VISION_API_KEY` |
222
+ | `视觉模型 API 鉴权失败 (401)` | API key 错误或失效 |
223
+ | `视觉模型 API 模型不存在 (404)` | 模型名错误(检查 `VISION_MODEL` 是否与 `VISION_BASE_URL` 对应平台匹配) |
224
+ | `视觉模型 API 限流 (429)` | 请求过于频繁,稍后重试 |
225
+ | `无法访问本地文件` | 路径错误或无权限 |
226
+ | `下载图片失败` | URL 无法访问或超时 |
227
+ | `listen EADDRINUSE 127.0.0.1:8787` | 端口被占用,改 `ANTHROPIC_BASE_URL` 里的端口或关掉占用进程 |
228
+ | 代理启动失败但 MCP 工具可用 | 不影响 MCP 工具功能,仅代理不可用 |
229
+ | 改了配置不生效 | 代理是独立常驻进程,需 kill 旧代理进程后重启 Claude Code 会话 |
230
+
231
+ ## 开发
232
+
233
+ ```bash
234
+ npm run dev # 开发模式(tsx watch,热重载)
235
+ npm run build # 编译 TypeScript -> dist/
236
+ npm run clean # 清理构建产物
237
+ ```
238
+
239
+ ## 贡献
240
+
241
+ 欢迎提 issue 和 PR。支持任意 OpenAI 兼容的视觉模型,架构上已预留扩展点。
242
+
243
+ ## License
244
+
245
+ [MIT](LICENSE)
package/dist/constants.js CHANGED
@@ -1,5 +1,5 @@
1
- export const API_BASE_URL = process.env.MOONSHOT_BASE_URL?.replace(/\/+$/, "") || "";
2
- export const DEFAULT_MODEL = process.env.MOONSHOT_MODEL || "kimi-k2.6";
1
+ export const API_BASE_URL = process.env.VISION_BASE_URL?.replace(/\/+$/, "") || "";
2
+ export const DEFAULT_MODEL = process.env.VISION_MODEL || "";
3
3
  export const CHARACTER_LIMIT = 25000;
4
4
  export const REQUEST_TIMEOUT_MS = 60000;
5
5
  export const IMAGE_DOWNLOAD_TIMEOUT_MS = 30000;
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC;AACrF,MAAM,CAAC,MAAM,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,WAAW,CAAC;AACvE,MAAM,CAAC,MAAM,eAAe,GAAG,KAAK,CAAC;AACrC,MAAM,CAAC,MAAM,kBAAkB,GAAG,KAAK,CAAC;AACxC,MAAM,CAAC,MAAM,yBAAyB,GAAG,KAAK,CAAC;AAC/C,MAAM,CAAC,MAAM,oBAAoB,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,OAAO;AAE7D,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,MAAM,EAAE,YAAY;IACpB,OAAO,EAAE,YAAY;IACrB,MAAM,EAAE,WAAW;IACnB,MAAM,EAAE,WAAW;IACnB,OAAO,EAAE,YAAY;IACrB,MAAM,EAAE,WAAW;CACX,CAAC;AAEX,MAAM,CAAC,MAAM,cAAc,GAAG,eAAe,CAAC"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC;AACnF,MAAM,CAAC,MAAM,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,EAAE,CAAC;AAC5D,MAAM,CAAC,MAAM,eAAe,GAAG,KAAK,CAAC;AACrC,MAAM,CAAC,MAAM,kBAAkB,GAAG,KAAK,CAAC;AACxC,MAAM,CAAC,MAAM,yBAAyB,GAAG,KAAK,CAAC;AAC/C,MAAM,CAAC,MAAM,oBAAoB,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,OAAO;AAE7D,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,MAAM,EAAE,YAAY;IACpB,OAAO,EAAE,YAAY;IACrB,MAAM,EAAE,WAAW;IACnB,MAAM,EAAE,WAAW;IACnB,OAAO,EAAE,YAAY;IACrB,MAAM,EAAE,WAAW;CACX,CAAC;AAEX,MAAM,CAAC,MAAM,cAAc,GAAG,eAAe,CAAC"}
package/dist/index.d.ts CHANGED
@@ -6,7 +6,7 @@
6
6
  * 使用 stdio 传输,供 Claude Code 本地调用。
7
7
  *
8
8
  * 同时启动 HTTP 图片拦截代理:拦截 Claude Code 发往上游 API 的图片请求,
9
- * 调用 Moonshot 识别后替换为文字描述,避免 GLM 等纯文本模型 400 报错。
9
+ * 调用视觉模型识别后替换为文字描述,避免 GLM 等纯文本模型 400 报错。
10
10
  * 配置 ANTHROPIC_BASE_URL=http://127.0.0.1:8787 即可启用。
11
11
  */
12
12
  export {};
package/dist/index.js CHANGED
@@ -6,7 +6,7 @@
6
6
  * 使用 stdio 传输,供 Claude Code 本地调用。
7
7
  *
8
8
  * 同时启动 HTTP 图片拦截代理:拦截 Claude Code 发往上游 API 的图片请求,
9
- * 调用 Moonshot 识别后替换为文字描述,避免 GLM 等纯文本模型 400 报错。
9
+ * 调用视觉模型识别后替换为文字描述,避免 GLM 等纯文本模型 400 报错。
10
10
  * 配置 ANTHROPIC_BASE_URL=http://127.0.0.1:8787 即可启用。
11
11
  */
12
12
  import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
@@ -24,8 +24,9 @@ function getRequiredEnv(name, hint) {
24
24
  }
25
25
  async function main() {
26
26
  // 0. fail-fast 校验必需的环境变量
27
- const apiKey = getRequiredEnv("MOONSHOT_API_KEY", "请在 MCP 配置的 env 里设置 MOONSHOT_API_KEY");
28
- getRequiredEnv("MOONSHOT_BASE_URL", "请在 MCP 配置的 env 里设置 MOONSHOT_BASE_URL(如 https://api.moonshot.cn/v1)");
27
+ const apiKey = getRequiredEnv("VISION_API_KEY", "请在 MCP 配置的 env 里设置 VISION_API_KEY");
28
+ getRequiredEnv("VISION_BASE_URL", "请在 MCP 配置的 env 里设置 VISION_BASE_URL(如 https://ark.cn-beijing.volces.com/api/v3)");
29
+ getRequiredEnv("VISION_MODEL", "请在 MCP 配置的 env 里设置 VISION_MODEL(视觉模型 ID,如 doubao-seed-2-1-turbo-260628)");
29
30
  // 1. 按需拉起独立常驻的 HTTP 图片拦截代理(与 MCP 进程解耦:
30
31
  // 代理脱离任何会话独立运行,关掉任意窗口都不影响它)
31
32
  try {
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA;;;;;;;;;GASG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,yBAAyB,EAAE,MAAM,0BAA0B,CAAC;AACrE,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAEhE,SAAS,cAAc,CAAC,IAAY,EAAE,IAAY;IAChD,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC;IACxC,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,CAAC,KAAK,CAAC,oBAAoB,IAAI,UAAU,CAAC,CAAC;QAClD,OAAO,CAAC,KAAK,CAAC,gBAAgB,IAAI,EAAE,CAAC,CAAC;QACtC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,KAAK,UAAU,IAAI;IACjB,yBAAyB;IACzB,MAAM,MAAM,GAAG,cAAc,CAC3B,kBAAkB,EAClB,qCAAqC,CACtC,CAAC;IACF,cAAc,CACZ,mBAAmB,EACnB,oEAAoE,CACrE,CAAC;IAEF,uCAAuC;IACvC,+BAA+B;IAC/B,IAAI,CAAC;QACH,MAAM,uBAAuB,EAAE,CAAC;IAClC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,kCAAkC,EAAE,GAAG,CAAC,CAAC;IACzD,CAAC;IAED,gBAAgB;IAChB,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC;QAC3B,IAAI,EAAE,mBAAmB;QACzB,OAAO,EAAE,OAAO;KACjB,CAAC,CAAC;IAEH,yBAAyB,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC;IAEhD,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;IAC7C,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAChC,OAAO,CAAC,KAAK,CAAC,uCAAuC,CAAC,CAAC;AACzD,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;IACnB,OAAO,CAAC,KAAK,CAAC,qBAAqB,EAAE,GAAG,CAAC,CAAC;IAC1C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA;;;;;;;;;GASG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,yBAAyB,EAAE,MAAM,0BAA0B,CAAC;AACrE,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAEhE,SAAS,cAAc,CAAC,IAAY,EAAE,IAAY;IAChD,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC;IACxC,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,CAAC,KAAK,CAAC,oBAAoB,IAAI,UAAU,CAAC,CAAC;QAClD,OAAO,CAAC,KAAK,CAAC,gBAAgB,IAAI,EAAE,CAAC,CAAC;QACtC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,KAAK,UAAU,IAAI;IACjB,yBAAyB;IACzB,MAAM,MAAM,GAAG,cAAc,CAC3B,gBAAgB,EAChB,mCAAmC,CACpC,CAAC;IACF,cAAc,CACZ,iBAAiB,EACjB,gFAAgF,CACjF,CAAC;IACF,cAAc,CACZ,cAAc,EACd,yEAAyE,CAC1E,CAAC;IAEF,uCAAuC;IACvC,+BAA+B;IAC/B,IAAI,CAAC;QACH,MAAM,uBAAuB,EAAE,CAAC;IAClC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,kCAAkC,EAAE,GAAG,CAAC,CAAC;IACzD,CAAC;IAED,gBAAgB;IAChB,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC;QAC3B,IAAI,EAAE,mBAAmB;QACzB,OAAO,EAAE,OAAO;KACjB,CAAC,CAAC;IAEH,yBAAyB,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC;IAEhD,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;IAC7C,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAChC,OAAO,CAAC,KAAK,CAAC,uCAAuC,CAAC,CAAC;AACzD,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;IACnB,OAAO,CAAC,KAAK,CAAC,qBAAqB,EAAE,GAAG,CAAC,CAAC;IAC1C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
@@ -7,7 +7,7 @@ import path from "path";
7
7
  import os from "os";
8
8
  import { spawn } from "child_process";
9
9
  import crypto from "crypto";
10
- import { callMoonshot } from "../services/moonshot.js";
10
+ import { callVision } from "../services/vision.js";
11
11
  // ────────────────────── 日志 ──────────────────────
12
12
  // 日志文件路径:优先用环境变量,否则放项目内 logs/ 目录。
13
13
  // 用 import.meta.url 定位 dist/proxy/ → 反推项目根:独立代理进程是 detached
@@ -24,8 +24,14 @@ try {
24
24
  catch {
25
25
  // 目录已存在或无权限,忽略
26
26
  }
27
+ function nowLocal() {
28
+ const d = new Date();
29
+ const pad = (n, l = 2) => String(n).padStart(l, "0");
30
+ return (`${d.getFullYear()}-${pad(d.getMonth() + 1)}-${pad(d.getDate())} ` +
31
+ `${pad(d.getHours())}:${pad(d.getMinutes())}:${pad(d.getSeconds())}.${pad(d.getMilliseconds(), 3)}`);
32
+ }
27
33
  function log(msg) {
28
- const line = `[${new Date().toISOString()}] ${msg}\n`;
34
+ const line = `[${nowLocal()}] ${msg}\n`;
29
35
  console.error(line.trim());
30
36
  fs.stat(LOG_FILE, (statErr, stats) => {
31
37
  if (statErr || stats.size < LOG_MAX_SIZE) {
@@ -73,7 +79,7 @@ const upstreamHttpsAgent = new https.Agent({ keepAlive: true, maxSockets: 50 });
73
79
  const IMAGE_CACHE_MAX = 100;
74
80
  const imageCache = new Map();
75
81
  // 同一张图片可能同时出现在多个并发请求或历史消息里。复用进行中的识别,
76
- // 只有所有等待者都取消时才中止底层 Moonshot 请求,避免误伤其他请求。
82
+ // 只有所有等待者都取消时才中止底层 视觉模型 请求,避免误伤其他请求。
77
83
  const pendingImageDescriptions = new Map();
78
84
  function hashImage(base64Data) {
79
85
  return crypto.createHash("sha256").update(base64Data).digest("hex").slice(0, 32);
@@ -98,7 +104,7 @@ function setCachedDescription(base64Data, description) {
98
104
  }
99
105
  }
100
106
  // 失败短期缓存:识别失败(超时/空响应)的图 5 分钟内不重试,
101
- // 避免对话历史里某张图每次请求都卡 60s 超时。过期后允许重试(Moonshot 恢复后能成功)。
107
+ // 避免对话历史里某张图每次请求都卡 60s 超时。过期后允许重试(视觉模型 恢复后能成功)。
102
108
  const FAILURE_CACHE_TTL_MS = 5 * 60 * 1000;
103
109
  const failureCache = new Map(); // hash -> 失败时间戳
104
110
  function getFailureTimestamp(base64Data) {
@@ -158,7 +164,7 @@ async function describeImage(base64Data, mimeType, signal) {
158
164
  if (signal?.aborted) {
159
165
  throw new Error("请求已取消");
160
166
  }
161
- // 成功缓存命中:历史消息里反复出现的同一张图不重复调 Moonshot
167
+ // 成功缓存命中:历史消息里反复出现的同一张图不重复调 视觉模型
162
168
  const cached = getCachedDescription(base64Data);
163
169
  if (cached) {
164
170
  log(`[image-proxy] 图片命中缓存,跳过识别`);
@@ -170,9 +176,9 @@ async function describeImage(base64Data, mimeType, signal) {
170
176
  throw new Error("图片近期识别失败,跳过重试");
171
177
  }
172
178
  const dataUrl = `data:${mimeType};base64,${base64Data}`;
173
- const apiKey = process.env.MOONSHOT_API_KEY || "";
179
+ const apiKey = process.env.VISION_API_KEY || "";
174
180
  if (!apiKey) {
175
- throw new Error("MOONSHOT_API_KEY 未设置");
181
+ throw new Error("VISION_API_KEY 未设置");
176
182
  }
177
183
  const key = hashImage(base64Data);
178
184
  const pending = pendingImageDescriptions.get(key);
@@ -187,7 +193,7 @@ async function describeImage(base64Data, mimeType, signal) {
187
193
  };
188
194
  task.promise = (async () => {
189
195
  try {
190
- const response = await callMoonshot({
196
+ const response = await callVision({
191
197
  apiKey,
192
198
  messages: [
193
199
  {
@@ -203,7 +209,7 @@ async function describeImage(base64Data, mimeType, signal) {
203
209
  });
204
210
  const description = response.choices?.[0]?.message?.content || "";
205
211
  if (!description) {
206
- throw new Error("Moonshot API 返回空内容");
212
+ throw new Error("视觉模型 API 返回空内容");
207
213
  }
208
214
  setCachedDescription(base64Data, description);
209
215
  return description;
@@ -506,7 +512,7 @@ export function startImageProxy() {
506
512
  const server = http.createServer(async (req, res) => {
507
513
  const reqStart = Date.now();
508
514
  // Claude Code 中断/重试时立即取消本轮代理工作,避免旧请求继续占用
509
- // Moonshot 调用或上游流式连接。
515
+ // 视觉模型 调用或上游流式连接。
510
516
  const requestController = new AbortController();
511
517
  const abortRequest = () => {
512
518
  if (!res.writableEnded) {
@@ -1 +1 @@
1
- {"version":3,"file":"imageProxy.js","sourceRoot":"","sources":["../../src/proxy/imageProxy.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"imageProxy.js","sourceRoot":"","sources":["../../src/proxy/imageProxy.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import type { VisionChatResponse, VisionMessage } from "../types.js";
2
+ export interface CallVisionParams {
3
+ apiKey: string;
4
+ model?: string;
5
+ messages: VisionMessage[];
6
+ maxTokens?: number;
7
+ signal?: AbortSignal;
8
+ }
9
+ export declare function handleVisionError(error: unknown): string;
10
+ export declare function callVision(params: CallVisionParams): Promise<VisionChatResponse>;
@@ -13,8 +13,14 @@ try {
13
13
  catch {
14
14
  // 日志不可写不影响正常调用。
15
15
  }
16
- function logMoonshot(msg) {
17
- const line = `[${new Date().toISOString()}] ${msg}\n`;
16
+ function nowLocal() {
17
+ const d = new Date();
18
+ const pad = (n, l = 2) => String(n).padStart(l, "0");
19
+ return (`${d.getFullYear()}-${pad(d.getMonth() + 1)}-${pad(d.getDate())} ` +
20
+ `${pad(d.getHours())}:${pad(d.getMinutes())}:${pad(d.getSeconds())}.${pad(d.getMilliseconds(), 3)}`);
21
+ }
22
+ function logVision(msg) {
23
+ const line = `[${nowLocal()}] ${msg}\n`;
18
24
  console.error(line.trim());
19
25
  fs.stat(LOG_FILE, (statErr, stats) => {
20
26
  if (statErr || stats.size < LOG_MAX_SIZE) {
@@ -25,7 +31,7 @@ function logMoonshot(msg) {
25
31
  }
26
32
  });
27
33
  }
28
- export function handleMoonshotError(error) {
34
+ export function handleVisionError(error) {
29
35
  if (error instanceof AxiosError) {
30
36
  if (error.response) {
31
37
  const status = error.response.status;
@@ -33,32 +39,32 @@ export function handleMoonshotError(error) {
33
39
  const errMsg = data?.error?.message;
34
40
  switch (status) {
35
41
  case 401:
36
- return `Error: Moonshot API 鉴权失败 (401)。请检查 MOONSHOT_API_KEY 是否正确。${errMsg ? ` 详情: ${errMsg}` : ""}`;
42
+ return `Error: 视觉模型 API 鉴权失败 (401)。请检查 VISION_API_KEY 是否正确。${errMsg ? ` 详情: ${errMsg}` : ""}`;
37
43
  case 403:
38
- return `Error: Moonshot API 拒绝访问 (403)。可能是 API key 无权限调用该模型。${errMsg ? ` 详情: ${errMsg}` : ""}`;
44
+ return `Error: 视觉模型 API 拒绝访问 (403)。可能是 API key 无权限调用该模型。${errMsg ? ` 详情: ${errMsg}` : ""}`;
39
45
  case 404:
40
- return `Error: Moonshot API 模型不存在 (404)。请检查模型名是否正确 (当前: ${DEFAULT_MODEL})。${errMsg ? ` 详情: ${errMsg}` : ""}`;
46
+ return `Error: 视觉模型 API 模型不存在 (404)。请检查模型名是否正确 (当前: ${DEFAULT_MODEL})。${errMsg ? ` 详情: ${errMsg}` : ""}`;
41
47
  case 429:
42
- return `Error: Moonshot API 限流 (429)。请稍后重试。${errMsg ? ` 详情: ${errMsg}` : ""}`;
48
+ return `Error: 视觉模型 API 限流 (429)。请稍后重试。${errMsg ? ` 详情: ${errMsg}` : ""}`;
43
49
  case 500:
44
50
  case 502:
45
51
  case 503:
46
- return `Error: Moonshot API 服务端错误 (${status})。请稍后重试。${errMsg ? ` 详情: ${errMsg}` : ""}`;
52
+ return `Error: 视觉模型 API 服务端错误 (${status})。请稍后重试。${errMsg ? ` 详情: ${errMsg}` : ""}`;
47
53
  default:
48
- return `Error: Moonshot API 请求失败 (HTTP ${status})。${errMsg ? ` 详情: ${errMsg}` : ""}`;
54
+ return `Error: 视觉模型 API 请求失败 (HTTP ${status})。${errMsg ? ` 详情: ${errMsg}` : ""}`;
49
55
  }
50
56
  }
51
57
  if (error.code === "ECONNABORTED") {
52
- return `Error: Moonshot API 请求超时 (${REQUEST_TIMEOUT_MS}ms)。请稍后重试。`;
58
+ return `Error: 视觉模型 API 请求超时 (${REQUEST_TIMEOUT_MS}ms)。请稍后重试。`;
53
59
  }
54
60
  if (error.code === "ENOTFOUND" || error.code === "ECONNREFUSED") {
55
- return `Error: 无法连接 Moonshot API (${error.code})。请检查网络。`;
61
+ return `Error: 无法连接视觉模型 API (${error.code})。请检查网络。`;
56
62
  }
57
63
  if (error.code === "ERR_CANCELED" || error.message === "canceled") {
58
- return "Error: Moonshot API 请求已取消。";
64
+ return "Error: 视觉模型 API 请求已取消。";
59
65
  }
60
66
  }
61
- return `Error: 调用 Moonshot API 时发生意外错误: ${error instanceof Error ? error.message : String(error)}`;
67
+ return `Error: 调用视觉模型 API 时发生意外错误: ${error instanceof Error ? error.message : String(error)}`;
62
68
  }
63
69
  const MAX_RETRIES = 2;
64
70
  const INITIAL_RETRY_DELAY_MS = 1000;
@@ -97,19 +103,19 @@ function sleep(ms, signal) {
97
103
  if (!signal)
98
104
  return new Promise((resolve) => setTimeout(resolve, ms));
99
105
  if (signal.aborted)
100
- return Promise.reject(new Error("Moonshot API 请求已取消"));
106
+ return Promise.reject(new Error("视觉模型 API 请求已取消"));
101
107
  return new Promise((resolve, reject) => {
102
108
  const timer = setTimeout(resolve, ms);
103
109
  signal.addEventListener("abort", () => {
104
110
  clearTimeout(timer);
105
- reject(new Error("Moonshot API 请求已取消"));
111
+ reject(new Error("视觉模型 API 请求已取消"));
106
112
  }, { once: true });
107
113
  });
108
114
  }
109
- export async function callMoonshot(params) {
115
+ export async function callVision(params) {
110
116
  const { apiKey, model = DEFAULT_MODEL, messages, maxTokens = 2048, signal } = params;
111
117
  if (!apiKey) {
112
- throw new Error("MOONSHOT_API_KEY 未设置");
118
+ throw new Error("VISION_API_KEY 未设置");
113
119
  }
114
120
  const requestUrl = `${API_BASE_URL}/chat/completions`;
115
121
  const requestSummary = {
@@ -120,7 +126,7 @@ export async function callMoonshot(params) {
120
126
  content: summarizeContent(message.content),
121
127
  })),
122
128
  };
123
- logMoonshot(`[Moonshot] POST ${requestUrl} body=${JSON.stringify(requestSummary)}`);
129
+ logVision(`[Vision] POST ${requestUrl} body=${JSON.stringify(requestSummary)}`);
124
130
  let lastError;
125
131
  for (let attempt = 0; attempt <= MAX_RETRIES; attempt++) {
126
132
  try {
@@ -151,4 +157,4 @@ export async function callMoonshot(params) {
151
157
  }
152
158
  throw lastError;
153
159
  }
154
- //# sourceMappingURL=moonshot.js.map
160
+ //# sourceMappingURL=vision.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vision.js","sourceRoot":"","sources":["../../src/services/vision.ts"],"names":[],"mappings":"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"}
@@ -1,13 +1,13 @@
1
1
  import { DescribeImageInputSchema } from "../schemas.js";
2
2
  import { DEFAULT_MODEL, CHARACTER_LIMIT } from "../constants.js";
3
3
  import { loadImageAsDataUrl } from "../services/image.js";
4
- import { callMoonshot, handleMoonshotError } from "../services/moonshot.js";
4
+ import { callVision, handleVisionError } from "../services/vision.js";
5
5
  export function registerDescribeImageTool(server, getApiKey) {
6
- server.registerTool("kimi_describe_image", {
7
- title: "Kimi 识图",
8
- description: `使用 Moonshot Kimi 视觉模型 (kimi-k2.6) 识别图片并返回文本描述。
6
+ server.registerTool("vision_describe_image", {
7
+ title: "视觉识图",
8
+ description: `使用视觉模型识别图片并返回文本描述。支持任意 OpenAI 兼容的视觉模型(火山方舟豆包、Kimi、智谱 GLM-4V、通义 Qwen-VL、OpenAI GPT-4o 等)。
9
9
 
10
- 支持输入本地图片路径或 http(s):// 图片 URL。MCP 内部会自动将图片转换为 base64 后调用 Moonshot API(Moonshot 不支持直接传 URL)。
10
+ 支持输入本地图片路径或 http(s):// 图片 URL。MCP 内部会自动将图片转换为 base64 后调用视觉模型 API(多数视觉模型不支持直接传 URL)。
11
11
 
12
12
  Args:
13
13
  - image (string, 必填): 图片路径或 URL。
@@ -28,8 +28,8 @@ Examples:
28
28
  Error Handling:
29
29
  - "无法访问本地文件": 文件路径错误或无权限
30
30
  - "下载图片失败": URL 无法访问或超时
31
- - "Moonshot API 鉴权失败 (401)": API key 错误
32
- - "Moonshot API 限流 (429)": 请求过于频繁,请稍后重试`,
31
+ - "视觉模型 API 鉴权失败 (401)": API key 错误
32
+ - "视觉模型 API 限流 (429)": 请求过于频繁,请稍后重试`,
33
33
  inputSchema: DescribeImageInputSchema,
34
34
  annotations: {
35
35
  readOnlyHint: true,
@@ -54,16 +54,16 @@ Error Handling:
54
54
  ],
55
55
  };
56
56
  }
57
- // 2. 构造 Moonshot 请求
57
+ // 2. 构造视觉模型请求
58
58
  const content = [
59
59
  { type: "image_url", image_url: { url: imageResult.dataUrl } },
60
60
  { type: "text", text: params.prompt },
61
61
  ];
62
62
  const messages = [{ role: "user", content }];
63
- // 3. 调用 Moonshot API
63
+ // 3. 调用视觉模型 API
64
64
  let response;
65
65
  try {
66
- response = await callMoonshot({
66
+ response = await callVision({
67
67
  apiKey,
68
68
  model: DEFAULT_MODEL,
69
69
  messages,
@@ -72,7 +72,7 @@ Error Handling:
72
72
  }
73
73
  catch (err) {
74
74
  return {
75
- content: [{ type: "text", text: handleMoonshotError(err) }],
75
+ content: [{ type: "text", text: handleVisionError(err) }],
76
76
  };
77
77
  }
78
78
  // 4. 提取描述
@@ -82,7 +82,7 @@ Error Handling:
82
82
  content: [
83
83
  {
84
84
  type: "text",
85
- text: `Error: Moonshot API 返回空内容。完整响应: ${JSON.stringify(response)}`,
85
+ text: `Error: 视觉模型 API 返回空内容。完整响应: ${JSON.stringify(response)}`,
86
86
  },
87
87
  ],
88
88
  };
@@ -1 +1 @@
1
- {"version":3,"file":"describeImage.js","sourceRoot":"","sources":["../../src/tools/describeImage.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"describeImage.js","sourceRoot":"","sources":["../../src/tools/describeImage.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -1,19 +1,19 @@
1
- export interface MoonshotImageContent {
1
+ export interface VisionImageContent {
2
2
  type: "image_url";
3
3
  image_url: {
4
4
  url: string;
5
5
  };
6
6
  }
7
- export interface MoonshotTextContent {
7
+ export interface VisionTextContent {
8
8
  type: "text";
9
9
  text: string;
10
10
  }
11
- export type MoonshotContent = MoonshotImageContent | MoonshotTextContent;
12
- export interface MoonshotMessage {
11
+ export type VisionContent = VisionImageContent | VisionTextContent;
12
+ export interface VisionMessage {
13
13
  role: "user" | "assistant" | "system";
14
- content: string | MoonshotContent[];
14
+ content: string | VisionContent[];
15
15
  }
16
- export interface MoonshotChoice {
16
+ export interface VisionChoice {
17
17
  index: number;
18
18
  message: {
19
19
  role: string;
@@ -21,18 +21,18 @@ export interface MoonshotChoice {
21
21
  };
22
22
  finish_reason: string;
23
23
  }
24
- export interface MoonshotUsage {
24
+ export interface VisionUsage {
25
25
  prompt_tokens: number;
26
26
  completion_tokens: number;
27
27
  total_tokens: number;
28
28
  }
29
- export interface MoonshotChatResponse {
29
+ export interface VisionChatResponse {
30
30
  id: string;
31
31
  object: string;
32
32
  created: number;
33
33
  model: string;
34
- choices: MoonshotChoice[];
35
- usage: MoonshotUsage;
34
+ choices: VisionChoice[];
35
+ usage: VisionUsage;
36
36
  }
37
37
  export interface ImageLoadResult {
38
38
  dataUrl: string;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "image-vision-mcp",
3
- "version": "1.0.2",
3
+ "version": "1.0.3",
4
4
  "description": "MCP server for image recognition via vision models (extensible to multiple providers), with an HTTP image-intercepting proxy that lets text-only LLMs accept image input in Claude Code.",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -38,8 +38,8 @@
38
38
  "claude-code",
39
39
  "vision",
40
40
  "image-recognition",
41
- "moonshot",
42
- "kimi",
41
+ "vision-model",
42
+ "doubao",
43
43
  "anthropic"
44
44
  ],
45
45
  "dependencies": {
@@ -1,10 +0,0 @@
1
- import type { MoonshotChatResponse, MoonshotMessage } from "../types.js";
2
- export interface CallMoonshotParams {
3
- apiKey: string;
4
- model?: string;
5
- messages: MoonshotMessage[];
6
- maxTokens?: number;
7
- signal?: AbortSignal;
8
- }
9
- export declare function handleMoonshotError(error: unknown): string;
10
- export declare function callMoonshot(params: CallMoonshotParams): Promise<MoonshotChatResponse>;
@@ -1 +0,0 @@
1
- {"version":3,"file":"moonshot.js","sourceRoot":"","sources":["../../src/services/moonshot.ts"],"names":[],"mappings":"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"}