Clypmint B-Roll

B-roll for agents: one search returns real, verified, licensed photos and footage of exactly what a script names. MCP server, REST API, CLI and plugins for Claude Code and Codex.

Hosted MCP Server

npx add-mcp 'https://clypmint.com/mcp/broll'

Installs into Claude Code, Codex, Cursor and more

Documentation

Clypmint B-Roll (b-roll of anything, for any agent)

GitHub stars MIT MCP registry

An agent asks for b-roll; the API finds real footage, scores every shot and checks every license

A b-roll library your agent searches in plain words. Give it one API key and it gets the real shot: the person, company, product, place or event your script names. One search covers Wikimedia Commons, NASA, the Internet Archive, the Library of Congress, Openverse, and the subject's own site and YouTube channel. Web mode adds the open web, down to the exact moment inside a YouTube video. A vision model checks every shot, and every shot comes with its rights. Priced per search, from 2 cents, with no stock subscription.

Ask for the shot, not the source. You don't need to know which archive has the Apollo 11 launch, or which minute of the keynote shows the first iPhone. Send the line from your script and get the shot.

Built by Clypmint for its AI video editor, and open to every agent and every video app. Live at clypmint.com/broll.

Your first 100 searches are free. Then $0.02 a licensed search, $0.06 a web search, half price through Nov 2. Get a key · Try it in the browser (no key) · Docs · Benchmark

Why it exists

Video agents are good at scripts and voices and bad at pictures. Stock shows a CEO; your script names the CEO. Image search gives you links with no license. And an agent can't watch a video to find the four seconds it needs.

This does the part an editor does:

  1. Plan. Your agent sends the subject, the line it plays over, and its own search words. The line decides which "Apple" you mean.
  2. Find. We look up what the name means on Wikidata, then search every source at once.
  3. Check. A vision model scores every shot against what it must show. Wrong person, watermark, collage: dropped. In web mode a model watches the top videos and returns the 2-6 second moment.
  4. Drop it in. Each image has a download_url. Each video has one command that cuts just the seconds you need, on your machine.
You ask forYou get
Sam AltmanLicensed portraits of Sam Altman, scored 9-10, with the credit line
booster + "SpaceX just landed the booster again"Public-domain footage of a Falcon 9 booster landing
Notion + "I plan every video in Notion"The live notion.com site, recorded on your machine
A scene from a film, in web modeThe moment in the video, with a start, an end and a command that cuts it, marked Not cleared

Two kinds of search, one key

  • Licensed (the default, $0.02). Only sources whose terms allow reuse. Every shot has its license and credit line.
  • Web ("rights": "any", $0.06). Also the open web: the scene from the film, the photo from yesterday's news, the moment inside a YouTube video. These shots come back marked Not cleared, because the owner holds the rights.

A search is only charged when it finds checked shots.


Part 1 · Using it

Quickstart

# 1. sign up and make a key (your first 100 searches are free): https://clypmint.com/broll/dashboard
export CLYPMINT_API_KEY=cm_live_...

# 2. give it to your agent (Claude Code)
claude mcp add --transport http clypmint-broll https://clypmint.com/mcp/broll \
  --header "Authorization: Bearer $CLYPMINT_API_KEY"

# 3. try it
npx -y github:Clypmint/clypmint-broll#v1.2.1 search "Saturn V launch" --type video

Then ask your agent: "find b-roll for every name in this script." Every CLI command is in USAGE.md.

Or install it as a Claude Code plugin

/plugin marketplace add Clypmint/clypmint-broll
/plugin install clypmint-broll@clypmint-broll

The plugin asks for your key once and keeps it in your system's secure store. It brings the MCP tools and the skill below.

Codex

codex plugin marketplace add Clypmint/clypmint-broll
codex plugin add clypmint-broll@clypmint-broll

The Codex plugin reads your key from CLYPMINT_API_KEY.

Cursor and other agents

Cursor (~/.cursor/mcp.json)
{
  "mcpServers": {
    "clypmint-broll": {
      "url": "https://clypmint.com/mcp/broll",
      "headers": { "Authorization": "Bearer cm_live_YOUR_KEY" }
    }
  }
}
Codex without the plugin (~/.codex/config.toml)
[mcp_servers.clypmint-broll]
url = "https://clypmint.com/mcp/broll"
bearer_token_env_var = "CLYPMINT_API_KEY"
Any agent that reads skills
npx skills add Clypmint/clypmint-broll

Or copy skills/broll/SKILL.md into your agent's skills folder (Claude Code: ~/.claude/skills/broll/SKILL.md).

The MCP server is https://clypmint.com/mcp/broll, listed on the official MCP registry as com.clypmint/broll. Any MCP client can list its tools before you add a key; a search needs one.

What your agent gets

ToolWhat your agent can do
find_brollSend one subject (a person, company, product, app, place, event or scene) and the line it plays over. Get checked shots, best first, each with its license. For a whole script, use plan_broll. Charged only when checked shots come back.
plan_brollSend a whole script. Get every moment worth a cutaway, with the words it starts on and its shots. Each moment is charged like one find_broll search, only when it finds checked shots.
broll_usageSee the balance, this month's spend, whether auto top-up is on, and the prices. Free.
broll skillSource, cut, place and credit each shot.

Using Claude to edit videos?

Already pointing Claude at the Internet Archive for b-roll? This searches it too, together with Wikimedia Commons, NASA, the Library of Congress, Openverse and official channels, in one call. It checks every shot and tells you what you may do with it.

Install the plugin (above), then add this to your project's CLAUDE.md once:

Whenever a line names a person, company, product, place or event, get b-roll for it with find_broll
(or plan_broll for the whole script). Send the line as context and 1-3 short keywords. Use the top shot,
cut only the seconds you need with its cut_command, and put its credit line in the credits.

It works with any setup that renders files: Remotion, HyperFrames, ffmpeg or an editor's timeline. The full version, with where the files go, is examples/claude-video.

Building an AI video app?

Use it as your app's b-roll source. Two calls cover it:

  • POST /api/v1/broll/search: send a subject and its line, get checked shots, best first.
  • POST /api/v1/broll/plan: send a whole script, get the moments worth a cutaway, each with its shots and the words it starts on (and times, if you send word timings).

Every shot carries its source, license and credit line, so your users can publish it. You pay per search from one prepaid balance: no seats and no monthly fee. Send an Idempotency-Key and a retry returns the first answer, never billed twice. The OpenAPI spec makes a client in any language. Need more volume? Write to support@clypmint.com.

What you get back

curl https://clypmint.com/api/v1/broll/search \
  -H "Authorization: Bearer $CLYPMINT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"query": "Sam Altman", "context": "Sam Altman just walked on stage", "type": "image", "limit": 1}'
{
  "request_id": "2b9d7f0e-6c1a-4f53-9d0e-6a1f3c8e2b41",
  "query": "Sam Altman",
  "interpreted": {
    "subject": "Sam Altman",
    "kind": "person",
    "entity": { "id": "Q7407093", "label": "Sam Altman", "url": "https://www.wikidata.org/wiki/Q7407093" },
    "look_for": "Sam Altman walking onto a stage at a conference or event"
  },
  "verified": true,
  "results": [
    {
      "type": "image",
      "title": "Sam Altman speaking at TED",
      "shows": "Full shot of Sam Altman seated on stage at TED",
      "score": 9,
      "url": "https://upload.wikimedia.org/wikipedia/commons/0/06/Sam_Altman_speaking_at_TED.jpg",
      "download_url": "https://upload.wikimedia.org/wikipedia/commons/thumb/0/06/Sam_Altman_speaking_at_TED.jpg/1920px-Sam_Altman_speaking_at_TED.jpg",
      "orientation": "portrait",
      "source": { "name": "Wikimedia Commons", "page_url": "https://commons.wikimedia.org/wiki/File:Sam_Altman_speaking_at_TED.jpg" },
      "license": {
        "name": "CC BY 2.0",
        "url": "https://creativecommons.org/licenses/by/2.0",
        "commercial_use": true,
        "cleared": true,
        "attribution": "Steve Jurvetson / CC BY 2.0 / https://commons.wikimedia.org/wiki/File:Sam_Altman_speaking_at_TED.jpg"
      },
      "delivery": "direct"
    }
  ],
  "took_ms": 4810,
  "cached": false,
  "usage": {
    "charged_usd": 0.01,
    "balance_usd": 9.99,
    "price_usd": { "licensed": 0.01, "web": 0.03 },
    "list_price_usd": { "licensed": 0.02, "web": 0.06 },
    "offer": { "label": "Launch week: 50% off every search through Nov 2", "percent_off": 50, "ends_at": "2026-11-03T07:59:59Z" }
  }
}

A whole script at once: each moment comes back with the exact words it starts on, and its time if you send word timings.

curl https://clypmint.com/api/v1/broll/plan \
  -H "Authorization: Bearer $CLYPMINT_API_KEY" -H "Content-Type: application/json" \
  -d '{"transcript": "Last week I flew to Tokyo to meet the Figma team...", "max_beats": 8}'

The full reference is at clypmint.com/broll/docs, and the OpenAPI spec at /api/v1/broll/openapi.json.

Use it from code

JavaScript

npm install github:Clypmint/clypmint-broll#v1.2.1
import { createClient } from '@clypmint/broll';

const broll = createClient(); // reads CLYPMINT_API_KEY
const { results, usage } = await broll.search({ query: 'Figma', context: 'we design everything in Figma' });

Python

pip install "git+https://github.com/Clypmint/clypmint-broll@v1.2.1#subdirectory=python"
from clypmint_broll import Broll

broll = Broll()  # reads CLYPMINT_API_KEY
shots = broll.search("Eiffel Tower", type="video")["results"]

CLI: search, plan a script, cut a clip, record a live site. See USAGE.md. Runnable examples, from a script to a folder of b-roll, are in examples/.

Pricing

You pay per search from a prepaid balance, the way search APIs charge: one price per call, stated before you call, and only a search that finds checked shots is charged.

PricePer 1,000Launch week (through Nov 2)
Licensed search (default)$0.02$20$0.01
Web search ("rights": "any")$0.06$60$0.03
  • A search that finds nothing, only near matches, or shots that could not be checked costs nothing.
  • Every new account gets 100 free searches ($2 of credit), once.
  • Top up from $10 (to $1,000 at a time). Your balance never expires. Turn on auto top-up and we add the amount you pick when it runs low.
  • Any balance you have not used can be refunded within 14 days of adding it.
  • Every answer carries usage: what it cost, the balance left and the prices now. GET /api/v1/broll/usage gives the same before you search. Out of balance, a search answers 402 balance_too_low with the price, the balance and the top-up link.
  • Try it free in the browser first, no key: clypmint.com/broll.

Benchmark

B-Roll Bench v1: the same 100 requests (people, companies, places, events, archival moments, generic scenes, film and TV scenes) sent to every service, the results judged blind by two models, Gemini 3.5 Flash and Claude Sonnet 5.5 (they agreed on 87.2% of first results). Clypmint run Oct 26, 2026, with its engine as it is live; the other services Oct 25, 2026.

ServiceRight shot firstRight shot in top 5Median timePrice per 1,000Rights
Clypmint, web mode56.5%75%6.7 s$60Marked not cleared
Clypmint, licensed46%48%3.7 s$20Licensed, with credit line
Brave image search45.5%74.5%0.7 s$5No license data
Pexels19.5%28.5%0.4 sFreeStock license
Wikimedia Commons search8.5%10%0.4 sFreeLicensed
Openverse6%7.5%1.8 sFreeLicensed

On the 85 people, companies, places, events, archival moments and generic scenes, licensed mode got the right shot first 54.2% of the time, against 44.7% for Brave, with a license on every shot. Answers vary from run to run by up to 6 points, so read a smaller gap as a tie. Every request, every result and every judgement is in bench/v1, and you can run it yourself:

cd bench/v1
CLYPMINT_API_KEY=... GEMINI_API_KEY=... BRAVE_API_KEY=... PEXELS_API_KEY=... node harness.mjs run --api

Where the footage comes from

Licensed mode, the default, uses only sources whose terms allow reuse, and every shot says which:

  • Wikidata (CC0) tells us who or what a name is, its official photo, logo, website and YouTube channel.
  • Wikimedia Commons: freely licensed photos and video, with the license and author on each file.
  • NASA image and video library, public-domain film on the Internet Archive, Openverse and the Library of Congress photo collections marked free to use.
  • The subject's own website and official YouTube channel: a link plus a command. The clip is cut, or the site recorded, on your machine. We never host it.

Web mode ("rights": "any") adds the open web: the scene from the film, the photo from yesterday's news. Those shots come back with license.cleared: false and the name Not cleared, because the owner holds the rights. Check before commercial use.

license.commercial_use is true (free for commercial use under its terms), false (non-commercial only; ranked last) or null (the owner holds the rights). Use the attribution line whenever one is given. You are responsible for how you use what you publish.

FAQ

Is this a stock library? No. Stock shows a CEO. This shows the CEO your script names. For generic scenes it finds real, freely licensed photos and footage.

What does "verified" mean? A vision model saw every candidate and scored it against what the shot must show. verified: false means the check could not run; those results are ranked by source alone and cost nothing.

Does it work for vertical video? Pass "orientation": "portrait" to rank vertical shots first, and cut --aspect 9:16 to fit any clip (contain by default, --fit cover to crop).

How fast is it? A licensed search answers in about 4 seconds and a web search in about 7 (bench medians). A licensed search stops by 10 seconds and a web search by 20.

Is it safe to install? The plugin is an MCP address and a skill, with no hooks and nothing that runs on its own. The CLI has no dependencies, and release tags here are locked. See SECURITY.md.


Part 2 · This repository

What's here

PathWhat it is
src/, bin/The JavaScript client and the clypmint-broll CLI
python/The Python client
skills/broll/The agent skill: how to source, place and credit b-roll
.claude-plugin/, .mcp.jsonThe Claude Code plugin and its marketplace
.codex-plugin/, .codex-mcp.jsonThe Codex plugin
examples/Runnable examples: a script to a folder of b-roll (Node, Python), curl, and a Claude video setup
bench/v1/B-Roll Bench v1: the 100 requests, the harness, the judge prompts and every result
test/Tests for the CLI, the client, the examples and the plugin files

The search engine itself runs as a hosted service at clypmint.com. It is not in this repository.

Tests

npm test                                                          # Node 18 or newer, nothing to install
cd python && PYTHONPATH=. python3 -m unittest discover -s tests   # Python 3.8 or newer

The tests use a local fake server, so they need no key and make no searches.

Contributing and security

License

The client, CLI, skill, plugins and benchmark in this repository are MIT. The API is a hosted service by Clypmint.