Skip to main content
Glama

avc-test-js-mcp (Node.js)

npm version Node.js >=18 License: MIT

Video enhancement service based on the MCP protocol, acting as an MCP Client-Server to interact with a FastAPI HTTP Server.

Features

Provides the following MCP Tools:

  • create_task - Create a video enhancement task (supports URL or local file upload)

  • get_task_status - Query task status

  • enhance_video_sync - Synchronously enhance video (blocking wait)

Related MCP server: avc-test-py-mcp

Installation

npm install -g avc-test-js-mcp

Or use yarn/pnpm:

yarn global add avc-test-js-mcp
pnpm add -g avc-test-js-mcp

Install from source

git clone https://github.com/yourusername/avc-test-js-mcp.git
cd js_client
npm install
npm run build

Usage

1. Command Line Startup

Use directly after global installation:

avc-test-js-mcp --base-url https://mcp.luluhero.com --api-key your-api-key

Or use environment variables:

# Windows PowerShell
$env:HTTP_API_BASE_URL="https://mcp.luluhero.com"
$env:HTTP_API_KEY="your-api-key"
avc-test-js-mcp

# Windows CMD
set HTTP_API_BASE_URL=https://mcp.luluhero.com
set HTTP_API_KEY=your-api-key
avc-test-js-mcp

# macOS/Linux
export HTTP_API_BASE_URL=https://mcp.luluhero.com
export HTTP_API_KEY=your-api-key
avc-test-js-mcp

2. Configure in Claude Desktop

Edit the Claude Desktop configuration file:

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

Windows: %APPDATA%/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "video-enhancement": {
      "command": "avc-test-js-mcp",
      "args": [
        "--base-url",
        "https://mcp.luluhero.com",
        "--api-key",
        "your-api-key"
      ]
    }
  }
}

3. Use npx (No global installation required)

npx avc-test-js-mcp --base-url https://mcp.luluhero.com --api-key your-api-key

Claude Desktop configuration:

{
  "mcpServers": {
    "video-enhancement": {
      "command": "npx",
      "args": [
        "avc-test-js-mcp",
        "--base-url",
        "https://mcp.luluhero.com",
        "--api-key",
        "your-api-key"
      ]
    }
  }
}

Provided Tools

create_task

Create a video enhancement task (asynchronous).

Parameters:

  • video_source (string, required): Video URL or local file path

  • type (string, optional): Upload type, default "url"

    • Available values: "url" - Web video URL, "local" - Local file path

  • resolution (string, optional): Target resolution, default 720p

    • Available values: 480p, 540p, 720p, 1080p, 2k

Usage Example:

// URL 方式
{
  "video_source": "https://example.com/video.mp4",
  "type": "url",
  "resolution": "1080p"
}

// 本地文件方式
{
  "video_source": "/path/to/local/video.mp4",
  "type": "local",
  "resolution": "1080p"
}

Return Value:

{
  "success": true,
  "task_id": "xxx",
  "status": "wait"
}

get_task_status

Query task status.

Parameters:

  • task_id (string, required): Task ID

Usage Example:

{
  "task_id": "task-123-abc"
}

Return Value:

{
  "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

Synchronously enhance video (blocking wait for completion).

Parameters:

  • video_source (string, required): Video URL or local file path

  • type (string, optional): Upload type, default "url"

    • Available values: "url" - Web video URL, "local" - Local file path

  • resolution (string, optional): Target resolution, default 720p

  • poll_interval (number, optional): Polling interval (seconds), default 5

  • timeout (number, optional): Timeout (seconds), default 600

Usage Example:

{
  "video_source": "https://example.com/video.mp4",
  "type": "url",
  "resolution": "1080p",
  "poll_interval": 5,
  "timeout": 600
}

Return Value:

{
  "success": true,
  "task_id": "xxx",
  "status": "completed",
  "progress": 100,
  "video_url": "https://..."
}

File Upload Instructions

When type is set to "local", the MCP Server will:

  1. Read the local file

  2. Convert the file to base64 encoding

  3. Upload to the video enhancement service

Limitations:

  • Maximum file size: 100MB

Environment Variables

Variable Name

Description

Default Value

HTTP_API_BASE_URL

FastAPI HTTP Server address

https://mcp.luluhero.com

HTTP_API_KEY

API authentication key

None

Development

# 克隆仓库
git clone https://github.com/yourusername/avc-test-js-mcp.git
cd js_client

# 安装依赖
npm install

# 开发模式(自动编译)
npm run dev

# 构建
npm run build

License

MIT License - See LICENSE file for details

Available Tools

3 tools
create_taskA

创建视频增强任务(异步)

支持两种上传方式:

  1. URL 上传:提供视频 URL

  2. 本地上传:提供本地文件路径,MCP Server 自动读取并转为 base64

参数说明:

  • video_source: 视频 URL 或本地文件路径

  • type: "url" 或 "local"

  • resolution: 目标分辨率

ParametersJSON Schema
NameRequiredDescriptionDefault
video_sourceYes视频URL地址或本地文件路径
typeNo上传类型:url=网络视频,local=本地文件url
resolutionNo目标分辨率,默认720p720p

TDQS

A3.8/5.0
Behavior3/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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

同步增强视频(阻塞等待完成)

支持两种上传方式:

  1. URL 上传:提供视频 URL

  2. 本地上传:提供本地文件路径,MCP Server 自动读取并转为 base64

参数说明:

  • video_source: 视频 URL 或本地文件路径

  • type: "url" 或 "local"

  • resolution: 目标分辨率

  • poll_interval: 轮询间隔(秒)

  • timeout: 超时时间(秒)

ParametersJSON Schema
NameRequiredDescriptionDefault
video_sourceYes视频URL地址或本地文件路径
typeNo上传类型:url=网络视频,local=本地文件url
resolutionNo目标分辨率,默认720p720p
poll_intervalNo轮询间隔(秒),默认5
timeoutNo超时时间(秒),默认600

TDQS

B3.4/5.0
Behavior3/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines3/5

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

查询视频增强任务状态

ParametersJSON Schema
NameRequiredDescriptionDefault
task_idYes任务ID

TDQS

A3.6/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

  1. 3 tool updatesv0.1.5
    • First observedcreate_task
    • First observedenhance_video_sync
    • First observedget_task_status

TDQS

C2.7/5.0

Scored across 3 tools

Disambiguation1/5

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.

Naming Consistency1/5

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.

Tool Count2/5

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.

Completeness2/5

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

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers