Skip to main content
Glama

Search my saved library

search_my_library
Read-onlyIdempotent

Find which of the user's own saved videos match a topic or a half-remembered detail. Returns up to 5 distinct videos rather than raw fragments, each with its single best moment, a timestamp and a match score. Every moment carries a source: transcript means the words were spoken and can be quoted, while visual or metadata means the text is a scene or on-screen-text description written by the indexer rather than the creator's own words, and reads honestly only as a description. The top-ranked result is not always the video the user meant, so the candidates are meant to be shown to the user, who picks one before its context is pulled with get_moment. When candidates is empty, read reason first: library_empty means nothing is saved yet, so say that and offer to help add a first video rather than reporting no results; no_match means the searched_videos saved videos hold nothing on this; search_unavailable and search_failed are our own trouble, so offer to retry.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "query": "<query>"
    },
    "name": "search_my_library"
  }
}

Input Schema

NameRequiredDescriptionDefault
limitNo
queryYesWhat the user is trying to recall.
channelNoOptional author or channel name, to search only the user's saves from that creator.
platformNoOptional platform filter.

Output Schema

NameRequiredDescriptionDefault
queryYes
reasonNoPresent only when candidates is empty: WHY it is empty. library_empty means the user has saved nothing yet, so nothing could have matched; no_match means the library does hold videos and none of them cover the query.
degradedNoTrue when one retrieval lane did not answer, so the candidate list is incomplete.
candidatesYes
searched_videosNoWith reason library_empty or no_match: how many of the user's saved videos were searched.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • addedOutput schema / properties / reason
      Added value: +{
      +  "description": "Present only when candidates is empty: WHY it is empty. library_empty means the user has saved nothing yet, so nothing could have matched; no_match means the library does hold videos and none of them cover the query.",
      +  "enum": [
      +    "missing_arguments",
      +    "search_unavailable",
      +    "search_failed",
      +    "library_empty",
      +    "no_match"
      +  ],
      +  "type": "string"
      +}
    • addedOutput schema / properties / searched_videos
      Added value: +{
      +  "description": "With reason library_empty or no_match: how many of the user's saved videos were searched.",
      +  "type": "integer"
      +}
  2. First observed

TDQS

A4.4/5.0
Behavior5/5

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

Goes well beyond the readOnly/idempotent annotations: deduplication to distinct videos, the 'single best moment' selection, match-score presence, and crucially the provenance semantics of each moment (transcript = quotable speech vs visual/metadata = indexer-written description that should not be quoted as the creator's words). It also warns the top rank may be wrong and discloses the failure taxonomy.

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 purpose and result shape, then provenance, then the follow-up flow, then error handling — a sensible ordering. The provenance sentence is long and slightly convoluted, but each clause carries distinct decision-relevant information rather than filler.

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?

An output schema exists, yet the description still supplies what matters for correct use: the deduplicated candidate shape, the meaning of the match score and source field, the human-in-the-loop selection step, and the full set of empty-result reason codes. Nothing an agent needs to interpret results or recover from failure is absent.

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

Parameters3/5

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

Schema coverage is 75%, so query, channel, platform and limit are already documented in the schema. The description adds intent framing ('a topic or a half-remembered detail') and the cap of 5 results, but never explains channel or platform filtering behavior, so it does not meaningfully exceed the schema baseline.

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 and scoped resource: find which of the user's OWN SAVED videos match a topic or half-remembered detail. The 'own saved' qualifier distinguishes it from search_creator_videos and list_my_saves without naming them, and the return shape (up to 5 distinct videos, best moment, timestamp, match score) is concrete.

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?

Explicitly routes the agent forward: candidates are meant to be shown to the user, who picks one before context is pulled with get_moment. It also gives per-condition handling for empty candidates (library_empty vs no_match vs search_unavailable/search_failed). What is missing is an explicit exclusion naming when a sibling such as search_creator_videos is the better choice.

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.