Refs
by refs.video · remote · no sign-in to list tools · v0.8.3 · published by video.refs
4,100 launch videos measured shot by shot. Search references, pull blueprints, plan your film.
12 tools: 3 change things and 9 only read.
Scanned Oct 21, 2026
- Deletes or cancels0Claude Code: deny
- Can't be undone0Claude Code: ask
- Changes things3Claude Code: ask: see these tools
- Only reads9Claude Code: allow: see these tools
12 checks matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.
claude mcp add --transport http refs https://refs.video/mcp --header 'Authorization: <your-authorization>'Findings
Matches of fixed checks, with the text they matched.
- Infosearch_videos
The input schema at properties.context.description mentions "credentials".
What this check looks forMatched text
inputSchema.properties.context.description: "...es, emails, phone numbers, IPs, IDs, or credentials. You MUST generalize specific entities..."
- Infoget_blueprint
The input schema at properties.context.description mentions "credentials".
What this check looks forMatched text
inputSchema.properties.context.description: "...es, emails, phone numbers, IPs, IDs, or credentials. You MUST generalize specific entities..."
- Infoget_frames
The input schema at properties.context.description mentions "credentials".
What this check looks forMatched text
inputSchema.properties.context.description: "...es, emails, phone numbers, IPs, IDs, or credentials. You MUST generalize specific entities..."
- Infolist_formulas
The input schema at properties.context.description mentions "credentials".
What this check looks forMatched text
inputSchema.properties.context.description: "...es, emails, phone numbers, IPs, IDs, or credentials. You MUST generalize specific entities..."
- Infoget_formula
The input schema at properties.context.description mentions "credentials".
What this check looks forMatched text
inputSchema.properties.context.description: "...es, emails, phone numbers, IPs, IDs, or credentials. You MUST generalize specific entities..."
- Infolist_collections
The input schema at properties.context.description mentions "credentials".
What this check looks forMatched text
inputSchema.properties.context.description: "...es, emails, phone numbers, IPs, IDs, or credentials. You MUST generalize specific entities..."
Show 6 more findingsShow fewer
- Infoget_collection
The input schema at properties.context.description mentions "credentials".
What this check looks forMatched text
inputSchema.properties.context.description: "...es, emails, phone numbers, IPs, IDs, or credentials. You MUST generalize specific entities..."
- Infolist_brands
The input schema at properties.context.description mentions "credentials".
What this check looks forMatched text
inputSchema.properties.context.description: "...es, emails, phone numbers, IPs, IDs, or credentials. You MUST generalize specific entities..."
- Infoget_brand
The input schema at properties.context.description mentions "credentials".
What this check looks forMatched text
inputSchema.properties.context.description: "...es, emails, phone numbers, IPs, IDs, or credentials. You MUST generalize specific entities..."
- Infoplan_video
The input schema at properties.context.description mentions "credentials".
What this check looks forMatched text
inputSchema.properties.context.description: "...es, emails, phone numbers, IPs, IDs, or credentials. You MUST generalize specific entities..."
- Infostoryboard
The input schema at properties.context.description mentions "credentials".
What this check looks forMatched text
inputSchema.properties.context.description: "...es, emails, phone numbers, IPs, IDs, or credentials. You MUST generalize specific entities..."
- Infocheck_render
The input schema at properties.context.description mentions "credentials".
What this check looks forMatched text
inputSchema.properties.context.description: "...es, emails, phone numbers, IPs, IDs, or credentials. You MUST generalize specific entities..."
Tools
Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.
12 tools
Changes things 3Claude Code: ask
check_renderAfter rendering a video from a reference, check it against that film's measured timeline and get concrete fixes: cut timing to the frame, pace, brightness curve, motion per shot, l…1 finding
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
Findings
- Info
The input schema at properties.context.description mentions "credentials".
What this check looks forMatched text
inputSchema.properties.context.description: "...es, emails, phone numbers, IPs, IDs, or credentials. You MUST generalize specific entities..."
Description, as the server wrote it After rendering a video from a reference, check it against that film's measured timeline and get concrete fixes: cut timing to the frame, pace, brightness curve, motion per shot, loudness for the platform, and format. First measure your render: run `node scripts/measure.mjs <file>` from the Refs starter kit (curl -sL https://refs.video/starter.zip -o refs-starter.zip && unzip refs-starter.zip; it unpacks to refs-starter/) and pass the JSON it prints as `render`. Returns a score out of 100, a table of checks and a numbered fix list (frames at your render's frame rate), then the same as JSON. Costs 2 credits, so fix, re-measure and check again.
plan_videoGive a brief (product, audience, length, platform) and 1-5 references (REF ids, links or ids, or your brand films' brand:<import>:<film> ids), and optionally one of your imported b…1 finding
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
Findings
- Info
The input schema at properties.context.description mentions "credentials".
What this check looks forMatched text
inputSchema.properties.context.description: "...es, emails, phone numbers, IPs, IDs, or credentials. You MUST generalize specific entities..."
Description, as the server wrote it Give a brief (product, audience, length, platform) and 1-5 references (REF ids, links or ids, or your brand films' brand:<import>:<film> ids), and optionally one of your imported brands (brand) to plan in its house style. Returns, per reference, the plates that carry its timing and look (format, hook, beat sheet, style, sound, edit recipe) plus its recipe prompt, and the one formula that best matches, with instructions to write a shot list and a build prompt for the user's own video. With several references it also says how to mix them: one spine for structure and timing, and one named job for each of the others. Name the spine first if you already know it. Then, like an editor, it storyboards before anything is built: you draft the storyboard (1 direction for a fixed brief, 2–4 for an open one), check it with the storyboard tool and lay it out as a Claude Design canvas, the user picks a direction, and only then do you write the build prompt. For every plate of one film, use get_blueprint.
storyboardBefore anything is built, storyboard the film the way an editor does.1 finding
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
Findings
- Info
The input schema at properties.context.description mentions "credentials".
What this check looks forMatched text
inputSchema.properties.context.description: "...es, emails, phone numbers, IPs, IDs, or credentials. You MUST generalize specific entities..."
Description, as the server wrote it Before anything is built, storyboard the film the way an editor does. Send the storyboard you drafted from plan_video: 1 direction for a fixed brief, 2–4 when it's open. Each direction: logline, references (REF id + the one job each does), palette, type, sound, 2–3 style frames at full look, and 3–30 numbered panels in order, each with in/out seconds, shot size, camera move, action, VO, on-screen text, sound, the transition into the next panel, and its frame as layers (text, REF stills or the user's own captures by https URL, and shapes; positions in % of the frame). Mark a layer real only when it's a real capture of the user's product or a real result. This checks the timing and the REF ids and returns each REF's real still. While it returns ok: false it lists what to fix (fix it and call again); with ok: true it tells you how to lay the storyboard out as a Claude Design canvas (or as a text board where you can't make one). Free with Pro. Let the user pick a direction before you write any build prompt.
Only reads 9Claude Code: allow
get_blueprintThe full reverse-engineered blueprint of one video: hook frame by frame, beat sheet with timestamps, shot list, style guide, voice and sound, script template, production plan, edit…1 finding
Why it is in this group
- The name "get_blueprint" says "get": a word for reading.
Findings
- Info
The input schema at properties.context.description mentions "credentials".
What this check looks forMatched text
inputSchema.properties.context.description: "...es, emails, phone numbers, IPs, IDs, or credentials. You MUST generalize specific entities..."
Description, as the server wrote it The full reverse-engineered blueprint of one video: hook frame by frame, beat sheet with timestamps, shot list, style guide, voice and sound, script template, production plan, edit recipe, QA checklist, plus a runnable recipe prompt. Markdown by default; format "json" returns the plates, toolkit, recipe and measured timeline as one object. To see the film's frames, call get_frames. Accepts a REF id (REF-0005), a refs.video link, the source YouTube/X link, or the id from search_videos.
get_brandOne of your brand imports: the brand kit (the brand's house style across all its films: palette, type, logo and end card, motion and easing, pacing and cut rhythm, camera, transiti…1 finding
Why it is in this group
- The name "get_brand" says "get": a word for reading.
Findings
- Info
The input schema at properties.context.description mentions "credentials".
What this check looks forMatched text
inputSchema.properties.context.description: "...es, emails, phone numbers, IPs, IDs, or credentials. You MUST generalize specific entities..."
Description, as the server wrote it One of your brand imports: the brand kit (the brand's house style across all its films: palette, type, logo and end card, motion and easing, pacing and cut rhythm, camera, transitions, sound and voice, recurring formats, written as rules to follow) plus each film's blueprint summary with its id (brand:<import>:<film>) for get_blueprint and get_frames. Private to you. To make a new film in this style, call plan_video(brief, brand: id).
get_collectionEvery film in a Refs collection as search cards (REF id, link, length, aspect, measured metrics, why it works).1 finding
Why it is in this group
- The name "get_collection" says "get": a word for reading.
Findings
- Info
The input schema at properties.context.description mentions "credentials".
What this check looks forMatched text
inputSchema.properties.context.description: "...es, emails, phone numbers, IPs, IDs, or credentials. You MUST generalize specific entities..."
Description, as the server wrote it Every film in a Refs collection as search cards (REF id, link, length, aspect, measured metrics, why it works). Takes a collection id or refs.video/c/… link: anyone's shared collection, or your own private one; "favourites" gives the films you hearted. Then use them as references: plan_video(brief, reference_ids) with up to 5 that fit the brief, get_blueprint for one film in full.
get_formulaThe full cross-video formula for one format, as markdown: structure, timing ranges, what top performers share, mistakes to avoid, and a template prompt.1 finding
Why it is in this group
- The name "get_formula" says "get": a word for reading.
Findings
- Info
The input schema at properties.context.description mentions "credentials".
What this check looks forMatched text
inputSchema.properties.context.description: "...es, emails, phone numbers, IPs, IDs, or credentials. You MUST generalize specific entities..."
Description, as the server wrote it The full cross-video formula for one format, as markdown: structure, timing ranges, what top performers share, mistakes to avoid, and a template prompt.
get_framesOne video's labelled frame sheets as images, so you can see the reference instead of guessing from text: the hook (first 3 s at 0.25 s steps), one frame per shot, and the whole fil…1 finding
Why it is in this group
- The name "get_frames" says "get": a word for reading.
Findings
- Info
The input schema at properties.context.description mentions "credentials".
What this check looks forMatched text
inputSchema.properties.context.description: "...es, emails, phone numbers, IPs, IDs, or credentials. You MUST generalize specific entities..."
Description, as the server wrote it One video's labelled frame sheets as images, so you can see the reference instead of guessing from text: the hook (first 3 s at 0.25 s steps), one frame per shot, and the whole film at fixed steps where measured. sheet "transitions" adds every frame around each cut and in-shot change, for timing transitions to the frame. Each image follows a caption saying how its labels read. Accepts the same ids as get_blueprint.
list_brandsYour brand imports on refs.video (refs.video/saved → Brandprint): each X account you imported, with its progress and film count.1 finding
Why it is in this group
- The name "list_brands" says "list": a word for reading.
Findings
- Info
The input schema at properties.context.description mentions "credentials".
What this check looks forMatched text
inputSchema.properties.context.description: "...es, emails, phone numbers, IPs, IDs, or credentials. You MUST generalize specific entities..."
Description, as the server wrote it Your brand imports on refs.video (refs.video/saved → Brandprint): each X account you imported, with its progress and film count. Private to you. Pass an id or handle to get_brand for the brand kit and every film.
list_collectionsYour collections on refs.video (named sets of films you saved) and your favourites, with ids and film counts.1 finding
Why it is in this group
- The name "list_collections" says "list": a word for reading.
Findings
- Info
The input schema at properties.context.description mentions "credentials".
What this check looks forMatched text
inputSchema.properties.context.description: "...es, emails, phone numbers, IPs, IDs, or credentials. You MUST generalize specific entities..."
Description, as the server wrote it Your collections on refs.video (named sets of films you saved) and your favourites, with ids and film counts. Pass an id to get_collection to read the films and use them as references.
list_formulasFormulas distilled across many videos of one format (e.g.1 finding
Why it is in this group
- The name "list_formulas" says "list": a word for reading.
Findings
- Info
The input schema at properties.context.description mentions "credentials".
What this check looks forMatched text
inputSchema.properties.context.description: "...es, emails, phone numbers, IPs, IDs, or credentials. You MUST generalize specific entities..."
Description, as the server wrote it Formulas distilled across many videos of one format (e.g. 'the silent UI workflow', 'the delayed hardware reveal'). Returns ids, titles, summaries and their source films; fetch one with get_formula.
search_videosSearch 4,000+ dissected top-performing videos (launch films, product demos, explainers, motion design, interactive/3D, film + music, teasers).1 finding
Why it is in this group
- The name "search_videos" says "search": a word for reading.
Findings
- Info
The input schema at properties.context.description mentions "credentials".
What this check looks forMatched text
inputSchema.properties.context.description: "...es, emails, phone numbers, IPs, IDs, or credentials. You MUST generalize specific entities..."
Description, as the server wrote it Search 4,000+ dissected top-performing videos (launch films, product demos, explainers, motion design, interactive/3D, film + music, teasers). Returns compact cards: REF id, link, a small still (thumb), length, aspect, views, measured metrics (shots, cuts per minute, voice, music) and why each works. Use it to find references before making a video; pass a ref to get_blueprint or plan_video.
This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.
Install
Pinned to version 0.8.3. Values in angle brackets are yours to fill in.
claude mcp add --transport http refs https://refs.video/mcp --header 'Authorization: <your-authorization>'Run in a terminal.
Claude Code permissions
Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.
{
"permissions": {
"allow": [
"mcp__refs__search_videos",
"mcp__refs__get_blueprint",
"mcp__refs__get_frames",
"mcp__refs__list_formulas",
"mcp__refs__get_formula",
"mcp__refs__list_collections",
"mcp__refs__get_collection",
"mcp__refs__list_brands",
"mcp__refs__get_brand"
],
"ask": [
"mcp__refs__plan_video",
"mcp__refs__storyboard",
"mcp__refs__check_render"
],
"deny": []
}
}Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as refs. Review it before you use it.