Skip to main content
Glama

Search the stock library

search_stock
Read-onlyIdempotent

Search Vidova's stock library: files Vidova gives every project. Sound effects are thousands of free sounds: designed ones (whooshes, swooshes, impacts, hits, risers, pops, clicks, dings, shutters, glitches, typing, cash, notifications), real recordings (doors, footsteps, cars, sirens, trains, planes, animals, birds, crowds, applause, laughs, screams, kitchen, glass, paper, phones, cameras, tools) and ambiences (forest, sea, rain, wind, city, fire), interface and game sounds, an announcer's voice lines and short music jingles: search kind sound with what makes the sound (car door, glass break, rain on a window) before you call generate_sfx. Music is a library of beds for reels, ads, talking heads, before-and-afters, hype edits, product reels, wedding and elegant promos, explainers, family recaps, lo-fi, R&B beats, disco, chill, ambient, adventure and kids' content, each measured (bpm, length, loudness, where its big hit lands, vocals): search kind music with mood or use words (upbeat local business ad, elegant wedding, hype gym, calm explainer) and minBpm, maxBpm, minSeconds and maxSeconds before you call generate_music, which costs credits. Device frames are transparent pictures of an iPhone and a MacBook, straight on or turned, in several finishes, whose screen is see-through, for an app, a website, a screen recording or a vertical video on a device. Green screens and VFX (kind video) are licensed Mixkit clips. Green screens are shot on green, each with the colour and similarity measured from its frames: presenters and people talking to the camera, reactions, dancing, selfies, couples, hands, things on green, phones, tablets, laptops, TVs, monitors and signs whose screen is green, ink and liquid wipes, and sea plates with a green sky. VFX are effects shot on black, each with an alpha video that masks it: fire, fireballs and explosions, smoke, sparks and sparklers, particles and glitter, snow, fireworks, colour powder bursts, light leaks and bokeh, glitch and static, and white ink mattes for transitions. Search with words (presenter, couple, phone, ink wipe, fire, explosion, smoke, sparks, snow, light leak, vertical). 3D models are prepared .glb files (a MacBook, an iPhone, a fighter plane) for a 3D clip or scene; words with kind model (or no kind) also search free model libraries (Poly Haven, Kenney, the Khronos glTF sample assets and NASA's spacecraft, rovers and telescopes), each result with its preview picture, author and licence. Textures (kind texture, with words: wood floor, red brick, concrete, marble, fabric, grass, moon) are tiling surfaces from Poly Haven and ambientCG (CC0), with colour, normal and roughness maps, and NASA's planet and moon maps. Use it when the user wants a device mockup, a phone or laptop frame, a green screen, a product shot, a 3D object or a surface texture, before you ask them for a file or draw one yourself. An empty query lists everything, a page at a time: the answer says the offset to read on from; kind keeps one kind. A frame result lists its finishes, views and every id. A model result says how it sits in a scene and its materials with the index a 3D clip's materialNMode, materialNColor and materialNAsset props use. Import one with import_stock. Does not list the user's own uploads (search_library) or published elements (search_elements).

Input Schema

NameRequiredDescriptionDefault
kindYesOnly this kind: frame (a device frame picture), model (a 3D model), video (green screens: people, devices with a green screen, ink wipes), image, sound (a sound effect), music (a music bed) or texture (a tiling surface: wood, brick, concrete, marble, fabric, ground). null searches every kind.
limitYesMost results on the page, 1 to 200. null means 40.
queryYesWords for what you need, for example iphone, laptop black, phone turned right, plane, green screen presenter, phone green screen, ink wipe, wood floor, red brick, upbeat cafe ad or elegant wedding piano. Empty lists everything.
maxBpmYesMusic only: the fastest tempo to return, in whole beats a minute. null puts no upper bound. A track's half and double tempo count too (a 95 bpm beat answers 190).
minBpmYesMusic only: the slowest tempo to return, in whole beats a minute. null puts no lower bound.
offsetYesresults to skip: the offset the page before says to call again with. null starts at the first.
projectIdYesThe project this call runs on without changing the open project. null (or leaving it out) uses the open project. wait_for_jobs takes the projectId of the calls that started the jobs.
maxSecondsYesMusic only: the longest track to return, in whole seconds. null puts no upper bound. A longer track is cut to the edit, so ask for at least the edit's length, not exactly it.
minSecondsYesMusic only: the shortest track to return, in whole seconds. null puts no lower bound.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed3 schema fields changed
    • changedInput schema / properties / kind / anyOf
      Previous value: -[
      -  {
      -    "enum": [
      -      "frame",
      -      "model",
      -      "video",
      -      "image",
      -      "sound",
      -      "music"
      -    ],
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "enum": [
      +      "frame",
      +      "model",
      +      "video",
      +      "image",
      +      "sound",
      +      "music",
      +      "texture"
      +    ],
      +    "type": "string"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • changedInput schema / properties / kind / description
      Previous value: -"Only this kind: frame (a device frame picture), model (a 3D model), video, image, sound (a sound effect) or music (a music bed). null searches every kind."New value: +"Only this kind: frame (a device frame picture), model (a 3D model), video (green screens: people, devices with a green screen, ink wipes), image, sound (a sound effect), music (a music bed) or texture (a tiling surface: wood, brick, concrete, marble, fabric, ground). null searches every kind."
    • changedInput schema / properties / query / description
      Previous value: -"Words for what you need, for example iphone, laptop black, phone turned right, plane, upbeat cafe ad or elegant wedding piano. Empty lists everything."New value: +"Words for what you need, for example iphone, laptop black, phone turned right, plane, green screen presenter, phone green screen, ink wipe, wood floor, red brick, upbeat cafe ad or elegant wedding piano. Empty lists everything."
  2. Changed8 schema fields changed
    • changedInput schema / properties / kind / anyOf
      Previous value: -[
      -  {
      -    "enum": [
      -      "frame",
      -      "model",
      -      "video",
      -      "image",
      -      "sound"
      -    ],
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "enum": [
      +      "frame",
      +      "model",
      +      "video",
      +      "image",
      +      "sound",
      +      "music"
      +    ],
      +    "type": "string"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • changedInput schema / properties / kind / description
      Previous value: -"Only this kind: frame (a device frame picture), model (a 3D model), video, image or sound (a sound effect). null searches every kind."New value: +"Only this kind: frame (a device frame picture), model (a 3D model), video, image, sound (a sound effect) or music (a music bed). null searches every kind."
    • addedInput schema / properties / maxBpm
      Added value: +{
      +  "anyOf": [
      +    {
      +      "maximum": 400,
      +      "minimum": 1,
      +      "type": "integer"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "description": "Music only: the fastest tempo to return, in whole beats a minute. null puts no upper bound. A track's half and double tempo count too (a 95 bpm beat answers 190)."
      +}
    • addedInput schema / properties / maxSeconds
      Added value: +{
      +  "anyOf": [
      +    {
      +      "maximum": 9007199254740991,
      +      "minimum": 0,
      +      "type": "integer"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "description": "Music only: the longest track to return, in whole seconds. null puts no upper bound. A longer track is cut to the edit, so ask for at least the edit's length, not exactly it."
      +}
    • addedInput schema / properties / minBpm
      Added value: +{
      +  "anyOf": [
      +    {
      +      "maximum": 400,
      +      "minimum": 1,
      +      "type": "integer"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "description": "Music only: the slowest tempo to return, in whole beats a minute. null puts no lower bound."
      +}
    • addedInput schema / properties / minSeconds
      Added value: +{
      +  "anyOf": [
      +    {
      +      "maximum": 9007199254740991,
      +      "minimum": 0,
      +      "type": "integer"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "description": "Music only: the shortest track to return, in whole seconds. null puts no lower bound."
      +}
    • changedInput schema / properties / query / description
      Previous value: -"Words for what you need, for example iphone, laptop black, phone turned right or plane. Empty lists everything."New value: +"Words for what you need, for example iphone, laptop black, phone turned right, plane, upbeat cafe ad or elegant wedding piano. Empty lists everything."
    • changedInput schema / required
      Previous value: -[
      -  "query",
      -  "kind",
      -  "offset",
      -  "limit",
      -  "projectId"
      -]New value: +[
      +  "query",
      +  "kind",
      +  "minBpm",
      +  "maxBpm",
      +  "minSeconds",
      +  "maxSeconds",
      +  "offset",
      +  "limit",
      +  "projectId"
      +]
  3. Changed3 schema fields changed
    • addedInput schema / properties / limit
      Added value: +{
      +  "anyOf": [
      +    {
      +      "maximum": 200,
      +      "minimum": 1,
      +      "type": "integer"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "description": "Most results on the page, 1 to 200. null means 40."
      +}
    • addedInput schema / properties / offset
      Added value: +{
      +  "anyOf": [
      +    {
      +      "maximum": 9007199254740991,
      +      "minimum": 0,
      +      "type": "integer"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "description": "results to skip: the offset the page before says to call again with. null starts at the first."
      +}
    • changedInput schema / required
      Previous value: -[
      -  "query",
      -  "kind",
      -  "projectId"
      -]New value: +[
      +  "query",
      +  "kind",
      +  "offset",
      +  "limit",
      +  "projectId"
      +]
  4. Changed2 schema fields changed
    • changedInput schema / properties / kind / anyOf
      Previous value: -[
      -  {
      -    "enum": [
      -      "frame",
      -      "model",
      -      "video",
      -      "image"
      -    ],
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "enum": [
      +      "frame",
      +      "model",
      +      "video",
      +      "image",
      +      "sound"
      +    ],
      +    "type": "string"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • changedInput schema / properties / kind / description
      Previous value: -"Only this kind: frame (a device frame picture), model (a 3D model), video or image. null searches every kind."New value: +"Only this kind: frame (a device frame picture), model (a 3D model), video, image or sound (a sound effect). null searches every kind."
  5. 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), and the description adds substantial extra behavior: pagination via offset with the server returning the next offset, empty query listing everything a page at a time, per-kind result shape (frame finishes/views/ids, model scene placement and material indices tied to materialNMode/materialNColor/materialNAsset props), and the handoff to import_stock.

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

Conciseness2/5

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

The core is front-loaded and useful, but the bulk is a sprawling keyword catalogue ("whooshes, swooshes, impacts, hits, risers, pops, clicks, dings, shutters, glitches, typing, cash, notifications") that reads like search-synonym data rather than tool guidance. Many clauses can be cut without losing any decision-relevant information, and the single-paragraph wall makes it hard to scan.

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?

For a 9-parameter, seven-kind search tool with no output schema, the description supplies everything needed to call it correctly: kind semantics, query phrasing per kind, music tempo/duration filters, paging behavior, result contents per kind, and the follow-up import path.

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 100%, so the baseline is 3; the description goes beyond it by framing query construction per kind ("search kind sound with what makes the sound (car door, glass break, rain on a window)", "search kind music with mood or use words") and by contrasting kind selection with import_stock. It does not add much on limit/projectId beyond the schema, keeping it short of a 5.

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?

Opens with a specific verb+resource ("Search Vidova's stock library") and then defines every kind value in concrete terms. It explicitly distinguishes itself from siblings at the close: "Does not list the user's own uploads (search_library) or published elements (search_elements)."

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

Usage Guidelines5/5

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

Gives explicit when-to-use ("Use it when the user wants a device mockup, a phone or laptop frame, a green screen, a product shot, a 3D object or a surface texture, before you ask them for a file or draw one yourself") plus ordering advice against alternatives: call this before generate_sfx, and before generate_music "which costs credits." Exclusions are named, not implied.

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.