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: short-form-video-editor-mcp

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

ๅˆ†ๆž่ง†้ข‘ๅ†…ๅฎน๏ผŒ่พ“ๅ‡บ็ป“ๆž„ๅŒ–ๆŠฅๅ‘Š๏ผŒไธๆ‰ง่กŒๅ‰ช่พ‘ใ€‚็”จไบŽ้ข„่งˆๅ’Œๅ†ณ็ญ–ใ€‚

Inputs: video_path (required), focus. Returns: object

get_edit_plan_toolA

็”Ÿๆˆๅ‰ช่พ‘ๆ–นๆกˆไฝ†ไธๆ‰ง่กŒ๏ผŒ่ฟ”ๅ›žๆ–นๆกˆไพ›ไบบๅทฅๅฎกๆ ธใ€‚ๅฎกๆ ธ้€š่ฟ‡ๅŽ่ฐƒ็”จ smart_clip ๆ‰ง่กŒใ€‚

Inputs: video_path (required), intent, clip_count, clip_duration_min, +1 more. Returns: object

highlight_reel_toolB

ไปŽๅคšไธช่ง†้ข‘ไธญๆๅ–็ฒพๅฝฉ็‰‡ๆฎตๅˆๆˆ้›†้”ฆ่ง†้ข‘ใ€‚ๆ”ฏๆŒ่ทจ่ง†้ข‘ไธป้ข˜่šๅˆใ€‚

Inputs: video_paths (required), theme (required), target_duration. Returns: object

repurpose_toolA

ๅฐ†้•ฟ่ง†้ข‘่‡ชๅŠจ้‡ๅˆถไธบ้€‚้…็›ฎๆ ‡ๅนณๅฐ็š„็Ÿญ่ง†้ข‘ใ€‚่‡ชๅŠจ่ฏ†ๅˆซ็ฒพๅฝฉๅ†…ๅฎนใ€่ฃๅˆ‡ใ€ๅŠ ๅญ—ๅน•ใ€่ฐƒๆฏ”ไพ‹ใ€‚

Inputs: video_path (required), platform, clip_count, style. Returns: object

smart_clip_toolA

ไปŽ้•ฟ่ง†้ข‘ไธญ่‡ชๅŠจ่ฏ†ๅˆซ็ฒพๅฝฉ็‰‡ๆฎตๅนถ่ฃๅˆ‡่พ“ๅ‡บใ€‚้€‚็”จไบŽๅฃๆ’ญใ€ๆ’ญๅฎขใ€็›ดๆ’ญๅ›žๆ”พ็ญ‰่ฏญ้Ÿณ้ฉฑๅŠจๅ†…ๅฎนใ€‚

Inputs: video_path (required), intent, clip_count, clip_duration_min, +5 more. Returns: object

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelogโ€ฆ

    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.

    Related MCP Connectors

    Related MCP Servers