Transcriptor (samson-art/transcriptor-mcp) is an MCP server listed on the M8ven Trust Index. M8ven has not graded it: we have no way to read this server ourselves. No publisher has claimed this listing.
An MCP server that fetches video transcripts/subtitles via yt-dlp, with pagination for large responses. Supports YouTube, Twitter/X, Instagram, TikTok, Twitch, Vimeo, Facebook, Bilibili, VK, Dailymotion, Reddit. Whisper fallback — transcribes audio when subtitles are unavailable.
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
samson-art
Source: Smithery · also listed on 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
M8ven verifies MCPs across every public registry — install directly from whichever one you prefer.
Disclosed vulnerabilities in this server's declared npm dependencies (via OSV). Whether each is reachable depends on the installed versions.
Fastify has a Body Schema Validation Bypass via Leading Space in Content-Type Header
fastify: request.protocol and request.host Spoofable via X-Forwarded-Proto/Host from Untrusted Connections
Fastify's Missing End Anchor in "subtypeNameReg" Allows Malformed Content-Types to Pass Validation
BASE_URLCACHE_MODERedis caching — Cache subtitles and metadata to reduce yt-dlp calls. Configure via =redis and CACHE_REDIS_URL.CACHE_REDIS_URLRedis caching — Cache subtitles and metadata to reduce yt-dlp calls. Configure via CACHE_MODE=redis and .CACHE_TTL_METADATA_SECONDSCACHE_TTL_SUBTITLES_SECONDSCOOKIES_FILE_PATHan authenticated cookies.txt file and the environment variable.CORS_ALLOWED_ORIGINSHOSTIf you change PORT / , adjust the URL accordingly, e.g. http://<HOST>:<PORT>/docs.LOAD_BASE_URLLOG_LEVELRATE_LIMIT_TIME_WINDOWSMOKE_BUILDSMOKE_DOCKERFILESMOKE_DOCKER_CONTEXTSMOKE_IMAGE_APIFull API image reference (overrides name/tag).SMOKE_MCP_AUTH_TOKENIf set, sent as Authorization: Bearer on MCP HTTP requests (for smoke against an edge that requires Bearer; the default smoke stack does not enforce it).SMOKE_MCP_IMAGEFull MCP image reference (overrides name/tag).SMOKE_SKIP_BUILDSMOKE_SKIP_MCPSet to 1 (or true/yes) to skip MCP checks.TEST_PARSE_INTWHISPER_API_BASE_URLWHISPER_API_KEYWhisper fallback — When native subtitles are unavailable, transcribe video audio via Whisper (local self-hosted or OpenAI API). Configure via WHISPER_MODE, WHISPER_BASE_URL, , etc.WHISPER_BACKGROUND_TIMEOUTWHISPER_BASE_URLWhisper fallback — When native subtitles are unavailable, transcribe video audio via Whisper (local self-hosted or OpenAI API). Configure via WHISPER_MODE, , WHISPER_API_KEY, etc.WHISPER_MODEWhisper fallback — When native subtitles are unavailable, transcribe video audio via Whisper (local self-hosted or OpenAI API). Configure via , WHISPER_BASE_URL, WHISPER_API_KEY, etc.WHISPER_TIMEOUTYT_DLP_AGE_LIMITYT_DLP_AUDIO_BUFFER_SIZEYT_DLP_AUDIO_CONCURRENT_FRAGMENTSYT_DLP_AUDIO_DOWNLOADERYT_DLP_AUDIO_DOWNLOADER_ARGSYT_DLP_AUDIO_FORMATYT_DLP_AUDIO_FRAGMENT_RETRIESYT_DLP_AUDIO_HTTP_CHUNK_SIZEYT_DLP_AUDIO_LIMIT_RATEYT_DLP_AUDIO_QUALITYYT_DLP_AUDIO_RETRIESYT_DLP_AUDIO_RETRY_SLEEPYT_DLP_AUDIO_THROTTLED_RATEYT_DLP_AUDIO_TIMEOUTYT_DLP_DOWNLOAD_ARCHIVEYT_DLP_ENCODINGYT_DLP_EXTRA_ARGSYT_DLP_IGNORE_NO_FORMATSYT_DLP_JS_RUNTIMESYT_DLP_MAX_FILESIZEYT_DLP_MAX_SLEEP_INTERVALYT_DLP_NO_WARNINGSYT_DLP_PLAYLIST_IGNORE_ERRORSYT_DLP_PROXYYT_DLP_REMOTE_COMPONENTSYT_DLP_REQUIREDYT_DLP_RETRIESYT_DLP_RETRY_SLEEPYT_DLP_SKIP_VERSION_CHECKYT_DLP_SLEEP_INTERVALYT_DLP_SLEEP_REQUESTSYT_DLP_SLEEP_SUBTITLESYT_DLP_SUB_FORMATYT_DLP_TIMEOUTYT_DLP_VERBOSE_ON_ERRORSENTRY_DSNSENTRY_ENVIRONMENTSENTRY_RELEASESENTRY_SEND_DEFAULT_PIISENTRY_TRACES_SAMPLE_RATEAll four hints declared on every tool
7/7 tools missing one or more hints — get_transcript (missing: destructiveHint, openWorldHint); get_raw_subtitles (missing: destructiveHint, openWorldHint); get_available_subtitles (missing: destructiveHint, openWorldHint), +4 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.
Tool inputs are validated
Only 0/7 tool handlers declare input schemas (0%)
Declare an inputSchema with zod/joi/yup on every tool definition.
Shell command execution
4 child_process calls — runs shell commands
Prefer library functions over shell-outs. If you must shell out, ensure all inputs are properly escaped.
Production dependencies are patched
0 critical, 1 high severity in production deps — fastify@5.7.4 (high), fastify@5.7.4 (low)
Run npm audit fix, or upgrade the affected packages to a non-vulnerable version.
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/samson-art-transcriptor-mcp-1fxxg3)?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