
Give your AI agent video taste.
Create stunning, aesthetic videos.
AI storyboards generic. Yours storyboards from footage.
STEALSHOT connects your agent to 83,431 frames from 962 real launch films, product demos and show intros, every one described for its craft, so what it storyboards starts from what actually shipped.
- 6 read-only tools, one command to install — no key, no account, nothing to revoke
- Answers come back as the actual frames, with the brand and the timecode on them
- Ask whether a move is a convention and get the count across 962 films, not an opinion
- Under a second a call — the descriptions are pre-computed, so no model sits in the path
No API key. No account. Read only. One command.
Installs into
Ask any model to plan a launch video and it gives you the same five shots. It has read about cinematography. It has not watched 962 launch films frame by frame, counted how many open on a wordmark, or measured how much darker Anthropic shoots than OpenAI. That is not in the training data. It is in here.
01
Ask whether a move is a convention. Get the evidence.
Everything in this block is the live server answering right now, not a mockup.
YouIs a centred wordmark on black a real convention, or did one video do it once?
ClaudeLet me get the evidence across the library.
used stealshot · find_pattern · { technique: "centred-wordmark-on-black" }
12 frames across 10 videos from 10 unrelated brands. Verdict: convention, seen across many unrelated videos. Best example from each:

Anthropic 37.5s
Cut hard from the previous text card to a centred wordmark with integrated mark, holding it full-frame on black with no animation or movement.
- centred-wordmark-on-black
- hard-cut-transition
- logo-reveal-static
- integrated-mark-lockup

Apple 22.5s
Layer text in hierarchy, subtitle first, then logo, over a receding architectural background, holding the frame static for a full beat to establish the product name before cutting.
- centred-wordmark-on-black
- hierarchical-text-stack
- architectural-depth-blur
- static-hold-on-beat

Daniel Belfort 91.5s
Center a small icon above a domain name on full black, leaving ample breathing room above the mark so it reads as confident and intentional rather than cramped.
- centred-wordmark-on-black
- icon-above-text
- full-bleed-black-background
- floating-logo-treatment
02
Craft you can measure, not just look at.
A screenshot library cannot tell you how fast a brand cuts. A frame library can.
| Brand | Median cut | Face on screen | Dark frames | Signature |
|---|---|---|---|---|
| OpenAI | 7.30s | 51% | 26% | warm bokeh background, shallow depth of field, static wide hold |
| Alexander Whedon | 1.14s | 60% | 78% | lower third text overlay, centered presenter medium shot, static presenter hold |
| MTS | 0.17s | 33% | 27% | hard cut transition, frame within frame oval, ornamental border framing |
used stealshot · compare_brands · live
03
83,431 frames. 962 videos. 154 brands. Described, not just stored.
Launch films
How a company announces a product in ninety seconds. 281 of them, from the household names and the ones that only did well on X.
Demos and screen recordings
How a UI is shown when nobody is on camera: cursor-led reveals, full-bleed terminals, inset windows, how long a screen is allowed to sit.
Show and podcast intros
The most copyable thing in video, because the same team performs it every week. Sampled once per second so the cut rhythm is visible.
Your agent can search, compare and cite all of it.
04
Ask it things like
- I have one person, one room and one afternoon. What do I shoot?
- Is a centred wordmark on black a real convention, or did one video do it once?
- Find presenter shots where the UI floats beside the person, not behind them.
- How do the strongest launch videos open? Give me the first five seconds.
- Compare how OpenAI and Anthropic cut a launch video.
- What does everyone do that I should refuse to do?
05
When to reach for STEALSHOT
Six jobs, and every one of them is somebody's whole afternoon.
You are building an AI video agent
Your generator writes the same five shots every time, because that is the average of everything it read. Hand it the shot list from films that actually shipped and the storyboard changes before a single frame is rendered.
search_frames, find_pattern
You are shooting your own launch film
One person, one room, one afternoon. Find the shots that work at that budget and the openings that hold, instead of storyboarding a Super Bowl spot you cannot make.
search_frames, get_video
You are an agency writing a treatment
“Bold and cinematic” loses to “this category opens on a centred wordmark, here are the twelve frames and the six brands.” Pitch the evidence rather than the adjectives.
find_pattern, compare_brands
You are art-directing to a house style
Walk a single film shot by shot, or put two brands side by side and see where they actually differ — cut rhythm, how dark they shoot, how much of the frame a face is allowed.
get_video, compare_brands
You are cutting a demo or a screen recording
The hardest thing to make watchable is a UI. Find how other teams reveal one: cursor-led, full-bleed terminal, inset window, and how long a screen is allowed to sit before it cuts.
search_frames, list_techniques
You are settling an argument about a shot
One video doing something is an anecdote. Six unrelated brands doing it is a convention, and the tool tells you which of the two you have.
find_pattern, list_techniques
06
One line, in whichever of these 12 you already use.
In any terminal
claude mcp add stealshot --scope user --transport http https://stealshot.com/api/mcp
Settings → Connectors → Add custom connector
https://stealshot.com/api/mcp
In any terminal
codex mcp add stealshot --transport http https://stealshot.com/api/mcp
Settings → Connectors → Add custom connector (developer mode)
https://stealshot.com/api/mcp
~/.cursor/mcp.json
{
"mcpServers": {
"stealshot": { "url": "https://stealshot.com/api/mcp" }
}
}.vscode/mcp.json
{
"servers": {
"stealshot": { "type": "http", "url": "https://stealshot.com/api/mcp" }
}
}~/.codeium/windsurf/mcp_config.json
{
"mcpServers": {
"stealshot": { "serverUrl": "https://stealshot.com/api/mcp" }
}
}~/.gemini/settings.json
{
"mcpServers": {
"stealshot": { "httpUrl": "https://stealshot.com/api/mcp" }
}
}Settings → Tools → AI Assistant → MCP → Add as JSON
{
"mcpServers": {
"stealshot": { "url": "https://stealshot.com/api/mcp" }
}
}Settings → AI → MCP servers → Add
{
"stealshot": { "url": "https://stealshot.com/api/mcp" }
}Manage MCP Servers → Add via JSON
{
"mcpServers": {
"stealshot": { "url": "https://stealshot.com/api/mcp" }
}
}MCP Client Tool node → HTTP Streamable
https://stealshot.com/api/mcp
The library is public and every tool is read only, so there is no OAuth step and no plan to upgrade to. Endpoint: https://stealshot.com/api/mcp
07
6 tools, all read only
Search frames by what they look like, gather the evidence for a technique across brands, list the technique vocabulary, walk one video shot by shot, compare how two brands cut, and check what is in the library. Every tool is annotated readOnlyHint in the protocol, so your client can verify that rather than take our word for it.
search_frames
Search frames
Search the frame library by what is actually IN and TRUE OF a shot. This is the main way in. Every frame has been described by a vision model, so plain language works: 'presenter against a dark backdrop with the UI floating beside them', 'code on a light background with huge negative space', 'title card that opens on the wordmark'. Combine free text with the filters to narrow by craft.
query · technique · subject · surface · shot_type · tone · brand · launch_only · opening_only · limit
find_pattern
Find the evidence for a technique
Given a technique or a plain-language move, gather the EVIDENCE for it across different videos: one best example per brand, plus how widespread it is. This is the tool for 'is this a real convention or did one video do it once', and for building an argument rather than a single reference. Always prefer this over search_frames when the question is about a pattern rather than a picture.
technique · query · limit
list_techniques
List the technique vocabulary
List the technique vocabulary the library actually uses, with how many frames and how many distinct videos use each. Call this before search_frames when you want to filter precisely, or to answer 'what moves are common in launch videos'. A technique used by many DIFFERENT videos is a convention; one used many times inside a single video is that video's habit, so both counts are returned.
contains · min_videos · limit
get_video
Walk one video shot by shot
The full anatomy of one video: its measurements plus a shot-by-shot walk through its described frames in time order. Use this after search_frames when a single reference is worth studying properly, or to answer 'how is this video actually built'. Prefer it over many search calls on the same title.
video_id · title · max_frames
compare_brands
Compare how brands cut
Compare how two or more brands cut their videos: pace, how much of the frame is a face, how dark they shoot, and their most-used techniques. Use for 'how does Linear's launch style differ from OpenAI's'.
brands
library_stats
What is in the library
What is actually in the library right now: counts, the brands with the most indexed videos, and how much of it has been described. Call this first if you need to know whether a question is answerable, and to avoid claiming coverage the corpus does not have.
no arguments
08
Frequently asked questions
What is an MCP server?
Model Context Protocol is a standard way for an AI agent to reach data it was not trained on. STEALSHOT's server lets your agent search a library of real launch videos frame by frame and cite what it finds.
Do I need an API key or an account?
Neither. It is a public, read-only server. One command and your agent can use it.
Which clients work?
Claude Code, Claude Desktop, Cursor, Codex, VS Code, Windsurf, and anything else that speaks Streamable HTTP.
Can it change anything in my project?
No. Every tool is annotated readOnlyHint in the protocol itself, so your client can verify that rather than take our word for it. There is no write path, so there is nothing to approve and nothing to revoke.
How were the frames described?
Every frame is passed to a vision model in batches, in time order, with the running order in the prompt, so a shot is described as a move rather than as an inventory of objects. It records framing, composition, lighting, on-screen text, palette and a named technique. Face position, face area, luminance and cut timing are measured separately with a detector, not guessed.
What is actually in the library?
Product launch films, feature announcements, demos and screen recordings, keynotes, and podcast and show intros. Both the well-known launches and the ones that only did well on X. It is growing, and anybody can add a URL.
How fast is it?
Under a second for most calls. The tools are database queries over pre-computed descriptions, not model calls, so there is no inference in the request path.
Your agent is guessing at a shot list. It does not have to.
962 films, 83,431 frames, one command, no key.