Skip to main content
Glama

Server Details

Verification videos for AI coding agents: upload recordings over MCP and share viewer links. Keep work moving in parallel and review results asynchronously, when you're ready, from your laptop or phone. Add video evidence to pull requests so teammates can see how your changes work during code review.

Ownership verified
Status
Healthy
Uptime
100.0% over 43 days
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL

TDQS

A4.1/5.0

Scored across 7 tools

Disambiguation4/5

The lifecycle tools (create_video_upload → complete_video_upload → get_video_link → delete_video) are clearly distinct steps with explicit ordering constraints. The main overlap is between list_videos/search_videos and list_tasks/search_videos, but the descriptions explicitly spell out the difference (exhaustive listing vs semantic search, and search_videos' differing default scope for `mine`), so misselection is unlikely.

Naming Consistency5/5

All seven tools use consistent snake_case verb_noun form (create_video_upload, complete_video_upload, delete_video, get_video_link, list_tasks, list_videos, search_videos). The verb set (create/complete/delete/get/list/search) maps predictably onto the nouns, with no style mixing.

Tool Count5/5

Seven tools is well-scoped for a video-recording service: an upload lifecycle, retrieval (link, list, search) and one supporting vocabulary helper. Each tool earns its place and none appears redundant with another.

Completeness4/5

Coverage spans the full lifecycle: create upload, complete it, list/search recordings, fetch a public link, and delete. Minor gaps remain — there is no update tool to amend a recording's task/title/context metadata, and no explicit status/health check beyond re-listing, but agents can work around both.

Available Tools

7 tools
complete_video_uploadAInspect

Publish a pending recording after its direct upload finishes. Call only after create_video_upload and a successful PUT of the entire file to the returned upload URL; this tool does not upload bytes. Requires a project API key with video.upload permission. Checks the stored object's byte size, MIME type and MP4/WebM container signature, not the correctness of the work shown or the full media contents. On success, changes PENDING to READY and returns the recording; use get_video_link next to retrieve its public viewer link and report retainUntil. Anyone with that link can watch until retainUntil; delete_video can remove the recording earlier. A size, MIME type or container-signature mismatch refuses publication and initiates deletion of the uploaded object. Failure to inspect the stored object's metadata marks the recording FAILED. For either failure, create a new upload and upload the file again rather than retrying completion on that recording. Only PENDING recordings can be completed: calling again after success returns an error, so use get_video_link instead.

NameRequiredDescriptionDefault
videoIdYesThe video.id returned by create_video_upload, after the file has been successfully uploaded using its upload URL.

TDQS

A4.6/5.0
Behavior5/5

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

With no annotations, the description carries the entire behavioral burden and does so thoroughly: it discloses the required permission (video.upload), the PENDING→READY state transition and returned recording, the exact validation performed (byte size, MIME, MP4/WebM container signature, but not content correctness), the destructive consequence of a mismatch (object deletion), FAILED handling, and non-idempotency (a second call errors). This is far beyond what any annotation would provide.

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 purpose followed by preconditions, validation, and failure modes in a logical order, and every sentence is substantive. It is dense at roughly seven sentences and repeats the 'use get_video_link' routing twice (once after success, once in the closing idempotency note), a minor redundancy that keeps it from a 5.

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?

No output schema exists, yet the description states what is returned ('returns the recording') and points to get_video_link for the viewer link and retainUntil. Given the single-parameter, no-annotation surface, an agent has everything needed to call this correctly and interpret the outcome.

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 100% and the single videoId parameter is already documented in the schema as the value returned by create_video_upload. The description reinforces the same origin/sequencing but adds no new syntax, format, or constraint beyond the schema, so the baseline 3 applies.

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 ('Publish a pending recording') plus the precondition that scopes it. Distinguishes itself from siblings by explicitly naming create_video_upload, get_video_link, and delete_video, so an agent knows where this sits in the workflow.

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?

Explicit precedence: 'Call only after create_video_upload and a successful PUT', 'use get_video_link next', 'delete_video can remove the recording earlier', and an exclusion that this tool 'does not upload bytes'. The when-not-to-retry rule ('create a new upload ... rather than retrying completion') is spelled out, leaving nothing to inference.

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

create_video_uploadAInspect

Write title, taskName, ownerContext and publicContext in English (code en, locale en-US) — this project's language — and follow that locale for dates and numbers. The answer says so when what you sent is not in it. Leave code, identifiers, commands and file paths exactly as they appear in the repository, and leave worktreeName as the checkout's own directory name rather than translating it. This creates a direct R2 upload for an MP4 or WebM recording, filed under the project this API key belongs to. Worktree and task are public; ownerContext is shown to project members only, never through the public link; publicContext is shown only when explicitly supplied as public-safe. This project is currently closed to new recordings: create_video_upload will be refused until an owner turns uploads back on in the project's settings. Do not record a session to upload here — ask the person you are working with first.

NameRequiredDescriptionDefault
titleYes
byteSizeYes
filenameYes
mimeTypeYes
taskNameNoConcise public task name. Omit it if the task name is not safe to publish.
ownerContextNoDetailed context shown to every member of the project, never to public-link viewers.
worktreeNameNoPublic git worktree or repository name. Omit it if the real name is not safe to publish.
publicContextNoContext explicitly confirmed safe for anyone with the public viewer link. Never derive it from private context.
workspaceNameNoDeprecated alias for worktreeName, kept for agents on an older skill version.

TDQS

A3.9/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and does a lot: it discloses the refusal condition for closed projects, the visibility tier of each field (worktree/task public, ownerContext members-only, publicContext public-safe only), and that validation failures are reported back ('The answer says so when what you sent is not in it'). It does not cover auth scope beyond the API key, retryability, or what the created upload returns.

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

Conciseness3/5

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

The description opens with a long locale/translation preamble rather than what the tool does, and the operationally critical fact (uploads are currently refused) lands near the end. Every sentence is substantive, but the ordering is not front-loaded and the language rules are verbose.

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

Completeness4/5

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

For a 9-parameter mutation tool with no annotations, no output schema, and only 56% schema coverage, the description supplies the missing operational context: refusal state, field visibility, locale requirements, and a caution against unsolicited recording. The main remaining gap is the return value / upload handoff, which nothing else documents.

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?

At 56% schema coverage, the description adds real meaning beyond the schema by specifying which fields must be written in English (title, taskName, ownerContext, publicContext), how worktreeName must be left as the checkout directory name, and the audience/visibility semantics of the context fields. It says nothing about filename, mimeType, or byteSize, which the schema covers.

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

Purpose4/5

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

The third sentence names a specific verb and resource: 'creates a direct R2 upload for an MP4 or WebM recording, filed under the project this API key belongs to.' That is concrete and distinguishable from siblings like complete_video_upload or list_videos, though the description never explicitly contrasts itself with them, and the purpose is buried behind a long writing-conventions preamble.

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?

It gives explicit when-not guidance ('This project is currently closed to new recordings: create_video_upload will be refused...') and a strong precondition ('Do not record a session to upload here — ask the person you are working with first'). It does not name the natural follow-up sibling (complete_video_upload) or explain the multi-step upload flow, so it stops short of full routing guidance.

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

delete_videoAInspect

Permanently delete a recording.

NameRequiredDescriptionDefault
videoIdYes

TDQS

A3.6/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It clearly discloses that deletion is permanent (irreversible), which is a critical behavioral trait. It does not detail other side effects, but for a delete tool this is the key behavior.

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

Conciseness5/5

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

A single sentence with no filler. It is front-loaded with the action and its permanence, and every word earns its place.

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

Completeness3/5

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

For a one-parameter, no-output-schema delete tool, the description covers the essential purpose and irreversibility. The schema provides the required parameter. It lacks return-value or error details, but those are less critical for a simple destructive action.

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

Parameters2/5

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

Schema description coverage is 0%, and the description does not mention videoId at all. The only clue is the parameter name itself, which is self-explanatory but not elaborated. The description fails to compensate for the missing schema documentation.

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?

The description states a specific verb ('permanently delete') on a specific resource ('a recording'). Among the sibling tools, only this one performs deletion, so it is immediately distinguishable.

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

Usage Guidelines3/5

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

The intent is clear—use this tool when you need to permanently remove a recording. However, it provides no explicit guidance on when not to use it or any alternatives, leaving usage to be inferred.

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

list_tasksAInspect

List the task names already used in this API key's project, so you can reuse an existing one instead of inventing a near-duplicate. Copy taskName verbatim into create_video_upload. Names are folded case-insensitively and on whitespace, so one entry can cover several spellings, listed as variants. recordingCount is how many recordings carry the task right now, and untagged counts the recordings filed under no task at all. A name is listed while at least one of its recordings is still inside its retention window — 14 to 60 days after upload depending on the project's plan — and once the last of them reaches that deadline the name goes from this list with it. firstUsedAt/lastUsedAt are upload times. Only your own uploads are counted by default; pass mine: false to count every project member's. Without query, entries come back most-recently-used first, truncated means more names exist than limit returned, and totalTasks says how many. Other optional filters: taskName (substring), createdAfter/createdBefore (ISO timestamps), limit. A filter narrows the recordings that are counted, so the counts and dates then describe that window rather than the project's whole history. Optional query instead returns the tasks of the recordings that best match a description of the work, ordered by match quality — only the best-matching recordings nominate a task, so that answer is a shortlist rather than the project's whole vocabulary, totalTasks and truncated describe just those tasks, and untagged is omitted. The counts and dates of a task shown that way still cover every one of its recordings, not only the matching ones. query matches by meaning in any language, and a query in English (code en, locale en-US) — this project's language — also matches on wording.

NameRequiredDescriptionDefault
mineNoCount only your own uploads. Defaults to true; pass false to include every project member's recordings.
limitNo
queryNo
taskNameNoSubstring of a task name, matched case-insensitively.
createdAfterNo
createdBeforeNo

TDQS

A4.7/5.0
Behavior5/5

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

With no annotations present, the description carries the full behavioral burden and does so extensively. It discloses case/whitespace folding and variants, the 14–60 day retention window, default scoping to the caller's uploads, sort ordering, truncation semantics, and the nuanced counting behavior when filters or query are used. This goes well beyond a simple 'list' label.

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?

The description is long, but nearly every sentence carries useful information and the most important purpose is front-loaded in the first sentence. It would benefit from light structural formatting, such as separating query behavior from filter behavior, but there is little redundancy given the complexity of the tool.

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?

Despite having no output schema, the description thoroughly explains the response-relevant concepts: variants, recordingCount, untagged, firstUsedAt/lastUsedAt, truncated, and totalTasks. It also covers default ordering, retention-based visibility, and query-mode differences, giving an agent enough context to invoke the tool correctly and interpret its results even without an explicit response schema.

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

Parameters5/5

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

Schema description coverage is only 33%, so the description must compensate — and it does. It explains limit via truncation semantics, query via semantic matching and shortlist behavior, createdAfter/createdBefore as ISO timestamps affecting scope, and mine's default and override. It also adds meaning to taskName by explaining substring matching and normalized folding.

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?

The description opens with a specific action and resource: 'List the task names already used in this API key's project.' It then gives the motivating purpose (reuse an existing task name instead of inventing a near-duplicate) and names the downstream tool, create_video_upload, which clearly distinguishes this tool's role from its sibling video-management tools.

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?

The description clearly states when to use the tool — to find and reuse an existing taskName before calling create_video_upload. It also explains how different modes are selected (plain filters versus semantic query). It does not explicitly contrast this tool with list_videos or search_videos, but the task-focused purpose and the cross-reference to create_video_upload provide clear context without needing exclusions.

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

list_videosAInspect

List the recordings in this API key's project, including dashboard reviewer comments and viewed status. Expired recordings are omitted; each row's retainUntil is when that recording and its public link are deleted, and firstViewedAt is when someone first played the public link, or null if nobody has. Ignore expiresAt, which is upload-authorization plumbing and always reads as past on a published recording.

NameRequiredDescriptionDefault

No parameters

TDQS

A4.3/5.0
Behavior5/5

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

With no annotations provided, the description carries the full behavioral disclosure burden and handles it well. It explains that expired recordings are omitted, defines retainUntil as the deletion time for the recording and its public link, clarifies that firstViewedAt is null until first playback, and explicitly warns to ignore expiresAt as misleading plumbing.

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?

The description is three sentences with no filler, and each sentence earns its place: the first states scope, the second explains row-field semantics, and the third prevents a likely misinterpretation. It is dense but appropriately sized for the behavioral details it must convey.

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

Completeness4/5

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

There is no output schema, so the description rightly supplies return semantics for key fields and the omission of expired recordings. It could add pagination or ordering behavior, but for a parameterless list endpoint the description is largely sufficient for correct invocation and interpretation.

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?

The input schema has zero parameters and full schema coverage, so there are no parameter semantics for the description to add. The baseline of 4 applies because parameter documentation is effectively irrelevant for this parameterless tool.

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?

The description opens with a specific verb and resource, 'List the recordings in this API key's project,' and enumerates what is included (dashboard reviewer comments and viewed status). This clearly differentiates it from search_videos and list_tasks as a project-wide listing operation.

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

Usage Guidelines3/5

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

The description implies when to use it: to retrieve all non-expired recordings for the current API key's project, with expiration behavior clarified. However, it never explicitly contrasts itself with siblings like search_videos or list_tasks, so an agent must infer the selection criteria rather than being told directly.

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

search_videosAInspect

Find recordings in this API key's project by meaning as well as by wording — describe what the session was about, or name a task, and the closest recordings come back ranked. Use it before inventing a new TASK value, to find the recordings an earlier session already filed under one. Optional filters: taskName (substring), mine (only your own uploads — unlike list_tasks, this one searches every project member's recordings unless you pass it), createdAfter/createdBefore (ISO timestamps) and limit. Expired recordings are never returned. A query in any language works, because matching is semantic; this project works in English (code en, locale en-US), and a query in that language also matches on wording, which is the more precise half.

NameRequiredDescriptionDefault
mineNo
limitNo
queryYes
taskNameNoConcise public task name. Omit it if the task name is not safe to publish.
createdAfterNo
createdBeforeNo

TDQS

A4.5/5.0
Behavior4/5

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

With no annotations, the description carries the full burden. It discloses that expired recordings are never returned, that matching is semantic and language-dependent, and that results are ranked. This goes beyond basic operation, though it could specify the return shape more precisely.

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?

The description is a single paragraph that is front-loaded with purpose, then usage, then filters. It's longer than average but every sentence contributes, covering rationale, filters, and caveats.

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

Completeness4/5

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

Given there is no output schema, the description explains ranking and expired exclusion, but doesn't describe result format. It covers language nuances and filter semantics, making it fairly complete for a search tool.

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 only 17% (taskName). The description explains all optional filters: taskName substring matching, mine's behavior, createdAfter/Before ISO timestamps, and limit. It adds meaning beyond the schema, though it doesn't detail the query parameter's constraints.

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?

The description clearly states it finds recordings by meaning and wording, and explicitly contrasts with list_tasks, which searches only your own uploads. This differentiates it from siblings.

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?

It explicitly says to use it before inventing a new TASK value, and it notes that unlike list_tasks, it searches all project members' recordings unless 'mine' is passed. This provides clear when-to-use and when-not guidance.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 1 tool update
    • Changedcomplete_video_upload1 field changed
      • addedInput schema / properties / videoId / description
        Added value: +"The video.id returned by create_video_upload, after the file has been successfully uploaded using its upload URL."
  2. 7 tool updates
    • First observedcomplete_video_upload
    • First observedcreate_video_upload
    • First observeddelete_video
    • First observedget_video_link
    • First observedlist_tasks
    • First observedlist_videos
    • First observedsearch_videos

Publisher details

Operator
Kirill Kolomin
Operator website
https://showitworks.app
Vendor relationship
First-party
Trust center
Not available
Restrictions
Requires a Show It Works account and a project API key created in Settings. Tool calls require Bearer authentication; initialize and tools/list are public. Recordings and public viewer links expire according to the project's retention policy.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    A
    maintenance
    An MCP server that watches for screen recordings, transcribes spoken feedback locally, and attaches each comment to the relevant frame, enabling coding agents to see and fix the issues you mention.
    5
    MIT
  • A
    license
    Not graded
    quality
    A
    maintenance
    An MCP server that lets AI agents file review jobs with real human reviewers, who open the published work and return pinned comments anchored to the exact elements that are off. Those comments land back in the agent's context so it can revise and refile until a human approves, skipping the user's own iteration loop.
    38 npm
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources