Skip to main content
Glama

Smart Clip MCP

AI-powered smart video clipping MCP server. Input a long video + editing intent, output highlight short clips.

Not another FFmpeg wrapper — it's the "editing brain". Uses subtitle semantic analysis + LLM-driven decision making to identify highlight moments, with mcp-video as the execution layer (FFmpeg fallback built-in).

Features

  • 🧠 LLM-driven highlight detection — analyzes subtitles to identify the most engaging moments

  • 🎬 5 MCP tools — smart_clip, repurpose, highlight_reel, analyze_content, get_edit_plan

  • 🎯 Platform-adaptive — auto-resize and format for TikTok, YouTube Shorts, Instagram Reels

  • 📝 Auto subtitles — Whisper transcription + burn-in with platform-specific styling

  • 🔊 Audio analysis — energy peaks and silence detection for precise cut points

  • 👀 Human-in-the-loop — preview edit plans before execution

  • 💰 Low cost — ¥0.8-1.16 per hour of video (50x cheaper than cloud alternatives)

Related MCP server: podcli

Quick Start

Prerequisites

  • Python 3.11+

  • FFmpeg installed and on PATH

  • mcp-video (auto-installed as dependency)

  • Whisper model (auto-downloaded on first use)

Install

pip install smart-clip-mcp

Configure MCP Client

Claude Code:

claude mcp add smart-clip -- uvx --from smart-clip-mcp smart-clip-mcp

Claude Desktop / Cursor:

{
  "mcpServers": {
    "smart-clip": {
      "command": "uvx",
      "args": ["--from", "smart-clip-mcp", "smart-clip-mcp"],
      "env": {
        "OPENAI_API_KEY": "sk-..."
      }
    }
  }
}

Usage

Ask your AI agent:

"Extract 5 highlight clips from this 1-hour podcast video"

"Turn this interview into 3 TikTok-ready shorts"

"Analyze this video and tell me the most engaging moments"

MCP Tools

Tool

Description

smart_clip

Auto-detect highlights and clip them from a long video

repurpose

Convert long video to platform-specific short clips

highlight_reel

Compile highlights from multiple videos into a reel

analyze_content

Analyze video content without clipping (preview mode)

get_edit_plan

Generate an edit plan for human review before execution

Architecture

Video → [Analyzer] → [Planner] → [Executor] → Clips
          │              │            │
          │ Whisper       │ LLM        │ mcp-video
          │ librosa       │ Prompts    │ FFmpeg
          │ PySceneDetect │ Strategy   │
  • Analyzer — Content understanding: Whisper transcription, audio energy analysis, scene detection

  • Planner — Decision making: LLM highlight detection, template matching, strategy engine

  • Executor — Clip generation: trim, merge, subtitles, platform adaptation via mcp-video

Configuration

Create ~/.smart-clip/config.yaml:

analyzer:
  whisper:
    mode: local          # local | api
    model: large-v3
    language: zh
  audio:
    energy_percentile: 90
    silence_threshold: 0.3

planner:
  llm:
    model: gpt-4o-mini
    temperature: 0
  strategy:
    min_score: 6.0
    min_gap: 10

executor:
  output:
    format: mp4
    quality: high

Development

# Clone
git clone git@github.com:Ambrose1/Smart-Clip-MCP.git
cd Smart-Clip-MCP

# Create venv
python -m venv .venv
source .venv/bin/activate

# Install dev dependencies
pip install -e ".[dev]"

# Run tests
pytest

# Run MCP server locally (stdio mode)
smart-clip-mcp

# Run MCP server with SSE transport (HTTP)
smart-clip-mcp --transport sse --port 8000

Docker

Build & Run

# Build image
docker build -t smart-clip-mcp .

# Run with SSE transport (accessible via HTTP)
docker run -d \
  -p 8000:8000 \
  -e OPENAI_API_KEY=sk-... \
  -v $(pwd)/videos:/workspace/videos \
  -v $(pwd)/output:/workspace/output \
  smart-clip-mcp
# Set your API key
export OPENAI_API_KEY=sk-...

# Start
docker compose up -d

# View logs
docker compose logs -f

# Stop
docker compose down

Test with MCP Inspector

Once the server is running in SSE mode:

# Install MCP Inspector
npx @modelcontextprotocol/inspector

# Connect to http://localhost:8000/sse

Or test with curl:

# List available tools
curl -X POST http://localhost:8000/messages \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"test","version":"0.1.0"}}}'

License

Apache 2.0 — see LICENSE.

Available Tools

5 tools
analyze_content_toolA

分析视频内容,输出结构化报告,不执行剪辑。用于预览和决策。

ParametersJSON Schema
NameRequiredDescriptionDefault
video_pathYes输入视频文件路径
focusNo分析重点 (highlights/structure/sentiment/all)all

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description carries the burden. It adds that the tool does not perform editing, which is a behavioral trait. However, it lacks details on permissions, rate limits, or what exact analysis is performed.

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?

Description is one short sentence with two clauses, front-loaded with the action. Every part is essential and there is no wasted text.

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 an output schema exists, return values need not be explained. However, the description is minimal and does not specify what the structured report contains or handle input formats. Adequate but has gaps.

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 baseline is 3. The description mentions 'analysis focus' corresponding to the focus parameter but adds no extra meaning beyond the schema.

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?

Description clearly states it analyzes video content and outputs a structured report, explicitly saying it does not perform editing. This distinguishes it from sibling editing tools like smart_clip_tool and highlight_reel_tool.

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?

Description says it is used for preview and decision, implying when to use. However, it does not explicitly state when not to use or mention alternative tools. The non-editing disclaimer provides some guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_edit_plan_toolA

生成剪辑方案但不执行,返回方案供人工审核。审核通过后调用 smart_clip 执行。

ParametersJSON Schema
NameRequiredDescriptionDefault
video_pathYes输入视频文件路径
intentNo剪辑意图,自然语言描述提取精彩片段
clip_countNo期望输出的片段数量
clip_duration_minNo单片段最短秒数
clip_duration_maxNo单片段最长秒数

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It discloses that the tool is non-destructive (generates plan, does not execute), returns a plan for human review, and requires subsequent execution via smart_clip. This gives sufficient behavioral clarity for a planning tool.

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?

The description is a single sentence that efficiently conveys the tool's purpose, non-execution nature, and the subsequent execution step. Every clause is necessary and contributes to understanding. No wasted words.

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?

With 5 parameters all described in the schema and an output schema (though not shown), the description adequately explains the tool's role in the workflow. It could mention the output format or that the plan is suitable for input to smart_clip, but given the output schema existence, this is acceptable.

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?

The input schema has 100% description coverage, so each parameter is already documented. The tool description does not add any extra meaning or context beyond what the schema provides. Baseline score of 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 that the tool generates an editing plan without executing it, returning the plan for human review. It explicitly distinguishes from sibling tool 'smart_clip' by indicating that after approval, smart_clip should be called for execution. Purpose is specific and unambiguous.

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 implies a workflow: use this tool to create a plan, then after human approval, use smart_clip to execute. This provides clear context for when to use this tool vs alternatives. However, it does not explicitly state when not to use it, such as for direct execution or other analysis tasks.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

highlight_reel_toolB

从多个视频中提取精彩片段合成集锦视频。支持跨视频主题聚合。

ParametersJSON Schema
NameRequiredDescriptionDefault
video_pathsYes输入视频文件路径列表
themeYes集锦主题,如'搞笑瞬间''核心观点'
target_durationNo目标总时长(秒)

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description fully bears the burden of behavioral disclosure. It only states the basic operation without revealing potential side effects, authorization requirements, or limitations (e.g., file format constraints, processing time). This is insufficient for a tool that creates a new file.

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?

The description is extremely concise with two short sentences that are front-loaded with the core action. Every word is meaningful and there is no redundancy.

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 that an output schema exists (as per context signals), the description is not required to explain return values. It adequately covers the basic purpose and scope, but lacks usage guidance and behavioral details. It is minimally viable but has clear gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3. However, the description adds no extra meaning to the parameters beyond what the schema provides (e.g., no examples, constraints, or relationships between parameters). It could have clarified how 'theme' influences extraction or the role of 'target_duration'.

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 that the tool extracts highlights from multiple videos to create a highlight reel, and mentions support for cross-video theme aggregation. This is a specific verb-resource combination that distinguishes it from sibling tools like 'analyze_content_tool' (analysis) or 'smart_clip_tool' (single clip generation).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives, nor any prerequisites or exclusions. Without such context, an AI agent cannot determine if this tool is appropriate for a given task among the sibling tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

repurpose_toolA

将长视频自动重制为适配目标平台的短视频。自动识别精彩内容、裁切、加字幕、调比例。

ParametersJSON Schema
NameRequiredDescriptionDefault
video_pathYes输入视频文件路径
platformNo目标平台 (tiktok/youtube_shorts/instagram_reels)tiktok
clip_countNo期望输出的片段数量
styleNo剪辑风格偏好 (informative/entertaining/emotional)informative

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description carries full burden. It discloses the automatic process but lacks details on side effects (e.g., original video unchanged), output format, or prerequisites. More behavioral context like 'does not modify original' or 'requires ffmpeg' would improve.

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?

The description is a single clear Chinese sentence that front-loads the main action. No wasted words; every part is meaningful.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given that an output schema exists and all parameters are documented in the schema, the description adequately covers the tool's purpose and behavior. No major gaps are apparent.

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 coverage is 100% with descriptions for all parameters. The description adds overall context but does not significantly enhance individual parameter understanding beyond the schema (e.g., what 'informative' style entails).

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 tool repurposes long videos into short videos for target platforms, specifying actions like auto-detect highlights, crop, add subtitles, adjust ratio. It is distinct from sibling tools like 'analyze_content_tool' or 'highlight_reel_tool' which are sub-steps.

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 implies usage for repurposing long videos to short form, but does not explicitly state when to use versus alternatives or when not to use. It is clear enough that this is the main repurposing tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

smart_clip_toolA

从长视频中自动识别精彩片段并裁切输出。适用于口播、播客、直播回放等语音驱动内容。

ParametersJSON Schema
NameRequiredDescriptionDefault
video_pathYes输入视频文件路径
intentNo剪辑意图,自然语言描述。如:'提取最精彩的5个片段' / '找出所有金句'提取精彩片段
clip_countNo期望输出的片段数量
clip_duration_minNo单片段最短秒数
clip_duration_maxNo单片段最长秒数
platformNo目标平台 (auto/tiktok/youtube_shorts/instagram_reels/youtube/original)original
with_subtitlesNo是否烧录字幕
with_bgmNo是否添加背景音乐
output_dirNo输出目录./smart-clip-output

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full burden. It discloses the core behavior (auto-identify and clip) but does not detail side effects (e.g., non-destructive), required permissions, or limitations. Adequate but not comprehensive.

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?

The description is extremely concise: two short sentences with key information front-loaded. No unnecessary words.

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 complexity (9 parameters, sibling tools) and lack of annotations, the description is minimal. It covers basic purpose but lacks context on how it differs from sibling tools like highlight_reel_tool. Output schema exists, so return values are covered elsewhere.

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. The tool description adds no extra parameter information, meeting the baseline expectation.

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 identifies highlights and clips them from long videos, with examples of suitable content types. However, it does not explicitly differentiate from sibling tools like highlight_reel_tool.

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 provides context on when to use (voice-driven content) but lacks guidance on when not to use or mention alternatives, which would help for sibling differentiation.

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. 5 tool updatesv0.1.0
    • First observedanalyze_content_tool
    • First observedget_edit_plan_tool
    • First observedhighlight_reel_tool
    • First observedrepurpose_tool
    • First observedsmart_clip_tool

TDQS

A3.7/5.0

Scored across 5 tools

Disambiguation4/5

Each tool has a distinct role: analysis, planning, single-video clipping, multi-video compilation, and platform-specific repurposing. There is slight overlap between smart_clip_tool and repurpose_tool in basic clipping, but their descriptions clarify different use cases.

Naming Consistency4/5

Tool names follow a consistent snake_case pattern with the _tool suffix. Most use a verb_noun structure (analyze_content, get_edit_plan, highlight_reel, repurpose), but 'smart_clip_tool' uses an adjective-noun combination, breaking the verb pattern.

Tool Count5/5

With 5 tools, the server covers the essential functions of a video clipping assistant without being overwhelming. The count is well-scoped for the intended domain of automated editing and repurposing.

Completeness4/5

The tool set provides a complete workflow from analysis to planning to execution, plus specialized features like highlight reels and repurposing. Missing direct manual editing or plan modification, but these are not core to the automated focus.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers