VidLens
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| GEMINI_API_KEY | No | Optional API key for Gemini. Unlocks higher-quality embeddings for semantic search (768d vs 384d) and frame descriptions for visual search. Get from Google AI Studio. | |
| YOUTUBE_API_KEY | No | Optional API key for YouTube Data API v3. Unlocks better metadata, comment API, and search via YouTube API. Get from Google Cloud Console. |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| findVideosB | Search YouTube videos by intent. Returns compact ranked results with provenance and engagement hints. [~1-3s] |
| inspectVideoB | Inspect a single video with compact metadata, normalized ratios, and transcript availability. [~1-3s] |
| inspectChannelB | Inspect a channel with summary stats and posting cadence heuristics. [~3-10s] |
| listChannelCatalogC | List a channel's recent catalog in compact creator-analysis shape. [~3-10s] |
| readTranscriptB | Read transcript in summary, key moments, chapters, or paginated full mode with long-video safeguards. [~1-3s] |
| readCommentsC | Read top-level comments with optional replies and structured provenance. [~1-3s] |
| measureAudienceSentimentC | Heuristic audience sentiment analysis from comments with themes, risk signals, and quote samples. [~3-10s] |
| analyzeVideoSetB | Run multiple analyses across a video set with partial success, item-level errors, and provenance. [~5-20s, scales with video count] |
| expandPlaylistC | Expand a playlist into individual videos for downstream analysis and batch workflows. [~1-3s] |
| analyzePlaylistC | Expand and analyze a playlist in one call with partial success and aggregate benchmarks. [~5-20s, scales with playlist size] |
| importPlaylistC | Import a playlist into the local transcript knowledge base for semantic search in Claude Desktop. [~5-30s, ~2s per video] |
| importVideosB | Import one or more videos into a local transcript collection for later semantic search. [~5-20s, ~2s per video] |
| searchTranscriptsC | Search imported transcript-text collections with active-collection focus by default and return ranked timestamped chunks. [~instant] |
| listCollectionsB | List local transcript collections, active search focus, and indexed video/chunk counts. [~instant] |
| setActiveCollectionA | Set the default collection that transcript search should focus on when collectionId is omitted. [~instant] |
| clearActiveCollectionA | Clear the active collection so transcript search fans back out across all collections. [~instant] |
| checkImportReadinessA | Diagnose whether a video is importable, including transcript availability, sparse-transcript warnings, and yt-dlp/API issues. [~1-3s] |
| buildVideoDossierB | Build a one-shot video dossier with core metadata/transcript readiness, optionally extended with comments, sentiment, and provenance. [~3-10s] |
| checkSystemHealthA | Check setup and provider health: yt-dlp, YouTube API, Gemini embeddings, and local storage. [~3-10s] |
| removeCollectionB | Delete a local transcript collection and its search index. [~instant] |
| scoreHookPatternsC | Heuristically score first-30-second hooks across one or more videos. [~3-10s, ~1s per video] |
| researchTagsAndTitlesC | Research title structures, keywords, and tag patterns around a seed topic. [~3-10s] |
| compareShortsVsLongC | Compare recent Shorts vs long-form performance for a channel and suggest a format mix. [~3-10s] |
| recommendUploadWindowsB | Recommend upload windows from recent publishing history for a given timezone. [~3-10s] |
| discoverNicheTrendsA | Discover what's trending in a niche right now. Returns top-performing and recent videos, momentum signals (accelerating/steady/decelerating), saturation analysis, content gap opportunities, keyword patterns, and format breakdown. Grounded in YouTube search data with honest limitations disclosed. [~5-15s] |
| exploreNicheCompetitorsA | Discover active channels in a niche by analyzing who ranks in YouTube search results. Returns channel-level stats, top videos, and a landscape summary. Useful for competitive reconnaissance before entering a niche. [~5-20s] |
| downloadAssetA | Download a YouTube video, audio track, or thumbnail to local storage. Returns asset manifest entry with file path. Does NOT perform visual indexing — this is honest file storage. [~30-120s, downloads media] |
| listMediaAssetsB | List locally stored media assets. Filter by video or kind. Shows file paths, sizes, and manifest metadata. [~instant] |
| removeMediaAssetB | Remove stored media assets. Specify assetId to remove one, or videoIdOrUrl to remove all assets for a video. [~instant] |
| extractKeyframesA | Extract keyframe images from a locally downloaded video at regular intervals using ffmpeg. Requires the video to be downloaded first via downloadAsset. Does NOT do visual search or classification — produces raw frame images. [~30-60s, requires ffmpeg] |
| mediaStoreHealthB | Check health of the local media store: disk usage, asset counts, ffmpeg/yt-dlp availability. [~instant] |
| indexVisualContentA | Build a real visual index for a video using extracted frames, Apple Vision OCR, Apple Vision feature prints, and optional Gemini frame descriptions. Returns frame evidence with local image paths. [~30-120s, downloads + OCR + vision] |
| searchVisualContentA | Search the actual visual content of a video or your indexed frame library. Uses Apple Vision OCR, optional Gemini frame descriptions, and optional Gemini semantic embeddings. Always returns frame/image evidence with timestamps. [~1-3s if indexed, ~60-120s if auto-indexing] |
| findSimilarFramesA | Find frames that visually look like a reference frame using Apple Vision image feature prints. Accepts a frame assetId or a direct framePath and returns image-backed matches. [~30-60s, vision comparison] |
| importCommentsA | Import a video's comments into the local comment knowledge base for semantic search. Fetches comments via the existing comment pipeline and indexes them for searchComments. [~3-10s] |
| searchCommentsA | Search imported comment collections with ranked results. Returns matching comments with author, like count, and relevance score. Uses active comment collection by default. [~instant] |
| listCommentCollectionsC | List local comment collections, active search focus, and indexed comment counts. [~instant] |
| setActiveCommentCollectionA | Set the default comment collection that searchComments should focus on when collectionId is omitted. [~instant] |
| clearActiveCommentCollectionA | Clear the active comment collection so comment search fans back out across all comment collections. [~instant] |
| removeCommentCollectionB | Delete a local comment collection and its search index. [~instant] |
| exploreYouTubeA | ALWAYS use this tool FIRST when the user wants to find, discover, or explore YouTube videos. Do NOT use web search for YouTube video discovery — use this tool instead. Searches YouTube directly with intelligent multi-query ranking and parallel enrichment. Returns ranked videos with transcript summaries, key moments, and readiness for follow-up. IMPORTANT: When results contain benchmark scores, statistics, or comparisons, ALWAYS create visual charts and infographics (bar charts, comparison tables) from the data immediately — do not wait for the user to ask. Use 'specific' mode to find one best video. Use 'explore' for topic discovery across creators. Depth: 'quick' for metadata, 'standard' for key moments + transcript summaries, 'deep' for background indexing. [~2s quick, ~5-10s standard, ~15-30s deep] |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/thatsrajan/vidlens-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server