Skip to main content
Glama

Search the video library

search_videos
Read-onlyIdempotent

Search 4,000+ dissected top-performing videos (launch films, product demos, explainers, motion design, interactive/3D, film + music, teasers, UGC ads). Needs a Refs account; a free one is enough (the app asks the user to sign in). Cards carry the REF id, title, maker, length, aspect, still, views, measured metrics (shots, cuts per minute, voice, music) and why each works; films the account's plan doesn't open come back locked. UGC ads (category ugc) are creator-style ads that won on Meta or TikTok or went viral; their metrics add the signal: source, ugc_format, industry, days_running, variants, reach, ctr_pct, budget_level, advertiser and why_it_won. Use it to find references before making a video; pass a ref to get_blueprint or plan_video (those need a Refs account with Pro; the app asks the user to sign in).

Tool call template

This tool declares no required parameters. Add optional parameters from the input schema as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {},
    "name": "search_videos"
  }
}

Input Schema

NameRequiredDescriptionDefault
tagNoA curated collection: app-store-header: short loops apps use as the App Store product-page header video (iOS 27); saas: launch and demo films from B2B SaaS companies; developer-tools: launch films and demos from developer tools (editors, terminals, APIs); fintech: films from payments, banking and finance products; crypto: launch films from crypto and web3 products; hardware: launch films for physical hardware products; automotive: car and vehicle launch films; robotics: robot and autonomous-machine films; kinetic-type: films led by kinetic typography (moving type); ui-animation: films of animated product UI and transitions; 3d-animation: films made with 3D animation and renders; product-reveal: films built around a product reveal; logo-reveal: logo reveal pieces; data-visualization: films that animate charts, maps and data; before-after: before-and-after films (problem, then result)
sortNorecommended = only the films a digital product (SaaS, app, AI or dev tool) would copy for its launch film, best first; none = every film, with those recommended ones still first; signal = UGC ads with the strongest winning signal first (days running, CTR percentile, views)
brandNoA tracked brand, e.g. linear, higgsfield, runway, vercel, openai
limitNoDefault 8
queryNoKeywords, e.g. 'developer tool launch dark UI', 'founder to camera', 'kinetic type', 'terminal UI launch'. Films matching every word come first; if none does, films matching some of the words (the result then has a note). A REF id or a YouTube, X, TikTok, Instagram Reel, Meta Ad Library or App Store link finds that film.
aspectNoFrame shape, as cards name it: 16:9 (landscape), 9:16 (vertical/reels), 1:1 (square), 4:5 (portrait feed)
offsetNo
ai_madeNotrue = made with AI/code (Claude, Remotion, three.js); false = human-made
categoryNo
industryNoUGC ads: the advertiser's industry
platformNoUGC ads: where the winning signal comes from (meta = ran on Meta, tiktok = TikTok's top ads, organic = went viral unpaid)
made_withNoTool, e.g. claude, remotion, three.js, manim, after effects
ugc_formatNoUGC ads: the format
max_secondsNoe.g. 30 for short films
min_secondsNo
min_days_runningNoUGC ads: Meta ads that ran at least this many days (30 = a winner, 60 = strong)

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed3 schema fields changed
    • removedInput schema / properties / context
      Removed value: -{
      -  "description": "Explain in 15-25 words, in third person, why this tool is called and how it supports the user's goal. For analytics only. You MUST describe only the abstract purpose of the tool call. NEVER include, repeat, paraphrase, or infer personal, sensitive, or identifying information from the user request or tool results, including names, emails, phone numbers, IPs, IDs, or credentials. You MUST generalize specific entities into roles such as \"a user\", \"the customer\", or \"an account\". Example: \"Retrieving a customer's recent orders to investigate a billing issue and help support determine the appropriate resolution.\"",
      -  "type": "string"
      -}
    • removedInput schema / properties / llm_model
      Removed value: -{
      -  "description": "The exact model identifier you (the assistant) are running as, taken from your system prompt or environment (e.g. \"claude-opus-4-8\", \"gpt-5.2\"). Used for analytics only. If you do not know your model identifier with certainty, pass \"unknown\" — never guess.",
      -  "type": "string"
      -}
    • removedInput schema / required
      Removed value: -[
      -  "context",
      -  "llm_model"
      -]
  2. Changed2 schema fields changed
    • changedInput schema / properties / limit / description
      Previous value: -"Default 8 (at most 8 without an account)"New value: +"Default 8"
    • removedInput schema / properties / offset / description
      Removed value: -"At most 40 without an account"
  3. Changed1 schema field changed
    • changedInput schema / properties / query / description
      Previous value: -"Keywords, e.g. 'developer tool launch dark UI', 'founder to camera', 'kinetic type', 'terminal UI launch'. Films matching every word come first; if none does, films matching some of the words (the result then has a note). A REF id or a YouTube, X, TikTok, Instagram Reel or Meta Ad Library link finds that film."New value: +"Keywords, e.g. 'developer tool launch dark UI', 'founder to camera', 'kinetic type', 'terminal UI launch'. Films matching every word come first; if none does, films matching some of the words (the result then has a note). A REF id or a YouTube, X, TikTok, Instagram Reel, Meta Ad Library or App Store link finds that film."
  4. Changed2 schema fields changed
    • changedInput schema / properties / tag / description
      Previous value: -"A curated collection: app-store-header: short loops apps use as the App Store product-page header video (iOS 27)"New value: +"A curated collection: app-store-header: short loops apps use as the App Store product-page header video (iOS 27); saas: launch and demo films from B2B SaaS companies; developer-tools: launch films and demos from developer tools (editors, terminals, APIs); fintech: films from payments, banking and finance products; crypto: launch films from crypto and web3 products; hardware: launch films for physical hardware products; automotive: car and vehicle launch films; robotics: robot and autonomous-machine films; kinetic-type: films led by kinetic typography (moving type); ui-animation: films of animated product UI and transitions; 3d-animation: films made with 3D animation and renders; product-reveal: films built around a product reveal; logo-reveal: logo reveal pieces; data-visualization: films that animate charts, maps and data; before-after: before-and-after films (problem, then result)"
    • changedInput schema / properties / tag / enum
      Previous value: -[
      -  "app-store-header"
      -]New value: +[
      +  "app-store-header",
      +  "saas",
      +  "developer-tools",
      +  "fintech",
      +  "crypto",
      +  "hardware",
      +  "automotive",
      +  "robotics",
      +  "kinetic-type",
      +  "ui-animation",
      +  "3d-animation",
      +  "product-reveal",
      +  "logo-reveal",
      +  "data-visualization",
      +  "before-after"
      +]
  5. Changed1 schema field changed
    • addedInput schema / properties / tag
      Added value: +{
      +  "description": "A curated collection: app-store-header: short loops apps use as the App Store product-page header video (iOS 27)",
      +  "enum": [
      +    "app-store-header"
      +  ],
      +  "type": "string"
      +}
  6. Changed10 schema fields changed
    • changedInput schema / properties / category / enum
      Previous value: -[
      -  "launch",
      -  "demo",
      -  "explainers",
      -  "motion",
      -  "interactive",
      -  "films",
      -  "teaser"
      -]New value: +[
      +  "launch",
      +  "demo",
      +  "explainers",
      +  "motion",
      +  "interactive",
      +  "films",
      +  "teaser",
      +  "ugc"
      +]
    • addedInput schema / properties / industry
      Added value: +{
      +  "description": "UGC ads: the advertiser's industry",
      +  "enum": [
      +    "beauty",
      +    "apps",
      +    "fintech",
      +    "food",
      +    "fitness",
      +    "saas",
      +    "edtech",
      +    "health",
      +    "fashion",
      +    "home",
      +    "pets",
      +    "gaming",
      +    "other"
      +  ],
      +  "type": "string"
      +}
    • changedInput schema / properties / limit / description
      Previous value: -"Default 8"New value: +"Default 8 (at most 8 without an account)"
    • addedInput schema / properties / min_days_running
      Added value: +{
      +  "description": "UGC ads: Meta ads that ran at least this many days (30 = a winner, 60 = strong)",
      +  "maximum": 9007199254740991,
      +  "minimum": 1,
      +  "type": "integer"
      +}
    • addedInput schema / properties / offset / description
      Added value: +"At most 40 without an account"
    • addedInput schema / properties / platform
      Added value: +{
      +  "description": "UGC ads: where the winning signal comes from (meta = ran on Meta, tiktok = TikTok's top ads, organic = went viral unpaid)",
      +  "enum": [
      +    "meta",
      +    "tiktok",
      +    "organic"
      +  ],
      +  "type": "string"
      +}
    • changedInput schema / properties / query / description
      Previous value: -"Keywords, e.g. 'developer tool launch dark UI', 'founder to camera', 'kinetic type', 'terminal UI launch'. Films matching every word come first; if none does, films matching some of the words (the result then has a note). A REF id or a YouTube/X link finds that film."New value: +"Keywords, e.g. 'developer tool launch dark UI', 'founder to camera', 'kinetic type', 'terminal UI launch'. Films matching every word come first; if none does, films matching some of the words (the result then has a note). A REF id or a YouTube, X, TikTok, Instagram Reel or Meta Ad Library link finds that film."
    • changedInput schema / properties / sort / description
      Previous value: -"recommended = only the films a digital product (SaaS, app, AI or dev tool) would copy for its launch film, best first; none = every film, with those recommended ones still first"New value: +"recommended = only the films a digital product (SaaS, app, AI or dev tool) would copy for its launch film, best first; none = every film, with those recommended ones still first; signal = UGC ads with the strongest winning signal first (days running, CTR percentile, views)"
    • changedInput schema / properties / sort / enum
      Previous value: -[
      -  "recommended",
      -  "none",
      -  "added",
      -  "views",
      -  "shortest",
      -  "longest",
      -  "catalogue"
      -]New value: +[
      +  "recommended",
      +  "none",
      +  "added",
      +  "views",
      +  "shortest",
      +  "longest",
      +  "catalogue",
      +  "signal"
      +]
    • addedInput schema / properties / ugc_format
      Added value: +{
      +  "description": "UGC ads: the format",
      +  "enum": [
      +    "talking_head",
      +    "unboxing",
      +    "problem_solution",
      +    "testimonial",
      +    "pov",
      +    "green_screen",
      +    "us_vs_them",
      +    "street_interview",
      +    "before_after",
      +    "other"
      +  ],
      +  "type": "string"
      +}
  7. First observed

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile (readOnly, idempotent, non-destructive), yet the description adds real behavior: an account is required and a free one suffices, the app will prompt sign-in, and films outside the account's plan come back 'locked' rather than erroring. It also enumerates the card payload (REF id, title, maker, length, aspect, still, views, measured metrics, why it works) and the extra UGC metric set, which tells the agent what it can reason over without a trial call.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with corpus scope, then plan/auth constraints, then card contents, then workflow routing — a sensible order. It is dense but nearly every clause carries information; the long UGC metric enumeration and the parenthetical category list are the only places it drifts toward cataloguing rather than orienting.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 16 optional parameters and no output schema, the description carries the return-shape burden and does so: it names the card fields, the UGC-only fields, and the locked-result behavior. Auth tier differences versus get_blueprint/plan_video are spelled out, which is exactly the missing piece an agent would otherwise discover only by failing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 81%, so the baseline is 3, and the description earns above that by explaining things the schema does not: what the 'ugc' category actually contains (creator-style ads that won on Meta/TikTok or went viral) and which extra metrics accompany those records (source, ugc_format, industry, days_running, variants, reach, ctr_pct, budget_level, advertiser, why_it_won). It adds little on sort/query/aspect, which the schema already documents in comparable detail.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ('Search 4,000+ dissected top-performing videos') and immediately bounds the corpus with named categories (launch films, product demos, explainers, motion design, interactive/3D, film + music, teasers, UGC ads). It also states the object being returned ('dissected' cards), so an agent knows this is reference retrieval, not raw video search, and can distinguish it from get_collection or get_blueprint.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives explicit downstream routing: 'Use it to find references before making a video; pass a ref to get_blueprint or plan_video', and flags that those require Pro while this tool needs only a free account. It does not route away to the browse-style siblings (get_collection, list_collections, get_brand, list_brands), so the when-not-to-use case is left implicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources