Skip to content

This release adds 3 notable features for engineering teams evaluating rollout.

Published 25d MCP Data & Storage
✓ No known CVEs patched
Read the diff → Tool health → What is this tool? →

✓ No known CVEs patched in this version

Topics

claude-code cursor docker mcp mcp-server youtube
+2 more
youtube-captions yt-dlp

Summary

AI summary

Updates base64, mmm, and https://github.com/modelcontextprotocol/ext-apps across a mixed release.

Full changelog

Added

  • get_video_frame MCP tool: Captures a single frame from a video at a given timestamp. Input: url, timecode ("MM:SS" or "HH:MM:SS(.mmm)", e.g. "01:23", "00:01:23.500") or seconds (default: 0, first frame), format (jpeg default / png), width (default 1280, max 1920, never upscales), quality (ffmpeg -q:v 2–31, default 4). Returns an MCP image content block (base64) plus structuredContent (videoId, timestampSeconds, timestamp, mimeType, sizeBytes, width — actual output width read from PNG/JPEG headers).
  • captureVideoFrame() in src/youtube.ts: Fast path resolves video id, duration, and a direct stream URL in one yt-dlp --print id --print duration --print urls call, then ffmpeg seeks over HTTP (-ss) and grabs one frame without downloading the video. Fallback: yt-dlp --download-sections fetches a ~2s re-encoded clip (--force-keyframes-at-cuts, first frame = exact timestamp) and ffmpeg extracts it locally. Honors cookies, YT_DLP_PROXY (also passed to ffmpeg via -http_proxy), and yt-dlp env args. Returns a discriminated outcome (ok / timestamp_beyond_duration / capture_failed). Requires ffmpeg (already included in the Docker image).
  • YT_DLP_FRAME_TIMEOUT: Timeout for frame-capture yt-dlp/ffmpeg runs; falls back to YT_DLP_TIMEOUT (default 60000 ms).
  • MCP Apps (interactive widgets): React UIs served as ui:// resources for hosts supporting MCP Apps (registerAppTool / registerAppResource with ui.resourceUri and openai/outputTemplate metadata):
    • search_videos — result carousel with video details and subtitle search;
    • get_transcript — video card with searchable timed subtitles and track picker;
    • get_video_info — video card with metadata and collapsible description;
    • get_video_frame — frame viewer with recapture controls (±1s/±10s steppers, timecode input, watch-at-time link).
  • Vite single-file UI build: New ui/ workspace (React 19, Vite, vite-plugin-singlefile) compiled into self-contained dist/ui/<app>.html files via npm run build:ui; npm run build now builds both the server and the UI apps.

Changed

  • MCP SDK: @modelcontextprotocol/sdk 1.26 → 1.29; added @modelcontextprotocol/ext-apps for app tool/resource registration.
  • transcriptor://info resource and usage guide: Now list get_video_frame and the widget resource URIs.
  • README: Documents the get_video_frame tool (inputs, response shape, timeout).

Weekly OSS security release digest.

The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.

No spam, unsubscribe anytime.

Share this release

Track samson-art/transcriptor-mcp

Get notified when new releases ship.

Sign up free

About samson-art/transcriptor-mcp

Transcriptor MCP is your choice when you need transcripts and metadata for AI, summarization, or content analysis

All releases →

Beta — feedback welcome: [email protected]