avc-test-py-mcp
Provides tools for creating and managing video enhancement tasks via a FastAPI HTTP server, including asynchronous task creation, status polling, and synchronous enhancement with blocking wait.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@avc-test-py-mcpEnhance this video to 1080p: https://example.com/video.mp4"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
avc-test-py-mcp (Python)
基于 MCP 协议的视频增强服务,作为 MCP Client-Server 与 FastAPI HTTP Server 交互。
功能
提供以下 MCP Tools:
create_task- 创建视频增强任务(支持 URL 或本地文件上传)get_task_status- 查询任务状态enhance_video_sync- 同步增强视频(阻塞等待)
Related MCP server: @avclabs.ai/enhance-mcp
安装
从 PyPI 安装(推荐)
# 使用 pip 安装
pip install avc-test-py-mcp
# 或使用 uv 安装
uv pip install avc-test-py-mcp从源码安装
git clone https://github.com/yourusername/avc-test-py-mcp.git
cd python_client
# 使用 uv 安装(推荐)
uv pip install -e ".[dev]"
# 或使用 pip 安装
pip install -e ".[dev]"使用方法
1. 命令行启动
# 直接运行(安装后)
avc-test-py-mcp --base-url https://mcp.luluhero.com --api-key your-api-key
# 或使用环境变量
export HTTP_API_BASE_URL=https://mcp.luluhero.com
export HTTP_API_KEY=your-api-key
avc-test-py-mcp2. 在 Claude Desktop 中配置
编辑 Claude Desktop 配置文件:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%/Claude/claude_desktop_config.json
{
"mcpServers": {
"video-enhancement": {
"command": "avc-test-py-mcp",
"args": [
"--base-url",
"https://mcp.luluhero.com",
"--api-key",
"your-api-key"
]
}
}
}3. 使用 uv run 运行(开发模式)
uv run avc-test-py-mcp --base-url https://mcp.luluhero.com --api-key your-api-key提供的 Tools
create_task
创建视频增强任务(异步)。
参数:
video_source(string, required): 视频 URL 或本地文件路径type(string, optional): 上传类型,默认 "url"可选值:
"url"- 网络视频URL,"local"- 本地文件路径
resolution(string, optional): 目标分辨率,默认 720p可选值: 480p, 540p, 720p, 1080p, 2k
使用示例:
# URL 方式
{
"video_source": "https://example.com/video.mp4",
"type": "url",
"resolution": "1080p"
}
# 本地文件方式
{
"video_source": "/path/to/local/video.mp4",
"type": "local",
"resolution": "1080p"
}返回值:
{
"success": true,
"task_id": "xxx",
"status": "wait"
}get_task_status
查询任务状态。
参数:
task_id(string, required): 任务ID
使用示例:
{
"task_id": "task-123-abc"
}返回值:
{
"success": true,
"task_id": "xxx",
"status": "completed",
"progress": 100,
"video_url": "https://...",
"error_message": null,
"created_at": "2024-01-01T00:00:00Z",
"updated_at": "2024-01-01T00:01:00Z"
}enhance_video_sync
同步增强视频(阻塞等待完成)。
参数:
video_source(string, required): 视频 URL 或本地文件路径type(string, optional): 上传类型,默认 "url"可选值:
"url"- 网络视频URL,"local"- 本地文件路径
resolution(string, optional): 目标分辨率,默认 720ppoll_interval(number, optional): 轮询间隔(秒),默认 5timeout(number, optional): 超时时间(秒),默认 600
使用示例:
{
"video_source": "https://example.com/video.mp4",
"type": "url",
"resolution": "1080p",
"poll_interval": 5,
"timeout": 600
}返回值:
{
"success": true,
"task_id": "xxx",
"status": "completed",
"progress": 100,
"video_url": "https://..."
}文件上传说明
当 type 设置为 "local" 时,MCP Server 会:
读取本地文件
将文件转为 base64 编码
上传到视频增强服务
限制:
最大文件大小:100MB
环境变量
变量名 | 说明 | 默认值 |
| FastAPI HTTP Server 地址 |
|
| API 认证密钥 | 无 |
开发
# 克隆仓库
git clone https://github.com/yourusername/avc-test-py-mcp.git
cd python_client
# 安装开发依赖
uv pip install -e ".[dev]"
# 运行测试
pytest
# 代码格式化
ruff format .
ruff check --fix .发布到 PyPI
# 安装构建工具
uv pip install build twine
# 构建分发包
python -m build
# 上传到 PyPI(测试)
python -m twine upload --repository testpypi dist/*
# 上传到 PyPI(正式)
python -m twine upload dist/*License
MIT License - 详见 LICENSE 文件
Available Tools
3 toolscreate_taskA
创建视频增强任务(异步)
支持两种上传方式:
URL 上传:提供视频 URL
本地上传:提供本地文件路径,MCP Server 自动上传到 TOS 对象存储
参数说明:
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?
No annotations provided, so description carries full burden. It discloses async behavior and auto-upload for local files, but does not mention return value (e.g., task ID) or error handling.
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?
Well-structured with clear bullet points, no redundant information, and appropriately concise for the provided details.
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?
Covers purpose, parameters, and upload methods adequately for a basic async task creation tool. Lacks return value specification and error scenarios, but acceptable given no output schema.
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 coverage is 100% with good parameter descriptions. The description adds context by explaining the two upload modes and the meaning of video_source, supplementing the schema.
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 it creates an async video enhancement task and distinguishes between URL and local upload methods. The verb '创建' and resource '视频增强任务' are explicit.
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?
Provides guidance on when to use URL vs local upload but does not differentiate from sibling tools like enhance_video_sync or get_task_status.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
enhance_video_syncA
同步增强视频(阻塞等待完成)
支持两种上传方式:
URL 上传:提供视频 URL
本地上传:提供本地文件路径,MCP Server 自动上传到 TOS 对象存储
参数说明:
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?
No annotations are provided, so the description must disclose all behavioral traits. It explains synchronous blocking and upload types, but fails to mention side effects (e.g., file modifications, temporary storage), error behavior, or cancellation support. Coverage is adequate but lacks depth.
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 front-loaded with the main purpose and uses bullet-like formatting for methods. It is relatively concise but includes some redundancy (e.g., video_source description matches schema). Well-structured overall.
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?
With no output schema, the description should explain the return value (e.g., enhanced video URL or metadata). It also lacks prerequisites, file size limits, or error handling details. Given the tool's complexity, this is a significant gap.
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. The tool description adds context about upload methods but largely repeats schema info. With high coverage, baseline 3 is appropriate; no additional semantics are offered beyond what the schema provides.
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 verb ('enhance'), resource ('video'), and mode ('synchronously, blocking wait'). It distinguishes from sibling tools ('create_task', 'get_task_status') which are asynchronous task management, while this tool is a synchronous operation.
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 explains the two upload methods (URL vs local) and the blocking nature, implying synchronous use. However, it does not explicitly contrast with asynchronous alternatives or state when not to use this tool, which would be more helpful.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_task_statusB
查询视频增强任务状态
| Name | Required | Description | Default |
|---|---|---|---|
| task_id | Yes | 任务ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided. The description only states it queries status, but does not disclose any behavioral traits such as whether it is read-only, any rate limits, or potential side effects.
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 a single, concise sentence that immediately conveys the tool's purpose with no wasted words.
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?
With no output schema and only a brief description, the tool lacks explanation of return values (e.g., possible statuses). The description is incomplete for a status query tool.
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 coverage is 100%, but the parameter description '任务ID' is minimal. The tool description adds no extra semantic meaning beyond the 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 explicitly states '查询视频增强任务状态' (query video enhancement task status), clearly identifying the action and resource. It distinguishes from sibling tools like 'create_task' and 'enhance_video_sync'.
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 after creating a task, but does not explicitly state when to use vs alternatives or provide any exclusion criteria.
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.4- First observed
create_task - First observed
enhance_video_sync - First observed
get_task_status
TDQS
Scored across 3 tools
Each tool serves a distinct purpose: async creation, sync blocking enhancement, and status query. Despite similar parameters, the sync/async distinction is clearly indicated.
All tool names follow a consistent snake_case verb_noun pattern: create_task, enhance_video_sync, get_task_status.
Three tools is slightly minimal but still within reasonable bounds for a focused video enhancement server. The scope is narrow, so the count is appropriate.
Covers core creation and status checking, but missing essential operations like cancel, delete, or list tasks, which are notable gaps for a task management system.
Maintenance
Related MCP Connectors
MCP server for Wan AI video generation
MCP server for Kling AI video generation
MCP server for Google Veo AI video generation
MCP server for Hailuo (MiniMax) AI video generation
Related MCP Servers
- AlicenseCqualityCmaintenanceProvides video enhancement capabilities through MCP tools for creating, monitoring, and synchronously processing video enhancement tasks with configurable resolution options.363MIT

@avclabs.ai/enhance-mcpofficial
AlicenseAqualityDmaintenanceEnables video enhancement through MCP tools for creating tasks, querying status, and synchronous enhancement, supporting URL or local file inputs.342Apache 2.0- AlicenseBqualityBmaintenanceMCP server for video enhancement and SAM3 image segmentation, enabling tasks like upscaling videos and segmenting objects in images via natural language.422MIT
- FlicenseNot gradedqualityDmaintenanceAn MCP server that enables natural language video editing using FFmpeg, supporting operations like trimming, merging, format conversion, and more with real-time progress tracking.-