Skip to main content
Glama

Get Test Videos

get_videos
Read-only

Get the videos (tester sessions) of a Userbrain test by its id. Each video is one tester's (participant's) think-aloud screen recording attempting the test's tasks. Always returns the tester and their demographics, device, duration, and their answer to each task step (each labeled by its teststep id, e.g. teststep #1065502 — call the get_tasks tool to see what those teststeps actually ask; it returns the test's currently active teststeps with their ids). To keep responses small, the heavy per-session detail is omitted by default: set includeNotesAndClips to also return the notes and clips (observations), and includeTranscript to also return the full think-aloud transcript. Enable these only when that detail is actually needed for the task. Returns text and structured data (no interactive UI). Use list_tests first to find the testId.

Input Schema

NameRequiredDescriptionDefault
testIdYesThe numeric id of the test (from list_tests).
includeTranscriptNoInclude each video's full think-aloud transcript (can be hundreds of lines per video). Off by default. Set true only when the verbatim transcript is actually needed — e.g. quoting exactly what a tester said.
includeNotesAndClipsNoInclude each video's notes and clips — the AI-generated and manual observations on the session. Off by default because it makes the response much larger. Set true only when the detailed observations are actually needed (e.g. summarizing findings or quoting specific moments).

Output Schema

NameRequiredDescriptionDefault
testIdYes
videosYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed8 schema fields changed
    • addedOutput schema / properties / videos / items / properties / clips / items / properties / tester / properties / name / description
      Added value: +"Tester display name"
    • changedOutput schema / properties / videos / items / properties / responses / items / properties / response / anyOf
      Previous value: -[
      -  {
      -    "anyOf": [
      -      {
      -        "additionalProperties": false,
      -        "properties": {
      -          "choice": {
      -            "anyOf": [
      -              {
      -                "type": "number"
      -              },
      -              {
      -                "items": {
      -                  "type": "number"
      -                },
      -                "type": "array"
      -              }
      -            ],
      -            "description": "Selected option index/indices (0-based)."
      -          },
      -          "completed": {
      -            "type": "boolean"
      -          },
      -          "rating": {
      -            "type": "number"
      -          },
      -          "response": {
      -            "type": "string"
      -          },
      -          "skipped": {
      -            "type": "boolean"
      -          }
      -        },
      -        "type": "object"
      -      },
      -      {
      -        "description": "Empty array [] — no answer for this step.",
      -        "items": {},
      -        "maxItems": 0,
      -        "type": "array"
      -      }
      -    ]
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "anyOf": [
      +      {
      +        "additionalProperties": false,
      +        "properties": {
      +          "choice": {
      +            "anyOf": [
      +              {
      +                "type": "number"
      +              },
      +              {
      +                "items": {
      +                  "type": "number"
      +                },
      +                "type": "array"
      +              }
      +            ],
      +            "description": "Selected option index/indices (0-based)."
      +          },
      +          "completed": {
      +            "type": "boolean"
      +          },
      +          "rating": {
      +            "type": "number"
      +          },
      +          "response": {
      +            "type": "string"
      +          },
      +          "skipped": {
      +            "type": "boolean"
      +          }
      +        },
      +        "type": "object"
      +      },
      +      {
      +        "type": "null"
      +      }
      +    ]
      +  },
      +  {
      +    "description": "Empty array [] — no answer for this step.",
      +    "items": {},
      +    "maxItems": 0,
      +    "type": "array"
      +  }
      +]
    • changedOutput schema / properties / videos / items / properties / responses / items / properties / response / description
      Previous value: -"The tester's answer for the step. An object with the key(s) for that step type (whitelisted in Tester\\ApiController: completed/skipped booleans, choice int or int[], rating int, response string), or an empty array [] when there is no answer."New value: +"The tester's answer for the step"
    • addedOutput schema / properties / videos / items / properties / tester / properties / name / description
      Added value: +"Tester display name"
    • removedOutput schema / properties / videos / items / properties / transcript / anyOf
      Removed value: -[
      -  {
      -    "items": {
      -      "additionalProperties": false,
      -      "properties": {
      -        "end": {
      -          "description": "Segment end in seconds.",
      -          "type": "number"
      -        },
      -        "start": {
      -          "description": "Segment start in seconds.",
      -          "type": "number"
      -        },
      -        "transcript": {
      -          "type": "string"
      -        }
      -      },
      -      "required": [
      -        "end",
      -        "start",
      -        "transcript"
      -      ],
      -      "type": "object"
      -    },
      -    "type": "array"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • changedOutput schema / properties / videos / items / properties / transcript / description
      Previous value: -"Full transcript as an array of time-coded segments. Present only when AI features are enabled and a transcript exists.\n"New value: +"Full transcript as an array of time-coded segments (seconds). Key present only when AI features are enabled and a transcript exists.\n"
    • addedOutput schema / properties / videos / items / properties / transcript / items
      Added value: +{
      +  "additionalProperties": false,
      +  "properties": {
      +    "end": {
      +      "description": "Segment end in seconds.",
      +      "type": "number"
      +    },
      +    "start": {
      +      "description": "Segment start in seconds.",
      +      "type": "number"
      +    },
      +    "transcript": {
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "end",
      +    "start",
      +    "transcript"
      +  ],
      +  "type": "object"
      +}
    • addedOutput schema / properties / videos / items / properties / transcript / type
      Added value: +"array"
  2. First observed

TDQS

A4.8/5.0
Behavior5/5

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

Annotations already declare readOnly/destructive=false; the description goes further, disclosing the default payload shape (heavy per-session detail omitted), what each opt-in flag unlocks, response-size tradeoffs, and that it returns text and structured data with no interactive UI.

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 before the alternative-tool routing and opt-in guidance. Slightly dense with parentheticals but every sentence carries actionable information.

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 annotations, full schema, and an output schema, the description supplies exactly what's missing: default vs opt-in return contents, size tradeoffs, and prerequisite discovery via list_tests.

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 schema carries the flag semantics; the description still adds value by explaining teststep-id labeling and the get_tasks link for resolving them, but largely reinforces what the schema already states.

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 resource ('Get the videos (tester sessions) of a Userbrain test by its id') and disambiguates 'videos' as tester think-aloud recordings, which an agent can tell apart from siblings like get_tasks and get_insights.

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?

Explicitly routes the agent: 'Use list_tests first to find the testId', points to get_tasks for teststep meaning, and instructs to enable the heavy flags 'only when that detail is actually needed for the task' with concrete conditions.

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