Video Enhancement MCP Server
avc-test-js-mcp (Node.js)
English | 中文
A video enhancement, image enhancement, and image segmentation service based on the MCP protocol, acting as an MCP Client-Server to interact with backend HTTP Servers.
Features
Provides the following MCP Tools:
Video Enhancement
create_task- Create a video enhancement task (supports URL or local file upload)get_task_status- Query task statusenhance_video_sync- Synchronously enhance video (blocking wait, truncated at ~50s by default)
Image Enhancement
enhance_image_sync- Enhance image quality and optimize faces (supports URL or local file upload)colorize_image_sync- Colorize black-and-white photos (supports URL or local file upload)denoise_image_sync- Remove noise from images (supports URL or local file upload)get_image_task_status- Query image task status (for polling after sync timeout)
Image Segmentation (SAM3)
sam3_predict- SAM3 image segmentation (supports local path, URL, or Base64 image)get_sam3_task_status- Query SAM3 task status (for polling after sync timeout)
Related MCP server: avc-test-py-mcp
Prerequisites
Node.js >= 18 (check:
node --version)API Key (required for authentication)
Lazy Install (Recommended)
If your AI Agent has a known MCP config path, just copy the line below and send it to your AI:
Install the npm package avc-test-js-mcp as an MCP server. My API Key is: sk-xxxxxxxx.The AI will automatically:
Detect your MCP client
Find the config file path
Write the correct configuration
Prompt you to restart the client
Manual Install
No installation needed. Use npx directly in your MCP client config.
1. Claude Code (CLI)
Run in Claude Code:
/mcpCheck the output for the "User MCPs" section to find the config file path, then edit that file.
Common paths (if /mcp is unavailable):
Windows:
%USERPROFILE%\.claude.jsonmacOS:
~/.claude.jsonLinux:
~/.claude.jsonLegacy/Alternative:
~/.claude/mcp.json
Paste this (replace your-api-key):
{
"mcpServers": {
"video-enhancement": {
"command": "npx",
"args": ["-y", "avc-test-js-mcp@latest"],
"env": {
"API_KEY": "your-api-key"
}
}
}
}Save and run /mcp to verify it's loaded.
2. Cursor
Go to Settings > Tools & MCPs > Add New MCP Server:
Name:
video-enhancementType:
commandCommand:
env API_KEY=your-api-key npx -y avc-test-js-mcp@latest
Or edit ~/.cursor/mcp.json:
{
"mcpServers": {
"video-enhancement": {
"command": "npx",
"args": ["-y", "avc-test-js-mcp@latest"],
"env": {
"API_KEY": "your-api-key"
}
}
}
}Verify Installation
After restarting your client, check if the tools are available:
Ask: "What tools do you have available?"
You should see:
create_task,get_task_status,enhance_video_sync,enhance_image_sync,colorize_image_sync,denoise_image_sync,get_image_task_status,sam3_predict,get_sam3_task_status
Configuration Options
Variable | Required | Default | Description |
| Yes | - | API authentication key (shared by video enhancement and SAM3) |
| No |
| Video enhancement service endpoint |
| No |
| SAM3 service endpoint |
| No |
| SAM3 polling interval (milliseconds) |
| No |
| SAM3 maximum polling attempts |
Custom Endpoint
{
"env": {
"HTTP_API_BASE_URL": "https://your-endpoint.com",
"API_KEY": "your-api-key",
"SAM3_API_BASE_URL": "https://your-sam3-endpoint.com"
}
}Or via CLI args:
npx -y avc-test-js-mcp@latest --base-url https://your-endpoint.com --api-key your-api-key --sam3-base-url https://your-sam3-endpoint.comRecommended Workflow
This project provides both synchronous and asynchronous modes.
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:
Asynchronous Mode (Recommended)
Video Enhancement:
Call
create_taskto create a task → immediately gettask_idWait a few seconds, then call
get_task_statusto query the statusIf
statusisprocessing, continue waiting and repeat step 2If
statusiscompleted, the task is done and the result containsvideo_urlIf
statusisfailed, the task failed and the result containserror_message
Synchronous Mode (Simple Scenarios)
Video Enhancement:
Call
enhance_video_sync→ the server polls internallyDefaults to a maximum wait of 50 seconds
If completed within 50 seconds, returns the result directly
If not completed within 50 seconds, returns
task_idand instructions for the Agent to switch toget_task_status
Image Segmentation (SAM3):
Call
sam3_predict→ the server polls internallyDefaults to a maximum wait of 50 seconds (25 attempts × 2-second polling interval)
If completed within 50 seconds, returns the segmentation result directly
If not completed within 50 seconds, returns a truncation notice indicating the task is still processing
Usage Examples
Once configured, ask your AI agent naturally:
"Enhance this video to 1080p: https://example.com/video.mp4"
"Improve the quality of /Users/me/Desktop/video.mp4 to 2k"
"Enhance this image: https://example.com/photo.jpg"
"Colorize this black-and-white photo: /Users/me/Desktop/old_photo.png"
"Remove noise from this image: C:\Users\xxx\noisy.jpg"
"Analyze this image and find all objects: C:\Users\xxx\photo.png"
"Use SAM3 to segment this image, prompt: 'find all cars'"
The agent will automatically choose the right tool based on your request.
Image Enhancement Usage Examples
Example 1: Enhance an image via URL (simplest)
Just tell the agent:
"Enhance this image: https://example.com/blurry-photo.jpg"
The agent will call enhance_image_sync with:
{
"image_source": "https://example.com/blurry-photo.jpg",
"type": "url"
}Default: type="url", scale=2, poll_interval=5, timeout=50. No need to specify any extra parameters.
Example 2: Enhance a local image with 4x upscaling
"Enhance this photo to 4x resolution: D:\photos\family.jpg"
The agent will call enhance_image_sync with:
{
"image_source": "D:\\photos\\family.jpg",
"type": "local",
"scale": 4
}scale=4 means the image will be upscaled by 4x. The MCP Server auto-uploads the local file to TOS.
Example 3: Colorize a B&W photo with custom timeout
"Colorize this black-and-white photo, it can take a bit longer: /Users/me/Desktop/old_photo.png"
The agent may call colorize_image_sync with a longer timeout:
{
"image_source": "/Users/me/Desktop/old_photo.png",
"type": "local",
"timeout": 55
}timeout=55 means the tool will wait up to 55 seconds before truncating.
Example 4: Denoise a noisy photo with faster polling
"Remove the noise from this image: https://example.com/noisy.jpg"
The agent will call denoise_image_sync:
{
"image_source": "https://example.com/noisy.jpg",
"type": "url",
"poll_interval": 3,
"timeout": 50
}poll_interval=3 means check every 3 seconds (faster than the default 5 seconds).
Example 5: Timeout truncation → manual polling
If a tool times out (50 seconds not enough), you'll get:
{
"success": true,
"status": "processing",
"task_id": "img_abc123",
"message": "Task is still processing (waited 50 seconds). Please use get_image_task_status to continue polling.",
"note": "The synchronous wait for this long-running task has been truncated. Switch to get_image_task_status polling."
}Then ask the agent:
"Check the status of task img_abc123"
The agent will call get_image_task_status:
{
"task_id": "img_abc123"
}Repeat until status becomes "completed" or "failed".
Parameter Combination Reference
Scenario |
|
|
|
| Notes |
Quick URL enhance |
|
|
|
| All defaults, just provide |
Local file enhance |
|
|
|
| Must set |
4x upscale | any |
|
|
| Higher scale = larger output |
Wait longer | any | any |
|
| Increase timeout, but keep under 60s (MCP Agent limit) |
Faster response check | any | any |
|
| Smaller poll_interval for quicker feedback |
Large/slow image | any | any |
|
| If timeout, use |
Colorize / Denoise | any | N/A |
|
|
|
Provided Tools
Video Enhancement
create_task
Create an asynchronous video enhancement task.
Recommended for most use cases. Ideal for longer videos (over 10 seconds) to avoid timeouts and blocking the connection.
Parameter | Type | Required | Default | Description |
| string | Yes | - | Video URL or local file path (URL must be publicly accessible, links requiring login or signatures are not supported) |
| string | No |
|
|
| string | No |
|
|
Returns:
{
"success": true,
"task_id": "xxx",
"status": "processing"
}get_task_status
Query video enhancement task status.
The returned
statusfield can be:processing,completed, orfailed. Ifstatusisprocessing, you need to wait a few seconds and call this tool again.
Parameter | Type | Required |
| string | Yes |
Returns:
{
"success": true,
"task_id": "xxx",
"status": "completed",
"progress": 100,
"video_url": "https://...",
"message": "Task is still processing, please check again later"
}The message field only appears when status is processing, prompting the Agent to continue waiting.
enhance_video_sync
Synchronously enhance video (blocks until completion).
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 useget_task_statusto continue querying.
Parameter | Type | Required | Default | Description |
| string | Yes | - | Video URL or local file path |
| string | No |
|
|
| string | No |
| Target resolution |
| number | No |
| Poll interval (seconds) |
| number | No |
| Sync wait timeout (seconds), returns early when exceeded |
Truncated return example (not completed within 50s):
{
"success": true,
"status": "processing",
"task_id": "xxx",
"message": "Task is still processing (waited 50 seconds). Please use get_task_status to continue polling.",
"note": "The synchronous wait for this long-running task has been truncated. Switch to get_task_status polling."
}Image Enhancement
Three image processing tools are provided, each targeting a specific use case:
Tool | Function | Use Case |
| Image quality enhancement & face optimization | Blurry, low-resolution, or degraded photos |
| Black-and-white photo colorization | Restoring old B&W photos with realistic colors |
| Image noise removal | Noisy/grainy photos taken in low light |
All three tools share the same parameters and behavior pattern. They are synchronous — the tool blocks until the image is processed or the timeout is reached.
Supported image formats: PNG, JPG, JPEG, BMP, WebP, etc.
Two upload methods:
URL upload: provide a publicly accessible image URL (
type: "url")Local upload: provide a local file path, the MCP Server auto-uploads to TOS object storage (
type: "local", max file size: 100MB)
enhance_image_sync
Synchronously enhance an image to improve quality and optimize faces.
The tool internally creates a task and polls for the result. If processing completes within the timeout (default 50s), the result is returned directly. If not, the tool returns early with a
task_id— useget_image_task_statusto continue polling.
Parameter | Type | Required | Default | Description |
| string | Yes | - | Image URL or local file path (URL must be publicly accessible, links requiring login or signatures are not supported) |
| string | No |
|
|
| number | No |
| Enhancement scale multiplier (e.g. |
| number | No |
| Poll interval in seconds |
| number | No |
| Sync wait timeout in seconds, returns early when exceeded |
Normal completion return:
{
"success": true,
"task_id": "xxx",
"status": "completed",
"progress": 100,
"image_url": "https://..."
}Truncated return (not completed within 50s):
{
"success": true,
"status": "processing",
"task_id": "xxx",
"message": "Task is still processing (waited 50 seconds). Please use get_image_task_status to continue polling.",
"note": "The synchronous wait for this long-running task has been truncated. Switch to get_image_task_status polling."
}colorize_image_sync
Synchronously colorize a black-and-white photo with AI.
Best for old black-and-white photos. The AI will add realistic colors to the image. Supports the same parameters and return format as
enhance_image_sync.
Parameter | Type | Required | Default | Description |
| string | Yes | - | Image URL or local file path (URL must be publicly accessible, links requiring login or signatures are not supported) |
| string | No |
|
|
| number | No |
| Poll interval in seconds |
| number | No |
| Sync wait timeout in seconds, returns early when exceeded |
Returns: Same format as enhance_image_sync.
denoise_image_sync
Synchronously remove noise from an image.
Best for grainy/noisy photos taken in low-light conditions or with high ISO settings. Supports the same parameters and return format as
enhance_image_sync.
Parameter | Type | Required | Default | Description |
| string | Yes | - | Image URL or local file path (URL must be publicly accessible, links requiring login or signatures are not supported) |
| string | No |
|
|
| number | No |
| Poll interval in seconds |
| number | No |
| Sync wait timeout in seconds, returns early when exceeded |
Returns: Same format as enhance_image_sync.
get_image_task_status
Query image processing task status. Used to poll for results when a sync tool times out.
The returned
statusfield can be:processing,completed, orfailed. Ifstatusisprocessing, wait a few seconds and call this tool again.
Parameter | Type | Required |
| string | Yes |
Returns:
{
"success": true,
"task_id": "xxx",
"status": "completed",
"progress": 100,
"image_url": "https://...",
"message": "Task is still processing, please check again later"
}The message field only appears when status is processing, prompting the Agent to continue waiting.
Recommended Workflow for Image Tools
For most images: Call
enhance_image_sync/colorize_image_sync/denoise_image_syncdirectly — the tool handles everything and returns the resultIf truncated: The tool returns a
task_id, then useget_image_task_statusto poll untilstatusbecomescompletedorfailedIf failed: Check the
error_messagefield for details
Image Segmentation (SAM3)
sam3_predict
Analyze an image using the SAM3 segmentation API to generate inference results (masks, boxes, scores).
Parameters:
Image input (choose one, must provide exactly one):
imagePath(string): Absolute path of a local image file. Supports common formats (PNG, JPG, JPEG).Example:
"C:\\Users\\xxx\\photo.png","/home/user/images/cat.jpg"Use when: The user explicitly provides a local file path
imageUrl(string): Publicly accessible URL of the image.Example:
"https://example.com/photo.jpg"Use when: The image is already online and the user provides a link
Note: The URL must be publicly accessible. Links requiring login or signatures are not supported
imageBase64(string): Base64-encoded image data.Example:
"iVBORw0KGgoAAAANSUhEUgAA..."Use when: The user drags or uploads an image attachment, and the Agent encodes it as base64
Note: Large images will produce very large base64 strings, which may slow transmission
Other parameters:
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.
Normal completion return:
After inference completes, returns a JSON string containing three fields:
masks: 2D array. Each element is a binary mask (values 0 or 1) with the same dimensions as the input image, marking the pixel-level location of detected objects. The i-th mask corresponds to the i-th detected object instance.boxes: 2D array. Each element is a bounding box in[x1, y1, x2, y2]format, representing the rectangular region of the detected object.x1,y1are the top-left coordinates;x2,y2are the bottom-right coordinates.Coordinate system: The top-left corner of the image is the origin
(0, 0). The x-axis increases to the right, and the y-axis increases downward, in pixels. For example,[120, 80, 300, 450]means the region starts 120px from the left edge and 80px from the top edge, extending to 300px from the left and 450px from the top. Width =x2 - x1 = 180px, Height =y2 - y1 = 370px.scores: 1D array. Each element is a confidence score for the corresponding detection result, ranging from 0 to 1. Higher scores indicate greater model confidence.
Example result JSON:
{
"masks": [
[[0, 0, 1, ...], [0, 1, 1, ...], ...],
[[0, 0, 0, ...], [0, 0, 1, ...], ...]
],
"boxes": [
[120, 80, 300, 450],
[400, 200, 600, 500]
],
"scores": [0.95, 0.87]
}Truncated return example (not completed within 50s):
{
"success": true,
"status": "processing",
"task_id": "xxx",
"message": "Task is still processing (waited about 50 seconds). Please retry later or record this task_id for manual follow-up.",
"note": "The synchronous wait for this long-running task has been truncated."
}get_sam3_task_status
Query SAM3 segmentation task status. Used to poll for results when sam3_predict times out.
The returned
statusfield can be:processing,completed, orfailed. Ifstatusisprocessing, wait a few seconds and call this tool again.
Parameter | Type | Required |
| string | Yes |
Completed return:
{
"success": true,
"task_id": "xxx",
"status": "completed",
"result_url": "https://..."
}Processing return:
{
"success": true,
"task_id": "xxx",
"status": "processing",
"message": "Task is still processing, please check again later."
}Failed return:
{
"success": false,
"task_id": "xxx",
"status": "failed",
"error": "Task failed"
}Recent Updates
v0.4.x - Image Enhancement
Image Enhancement (
enhance_image_sync) - Enhance image quality and optimize faces, supports 2x/4x upscalingImage Colorization (
colorize_image_sync) - Colorize black-and-white photos with AIImage Denoising (
denoise_image_sync) - Remove noise from low-light/high-ISO photosAll image tools support both URL and local file upload (auto-upload to TOS)
FAQ
Agent reports timeout when calling tools?
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.
Solutions:
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.Sync tool truncation mechanism:
enhance_video_synchas an internal 50-second truncation limit. If the task is not completed within 50 seconds, the tool proactively returns atask_idand instructs the Agent to useget_task_statusto follow up.SAM3 truncation mechanism:
sam3_predictdefaults to 25 polling attempts (~50 seconds). If the task is not completed, it returns a truncation notice indicating the task is still processing.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:
SAM3_POLL_MAX_ATTEMPTS=60But ensure the total wait time does not exceed your Agent's timeout limit.
Drag-and-drop attachment says file not found?
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.
Solutions:
Provide the path simultaneously (recommended): After dragging the image, provide the local absolute path in your message:
"Please analyze this image
D:\\photos\\cat.jpgand find the cat"Wait for auto-encoding: Claude may automatically encode the image as base64. If successful, no extra action is needed.
Reply to path inquiry: If Claude asks for the image path, simply reply with the local absolute path.
Is there a priority among the three input methods?
There is no strict priority. Claude will automatically choose the most appropriate method based on conversation context:
You provided a local path → uses
imagePathYou provided a web link → uses
imageUrlYou dragged an attachment without a path → tries
imageBase64
What image formats are supported?
Common formats: PNG, JPG, JPEG, BMP, WebP, etc. PNG or JPG is recommended.
What if URL image download fails?
Ensure the URL is publicly accessible, requiring no login, cookies, or signatures. If the image is on a service requiring authentication (e.g., private S3 Bucket, login-required image host), download it locally first and use imagePath.
What if the base64 image is too large?
If the image is very large (e.g., 4K resolution), the base64-encoded data will be very large and may slow transmission. Suggestions:
Use
imagePathinsteadOr compress the image before encoding
File Upload Notes
When type is "local":
File is read locally by the MCP Server
Uploaded directly to TOS object storage via pre-signed URL
Max file size: 100MB (video and image)
Troubleshooting
"command not found: npx"
Install Node.js >= 18: https://nodejs.org/
"Error: --api-key argument or API_KEY environment variable is required"
Your API Key is missing. Double-check the env.API_KEY in your config.
MCP Server shows red/error in client
Check logs:
Claude Desktop macOS:
~/Library/Logs/Claude/mcp*.logClaude Desktop Windows:
%APPDATA%\Claude\logs\mcp*.logCursor: Output panel > MCP
"TOS upload failed"
Usually a signature mismatch. Ensure your HTTP_API_BASE_URL and API_KEY are correct and active.
Global Install (Alternative)
If you prefer not using npx every time:
npm install -g avc-test-js-mcpThen use "command": "avc-test-js-mcp" with "args": ["--api-key", "your-api-key"] in your config.
License
MIT License - See LICENSE file for details
Available Tools
3 toolscreate_taskA
创建视频增强任务(异步)
支持两种上传方式:
URL 上传:提供视频 URL
本地上传:提供本地文件路径,MCP Server 自动读取并转为 base64
参数说明:
video_source: 视频 URL 或本地文件路径
type: "url" 或 "local"
resolution: 目标分辨率
| Name | Required | Description | Default |
|---|---|---|---|
| video_source | Yes | 视频URL地址或本地文件路径 | |
| type | No | 上传类型:url=网络视频,local=本地文件 | url |
| resolution | No | 目标分辨率,默认720p | 720p |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions the asynchronous nature and the two upload methods (URL and local with base64 conversion), which adds useful context beyond basic functionality. However, it doesn't disclose important behavioral traits like authentication requirements, rate limits, error handling, or what the tool returns (since there's no output schema).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with a clear purpose statement followed by bullet points explaining upload methods and parameters. It's appropriately sized for a 3-parameter tool, though the parameter explanations could be more integrated rather than listed separately. Every sentence serves a purpose with minimal waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (asynchronous operation with multiple upload methods), no annotations, and no output schema, the description provides adequate but incomplete context. It explains the core functionality and parameters well, but lacks information about return values, error conditions, authentication, and how to monitor the asynchronous task (using the 'get_task_status' sibling).
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all parameters thoroughly. The description adds minimal value by briefly mentioning the two upload methods that correspond to the 'type' parameter values, but doesn't provide additional semantic context beyond what's in the schema descriptions. This meets the baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('创建视频增强任务' - create video enhancement task) and resource ('视频增强任务' - video enhancement task), specifying it's asynchronous. It distinguishes from the sibling 'enhance_video_sync' by explicitly mentioning the asynchronous nature, which is crucial for differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context about when to use this tool (for asynchronous video enhancement) and implicitly distinguishes it from 'enhance_video_sync' (which would be synchronous). However, it doesn't explicitly state when NOT to use it or mention the 'get_task_status' sibling for checking task completion, which would be helpful for complete guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
enhance_video_syncB
同步增强视频(阻塞等待完成)
支持两种上传方式:
URL 上传:提供视频 URL
本地上传:提供本地文件路径,MCP Server 自动读取并转为 base64
参数说明:
video_source: 视频 URL 或本地文件路径
type: "url" 或 "local"
resolution: 目标分辨率
poll_interval: 轮询间隔(秒)
timeout: 超时时间(秒)
| Name | Required | Description | Default |
|---|---|---|---|
| video_source | Yes | 视频URL地址或本地文件路径 | |
| type | No | 上传类型:url=网络视频,local=本地文件 | url |
| resolution | No | 目标分辨率,默认720p | 720p |
| poll_interval | No | 轮询间隔(秒),默认5 | |
| timeout | No | 超时时间(秒),默认600 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses key behavioral traits: the tool is synchronous/blocking ('阻塞等待完成'), supports two upload methods, and includes polling and timeout parameters. However, it lacks details on permissions, rate limits, error handling, or what 'enhance' entails (e.g., quality improvement, format conversion).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately sized and front-loaded, starting with the core purpose and then listing upload methods and parameters. It's efficient with no wasted sentences, though the parameter list could be more integrated into the flow rather than bullet-pointed.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations and no output schema, the description is moderately complete. It covers the blocking behavior and upload methods, but lacks details on the enhancement process, output format (e.g., what is returned after completion), error cases, or integration with sibling tools. For a tool with 5 parameters and complex behavior, more context would be helpful.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all parameters thoroughly. The description adds minimal value beyond the schema by briefly mentioning the two upload methods, but doesn't provide additional semantics, constraints, or examples. Baseline is 3 as the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: '同步增强视频(阻塞等待完成)' which translates to 'enhance video synchronously (blocking wait for completion)'. It specifies the action (enhance video) and the blocking behavior, but doesn't explicitly distinguish it from sibling tools like create_task or get_task_status, which appear to be related to task management.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage by detailing two upload methods (URL and local), which suggests when to use each type. However, it doesn't provide explicit guidance on when to use this tool versus the sibling tools (create_task, get_task_status), such as for asynchronous vs. synchronous processing, or any prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_task_statusA
查询视频增强任务状态
| Name | Required | Description | Default |
|---|---|---|---|
| task_id | Yes | 任务ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, and the description only states the purpose without disclosing any behavioral traits such as polling requirements, rate limits, or expected response behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence with no wasted words; efficient and to the point.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple status query with one parameter, the description is mostly complete but could benefit from mentioning possible return statuses or output format since no output schema is provided.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the description adds no additional meaning beyond what is already in the input schema, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'query' and the resource 'video enhancement task status', distinguishing from sibling tools 'create_task' and 'enhance_video_sync' which have different actions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives, but the context of sibling tools implies it is for checking status after creation or enhancement.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
3 tool updates
v0.1.5- First observed
create_task - First observed
enhance_video_sync - First observed
get_task_status
TDQS
Scored across 3 tools
The tool descriptions are extremely confusing and overlapping. The 'create_task' tool appears to be described twice with different parameter sets (first mentioning 'enhance_video_sync', then mentioning 'poll_interval', 'timeout', and 'get_task_status'), making it unclear if these are separate tools or one poorly described tool. There's no clear distinction between what each tool does, and the descriptions suggest they might all be part of the same functionality.
Only one tool name 'create_task' is provided, but the description suggests multiple tools or functionalities. The naming is chaotic with no discernible pattern, and the description mixes parameter names with what appear to be additional tool names ('get_task_status'), creating complete inconsistency.
The server claims 3 tools but only lists one tool name ('create_task'). The description is so poorly structured that it's impossible to determine what the actual tools are. For a video enhancement server, 3 tools could be appropriate, but the actual implementation appears to be a single tool with confusing documentation.
For a video enhancement server, we would expect tools for creating tasks, checking status, and retrieving results. The description suggests some of these functionalities exist but they're all muddled together in one tool description. There's no clear separation of operations, making the surface appear severely incomplete despite potentially having the necessary functionality buried in the confusing documentation.
Maintenance
Related MCP Connectors
Hosted MCP tools for FFmpeg-style video and audio processing through FFMPEG API.
Plan, compare, price, generate, and recover AI video from compatible MCP clients.
Create and manage AI image and video generations through Quriov's fixed public MCP tools.
Video, audio, and image processing for AI agents: convert, transcribe, upscale - 150+ operations.
Related MCP Servers
AlicenseAqualityDmaintenanceEnables video enhancement through MCP tools for creating tasks, querying status, and synchronous enhancement, supporting URL or local file inputs.342 npmApache 2.0- AlicenseAqualityDmaintenanceA video enhancement MCP server that supports creating tasks, querying status, and synchronously enhancing videos with URL or local file input.3MIT
- AlicenseNot gradedqualityCmaintenanceEnables MCP-capable clients to generate higher-fidelity videos via Wan 3.0 Prime, supporting text-to-video, image-to-video, multimodal reference-to-video, and async task status polling.3MIT
- AlicenseNot gradedqualityCmaintenanceExposes video generation and editing tools to MCP-capable clients, enabling text-to-video, image-to-video, video editing, reusable voice and character profiles, and task status queries through natural language.4MIT