Model Context Protocol

VidLens speaks MCP.

Connect VidLens as an MCP server. Your client reads the video on your own machine and uploads only frames and transcript; VidLens returns an AI-ready document — visuals included, cited to the second. The video itself never reaches our servers.

agent · session
# agent connects to the VidLens MCP server
 tools discovered: submit_video, get_video_doc,
   search_in_video, search_youtube

 submit_video("youtube.com/watch?v=8Kx3rc")
  client fetches locally · uploads frames + transcript
 job queued · id vector-search-in-production

 get_video_doc("vector-search-in-production")
 document ready · transcript + vision, as markdown
Connect

Running in three steps.

The server is a standard MCP stdio process. Add it to any MCP-aware client — Claude Desktop, your own agent runtime, an IDE.

1

Get a key

Create a key in Settings → API. It scopes the agent to your account.

2

Add the server

Add @vidlens/mcp to your client’s mcp.json with the key in env. The client bundles the fetcher that runs on your machine.

3

Submit & read

Restart the client. Your agent calls submit_video, then get_video_doc for the finished document.

~/.config/mcp.json
{
  "mcpServers": {
    "vidlens": {
      "command": "npx",
      "args": ["-y", "@vidlens/mcp"],
      "env": { "VIDLENS_API_KEY": "sk-vl-…" }
    }
  }
}

The fetch runs on your machine.The client SDK reads the video on your own connection and uploads only frames and transcript. The video itself never reaches VidLens servers — that’s what keeps it clean.

Reference

Two tools, one job: give the agent the document.

submit_video(url)
job · id, status
Hands VidLens a YouTube URL. The client fetches the video locally and uploads only frames and transcript; the server dedups frames, runs vision descriptions, and assembles the document. Returns a job you can poll. The video itself never reaches the server.
get_video_doc(id)
markdown · the full document
Returns the finished video document as markdown — timestamped transcript fused with deduplicated key frames and vision descriptions of what’s on screen. The whole thing, ready to drop into context.
search_in_video(id, query) · soon
Match[] · timestamp, snippet
On the roadmap: full-text search within a document, returning the exact timestamps so the agent can cite and seek.
search_youtube(query) · soon
Match[] · video_id, snippet
On the roadmap: search across your processed documents to find which video answers the question, before pulling a full document into context.
In practice

“What did Maya say about chunking?”

The agent finds the moment, reads the surrounding transcript, and answers with a citation back to the second.

User

What did Maya say about chunking in the vector search talk?

# agent already has the document
get_video_doc("vector-search-in-production")
 transcript + vision, as markdown

# finds [03:58] and the on-screen frame
 cites the moment
Agent

At [03:58], Maya’s one-line takeaway was “chunk on structure, not character count.” She argued the split strategy matters more than the embedding model — split on headings and table boundaries so each chunk is something a human would actually quote.

Give your agent eyes for video.

Grab a key, add the server, and submit your first video in a minute.

Open VidLens