local-video-scenes-mcp

local-video-scenes-mcp

Extracts timestamped screenshots from local videos, enabling Claude to produce visual walkthroughs without audio analysis or cloud processing.

Category
Visit Server

README

Local Video Scenes MCP

Local Video Scenes MCP extracts timestamped screenshots from local videos so Claude can produce a visual walkthrough. It does not use Whisper, audio transcription, or any hosted video-processing service.

What Stays Local

  • The original video stays on your machine.
  • ffmpeg and ffprobe run locally.
  • The MCP returns local screenshot paths and metadata.
  • Claude analyzes only the screenshots you provide through the MCP result.
  • Audio is not extracted or analyzed in V1.

Requirements

  • Node.js 18.18+
  • ffmpeg and ffprobe

The server includes video.check_ffmpeg, which reports whether ffmpeg/ffprobe are available and gives platform-specific install guidance. It also includes video.install_ffmpeg, which dry-runs by default and only runs package-manager commands when called with execute: true.

When a package manager is detected, it suggests commands such as:

brew install ffmpeg
winget install --id Gyan.FFmpeg -e
choco install ffmpeg -y
sudo apt-get install -y ffmpeg

MCP Configuration

After installing or building the package, configure your MCP client to run:

{
  "mcpServers": {
    "local-video-scenes": {
      "command": "npx",
      "args": ["local-video-scenes-mcp"]
    }
  }
}

For local development from this repository:

{
  "mcpServers": {
    "local-video-scenes": {
      "command": "node",
      "args": ["/absolute/path/to/local-video-scenes-mcp/dist/server.js"]
    }
  }
}

Tools

video.extract_scenes

Input:

{
  "path": "/path/to/bug-demo.mp4",
  "sensitivity": 0.3,
  "minGapSeconds": 1.5,
  "mode": "auto"
}

Optional fields:

  • sensitivity: scene-change threshold between 0 and 1; default 0.3.
  • maxFrames: maximum returned frames; default min(80, max(12, ceil(durationSeconds / 3))).
  • minGapSeconds: minimum gap between returned frames; default 1.5.
  • outputDir: output folder; default is a temp folder.
  • mode: auto, scene, or sample; default auto.

Output includes:

  • duration
  • sourcePath
  • outputDir
  • extractionMode
  • maxFrames
  • performanceEstimate
  • warnings
  • frames[] with timestamp, path, index, and optional sceneScore

video.cleanup

Removes the generated frame directory:

{
  "outputDir": "/tmp/video-context/abc123"
}

video.check_ffmpeg

Checks local ffmpeg/ffprobe availability and returns install guidance if either is missing.

video.install_ffmpeg

Returns the detected install commands by default:

{
  "execute": false
}

To run the detected package-manager command, call it explicitly with:

{
  "execute": true
}

Performance Defaults

The default frame budget is tuned for 1-minute screen recordings:

maxFrames = min(80, max(12, ceil(durationSeconds / 3)))

For a 60-second video, this returns about 20 frames by default. On an M2 with 16GB RAM, expected V1 behavior is:

  • ffmpeg extraction: usually 1-5 seconds
  • Claude visual walkthrough over 12-25 screenshots: roughly 10-30 seconds
  • target end-to-end time for a 1-minute video: under about 30 seconds in normal cases

Claude Usage Guidance

When a user provides a video path:

  1. Call video.extract_scenes.
  2. Inspect the returned image paths as visual context.
  3. Produce a timestamped walkthrough of visible UI states, actions, errors, code, logs, and important text.
  4. Mention that audio was not analyzed.
  5. Use video.cleanup when the generated screenshots are no longer needed.

Example:

The video shows the user opening the dashboard, navigating to Export, clicking the export action, and reaching a visible HTTP 500 error around 00:01:42. Audio was not analyzed.

Development

npm install
npm test
npm run typecheck
npm run build

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured