Media analysis server providing structured analysis of video/audio files via MCP tools: metadata extraction, bitrate sampling, GOP structure, audio waveforms, A/V sync, keyframe detection, color analysis, and EBU R128 loudness. Exposes analysis capabilities via HTTP API with MCP endpoint.
FramePeek demonstrates solid definition quality with well-structured tool schemas and clear descriptions. All four tools have explicit, detailed descriptions (180-250 chars, well within the 10-1024 baseline). Input schemas are comprehensive with proper type definitions and enums. However, there are notable gaps in parameter descriptions, output schema documentation, and error handling guidance. The tools follow a consistent verb_noun pattern (analyze_, media_, inspect_) which aids discoverability. Tool names are domain-specific and clear but could benefit from more explicit recovery guidance in error cases.
Run selected analyses on a local media file and return the full structured result (metadata, per-second bitrate samples, GOP structure, audio waveforms, A/V sync, keyframe times, color, EBU R128 loudness).
Parse the MP4/MOV/CMAF atom tree of a local media file: fourCC, size, and offset per box, nested children capped at 50 per node.
QC an HLS ladder from a multivariant playlist (local path or http(s) URL): per-variant declared vs measured bitrates, segment duration compliance, cross-variant keyframe alignment, codec verification, and DRM detection, returned as severity-graded findings.
Cheap first call: container, codec and profile, resolution, frame rate, duration, HDR format, audio tracks, and overall bitrate of a local media file.
Missing output schema documentation. No tool documents the structure of returned analysis results, forcing LLMs to infer what fields to expect or how to parse structured responses.
Missing parameter descriptions for max_samples constraint bounds. The description states '1-20000' but does not explain the performance/accuracy tradeoff or when to raise this value beyond the default of 200.
No guidance in error messages on recovery steps. MCPToolError enum provides error types but tool descriptions lack 'what to do if this fails' guidance for the LLM.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 69 | 2026-07-28+ | v2 |
inspect_hls_ladder accepts both local paths and HTTP(s) URLs but the parameter is named 'url', this may confuse LLMs about whether local paths are truly accepted. Parameter naming could be more explicit (e.g., 'playlist_path_or_url').
analyze_media's 'include' parameter description mentions default ['metadata'] but the actual implementation behavior for empty array vs omitted param is not explicit in the description.