@avclabs.ai/media-mcp 0.1.1 → 0.2.0

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
@@ -11,15 +11,19 @@
11
11
  ## 功能
12
12
 
13
13
  提供以下 MCP Tools:
14
+
15
+ **视频增强**
14
16
  - `create_task` - 创建视频增强任务(支持 URL 或本地文件上传)
15
17
  - `get_task_status` - 查询任务状态
16
- - `enhance_video_sync` - 同步增强视频(阻塞等待完成)
18
+ - `enhance_video_sync` - 同步增强视频(阻塞等待,默认50秒截断)
19
+
20
+ **图像分割 (SAM3)**
17
21
  - `sam3_predict` - SAM3 图像分割(支持本地路径、URL 或 Base64 图片)
18
22
 
19
23
  ## 前置要求
20
24
 
21
- - **Node.js >= 18**(检查:`node --version`)
22
- - **API Key**(用于身份认证,请联系服务提供方获取)
25
+ - **Node.js >= 18** (检查:`node --version`)
26
+ - **API Key** (用于身份认证,请联系服务提供方获取)
23
27
 
24
28
  ## 懒人安装(推荐)
25
29
 
@@ -81,7 +85,7 @@ AI 会自动完成:
81
85
  - **Type**:`command`
82
86
  - **Command**:
83
87
  ```bash
84
- env HTTP_API_KEY=your-api-key npx -y @avclabs.ai/media-mcp@latest
88
+ env API_KEY=your-api-key npx -y @avclabs.ai/media-mcp@latest
85
89
  ```
86
90
 
87
91
  或编辑 `~/.cursor/mcp.json`:
@@ -114,8 +118,8 @@ AI 会自动完成:
114
118
  | `API_KEY` | **是** | - | API 认证密钥(视频增强和 SAM3 共用) |
115
119
  | `HTTP_API_BASE_URL` | 否 | `https://mcp.avc.ai/enhance` | 视频增强服务接口地址 |
116
120
  | `SAM3_API_BASE_URL` | 否 | `https://mcp.avc.ai/sam` | SAM3 服务接口地址 |
117
- | `SAM3_POLL_INTERVAL` | 否 | `2000` | 轮询间隔(毫秒) |
118
- | `SAM3_POLL_MAX_ATTEMPTS` | 否 | `60` | 最大轮询次数 |
121
+ | `SAM3_POLL_INTERVAL` | 否 | `2000` | SAM3 轮询间隔(毫秒) |
122
+ | `SAM3_POLL_MAX_ATTEMPTS` | 否 | `25` | SAM3 最大轮询次数 |
119
123
 
120
124
  ### 自定义服务地址
121
125
 
@@ -124,16 +128,45 @@ AI 会自动完成:
124
128
  "env": {
125
129
  "HTTP_API_BASE_URL": "https://your-endpoint.com",
126
130
  "API_KEY": "your-api-key",
127
- "SAM3_API_BASE_URL": "http://localhost:8001"
131
+ "SAM3_API_BASE_URL": "https://your-sam3-endpoint.com"
128
132
  }
129
133
  }
130
134
  ```
131
135
 
132
136
  或通过命令行参数:
133
137
  ```bash
134
- npx -y @avclabs.ai/media-mcp@latest --base-url https://your-endpoint.com --api-key your-api-key --sam3-base-url http://localhost:8001
138
+ npx -y @avclabs.ai/media-mcp@latest --base-url https://your-endpoint.com --api-key your-api-key --sam3-base-url https://your-sam3-endpoint.com
135
139
  ```
136
140
 
141
+ ## 推荐的工作流程
142
+
143
+ 本项目提供了**同步**和**异步**两种模式。
144
+
145
+ **由于 MCP Agent 对单个 tool 调用通常有约 60 秒的超时限制**,处理时间较长的任务(视频增强)强烈建议使用**异步模式**:
146
+
147
+ ### 异步模式(推荐)
148
+
149
+ **视频增强**:
150
+ 1. 调用 `create_task` 创建任务 → 立即获得 `task_id`
151
+ 2. 等待几秒后,调用 `get_task_status` 查询状态
152
+ 3. 如果 `status` 为 `processing`,继续等待并重复步骤 2
153
+ 4. 如果 `status` 为 `completed`,任务完成,结果中包含 `video_url`
154
+ 5. 如果 `status` 为 `failed`,任务失败,结果中包含 `error_message`
155
+
156
+ ### 同步模式(简单场景)
157
+
158
+ **视频增强**:
159
+ - 调用 `enhance_video_sync` → 服务器内部自动轮询
160
+ - 默认最多等待50秒
161
+ - 如果50秒内完成,直接返回结果
162
+ - 如果50秒未完成,返回 `task_id` 和提示,让 Agent 切换到 `get_task_status` 继续查询
163
+
164
+ **图像分割 (SAM3)**:
165
+ - 调用 `sam3_predict` → 服务器内部自动轮询
166
+ - 默认最多等待50秒(25次 × 2秒轮询间隔)
167
+ - 如果50秒内完成,直接返回分割结果
168
+ - 如果50秒未完成,返回截断提示,告知任务仍在处理中
169
+
137
170
  ## 使用示例
138
171
 
139
172
  配置完成后,用自然语言对 AI 说:
@@ -142,19 +175,21 @@ npx -y @avclabs.ai/media-mcp@latest --base-url https://your-endpoint.com --api-k
142
175
 
143
176
  > "把我桌面的 video.mp4 提升到 2k 画质"
144
177
 
145
- AI 会自动调用相应工具完成任务。
178
+ > "帮我分析这张图片,找出里面的所有物体:C:\\Users\\xxx\\photo.png"
146
179
 
147
- > "帮我分析一下这张图片,找出里面的所有物体:C:\\Users\\xxx\\photo.png"
148
- >
149
180
  > "用 SAM3 分割这张图片,prompt 是 'find all cars'"
150
181
 
182
+ AI 会根据任务复杂度自动选择同步或异步工具完成任务。
183
+
151
184
  ## 提供的 Tools
152
185
 
153
- ### create_task
186
+ ### 视频增强
187
+
188
+ #### create_task
154
189
 
155
190
  创建视频增强任务(异步)。
156
191
 
157
- > **推荐使用**:适用于绝大多数场景,尤其是时长超过 10 秒的视频,可避免长时间阻塞连接。
192
+ > **推荐使用**:适用于绝大多数场景,尤其是时长超过10秒的视频,可避免超时和长时间阻塞连接。
158
193
 
159
194
  | 参数 | 类型 | 必填 | 默认值 | 说明 |
160
195
  |---|---|---|---|---|
@@ -167,13 +202,15 @@ AI 会自动调用相应工具完成任务。
167
202
  {
168
203
  "success": true,
169
204
  "task_id": "xxx",
170
- "status": "wait"
205
+ "status": "processing"
171
206
  }
172
207
  ```
173
208
 
174
- ### get_task_status
209
+ #### get_task_status
210
+
211
+ 查询视频增强任务状态。
175
212
 
176
- 查询任务状态。
213
+ > 返回值中的 `status` 字段可能为:`processing`(处理中)、`completed`(已完成)、`failed`(失败)。如果 `status` 为 `processing`,你需要等待几秒后再次调用此工具轮询。
177
214
 
178
215
  | 参数 | 类型 | 必填 |
179
216
  |---|---|---|
@@ -186,25 +223,41 @@ AI 会自动调用相应工具完成任务。
186
223
  "task_id": "xxx",
187
224
  "status": "completed",
188
225
  "progress": 100,
189
- "video_url": "https://..."
226
+ "video_url": "https://...",
227
+ "message": "任务仍在处理中,请稍后再查询"
190
228
  }
191
229
  ```
192
230
 
193
- ### enhance_video_sync
231
+ 其中 `message` 字段只在 `status` 为 `processing` 时出现,提示 Agent 继续等待。
232
+
233
+ #### enhance_video_sync
194
234
 
195
235
  同步增强视频(阻塞等待完成)。
196
236
 
197
- > **建议仅在视频时长较短(10 秒以内)时使用。** 长视频可能导致超时或长时间占用客户端连接。
237
+ > **仅适合短视频(预计处理时间 < 1 分钟)。** 如果任务在50秒内未完成,工具会提前返回并包含 `task_id`,你需要使用 `get_task_status` 继续查询。
198
238
 
199
239
  | 参数 | 类型 | 必填 | 默认值 | 说明 |
200
240
  |---|---|---|---|---|
201
- | `video_source` | string | 是 | - | 视频 URL 或本地文件路径(URL 必须公网可访问,不支持需要登录或签名的链接) |
241
+ | `video_source` | string | 是 | - | 视频 URL 或本地文件路径 |
202
242
  | `type` | string | 否 | `url` | `url` 或 `local` |
203
243
  | `resolution` | string | 否 | `720p` | 目标分辨率 |
204
244
  | `poll_interval` | number | 否 | `5` | 轮询间隔(秒) |
205
- | `timeout` | number | 否 | `600` | 超时时间(秒) |
245
+ | `timeout` | number | 否 | `50` | 同步等待超时时间(秒),超过后主动返回 |
206
246
 
207
- ### sam3_predict
247
+ **截断返回示例(50秒未完成):**
248
+ ```json
249
+ {
250
+ "success": true,
251
+ "status": "processing",
252
+ "task_id": "xxx",
253
+ "message": "任务仍在处理中(已等待 50 秒)。请使用 get_task_status 工具继续查询此任务状态。",
254
+ "note": "此工具对长任务的同步等待已被截断,请切换到 get_task_status 轮询模式。"
255
+ }
256
+ ```
257
+
258
+ ### 图像分割 (SAM3)
259
+
260
+ #### sam3_predict
208
261
 
209
262
  使用 SAM3 分割 API 分析图片,生成推理结果(masks、boxes、scores)。
210
263
 
@@ -228,9 +281,9 @@ AI 会自动调用相应工具完成任务。
228
281
 
229
282
  其他参数:
230
283
 
231
- - `prompt` (string, required): 英文文本提示,用于指定要在图片中分割的目标物体。例如 `"person"`、`"car"`、`"a cat sitting on a sofa"`。由于 SAM3 模型仅接受英文 prompt,建议传入英文描述。如果用户提供中文或其他非英文文本,Agent 会自动翻译为英文后调用。
284
+ - `prompt` (string, required): 英文文本提示,用于指定要在图片中分割的目标物体。由于 SAM3 模型仅接受英文 prompt,建议传入英文描述。如果用户提供中文或其他非英文文本,Agent 会自动翻译为英文后调用。
232
285
 
233
- **返回:**
286
+ **正常完成返回:**
234
287
 
235
288
  推理完成后,直接返回 JSON 字符串。该 JSON 包含以下三个字段:
236
289
 
@@ -256,8 +309,37 @@ AI 会自动调用相应工具完成任务。
256
309
  }
257
310
  ```
258
311
 
312
+ **截断返回示例(50秒未完成):**
313
+ ```json
314
+ {
315
+ "success": true,
316
+ "status": "processing",
317
+ "task_id": "xxx",
318
+ "message": "Task is still processing (waited about 50 seconds). Please retry later or record this task_id for manual follow-up.",
319
+ "note": "The synchronous wait for this long-running task has been truncated."
320
+ }
321
+ ```
322
+
259
323
  ## 常见问题
260
324
 
325
+ ### Agent 调用工具时报超时怎么办?
326
+
327
+ 这是本项目重点解决的问题。MCP Agent(如 Claude、Cursor)对单个 tool 调用通常有约 60 秒的超时限制。如果任务处理时间超过此限制,Agent 会报错并切断连接。
328
+
329
+ **解决方案:**
330
+
331
+ 1. **优先使用异步工具**:对于视频增强等耗时任务,始终使用 `create_task` + `get_task_status`。这些工具每次调用都是瞬间返回的,不会触发超时。
332
+
333
+ 2. **同步工具的截断机制**:`enhance_video_sync` 已在内部设置了50秒的截断限制。如果任务未在50秒内完成,工具会主动返回 `task_id`,并提示 Agent 使用 `get_task_status` 继续跟进。
334
+
335
+ 3. **SAM3 的截断机制**:`sam3_predict` 默认轮询25次(约50秒),如果任务未完成会返回截断提示,告知任务仍在处理中。
336
+
337
+ 4. **调整 SAM3 轮询参数**(高级):如果你确定 SAM3 任务通常很快(例如10秒内),可以通过环境变量增加轮询次数:
338
+ ```bash
339
+ SAM3_POLL_MAX_ATTEMPTS=60
340
+ ```
341
+ 但请确保总等待时间不超过 Agent 的超时限制。
342
+
261
343
  ### 拖拽附件后提示找不到文件?
262
344
 
263
345
  这是 stdio MCP 的已知限制。当通过 Agent 界面拖拽或上传附件时,文件路径通常不会自动传给 MCP Server。
@@ -320,7 +402,7 @@ API Key 缺失,请检查配置中的 `env.API_KEY`。
320
402
 
321
403
  ### "TOS 上传失败"
322
404
 
323
- 通常是签名不匹配,请确认 `HTTP_API_BASE_URL` 和 `HTTP_API_KEY` 正确且有效。
405
+ 通常是签名不匹配,请确认 `HTTP_API_BASE_URL` 和 `API_KEY` 正确且有效。
324
406
 
325
407
  ## 全局安装(可选)
326
408
 
package/README_EN.md CHANGED
@@ -11,9 +11,13 @@ A video enhancement and image segmentation service based on the MCP protocol, ac
11
11
  ## Features
12
12
 
13
13
  Provides the following MCP Tools:
14
+
15
+ **Video Enhancement**
14
16
  - `create_task` - Create a video enhancement task (supports URL or local file upload)
15
17
  - `get_task_status` - Query task status
16
- - `enhance_video_sync` - Synchronously enhance video (blocking wait)
18
+ - `enhance_video_sync` - Synchronously enhance video (blocking wait, truncated at ~50s by default)
19
+
20
+ **Image Segmentation (SAM3)**
17
21
  - `sam3_predict` - SAM3 image segmentation (supports local path, URL, or Base64 image)
18
22
 
19
23
  ## Prerequisites
@@ -81,7 +85,7 @@ Go to **Settings > Tools & MCPs > Add New MCP Server**:
81
85
  - **Type**: `command`
82
86
  - **Command**:
83
87
  ```bash
84
- env HTTP_API_KEY=your-api-key npx -y @avclabs.ai/media-mcp@latest
88
+ env API_KEY=your-api-key npx -y @avclabs.ai/media-mcp@latest
85
89
  ```
86
90
 
87
91
  Or edit `~/.cursor/mcp.json`:
@@ -114,8 +118,8 @@ After restarting your client, check if the tools are available:
114
118
  | `API_KEY` | **Yes** | - | API authentication key (shared by video enhancement and SAM3) |
115
119
  | `HTTP_API_BASE_URL` | No | `https://mcp.avc.ai/enhance` | Video enhancement service endpoint |
116
120
  | `SAM3_API_BASE_URL` | No | `https://mcp.avc.ai/sam` | SAM3 service endpoint |
117
- | `SAM3_POLL_INTERVAL` | No | `2000` | Polling interval (milliseconds) |
118
- | `SAM3_POLL_MAX_ATTEMPTS` | No | `60` | Maximum polling attempts |
121
+ | `SAM3_POLL_INTERVAL` | No | `2000` | SAM3 polling interval (milliseconds) |
122
+ | `SAM3_POLL_MAX_ATTEMPTS` | No | `25` | SAM3 maximum polling attempts |
119
123
 
120
124
  ### Custom Endpoint
121
125
 
@@ -123,16 +127,46 @@ After restarting your client, check if the tools are available:
123
127
  {
124
128
  "env": {
125
129
  "HTTP_API_BASE_URL": "https://your-endpoint.com",
126
- "HTTP_API_KEY": "your-api-key"
130
+ "API_KEY": "your-api-key",
131
+ "SAM3_API_BASE_URL": "https://your-sam3-endpoint.com"
127
132
  }
128
133
  }
129
134
  ```
130
135
 
131
136
  Or via CLI args:
132
137
  ```bash
133
- npx -y @avclabs.ai/media-mcp@latest --base-url https://your-endpoint.com --api-key your-api-key --sam3-base-url http://localhost:8001 --sam3-api-key your-sam3-key
138
+ npx -y @avclabs.ai/media-mcp@latest --base-url https://your-endpoint.com --api-key your-api-key --sam3-base-url https://your-sam3-endpoint.com
134
139
  ```
135
140
 
141
+ ## Recommended Workflow
142
+
143
+ This project provides both **synchronous** and **asynchronous** modes.
144
+
145
+ **Because MCP Agents typically enforce a ~60-second timeout per tool call**, tasks with longer processing times (video enhancement) are strongly recommended to use **asynchronous mode**:
146
+
147
+ ### Asynchronous Mode (Recommended)
148
+
149
+ **Video Enhancement:**
150
+ 1. Call `create_task` to create a task → immediately get `task_id`
151
+ 2. Wait a few seconds, then call `get_task_status` to query the status
152
+ 3. If `status` is `processing`, continue waiting and repeat step 2
153
+ 4. If `status` is `completed`, the task is done and the result contains `video_url`
154
+ 5. If `status` is `failed`, the task failed and the result contains `error_message`
155
+
156
+ ### Synchronous Mode (Simple Scenarios)
157
+
158
+ **Video Enhancement:**
159
+ - Call `enhance_video_sync` → the server polls internally
160
+ - Defaults to a maximum wait of 50 seconds
161
+ - If completed within 50 seconds, returns the result directly
162
+ - If not completed within 50 seconds, returns `task_id` and instructions for the Agent to switch to `get_task_status`
163
+
164
+ **Image Segmentation (SAM3):**
165
+ - Call `sam3_predict` → the server polls internally
166
+ - Defaults to a maximum wait of 50 seconds (25 attempts × 2-second polling interval)
167
+ - If completed within 50 seconds, returns the segmentation result directly
168
+ - If not completed within 50 seconds, returns a truncation notice indicating the task is still processing
169
+
136
170
  ## Usage Examples
137
171
 
138
172
  Once configured, ask your AI agent naturally:
@@ -141,19 +175,21 @@ Once configured, ask your AI agent naturally:
141
175
 
142
176
  > "Improve the quality of /Users/me/Desktop/video.mp4 to 2k"
143
177
 
144
- The agent will automatically call the appropriate tools.
178
+ > "Analyze this image and find all objects: C:\\Users\\xxx\\photo.png"
145
179
 
146
- > "Analyze this image and find all objects: C:\Users\xxx\photo.png"
147
- >
148
180
  > "Use SAM3 to segment this image, prompt: 'find all cars'"
149
181
 
182
+ The agent will automatically choose sync or async tools based on task complexity.
183
+
150
184
  ## Provided Tools
151
185
 
152
- ### create_task
186
+ ### Video Enhancement
187
+
188
+ #### create_task
153
189
 
154
190
  Create an asynchronous video enhancement task.
155
191
 
156
- > **Recommended for most use cases.** Ideal for longer videos (over 10 seconds) to avoid blocking the connection for an extended period.
192
+ > **Recommended for most use cases.** Ideal for longer videos (over 10 seconds) to avoid timeouts and blocking the connection.
157
193
 
158
194
  | Parameter | Type | Required | Default | Description |
159
195
  |---|---|---|---|---|
@@ -166,13 +202,15 @@ Create an asynchronous video enhancement task.
166
202
  {
167
203
  "success": true,
168
204
  "task_id": "xxx",
169
- "status": "wait"
205
+ "status": "processing"
170
206
  }
171
207
  ```
172
208
 
173
- ### get_task_status
209
+ #### get_task_status
210
+
211
+ Query video enhancement task status.
174
212
 
175
- Query task status.
213
+ > The returned `status` field can be: `processing`, `completed`, or `failed`. If `status` is `processing`, you need to wait a few seconds and call this tool again.
176
214
 
177
215
  | Parameter | Type | Required |
178
216
  |---|---|---|
@@ -185,25 +223,41 @@ Query task status.
185
223
  "task_id": "xxx",
186
224
  "status": "completed",
187
225
  "progress": 100,
188
- "video_url": "https://..."
226
+ "video_url": "https://...",
227
+ "message": "任务仍在处理中,请稍后再查询"
189
228
  }
190
229
  ```
191
230
 
192
- ### enhance_video_sync
231
+ The `message` field only appears when `status` is `processing`, prompting the Agent to continue waiting.
232
+
233
+ #### enhance_video_sync
193
234
 
194
235
  Synchronously enhance video (blocks until completion).
195
236
 
196
- > **Best for short videos (under 10 seconds).** Long videos may cause timeouts or keep the client connection occupied.
237
+ > **Best for short videos (estimated processing time < 1 minute).** If the task is not completed within 50 seconds, the tool returns early with a `task_id`, and you need to use `get_task_status` to continue querying.
197
238
 
198
239
  | Parameter | Type | Required | Default | Description |
199
240
  |---|---|---|---|---|
200
- | `video_source` | string | Yes | - | Video URL or local file path (URL must be publicly accessible, links requiring login or signatures are not supported) |
241
+ | `video_source` | string | Yes | - | Video URL or local file path |
201
242
  | `type` | string | No | `url` | `url` or `local` |
202
243
  | `resolution` | string | No | `720p` | Target resolution |
203
244
  | `poll_interval` | number | No | `5` | Poll interval (seconds) |
204
- | `timeout` | number | No | `600` | Timeout (seconds) |
245
+ | `timeout` | number | No | `50` | Sync wait timeout (seconds), returns early when exceeded |
205
246
 
206
- ### sam3_predict
247
+ **Truncated return example (not completed within 50s):**
248
+ ```json
249
+ {
250
+ "success": true,
251
+ "status": "processing",
252
+ "task_id": "xxx",
253
+ "message": "任务仍在处理中(已等待 50 秒)。请使用 get_task_status 工具继续查询此任务状态。",
254
+ "note": "此工具对长任务的同步等待已被截断,请切换到 get_task_status 轮询模式。"
255
+ }
256
+ ```
257
+
258
+ ### Image Segmentation (SAM3)
259
+
260
+ #### sam3_predict
207
261
 
208
262
  Analyze an image using the SAM3 segmentation API to generate inference results (masks, boxes, scores).
209
263
 
@@ -211,7 +265,7 @@ Analyze an image using the SAM3 segmentation API to generate inference results (
211
265
 
212
266
  Image input (choose one, must provide exactly one):
213
267
 
214
- - `imagePath` (string): Absolute path of a local image file. Supports common formats (PNG, JPG, JPEG, BMP, WebP).
268
+ - `imagePath` (string): Absolute path of a local image file. Supports common formats (PNG, JPG, JPEG).
215
269
  - Example: `"C:\\Users\\xxx\\photo.png"`, `"/home/user/images/cat.jpg"`
216
270
  - Use when: The user explicitly provides a local file path
217
271
 
@@ -227,9 +281,9 @@ Image input (choose one, must provide exactly one):
227
281
 
228
282
  Other parameters:
229
283
 
230
- - `prompt` (string, required): English text prompt specifying the target object to segment. Examples: `"person"`, `"car"`, `"a cat sitting on a sofa"`. Since the SAM3 model only accepts English prompts, provide an English description. If the user provides Chinese or other non-English text, the Agent will automatically translate it before calling the tool.
284
+ - `prompt` (string, required): English text prompt specifying the target object to segment. Since the SAM3 model only accepts English prompts, provide an English description. If the user provides Chinese or other non-English text, the Agent will automatically translate it before calling the tool.
231
285
 
232
- **Returns:**
286
+ **Normal completion return:**
233
287
 
234
288
  After inference completes, returns a JSON string containing three fields:
235
289
 
@@ -255,15 +309,44 @@ Example result JSON:
255
309
  }
256
310
  ```
257
311
 
312
+ **Truncated return example (not completed within 50s):**
313
+ ```json
314
+ {
315
+ "success": true,
316
+ "status": "processing",
317
+ "task_id": "xxx",
318
+ "message": "Task is still processing (waited about 50 seconds). Please retry later or record this task_id for manual follow-up.",
319
+ "note": "The synchronous wait for this long-running task has been truncated."
320
+ }
321
+ ```
322
+
258
323
  ## FAQ
259
324
 
325
+ ### Agent reports timeout when calling tools?
326
+
327
+ This is the primary issue this project addresses. MCP Agents (such as Claude, Cursor) typically enforce a ~60-second timeout per tool call. If task processing exceeds this limit, the Agent will error and disconnect.
328
+
329
+ **Solutions:**
330
+
331
+ 1. **Prefer asynchronous tools**: For video enhancement and other time-consuming tasks, always use `create_task` + `get_task_status`. These tools return instantly on each call and will not trigger timeouts.
332
+
333
+ 2. **Sync tool truncation mechanism**: `enhance_video_sync` has an internal 50-second truncation limit. If the task is not completed within 50 seconds, the tool proactively returns a `task_id` and instructs the Agent to use `get_task_status` to follow up.
334
+
335
+ 3. **SAM3 truncation mechanism**: `sam3_predict` defaults to 25 polling attempts (~50 seconds). If the task is not completed, it returns a truncation notice indicating the task is still processing.
336
+
337
+ 4. **Adjust SAM3 polling parameters** (advanced): If you are confident that SAM3 tasks are usually fast (e.g., under 10 seconds), you can increase polling attempts via environment variable:
338
+ ```bash
339
+ SAM3_POLL_MAX_ATTEMPTS=60
340
+ ```
341
+ But ensure the total wait time does not exceed your Agent's timeout limit.
342
+
260
343
  ### Drag-and-drop attachment says file not found?
261
344
 
262
345
  This is a known limitation of stdio MCP. When dragging or uploading an attachment through the Agent interface, the file path is usually not automatically passed to the MCP Server.
263
346
 
264
347
  **Solutions:**
265
348
 
266
- 1. **Provide the path simultaneously** (recommended): After dragging the image,补充 the local absolute path in your message:
349
+ 1. **Provide the path simultaneously** (recommended): After dragging the image, add the local absolute path in your message:
267
350
  > "Please analyze this image `D:\\photos\\cat.jpg` and find the cat"
268
351
 
269
352
  2. **Wait for auto-encoding**: Claude may automatically encode the image as base64. If successful, no extra action is needed.
@@ -306,9 +389,9 @@ When `type` is `"local"`:
306
389
 
307
390
  Install Node.js >= 18: https://nodejs.org/
308
391
 
309
- ### "Error:需要提供 --api-key 或设置 HTTP_API_KEY"
392
+ ### "Error: 需要提供 --api-key 或设置 API_KEY"
310
393
 
311
- Your API Key is missing. Double-check the `env.HTTP_API_KEY` in your config.
394
+ Your API Key is missing. Double-check the `env.API_KEY` in your config.
312
395
 
313
396
  ### MCP Server shows red/error in client
314
397
 
@@ -317,9 +400,9 @@ Check logs:
317
400
  - **Claude Desktop Windows**: `%APPDATA%\Claude\logs\mcp*.log`
318
401
  - **Cursor**: Output panel > MCP
319
402
 
320
- ### "TOS 上传失败"
403
+ ### "TOS upload failed"
321
404
 
322
- Usually a signature mismatch. Ensure your `HTTP_API_BASE_URL` and `HTTP_API_KEY` are correct and active.
405
+ Usually a signature mismatch. Ensure your `HTTP_API_BASE_URL` and `API_KEY` are correct and active.
323
406
 
324
407
  ## Global Install (Alternative)
325
408
 
package/dist/sam3.js CHANGED
@@ -76,32 +76,15 @@ async function sam3Predict(client, fileId, prompt) {
76
76
  const response = await client.post('/predict', { file_id: fileId, prompt });
77
77
  return response.data.task_id;
78
78
  }
79
- async function getSam3PredictResult(client, taskId, pollInterval, pollMaxAttempts) {
80
- for (let attempt = 0; attempt < pollMaxAttempts; attempt++) {
81
- const response = await client.get(`/predict/result/${encodeURIComponent(taskId)}`);
82
- const data = response.data;
83
- if (data.status === 'completed') {
84
- return data;
85
- }
86
- if (data.status === 'failed') {
87
- throw new Error(`Task failed: ${data.error_message || 'unknown error'}`);
88
- }
89
- await sleep(pollInterval);
90
- }
91
- throw new Error('Polling timeout: task did not complete in time');
92
- }
93
79
  async function downloadSam3Result(url) {
94
80
  const response = await axios.get(url);
95
81
  return response.data;
96
82
  }
97
- async function sam3PredictTool(client, pollInterval, pollMaxAttempts, args) {
98
- const { imagePath, imageUrl, imageBase64, prompt } = args;
83
+ async function prepareImageBuffer(args) {
84
+ const { imagePath, imageUrl, imageBase64 } = args;
99
85
  if (!imagePath && !imageUrl && !imageBase64) {
100
86
  throw new Error('Missing image input: must provide one of imagePath, imageUrl, or imageBase64');
101
87
  }
102
- if (!prompt) {
103
- throw new Error('Missing argument: prompt');
104
- }
105
88
  let buffer;
106
89
  let fileName;
107
90
  if (imagePath) {
@@ -123,27 +106,57 @@ async function sam3PredictTool(client, pollInterval, pollMaxAttempts, args) {
123
106
  else {
124
107
  throw new Error('Missing image input: must provide one of imagePath, imageUrl, or imageBase64');
125
108
  }
126
- // Step 1: Get post signature
109
+ return { buffer, fileName };
110
+ }
111
+ async function sam3CreateTask(client, buffer, fileName, prompt) {
127
112
  const signatureData = await getSam3PostSignature(client, fileName);
128
113
  const { url, origin_policy } = signatureData;
129
114
  if (!url) {
130
115
  throw new Error('Missing upload URL in post signature response');
131
116
  }
132
- // Parse key from origin_policy
133
117
  const keyObj = JSON.parse(origin_policy).conditions.find((c) => 'key' in c);
134
118
  const tosKey = keyObj ? keyObj.key : new URL(url).pathname.slice(1);
135
- // Parse file_id from url path
136
119
  const fileId = new URL(url).pathname.split('/').pop();
137
120
  if (!fileId) {
138
121
  throw new Error('Could not extract file_id from upload URL');
139
122
  }
140
- // Step 2: Upload to TOS
141
123
  await uploadImageToTos(url, signatureData, tosKey, buffer, fileName);
142
- // Step 3: Create predict task
143
124
  const taskId = await sam3Predict(client, fileId, prompt);
144
- // Step 4: Poll for result
125
+ return taskId;
126
+ }
127
+ async function getSam3Result(client, taskId) {
128
+ const response = await client.get(`/predict/result/${encodeURIComponent(taskId)}`);
129
+ return response.data;
130
+ }
131
+ async function getSam3PredictResult(client, taskId, pollInterval, pollMaxAttempts) {
132
+ for (let attempt = 0; attempt < pollMaxAttempts; attempt++) {
133
+ const data = await getSam3Result(client, taskId);
134
+ if (data.status === 'completed') {
135
+ return data;
136
+ }
137
+ if (data.status === 'failed') {
138
+ throw new Error(`Task failed: ${data.error_message || 'unknown error'}`);
139
+ }
140
+ await sleep(pollInterval);
141
+ }
142
+ return {
143
+ success: true,
144
+ status: 'processing',
145
+ task_id: taskId,
146
+ message: `Task is still processing (waited about ${Math.round(pollMaxAttempts * pollInterval / 1000)} seconds). Please retry later or record this task_id for manual follow-up.`,
147
+ note: 'The synchronous wait for this long-running task has been truncated.',
148
+ };
149
+ }
150
+ async function sam3PredictTool(client, pollInterval, pollMaxAttempts, args) {
151
+ if (!args.prompt) {
152
+ throw new Error('Missing argument: prompt');
153
+ }
154
+ const { buffer, fileName } = await prepareImageBuffer(args);
155
+ const taskId = await sam3CreateTask(client, buffer, fileName, args.prompt);
145
156
  const taskResult = await getSam3PredictResult(client, taskId, pollInterval, pollMaxAttempts);
146
- // Step 5: Download result JSON and return as string
157
+ if (taskResult.success === true && taskResult.status === 'processing') {
158
+ return JSON.stringify(taskResult, null, 2);
159
+ }
147
160
  const resultUrl = taskResult.result;
148
161
  const resultJson = await downloadSam3Result(resultUrl);
149
162
  return JSON.stringify(resultJson, null, 2);
package/dist/sam3.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"sam3.js","sourceRoot":"","sources":["../src/sam3.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sam3.js","sourceRoot":"","sources":["../src/sam3.ts"],"names":[],"mappings":"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"}
package/dist/server.js CHANGED
@@ -41,7 +41,7 @@ async function main() {
41
41
  let sam3BaseUrl = process.env.SAM3_API_BASE_URL || config.sam3BaseUrl;
42
42
  let sam3ApiKey = apiKey;
43
43
  let sam3PollInterval = parseInt(process.env.SAM3_POLL_INTERVAL || '2000', 10);
44
- let sam3PollMaxAttempts = parseInt(process.env.SAM3_POLL_MAX_ATTEMPTS || '60', 10);
44
+ let sam3PollMaxAttempts = parseInt(process.env.SAM3_POLL_MAX_ATTEMPTS || '25', 10);
45
45
  // 解析命令行参数
46
46
  for (let i = 0; i < args.length; i++) {
47
47
  if (args[i] === '--base-url' && i + 1 < args.length) {
@@ -1 +1 @@
1
- {"version":3,"file":"video-enhancement.d.ts","sourceRoot":"","sources":["../src/video-enhancement.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AA0BpE,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAgGnG"}
1
+ {"version":3,"file":"video-enhancement.d.ts","sourceRoot":"","sources":["../src/video-enhancement.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AA0BpE,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAoGnG"}
@@ -17,7 +17,7 @@ const EnhanceVideoSyncSchema = z.object({
17
17
  type: z.enum(['url', 'local']).default('url').describe('上传类型:url=网络视频,local=本地文件'),
18
18
  resolution: z.enum(['480p', '540p', '720p', '1080p', '2k']).default('720p').describe('目标分辨率,默认720p'),
19
19
  poll_interval: z.number().default(5).describe('轮询间隔(秒),默认5'),
20
- timeout: z.number().default(600).describe('超时时间(秒),默认600'),
20
+ timeout: z.number().default(50).describe('同步等待的超时时间(秒),默认50。超过后工具会主动返回 task_id,请使用 get_task_status 继续查询'),
21
21
  });
22
22
  export function setupVideoEnhancementTools(server, baseUrl, apiKey) {
23
23
  const client = axios.create({
@@ -38,7 +38,9 @@ export function setupVideoEnhancementTools(server, baseUrl, apiKey) {
38
38
  参数说明:
39
39
  - video_source: 视频 URL 或本地文件路径
40
40
  - type: "url" 或 "local"
41
- - resolution: 目标分辨率`, CreateTaskSchema.shape, async (args) => {
41
+ - resolution: 目标分辨率
42
+
43
+ 创建任务后会立即返回 task_id。你需要使用 get_task_status 工具轮询查询任务结果,直到 status 变为 "completed" 或 "failed"。`, CreateTaskSchema.shape, async (args) => {
42
44
  try {
43
45
  const result = await createTask(client, args.video_source, args.type, args.resolution);
44
46
  return {
@@ -53,7 +55,7 @@ export function setupVideoEnhancementTools(server, baseUrl, apiKey) {
53
55
  }
54
56
  });
55
57
  // get_task_status tool
56
- server.tool('get_task_status', '查询视频增强任务状态', GetTaskStatusSchema.shape, async (args) => {
58
+ server.tool('get_task_status', '查询视频增强任务状态。返回值中的 status 字段可能为:processing(处理中)、completed(已完成)、failed(失败)。如果 status 为 processing,你需要等待几秒后再次调用此工具轮询。', GetTaskStatusSchema.shape, async (args) => {
57
59
  try {
58
60
  const result = await getTaskStatus(client, args.task_id);
59
61
  return {
@@ -79,7 +81,9 @@ export function setupVideoEnhancementTools(server, baseUrl, apiKey) {
79
81
  - type: "url" 或 "local"
80
82
  - resolution: 目标分辨率
81
83
  - poll_interval: 轮询间隔(秒)
82
- - timeout: 超时时间(秒)`, EnhanceVideoSyncSchema.shape, async (args) => {
84
+ - timeout: 同步等待的超时时间(秒),默认50
85
+
86
+ 此工具仅适合短视频(预计处理时间 < 1 分钟)。如果任务在 50 秒内未完成,工具会提前返回并包含 task_id,你需要使用 get_task_status 继续查询。`, EnhanceVideoSyncSchema.shape, async (args) => {
83
87
  try {
84
88
  const result = await enhanceVideoSync(client, args.video_source, args.type, args.resolution, args.poll_interval, args.timeout);
85
89
  return {
@@ -195,6 +199,7 @@ async function getTaskStatus(client, taskId) {
195
199
  error_message: result.error_message,
196
200
  created_at: result.created_at,
197
201
  updated_at: result.updated_at,
202
+ message: result.status === 'processing' ? '任务仍在处理中,请稍后再查询' : undefined,
198
203
  };
199
204
  }
200
205
  async function enhanceVideoSync(client, videoSource, sourceType, resolution, pollInterval, timeout) {
@@ -214,7 +219,13 @@ async function enhanceVideoSync(client, videoSource, sourceType, resolution, pol
214
219
  }
215
220
  const elapsed = (Date.now() - startTime) / 1000;
216
221
  if (elapsed >= timeout) {
217
- return { success: false, error: `任务超时: ${taskId}`, task_id: taskId };
222
+ return {
223
+ success: true,
224
+ status: 'processing',
225
+ task_id: taskId,
226
+ message: `任务仍在处理中(已等待 ${timeout} 秒)。请使用 get_task_status 工具继续查询此任务状态。`,
227
+ note: '此工具对长任务的同步等待已被截断,请切换到 get_task_status 轮询模式。',
228
+ };
218
229
  }
219
230
  await sleep(pollInterval * 1000);
220
231
  }
@@ -1 +1 @@
1
- {"version":3,"file":"video-enhancement.js","sourceRoot":"","sources":["../src/video-enhancement.ts"],"names":[],"mappings":"AACA,OAAO,KAAwB,MAAM,OAAO,CAAC;AAC7C,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,QAAQ,MAAM,WAAW,CAAC;AAEjC,UAAU;AACV,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IAChC,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,0CAA0C,CAAC;IAC7E,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,0BAA0B,CAAC;IAClF,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC;CACrG,CAAC,CAAC;AAEH,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IACnC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC;CACrC,CAAC,CAAC;AAEH,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC;IACtC,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,0CAA0C,CAAC;IAC7E,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,0BAA0B,CAAC;IAClF,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC;IACpG,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC;IAC5D,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,eAAe,CAAC;CAC3D,CAAC,CAAC;AAEH,MAAM,UAAU,0BAA0B,CAAC,MAAiB,EAAE,OAAe,EAAE,MAAc;IAC3F,MAAM,MAAM,GAAkB,KAAK,CAAC,MAAM,CAAC;QACzC,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;QACnC,OAAO,EAAE;YACP,eAAe,EAAE,UAAU,MAAM,EAAE;YACnC,cAAc,EAAE,kBAAkB;SACnC;QACD,OAAO,EAAE,KAAK;KACf,CAAC,CAAC;IAEH,mBAAmB;IACnB,MAAM,CAAC,IAAI,CACT,aAAa,EACb;;;;;;;;;oBASgB,EAChB,gBAAgB,CAAC,KAAK,EACtB,KAAK,EAAE,IAAI,EAAE,EAAE;QACb,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;YACvF,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;aACnE,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAC5E,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;aACpG,CAAC;QACJ,CAAC;IACH,CAAC,CACF,CAAC;IAEF,uBAAuB;IACvB,MAAM,CAAC,IAAI,CACT,iBAAiB,EACjB,YAAY,EACZ,mBAAmB,CAAC,KAAK,EACzB,KAAK,EAAE,IAAI,EAAE,EAAE;QACb,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;YACzD,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;aACnE,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAC5E,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;aACpG,CAAC;QACJ,CAAC;IACH,CAAC,CACF,CAAC;IAEF,0BAA0B;IAC1B,MAAM,CAAC,IAAI,CACT,oBAAoB,EACpB;;;;;;;;;;;mBAWe,EACf,sBAAsB,CAAC,KAAK,EAC5B,KAAK,EAAE,IAAI,EAAE,EAAE;QACb,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,gBAAgB,CACnC,MAAM,EACN,IAAI,CAAC,YAAY,EACjB,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,UAAU,EACf,IAAI,CAAC,aAAa,EAClB,IAAI,CAAC,OAAO,CACb,CAAC;YACF,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;aACnE,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAC5E,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;aACpG,CAAC;QACJ,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC;AAED,SAAS,cAAc,CAAC,QAAgB;IACtC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC7B,MAAM,IAAI,KAAK,CAAC,UAAU,QAAQ,EAAE,CAAC,CAAC;IACxC,CAAC;IACD,MAAM,KAAK,GAAG,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACpC,MAAM,OAAO,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,CAAC;IAClC,IAAI,KAAK,CAAC,IAAI,GAAG,OAAO,EAAE,CAAC;QACzB,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;IACrC,CAAC;IACD,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;AACzD,CAAC;AAED,KAAK,UAAU,eAAe,CAAC,MAAqB,EAAE,QAAgB;IACpE,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,4CAA4C,EAAE;QAC/E,SAAS,EAAE,OAAO;QAClB,SAAS,EAAE,QAAQ;KACpB,CAAC,CAAC;IACH,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;IAC3B,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,GAAG,EAAE,CAAC;QACzC,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,OAAO,IAAI,aAAa,CAAC,CAAC;IACjD,CAAC;IACD,OAAO,IAAI,CAAC,IAAI,CAAC;AACnB,CAAC;AAED,KAAK,UAAU,WAAW,CAAC,QAAgB,EAAE,aAAkB;IAC7D,MAAM,QAAQ,GAAG,IAAI,QAAQ,EAAE,CAAC;IAChC,MAAM,SAAS,GAAG,kBAAkB,CAAC,IAAI,GAAG,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IACnF,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;IAElC,MAAM,YAAY,GAA2B;QAC3C,SAAS,EAAE,iBAAiB;QAC5B,UAAU,EAAE,kBAAkB;QAC9B,IAAI,EAAE,YAAY;QAClB,SAAS,EAAE,iBAAiB;KAC7B,CAAC;IAEF,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,CAAC;QACzD,IAAI,GAAG,KAAK,KAAK,IAAI,GAAG,KAAK,eAAe;YAAE,SAAS;QACvD,MAAM,OAAO,GAAG,YAAY,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC;QACzC,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IAC1C,CAAC;IAED,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACzC,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC,gBAAgB,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC,CAAC;IAEjE,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,QAAQ,EAAE;QAC7D,OAAO,EAAE,QAAQ,CAAC,UAAU,EAAE;QAC9B,aAAa,EAAE,QAAQ;QACvB,gBAAgB,EAAE,QAAQ;KAC3B,CAAC,CAAC;IAEH,IAAI,QAAQ,CAAC,MAAM,IAAI,GAAG,EAAE,CAAC;QAC3B,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YAC/B,MAAM,EAAE,QAAQ,CAAC,MAAM;YACvB,UAAU,EAAE,QAAQ,CAAC,UAAU;YAC/B,IAAI,EAAE,QAAQ,CAAC,IAAI;YACnB,GAAG,EAAE,aAAa,CAAC,GAAG;YACtB,eAAe,EAAE,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC;YAC3C,QAAQ;YACR,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,IAAI;SACrC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,aAAa,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,UAAU,WAAW,SAAS,EAAE,CAAC,CAAC;IAC7F,CAAC;AACH,CAAC;AAED,SAAS,kBAAkB,CAAC,GAAW;IACrC,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC;IACvC,MAAM,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACrC,OAAO,kBAAkB,CAAC,QAAQ,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC;AAClD,CAAC;AAED,KAAK,UAAU,UAAU,CACvB,MAAqB,EACrB,WAAmB,EACnB,UAAkB,EAClB,UAAkB;IAElB,IAAI,WAAgB,CAAC;IAErB,IAAI,UAAU,KAAK,OAAO,EAAE,CAAC;QAC3B,MAAM,QAAQ,GAAG,cAAc,CAAC,WAAW,CAAC,CAAC;QAC7C,MAAM,aAAa,GAAG,MAAM,eAAe,CAAC,MAAM,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACvE,MAAM,WAAW,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;QAC9C,MAAM,MAAM,GAAG,kBAAkB,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;QACrD,WAAW,GAAG,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,CAAC,QAAQ,EAAE,CAAC;IACtF,CAAC;SAAM,CAAC;QACN,WAAW,GAAG,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,EAAE,GAAG,EAAE,WAAW,EAAE,EAAE,CAAC;IACvE,CAAC;IAED,MAAM,OAAO,GAAG,EAAE,KAAK,EAAE,aAAa,EAAE,OAAO,EAAE,CAAC,WAAW,CAAC,EAAE,UAAU,EAAE,CAAC;IAC7E,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,oCAAoC,EAAE,OAAO,CAAC,CAAC;IAClF,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;IAE3B,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,GAAG,EAAE,CAAC;QACzC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC;IACjD,CAAC;IACD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;AACjF,CAAC;AAED,KAAK,UAAU,aAAa,CAAC,MAAqB,EAAE,MAAc;IAChE,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,sCAAsC,MAAM,EAAE,CAAC,CAAC;IAClF,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;IAE3B,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,GAAG,EAAE,CAAC;QACzC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC;IACjD,CAAC;IAED,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC;IACzB,OAAO;QACL,OAAO,EAAE,IAAI;QACb,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,QAAQ,EAAE,MAAM,CAAC,QAAQ,IAAI,CAAC;QAC9B,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,sBAAsB,EAAE,MAAM,CAAC,SAAS,EAAE,MAAM;QAChD,oBAAoB,EAAE,MAAM,CAAC,SAAS;QACtC,aAAa,EAAE,MAAM,CAAC,aAAa;QACnC,UAAU,EAAE,MAAM,CAAC,UAAU;QAC7B,UAAU,EAAE,MAAM,CAAC,UAAU;KAC9B,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,gBAAgB,CAC7B,MAAqB,EACrB,WAAmB,EACnB,UAAkB,EAClB,UAAkB,EAClB,YAAoB,EACpB,OAAe;IAEf,MAAM,YAAY,GAAG,MAAM,UAAU,CAAC,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;IACnF,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC;QAC1B,OAAO,YAAY,CAAC;IACtB,CAAC;IAED,MAAM,MAAM,GAAG,YAAY,CAAC,OAAO,CAAC;IACpC,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC7B,OAAO,IAAI,EAAE,CAAC;QACZ,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACnD,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,OAAO,MAAM,CAAC;QAChB,CAAC;QACD,IAAI,MAAM,CAAC,MAAM,KAAK,WAAW,IAAI,MAAM,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;YAChE,OAAO,MAAM,CAAC;QAChB,CAAC;QACD,MAAM,OAAO,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC,GAAG,IAAI,CAAC;QAChD,IAAI,OAAO,IAAI,OAAO,EAAE,CAAC;YACvB,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,MAAM,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;QACvE,CAAC;QACD,MAAM,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC,CAAC;IACnC,CAAC;AACH,CAAC;AAED,SAAS,KAAK,CAAC,EAAU;IACvB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;AAC3D,CAAC"}
1
+ {"version":3,"file":"video-enhancement.js","sourceRoot":"","sources":["../src/video-enhancement.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "type": "module",
3
3
  "name": "@avclabs.ai/media-mcp",
4
- "version": "0.1.1",
4
+ "version": "0.2.0",
5
5
  "description": "MCP Server for video enhancement and image segmentation (SAM3)",
6
6
  "mcpName": "io.github.avclabs/media-mcp",
7
7
  "main": "dist/server.js",