MCP Video Gen (the-code-learner/MCP-video-gen) is an MCP server listed on the M8ven Trust Index. It scores 54 out of 100, grade D. It declares 128 tools. No publisher has claimed this listing.
A self-hosted MCP server that connects AI clients to local media-generation backends like ComfyUI and Blender, and provides built-in utilities for video/audio analysis, editing, subtitles, speech, and scene detection via a persistent file cache.
Caution. Specific findings reduced this grade. They are listed on the page. Grades reflect the full trust pyramid: code, verification depth, and reputation. New projects cap at C until adoption is earned.
How we verified
Verified is a snapshot. Live keeps it current, and builds your track record.
⚡ Connect GitHub → continuous verification on every pushwhy connect →Who stands behind it
the-code-learner
Source: Glama
Claim it to get a verified publisher badge, a free copy of our full audit findings, and direct contact for any high-priority issues we find. Or connect your repo for our deepest verification, Live Monitored: read-only, revoke anytime. What we access →
Install from
The grade above is for the source repository. Registries can serve a different version, so we mark the ones we were not able to read.
These names and descriptions are the publisher's own, read from the source code. We print them as written. Our assessment is the findings above, not this list.
inventory_summarySummarize ComfyUI reachability, loaded nodes, model folders and local runtime capabilities.
list_loaded_nodesReturn ComfyUI node classes currently registered by /object_info, optionally filtered.
get_node_definitionReturn the authoritative ComfyUI definition for one loaded node class.
list_model_foldersList model folders registered by ComfyUI.
list_registered_modelsList model names ComfyUI registered for a model folder.
scan_modelsScan the read-only ComfyUI models mount and return relative paths, sizes and extensions.
scan_custom_nodesScan the read-only custom_nodes mount to discover installed packages/files.
read_custom_node_fileRead a text source/documentation file inside custom_nodes, sandboxed to the read-only mount.
submit_workflowSubmit arbitrary ComfyUI API-format workflow JSON to /prompt.
get_queueget_historyinterruptupload_image_base64Upload an image to ComfyUI /upload/image from base64 content.
cache_outputDownload a ComfyUI /view output into the persistent MCP media cache.
list_cached_outputsget_output_inline_base64media_probeProbe a cached media file with ffprobe.
extract_frameExtract one frame from cached video.
transcode_videoTranscode cached media to broadly compatible H.264/AAC MP4.
concat_videosNormalize cached clips to a common H.264/AAC profile and concatenate them.
mux_audioReplace/add a cached video's audio track with another cached audio source.
overlay_videoComposite a cached overlay video (including HyperFrames alpha outputs where supported) over a base video.
hyperframes_infohyperframes_list_projectshyperframes_create_projectCreate a local HyperFrames project non-interactively.
hyperframes_write_text_fileWrite HTML/CSS/JS/JSON/Markdown inside a HyperFrames project.
hyperframes_read_text_filehyperframes_import_cached_mediahyperframes_linthyperframes_checkhyperframes_renderRender a local HyperFrames project and place the result in the shared media cache.
advanced_capabilitiesReport advanced media/audio/local-AI capabilities implemented by this MCP.
detect_beatsdetect_tempodetect_onsetsdetect_pitchdenoise_voicedetect_speech_segmentswhisper_infotranscribetranscribe_to_subtitlespiper_infopiper_runtime_set_enabledPersistently enable or disable Piper only after confirm=true. The choice applies immediately and survives restarts without changing deployment YAML.
piper_import_voice_filetts_localsubtitle_retimeScale all subtitle timestamps and optionally shift them in milliseconds.
transcribe_wordsTranscribe media and return word-like timestamp spans from whisper.cpp.
detect_scenessplit_scenesscene_thumbnailssubtitle_createsubtitle_shiftsubtitle_convertsubtitle_style_asssubtitle_burntimeline_createtimeline_inspecttimeline_add_cliptimeline_move_cliptimeline_add_transitiontimeline_add_markertimeline_exportdetect_silencedetect_black_framesdetect_freezeanalyze_loudnessnormalize_loudnesscrop_detectdetect_interlacingextract_contact_sheetcompare_ssim_psnrsafe_croploop_videoreverse_videospeed_rampframe_similaritymotion_scoreselect_best_framedetect_duplicate_framesextract_keyframesmake_storyboardbuild_statusReport build/version, safe runtime configuration and registered v3.1 local-AI/resource capabilities.
comfy_upload_cached_mediaStage a cached image, audio, video, or other file into ComfyUI `/input`.
comfy_upload_cached_imageBackward-compatible image-only cache -> ComfyUI adapter.
cache_statusInspect persistent MCP media-cache size and the active retention policy.
cache_cleanupApply the configured cache-retention policy; defaults to a safe dry run.
cache_pinProtect an important cached artifact from retention cleanup.
cache_unpinRemove retention protection from a cached artifact.
save_uploaded_fileSave one file attached in ChatGPT directly into the Video Gen cache.
save_uploaded_filesSave several ChatGPT-attached files directly into the Video Gen cache.
external_backends_statusReturn availability and configuration status for every external execution backend.
blender_infoReturn Blender bridge availability/version without failing when Blender is absent.
blender_execute_pythonExecute a Blender Python job on the optional host bridge.
blender_render_blendRender one frame from a cached .blend file through the optional Blender bridge.
blender_render_animationRender a cached .blend animation to H.264 MP4 through the optional Blender bridge.
blender_export_glbExport a cached .blend scene, including animation when present, as binary glTF/GLB.
import_remote_fileImport a server-retrievable HTTPS file reference into the MCP cache.
file_transfer_guideReturn the canonical routing rules for moving files through MCP Video Gen.
cache_text_fileImport UTF-8 text authored by the client/AI into the persistent cache.
get_cached_file_infoReturn cache metadata and transfer options for one local file_id.
26 further tools are not listed here. The complete surface is in the source.
COMFYUI_SCHEMECOMFYUI_HOSTCOMFYUI_PORTCOMFYUI_BASE_PATHMCP_LISTEN_PORTMCP_RUN_UIDMCP_RUN_GIDMAX_UPLOAD_MBMAX_INLINE_OUTPUT_MBSCAN_MAX_FILESFFMPEG_TIMEOUT_SECHYPERFRAMES_TIMEOUT_SECCF_ACCESS_TEAM_DOMAINCF_ACCESS_AUDPUBLIC_BASE_URLWhen is set, the URI points to:VIDEO_MCP_DATA_ROOTHYPERFRAMES_PROJECTS_ROOTVIDEO_MCP_APP_VERSIONSILERO_VAD_MODEL_PATHWHISPER_CPP_BINARYWHISPER_MODEL_PATHPIPER_ENABLEDBLENDER_BRIDGE_BINDBLENDER_BRIDGE_PORTBLENDER_BRIDGE_TOKENBLENDER_BRIDGE_ROOTBLENDER_BINARYBLENDER_BRIDGE_MAX_INPUT_MBBLENDER_BRIDGE_MAX_SCRIPT_CHARSBLENDER_BRIDGE_MAX_TIMEOUT_SECBLENDER_BRIDGE_MAX_LOG_CHARSBLENDER_BRIDGE_JOB_TTL_SECQWEN_TTS_DEVICEQWEN_TTS_ATTENTIONQWEN_TTS_MAX_NEW_TOKENSPIPER_VOICES_ROOTAUDIT_RETENTION_DAYSAUDIT_MAX_ROWSVIDEO_MCP_SOURCE_REFVIDEO_MCP_APP_DIRREMOTE_IMPORT_ALLOWED_HOSTSREMOTE_IMPORT_MAX_REDIRECTSREMOTE_IMPORT_TIMEOUT_SECBLENDER_BRIDGE_URLBLENDER_BRIDGE_TIMEOUT_SECBLENDER_INPUT_DIRBLENDER_OUTPUT_DIRMUSIC_MAX_DOWNLOAD_MBQWEN_TTS_REQUEST_TIMEOUT_SECWEBGUI_ENABLEDTool annotations
No tools have read-only/destructive annotations
Add readOnlyHint or destructiveHint annotations to every tool so hosts can warn users before invoking.
All four hints declared on every tool
128/128 tools missing one or more hints — inventory_summary (missing: readOnlyHint, destructiveHint, idempotentHint, openWorldHint); list_loaded_nodes (missing: readOnlyHint, destructiveHint, idempotentHint, openWorldHint); get_node_definition (missing: readOnlyHint, destructiveHint, idempotentHint, openWorldHint), +125 more. OpenAI's directory rejects tools where any of the four hints are missing or non-boolean.
For every tool, set all four hints (readOnlyHint, destructiveHint, idempotentHint, openWorldHint) to explicit true/false values that match the handler’s actual behaviour.
Destructive tools are labelled
15 tools perform destructive updates without destructiveHint — concat_videos deletes at line 520 (shutil.rmtree(temp, ignore_errors=True)); denoise_voice deletes at line 74 (finally:shutil.rmtree(w,ignore_errors=True)); detect_speech_segments deletes at line 104 (finally:shutil.rmtree(w,ignore_errors=True))
Add destructiveHint:true to any tool whose handler calls .delete(), .upsert(), .update(), unlink, rm, DELETE, DROP, REPLACE INTO, or any operation that overwrites existing data.
Descriptions match behaviour
1 tool describes read intent but its handler mutates — cache_output (line 326: out.write_bytes(blob))
Rename the tool, rewrite the description, or move the side-effect into a separate clearly-named tool.
Tool test coverage
86/128 tools referenced in tests (67%)
Write tests that reference each tool by name so every tool has at least one test.
Secrets stay with their owner
4 secrets sent to a request target we could not resolve (BLENDER_BRIDGE_TOKEN → dynamic, BLENDER_BRIDGE_TOKEN → dynamic) — often a configured endpoint, not necessarily third-party
Audit where credentials are sent. A NOTION_TOKEN should only reach api.notion.com — never a third-party host.
Tool description accuracy
cache_output: description implies read-only but handler writes/deletes/executes
Update tool descriptions to accurately reflect all capabilities — especially write, delete, or execute operations.
Claim the listing to review these findings one by one and send us a correction where you disagree, straight to the team. Claiming also means we tell you when the grade moves, and reach you first if we find anything urgent.
[](https://m8ven.ai/mcp/the-code-learner/mcp-video-gen)?variant=verified from the URL.Vetting this one by hand? Tool Check is an MCP that scores other MCPs. Add it once and ask Claude, ChatGPT, or any MCP client to grade a server, surface CVEs, check the publisher, and suggest safer alternatives — before you install.
https://m8ven.ai/api/mcp/tool-check